数码管显示驱动和键盘扫描控制器CH451及其应用
串行数据时钟,上升沿激活
本文链接地址:http://www.oyaya.net/fanwen/view/166993.html
DIN BIT P1.0 ;串行数据输入
LOAD BIT P1.2 ;串行命令加载,上升沿激活
DOUT BIT P3.2 ;接INT0,键盘中断和键值数据输出
KEY DATA 7FH ;存放键盘中断时读取的键值
;******* 初始化子程序 *******
INIT? CLR DIN ;先低后高,输出上升沿通知
CH451选择4线串行接口
SETB DCLK ;置为默认的高电平
SETB DIN
SETB LOAD
SETB DOUT ;置为输入
MOV B?#04H ;设置系统参数命令
MOV A?#07H ; Watch-Dog使能,开键盘、显示功能
LCALL WRITE
MOV B?#03H ;设置移位命令
MOV A?#00H ;开环左移
LCALL WRITE
MOV B?#05H ;设置显示参数
MOV A?#00H ;不译码,8位显示,最亮
LCALL WRITE
MOV B?#06H ;设置闪烁控制
MOV A?#00H ;不闪烁
LCALL WRITE
CLR IT0 ;置外部信号为低电平触发
CLR IE0 ;清中断标志
SETB EX0 ;允许键盘中断
SETB EA
RET
;******* 输出命令子程序 ******
;入参:B、ACC待写的12位数据? 低8位在ACC中? 高4位在B的低4位中
WRITE? CLR EX0 ;禁止键盘中断
CLR LOAD ;命令开始,此命令可以放在后面
MOV R7?#08H ;将ACC中8位送出
WRITE_8?RRC A ;低位在前,高位在后
CLR DCLK
《数码管显示驱动和键盘扫描控制器CH451及其应用(第6页)》