zl2168 发表于 2016-6-26 14:12 你好 uchar KeyScan() //带返回值的子函数 { uchar cord_l,cord_h;//声明列线和行线的值的储存变量 P3 = 0x0f;//0000 1111我把这行变成了P3 = 0xf0;//0000 1111,单片机应该有什麽变化? 我试验了 没找到呀 du = 1;//打开段选端 P0 = leddata[22];而且 我把这行22 改成了 P0 = leddata[2]但是单片机根本没变化 是怎麽回事? |
|
本帖最后由 zl2168 于 2016-6-26 14:25 编辑 实例64 74HC595+165扩展8×8键盘 先Proteus仿真一下,确认有效。
实例64 74LS595 165扩展8×8键盘.rar
(65.5 KB, 下载次数: 6)
|
|
实例63 8279扩展8×8键盘和8位显示 先Proteus仿真一下,确认有效。
实例63 8279扩展键盘和显示.rar
(63.08 KB, 下载次数: 6)
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版 书中电路和程序设计有详细说明,程序语句条条有注解。 |
|
本帖最后由 zl2168 于 2016-6-26 14:16 编辑 上述电路在许多单片机教材和技术资料中被介绍,但实际上该电路连接存在问题。当同一行有多键同时按下(带锁),且该行其中一键所在列又有多键同时按下时,会发生信号传递路径出错。例如,K1、K2、K8、K9同时按下,当P1.4行扫描输出低电平时,按理,仅有P1.2、P1.1会因K2、K1闭合而得到低电平列信号。但由于K2与K9同列且K8与K9同行,P1.4输出的低电平信号会通过K1→K9→K8传递到P1.0,产生低电平列信号,引起出错。同理,当P1.6行扫描输出低电平时,其低电平信号会通过K9→K1→K2传递到P1.2,产生低电平列信号,引起出错。不出错的条件是多键行与多键列不交叉。因此,这种矩阵式键盘电路适用于无锁按键时相对合理。 以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版 |
|
本帖最后由 zl2168 于 2016-6-26 14:13 编辑 实例62 4×4矩阵式键盘 先Proteus仿真一下,确认有效。
实例62 4×4矩阵式键盘.rar
(44.79 KB, 下载次数: 17)
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版 书中电路和程序设计有详细说明,程序语句条条有注解。 |
| 其实还可以加几个数码管的 |