单片机原理及应用课程设计实验报告-基于89c52的液晶计算器内容摘要:

的例子: 8031单片机的 P1口用作键盘 I/O 口,键盘的列线接到 P1口的低 4位,键盘的行线接到 P1口的高 4位。 列线 分别接有 4 个上拉电阻到正电源 +5V,并把列 线 ,行线 出线。 4 根行线和 4 根列线形成 16 个相交点。 检测当前是否有键被按下。 检测的方法是 输出全 “0” ,读取 的状态,若 为全 “1” ,则无键闭合,否则有键闭合。 去除键抖动。 当检测到有键按下后,延时一段时间再做下一步的检测判断。 8 若有键被按下,应识别出是哪一个键闭合。 方法是对键盘的行线进行扫描。 按下述 4 种组合依次输出: 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 在每组行输出时读取 ,若全为 “1” ,则表示为 “0” 这一行没有键闭合,否则有键闭合。 由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值 为了保证键每闭合一次 CPU仅作一次处理,必须却除键释放时的抖动。 键盘扫描程序: uchar temp。 P1=0xfd。 temp=P1。 temp=tempamp。 0xf0。 if(temp!=0xf0) { delay20ms()。 temp=P1。 temp=tempamp。 0xf0。 if(temp!=0xf0) { temp=P1。 switch(temp) { case 0xed: key1=4。 break。 case 0xdd: key1=5。 break。 case 0xbd: key1=6。 break。 case 0x7d: key1=7。 break。 } while(temp!=0xf0) { temp=P1。 temp=tempamp。 0xf0。 } } 9 } 第 2 节、 设计方案的辨析 液晶显示与数码管显示: ( 1)、 通过 1602 液晶来显示信号,通过让单片机扫描按键并处理显示,进而完成输入数字及运算符来完成计算器的基本功能,液晶可以显示的字符量更大,相对于数码管更加方便且美观。 ( 2)、 通过数码管来显示输出的结果,我们要控制数码管的位选来让每个数码管相应显示各位数字。 上述方案比较得 :液晶相对于数码管更加方便且表现效果更好,而且还可以显示更多内容。 第 3 节、 硬件电路的设计 硬件电路的设计大致步骤如下: 通 过 按 键 扫 描 给 予M C U首 先 对 液 晶 初始 化M C U 对 输 入 的 信 号进 行 处 理处 理 完 成 以 后 进 行强 制 转 换 生 成A S C I I码通 过 液 晶 显 示 出 结果 矩阵键盘电路 键盘扫描方法:行 线 ^ 为输入线,列线 ^ 为输出线。 一开始单片机将行线( ^)全部输出低电平,此时读入线数据,若列线全部为高电平则没有键按下,当列线有出线低电平时调用延时程序以此来去除键抖 10 动,延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。 最后一步确定键值。 在键盘矩阵扫描时,首先检查有否键按动。 若无键按动,则清零一次键解读标志位就返回;若有键按下,则再查询键解读标志位是逻辑 0 还是逻辑 1。 如果是逻辑 1,表明本次按键已解读过,可直接从键扫描处理程序 中返回;如果是逻辑 0,说明本次按键尚未解读过,则启用消抖动延时。 经消抖动延时后即查询键盘矩阵输入口线的各端口是否有拉低。 若一个端口也没被拉低,则说明本次按键无效,那可能是某种干扰引起的“抖动”,立即从键扫描处理程序中返回;若查询到其中之一端口的电平被拉低了,则表明本次按键盘是有效的,将跳转查询与之相交的那个扫描有效输出口线,进而确定具体是哪一个键按下,并跳转赋予其相应的解释处理。 解释处理后,置键解读标志位为逻辑 1再返回,即完成一次键盘矩阵的扫描解读。 不管键盘矩阵有多少个键,其扫描确定一个具体键所需位查询的 总次数 S不会大于行数 x与列数 y之和;但也不少于 2 次,即 2≤ S≤ x+y。 矩阵式键盘识别 硬件 电路原理图 如下: 第一步:在“单片机系统”区域中,把单片机的 - 端口通过 8 联拨动拨码开关 JP3 连接到“ 4 4 行列式键盘”区域中的 M1- M4, N1- N4端口上。 第二步:在“单片机系统”区域中,把单片机的 - 端口连接到“静态数码显示模块”区域中的任何一个 a- h 端口上;要求: 对应着 a, 对应着 b,„„, 对应着 h。 软件设计程序流程图如下: 11 P3=FFH,=0 P3=FFH,=0 有键按下吗。 有键按下吗。 延时 10ms 延时 10ms 真的有键按下吗。 真的有键按下吗。 根据当前状况识别按键 根据当前状况识别按键 P3=FFH,=0 P3=FFH,=0 有键按下吗。 有键按下吗。 延时 10ms 延时 10ms 真的有键按下吗。 真的有键按下吗。 根据当前状况识别按键 根据当前状况识别按键 、 1602 显示电路 1602 显示硬件电路如下图所示: P 1 0P10P17P16P15P14P13P12P11P 1 7P 1 6P 1 5P 1 4P 1 3P 1 2P 1 1D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3L C D 1L M 0 1 6 LX T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 4。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。