单片机原理及应用课程设计实验报告-基于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。单片机原理及应用课程设计实验报告-基于89c52的液晶计算器
相关推荐
MOV T1MSECOND,A CJNE A,00,DISPT1 ;满 1S MOV A,T1SECOND ;秒加 1 调整 ADD A,1 DA A MOV T1SECOND,A CJNE A,60H,DISPT1 ;满 1MIN MOV T1SECOND,0 ;秒清 0 MOV A,T1MINIT ;分加 1 调整 ADD A, 1 DA A MOV T1MINIT,A CJNE A,60H
*/ /*项目所以单片机资源: P0 口输出数码管段控信号, P2 口输出数码管位控信号, P1 口接按键, P3 口接流水灯; 晶振 12MHz; 按键 S1: ,甲车道通车; 按键 S2: ,乙车道通车; 按键 S3: ,紧急情况通车; 按键 S4: ,复位显示 P.; 40H 用于显示缓冲区个位; 41H 用于显示缓冲区十位; 堆栈栈底: 70H。 */ /*项目所用的显示模块
有 4根。 (1) ALE/PROG:地址锁存允许 /片内 EPROM 编程脉冲。 ALE:用来锁存 P0口送出的低 8位地址。 /PROG:片内有 EPROM 的芯片 ,在 EPROM 编程期间 ,此引脚输入编程脉冲。 (2) /PSEN:外 ROM读选通信号 .在外部程式记忆体的指令码获取周期时 ,PSEN 将送出一个闪控信号 ,以表示 CPU 正自外部的程式记忆体中读取 指令码。 (3)
C08 大型程控交换机,之后逐渐占据国内固定交换及接入网等通信设备市场,市场份额逐渐扩大,至 90 年代 末期已经在国内市场上与其他少数竞争对手共同占有大部分市场份额。 2020 年,华为在光传输网络、移动及固定交换网络、数据通信网络几大领域内拥有较强实力,并在全球电信市场与爱立信、阿尔卡特、思科等老牌通讯公司展开激烈竞争。 华为技术是全球领先的电信解决方案供应商
件项目需求管理( 4 学时) 软件项目需求管理概述 需求开发和管理过程 需求获取方法 需求建模基本方法 需求管理工具 ●软件项目任务分解( 2 学时) 任务分解定义 任务分解的类型 任务分解的过程 任务分解的注意事项 任务分解的意义 ●软件项目规模成本估算( 2 学时) 关于估算的概述 估算的过程 估算的方法 估算方法综述 估算的误差度 ●软件项目进度计划( 2 学时) 项目进度中的基本概念