按平台模式设计的虚拟I2C总线软件包VIIC
SLA EQU 50H ;50H为寻址字节存放单元
NUMBYT EQU 51H ;51H为传送字节数据存放单元
MTD EQU 30H ;30H为发送缓冲区首地址
(3) 8位LED显示子程序设计
这里介绍1个在图2(b)LED显示器上显示“bUAA0706”固定字符的子程序。
根据SAA1064的数据操作格式,点亮4个LED只须依首地址SUBADR顺序送入控制命令COM和4个LED共阴极段选码data1~data4。
设LED驱动电流为18 mA(C6,C5为高电平;C4为低电平)动态显示要求(C2,C1,C0为高电平)故COM=67H。SAA1064(1)显示“0706”的段码依次是7DH,3FH,07H,3FH;SAA1064(2)显示“bUAA”的段码依次为77H,77H,3EH,7CH。因此,SAA1064(1),(2)的数据操作格式具体化为
设显示“bUAA0706”的子程序名为VSAA8。VSAA8的程序清单如下:
VSDA EQU P1.0
VSCL EQU P1.1
SLA EQU 50H
NUMBYT EQU 51H
MTD EQU 30H
VSAA8: MOV 30H,#00H;将SUBADR,COM,LED共 ;阴极段码data1~data4 ;依次装入发送缓冲区
MOV 31H,#67H
MOV 32H,#7DH
MOV 33H,#3FH
MOV 34H,#07H
MOV 35H,#3FH
MOV SLA,#70H;寻址SAA104(1)并为发送 ;状态
MOV NUMBYT,#06H;确定发送字节数
LCALL WRNBYT;调用VIIC1.0中N个字节写 ;入子程序
MOV 30H,#00H;将SUBADR,COM,data1~ ;data4依次装入发送缓冲区
MOV 31H,#67H
MOV 32H,#77H
MOV 33H,#77H
MOV 34H,#3EH
MOV 35H,#7CH
MOV SLA,#76H ; 寻址SAA1064(2)并为发 ;送状态
MOV NUMBYT,#06H ;确定发送字节数
MOV WRNBYT;调用VIIC1.0中N个字节写 ;入子程序
RET
如果要随意显示内存中的8个BCD码,可开辟显示缓冲区DISRAM,设计1个子程序,将显示缓冲区中的8个BCD码转换成共阴极段码再和SUBADR和COM一道送入MTD中,然后使用VIIC1.0的三条操作命令即可。
- 上一篇论文: 用实时时钟芯片DS1305启动数据采集系统
- 下一篇论文: 一种基于图像处理的自动调焦系统