基于单片机的逻辑分析仪的设计 第5页

基于单片机的逻辑分析仪的设计 第5页图3-1主CPU(AT89C51)程序流程

(b)软件从CPU程序流程图如图3-2所示。
此CPU程序主要完成了键盘、显示功能。与主CPU进行串行通信,通过键盘可以设置各种参数,如可以设置触发字,当满足触发条件时进行触发并显示 
图3-2 从 CPU(AT89C51)程序流程
3.2 中断服务子程序
       图3-2  中断服务子程序
3.3 AT24C04程序设计
我们利用AT24C04对数据进行存储和掉电保护。与AT89C51相连时,P3.5用作SDA线,P3.4用作SCL线。
AT24C04的程序流程:
 
图3-3  AT24C04流程

总线协议:
•总线空闲:SCL和SDA都保持高电平。
•开始信号:SCL保持高电平的状态下,SDA出现下降沿。出现开始信号以后,       总线被认为"忙"。
•停止信号:SCL保持高电平的状态下,SDA出现上升沿。停止信号过后,总线被认为"空闲"。
•总线忙: 在数据传送开始以后,SCL为高电平的时候,SDA的数据必须保持稳定,只有当SCL为低电平的时候才允许SDA上的数据改变。


开始信号:           
START_BIT:      SETB    SDA               ;SDA为高电平
                NOP
                SETB    SCL                ;SCL 为高电平
                NOP
                CLR     SDA                ;SDA为低电平
                NOP
                CLR     SCL                ;SCL 为低电平
                RET
;---------------------------------------------------------------------------
停止信号:
STOP_BIT:       CLR     SDA               ;SDA为低电平    
                NOP
                SETB    SCL                ;SCL 为高电平
                NOP
                SETB    SDA                ;SDA为高电平
                NOP
                CLR     SCL               ;SCL 为低电平
                RET
;-------------------------------------------------------------------------------------------
发送一个字节:
  SEND: MOV R0,#08H            ;R0为8 H
SEND0:RLC  A                   ;A左移
MOV SDA,C              ;数据传输
ETB SCL                   ;SCL 为高电平
ACALL DEALY             ;延时
CLR SCL                   ;SCL 为低电平
DJNZ R0 ,SEND0          ;R0=0时转SEND0
          SETB SDA                 ;SDA为高电平
          RET
 
接收一个字节:
REV: MOV R0,#08H                ;R0为8 H
        MOV C,SDA                 ;数据接受
RLC A                         ;A左移
CLR SCL                      ;SCL 为低电平
        DJNZ R0,REV0               ;R0=0时转SEND0
RET
;-----------------------------------------------------------------------
接收一个应答位:                    
ACKI:SETB SCL                   ;SCL 为高电平

上一页  [1] [2] [3] [4] [5] [6] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有