关于CH451键盘扫描和显示的实现

[size=4] 沁恒工程师: 你好,我想请教你们的CH451用键盘中断的方式如何实现数码管显示,当一个按键按下后,产生中断给DIN送入数据后在数码管上显示,当另一个按键按下后,应该为这个按键对应的数码管显示,不 影响前个按键的显示,那么第二按键送入的数会不会改变前一个的数据呢(SEG和每个数码管是并联的没弄明白),CH451的 DIG 和 SEG 是如何实现每一个数据独立的显示呢,我是初学的,希望给予帮助,用的芯片是51的,谢谢[/size]

这个没人解答?那就在问个问题:CH451的键值DOUT输出的是用按下是的,还是释放后的呢?为什么不解答问题呢?


1.第一次和第二次读出来的键值在不同的数码管显示,那么两次的数据都可以显示在数码管上. 2.SEG和每个数码管是并联的是指将所有数码管的相同段引脚(段A-段G及小数点)并联后通过限流电阻连接到 CH451的SEG0-SEG7. 3.CH451的DIG7-DIG0分别连接8个数码管的阴极,SEG7-SEG0对应数码管的小数点和段G和段A,这样8个数码管可以分别显示不同的数据.


哦,谢谢了,就等你们的样片了,那么我只要有中断产生就会进入中断子程序读取键值啊,那么这个键值是那一个呢?


那看你的键盘连接在CH451的哪个DIG和SIG上.DIG引脚用于列扫描输出,SIG引脚用于行扫描输入.CH451所提供的按键代码为7位,位2-位0为列扫描码,位5-位3位行扫描码,位6是状态码(键按下为1,键释放为0).例如连接DIG1和SIG2的键盘被按下.则按键代码为1010001或51H.所以按下不同的键盘,读到的键值是不同的.datasheet里有按键代码表. 一般在CH451检测到有效而产生键盘中断时读取按键代码,按键代码的位6总是1.


哦,我的意思是是说你DIG1和SIG2的键盘被按下.产生的中断读取的按键代码为51H还是减去40H后的11H呢,


产生的中断读取的按键代码为51H


哦,谢谢,那11H是怎么读取的呢?


通过查询方式读取按键代码,直到第6位状态码为0这个时候读取的按键代码为11h


哦,谢谢,芯片已收到!准备试机拉。


只有登录才能回复,可以选择微信账号登录