数码管显示驱动和键盘扫描控制器CH451及其应用
MOV DIN?C ;送出一位数据
本文链接地址:http://www.oyaya.net/fanwen/view/166993.html
SETB DCLK ;产生时钟上升沿通知
CH451输入位数据
DJNZ R7? WRITE 8 ;位数据未完,继续
MOV A?B
MOV R7?#04H ;将B中4位送出
WRITE 4?RRC A ;低位在前?高位在后
CLR DCLK
MOV DIN?C
SETB DCLK
DJNZ R7? WRITE 4
SETB LOAD ;产生加载上升沿通知
CH451处理命令数据
SETB EX0 ;允许键盘中断
RET
?******* 输入键值子程序 ******
? 出参? ACC键值数据
READ? CLR EX0 ;禁止键盘中断
CLR LOAD ;命令开始
MOV A?#07H ;读取键值命令的高4
位0111B
MOV R7?#04H ;忽略12位命令的低
8位
READ 4? RRC A ;低位在前,高位在后
CLR DCLK
MOV DIN?C
SETB DCLK
DJNZ R7? READ 4
SETB LOAD ;产生加载上升沿通知
CH451处理命令数据
CLR A ;先清除键值单元以便移位
MOV R7?#07H ;读入7位键值
READ_7? MOV C?DOUT ;读入一位数据
CLR DCLK ;产生时钟下降沿通知
CH451输出下一位
RLC A ;数据移入ACC,高位
在前,低位在后
《数码管显示驱动和键盘扫描控制器CH451及其应用(第7页)》