编辑: yyy888555 | 2019-07-12 |
6 和位5不影响 BCD 译码.下表为数据寄存器中字数据的位 4~位0进行 BCD 译码后,所对应的段 G~段A以及数码管显示的字符.参考下表,如果需要在数码管上显示字符 0,只要置入数据 0xx00000B 或者00H;
需要显示字符 0. (0 带小数点) , 只要置入数据 1xx00000B 或者 80H;
类似地, 数据 1xx01000B 或者 88H 对应于字符 8.(8 带小数点) ;
数据 0xx10011B 或者 13H 对应于字符=;
数据 0xx11010B 或者 1AH 对应于字符.(小数点) ;
数据 0xx10000B 或者 10H 对应于字符 (空格,数码管没有显示) . 位4~位0段G~段A显示的字符 位4~位0段G~段A显示的字符 00000B 0111111B
0 10000B 0000000B 空格 00001B 0000110B
1 10001B 1000110B -| -1 或加号 00010B 1011011B
2 10010B 1000000B - 负号减号 00011B 1001111B
3 10011B 1000001B = 等于号 00100B 1100110B
4 10100B 0111001B [ 左方括号 00101B 1101101B
5 10101B 0001111B ] 右方括号 CH451 手册
4 00110B 1111101B
6 10110B 0001000B _ 下划线 00111B 0000111B
7 10111B 1110110B H 01000B 1111111B
8 11000B 0111000B L 01001B 1101111B
9 11001B 1110011B P 01010B 1110111B A 11010B 0000000B . 小数点 01011B 1111100B b 其余值 0000000B 空格 01100B 1011000B c 01101B 1011110B d 01110B 1111001B E 01111B 1110001B F 下图是 CH451 的段驱动引脚 SEG7~SEG0 的内部电路简图. 下图是 CH451 的字驱动引脚 DIG7~DIG0 的内部电路简图. 5.3. 键盘扫描 CH451 手册
5 CH451 的键盘扫描功能支持 8*8 矩阵的
64 键键盘.在键盘扫描期间,DIG7~DIG0 引脚用于列 扫描输出,SEG7~SEG0 引脚都带有内部下拉电阻,用于行扫描输入;
当启用键盘扫描功能后,DOUT 引脚的功能由串行接口的数据输出变为键盘中断以及数据输出. CH451 定期在显示驱动扫描过程中插入键盘扫描.在键盘扫描期间,DIG7~DIG0 引脚按照 DIG0 至DIG7 的顺序依次输出高电平,其余
7 个引脚输出低电平;
SEG7~SEG0 引脚的输出被禁止,当没有 键被按下时,SEG7~SEG0 都被下拉为低电平;
当有键被按下时,例如连接 DIG3 与SEG4 的键被按下, 则当 DIG3 输出高电平时 SEG4 检测到高电平;
为了防止因为按键抖动或者外界干扰而产生误码, CH451 实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效.如果 CH451 检测到有效的 按键,则记录下该按键代码,并通过 DOUT 引脚产生低电平有效的键盘中断,此时单片机可以通过串 行接口读取按键代码;
在没有检测到新的有效按键之前,CH451 不再产生任何键盘中断.CH451 不支 持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;
如果多个键同时按下,那么按键 代码较小的按键优先. CH451 所提供的按键代码为
7 位,位2~位0是列扫描码,位5~位3是行扫描码,位6是状态 码(键按下为 1,键释放为 0) .例如,连接 DIG3 与SEG4 的键被按下,则按键代码是 1100011B 或者 63H,键被释放后,按键代码通常是 0100011B 或者 23H,其中,对应 DIG3 的列扫描码为 011B,对应 SEG4 的行扫描码为 100B.单片机可以在任何时候读取按键代码,但一般在 CH451 检测到有效按键而 产生键盘中断时读取按键代码,此时按键代码的位
6 总是 1,另外,如果需要了解按键何时释放,单 片机可以通过查询方式定期读取按键代码,直到按键代码的位
6 为0. 下表是连接在 DIG7~DIG0 与SEG7~SEG0 之间的键被按下时,CH451 所提供的按键代码.这些按 键代码具有一定的规律,如果需要键被释放时的按键代码,则将表中的按键代码的位