按平台模式设计的虚拟I2C总线软件包VIIC
VSCL EQU P1.0 ;用P1.0虚拟SCL
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码,可开
《按平台模式设计的虚拟I2C总线软件包VIIC(第6页)》