Z BIT_COUNT,SEND_LOOP ;8位是否发送完毕
CLR DAT ;发送完毕,返回
RET
;***接收一个字节到ZLG8279A,高位在前
RECEIVE:MOV BIT_COUNT,#8 ;记数器设定
SETB DAT ;设定P1.2(DATA)为高电平输入状态
CALL LONG_DELAY ;
RECEIVE_LOOP: SETB CLK ; CLK置高电平
CALL SHORT_DELAY
MOV A,DATA_IN ;数据左移
RL A
MOV DATA_IN,A
MOV C,DAT ;读取一位数据
MOV DATA_IN.0,C
CLR CLK
CALL SHORT_DELAY
DJNZ BIT_COUNT,RECEIVE_LOOP ; 8位是否接收完毕
CLR DAT ; 重设DAT口为低电平(输出状态)
RET
;**************延时子程序
LONG_DELAY: MOV TIMER,#25 ;设定延时时间为50μs
DELAY_LOOP: DJNZ TIMER,DELAY_LOOP
RET
SHORT_DELAY:MOV TIMER,#4 ;设定延时时间为50μs
SHORT_LP: DJNZ TIMER,SHORT_LP
RET
END
6 结束语
ZLG8279A具有的特点和丰富的指令系统,使得由其组成的LED显示和键盘电路具有外围电路简单,功能强大,使用方便,可靠性高,与MCU接口简单等特点,是LED显示和键盘电路的首选器件。笔者利用该芯片制作的“学生提问指示仪”,经使用,效果良好。