用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

数码管显示驱动和键盘扫描控制器CH451及其应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:36:49
H451与MCS-51单片机的连接如图1所示,其中DOUT引脚最好连接到单片机的中断输入引脚,这样可用中断方式响应按键。如果连接到非中断输入引脚,则应该使用查询方式确定CH451是否检测到有效按键,同时还可向单片机提供复位信号RESET并带Watch-Dog功能。CH451的段驱动引脚串接的电阻R1(200Ω)用于限制和均衡段驱动电流。在5V电源电压下,串接200Ω电阻通常对应13mA段电流。CH451具有64键的键盘扫描功能,为了防止键被按下后在SEG信号线与DIG信号线之间形成短路而影响数码管显示,一般应在CH451的DIG0~DIG7引脚与键盘矩阵之间串接限流电阻R2,其阻值可以从1kΩ至10kΩ。

将P1.0与DIN连接可用于输入串行数据,串行数据输入的顺序是低位在前,高位在后。另外,在上电复位后,CH451 默认选择1线串行接口,如需选择4线串行接口,则应在DCLK输出串行时钟之前,先在DIN上输出一个低电平脉冲,以通知CH451为4线串行接口。将P1.1与DCLK连接可提供串行时钟,以使CH451在其上升沿从DIN输入数据,并在其下降沿从DOUT输出数据。LOAD用于加载串行数据,CH451一般在其上升沿加载移位寄存器中的12位数据以作为操作命令进行分析并处理。也就是说,LOAD的上升沿是串行数据帧的帧完成标志,此时无论移位寄存器中的12位数据是否有效,CH451都会将其当作操作命令来处理。应注意的是,在级联电路中,单片机每次输出的串行数据必须是单个CH451的串行数据的位数乘以级联的级数。

下面是该电路的驱动程序:

;主程序需要定义的参数

DCLK BIT P1.1 ;串行数据时钟,上升沿激活

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

MOV DINC ;送出一位数据

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,高位

在前,低位在后

SETB DCLK

DJNZ R7 READ_7 ;位数据未完继续

CLR IE0 ;清中断标志,读操作

过程中有低电平脉冲

SETB EX0 ;允许键盘中断

RET

4 结束语

用CH451扩展键盘显示接口,具有接口简单、占用CPU资源少、外围器件简单、性能价格比高等优点,可在各种单片机系统中得到广泛的应用。



上一页  [1] [2] [3] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:10,546.88000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号