1、3 程序设计 53.1 程序流程图 53.2 程序代码实现 84 系统仿真 104.1 系统仿真方法 104.2 仿真结果分析 105 总结与体会 12参考文献: 12致 谢 131 方案设计1.1 设计任务设计一个44的键盘和LED数码管的显示电路,按顺序键号为“0F”,并在数码管上显示按下的按键的键号(“0F”之间的值)。1.2 设计要求1 以单片机为控制核心,实现硬件电路的设计、程序设计,并在PROTEUS平台实现仿真。2 课程设计论文内容正确,结构合理。1.3 工程方案 单片机44矩阵式键盘识别技术的实现包括电路设计、程序设计以及系统仿真三大部分,系统总框图见图1.1。1 电路设计电路
2、设计包括44矩阵式键盘电路设计、LED数码管显示电路设计、单片机最小系统电路设计。首先,分别设计出键盘电路、数码显示电路以及单片机最小系统电路各电路设计详情可见下文的电路设计。然后,单片机的P3口连接键盘电路,P3口低四位分别连接矩阵键盘的列线,P3口高四位分别连接矩阵键盘的行线,LED数码管显示电路连接在P0口P0.0P0.6。电路工作原理图如图2.4所示。 2 程序设计程序采用模块化、结构化设计,同时用延时程序进行延时去抖动在一定程度上实现了软件抗干扰技术。程序模块有:主程序、键盘扫描程序、键值显示程序、延时程序。1 主程序:主程序流程图见图3.1.1。2 键盘扫描程序:完成对整个矩阵式键
3、盘的扫描并将按下的键的行值暂存于ACC中,列值暂存于R4中。3 键值显示程序:算出键值,通过查表的方式完成键值在LED数码管上的正确显示。4 延时程序:通过判断循环语句来实现10MS的延时功能。 3系统仿真在PROTEUS中画好电路图,然后加载编译通过的程序,点播放按钮开始仿真,详情见下文的系统仿真方法。 图1.1 系统总体框图2 电路设计4矩阵式键盘电路44矩阵式键盘电路图如图2.1所示,该图中左边的接口连接在单片机的P3口,低四位接列线,高四位接行线。当要对键盘进行扫描时,可以一行一行进行扫描。假设要扫描第二行,我们只需先让第二行为低电平,即P3.2为低电平,其余三行为高电平,然后读取列线
4、上的电平,如果第二行的5号键按下,那么第二列的电平变为低电平,即P3.6为低电平,这样每个键按下都会改变P3口的电平,且不同键按下所对应的P3口的电平不同,这样便可以使单片机正确识别有无键按下以及哪个键按下。图2.1 矩阵式键盘电路2.2 LED数码显示电路数码显示电路图如图2.2所示,该电路由一个LED数码显示管和一个集成电阻器组成。其中显示块由若干发光二极管组合而成,图中的“8”字形显示块由8个发光二极管组成,每个二极管显示一字段,有共阴极和共阳极两种形式。图中所用的集成电阻器,就是集成了7个电阻,在此与显示块连接是为了保证显示块能够正常显示。图左边的端口分别接单片机上P0口的低七位,P0
5、口不同的电平对应数码管不同的显示。图2.2用的是阳极LED数码管,所以另一脚接电源,若为阴极LED数码管,则要接地。图 2.2 LED数码管显示电路2.3 单片机最小系统电路单片机最小系统由复位电路、时钟电路和单片机AT89C51组成,图如图2.3所示。1 复位电路 复位是单片机的初始化操作,单片机启动运行时,都必须复位。它的作用是使CPU和系统中其他的部件处于一个确定的初始状态,并从这个状态开始工作。一般,51系列单片机本身是不能自动复位的,必须配合相应的外部电路才能实现。2 时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地
6、按照时序工作。3 单片机AT89C51Intel公司的89C51单片机是低功耗的具有4KB在线可编程Flash存储器的单片机。片内的Flash可允许在线重新编程,也可使用通用非易失性存储器编程。它将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。图2.3 单片机最小系统电路2.4 电路工作原理电路原理图如图2.4所示,在整个电路处于工作状态时,内部程序会控制单片机对矩阵式键盘进行不断扫描,当扫描到有按键按下时会改变P3口的值,从而为内部程序提供依据,以此来识别是哪个键按下,然后将数据发到P0口,在LED数码显示管上进行显示键值。图 2.
7、4 电路工作原理图3 程序设计3.1 程序流程图3.1.1 主程序流程图图 3.1 主程序流程图3.1.2 键盘扫描程序流程图图3.2 键盘扫描程序流程图3.1.3 键值显示程序流程图图3.3 键值显示程序流程图3.1.4 延时程序流程图图3.4 延时程序流程图3.2 程序代码实现 ORG 0000H AJMP MAIN ORG 0030H MAIN: LCALL JUDGE ;调用键盘扫描程序 LJMP MAIN/键盘扫描子程序/ JUDGE: MOV R3,#0EFH ;将扫描值放入R3中暂存 MOV R4,#0 ;R4用于存放列值 KS: MOV P3,R3 ;输出行码 MOV A,P3
8、 ;读取列码 ANL A,#0FH XRL A,#0FH JZ S2 ;判断是否有键按下 S1: ACALL DELAY ;延时去抖动再次判断是否有键按下JNB ACC.0,L1 ;判断第一列是否有键按下 MOV A,#0 ;行值赋给ACC ACALL DISPLAY ;对键值进行显示 AJMP DK ;子程序返回 L1: JNB ACC.1,L2 ;判断第二列是否有键按下 MOV A,#1 ACALL DISPLAY AJMP DK L2: JNB ACC.2,L3 ;判断第三列是否有键按下 MOV A,#2 L3: JNB ACC.3,L4 ;判断第四列是否有键按下 MOV A,#3 L4
9、: NOP DK: RET S2: ACALL DELAY MOV A,#00H MOV A,R3 JNB ACC.7,JUDGE ;扫描完成则进行下一回合扫描 RL A ;扫描未完成则行码左移扫描下一行 MOV R3,A MOV A,R4 ADD A,#4 ;扫描下一行时列值加4 MOV R4,A AJMP KS/键值显示子程序/ DISPLAY: ADD A,R4 ;行值加列值得键值暂存于ACC中 MOV DPTR,#TABLE ;DPTR指向表头 MOVC A,A+DPTR ;查表后将键值送入ACC MOV P0,A FINAL: MOV A,P3 JNZ FINAL ;按键未松开则延时
10、等待 RET ;按键已松开则返回/延时子程序/DELAY: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H; DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH; END4 系统仿真4.1 系统仿真方法 整个仿真过程是在PROTEUS平台上完成的。进入PROTEUS仿真软件主界面后,首先,设置view 菜单下的捕捉对齐和system 下的颜色、图形界面大小等项目。然后,通过工具栏中的p命令(从库中选择元件命令),在
11、pick devices 窗口中选择电路所需的元件,放置元件并调整其相对位置,设置好元件参数,并完成元器件间的连线,使电路图尽量美观得体。接着,选择好程序编译的工具、路径、扩展名等项目后编写程序,程序编译通过后,在source菜单的Add/remove source files 命令下,加入单片机硬件电路的对应程序。最后,通过debug 菜单的相应命令仿真程序和电路的运行情况。4.2 仿真结果分析 仿真时可以对矩阵键盘上编号为0F的十六个键进行操作,每按下一个键,在数码显示管上都会出现相应的键值字形显示。具体情况如表4.1所示。表 4.1 按键键号与显示字形对应表按键键号显示字形1234567
12、89AbCdEF下图4-2、4-3分别为按下键号9和E时的仿真图:图 4.2 按下键号9时的仿真图图 4.3 按下键号E时的仿真图其它按键也同样可以看到正确的键号字形显示,由此可知,本课程设计成功实现了所要求实现的功能。5 总结与体会 这次课程设计,老师在4月17号下达了课题任务书,我用了两天的时间思考了本课题并查阅了相关资料,有了大致思路后确定了总体设计方案。有了方案设计,目的明确了很多,接下来的两天完成了电路设计。由于我们的课题关于44矩阵键盘的设计,在电路设计中,为了把矩阵键盘画的美观花了不少时间,不过整个电路设计过程还顺利。在这电路设计的过程中,我熟悉了PROTEUS中的各种操作,这使
13、我能够更有效率地完成电路的设计。接着便是程序设计,我首先确定了整体思路,用子函数来分块实现各种功能,这样我的整个程序的条理非常清晰,同时也节省可很多时间和程序的篇幅,接着就是编写各个子函数。整个程序比较麻烦的就是键盘扫描程序,我第一次写出来的程序由于跳入弄错了不能循环扫描,后来检查了一阵才查出来,程序中还出现了两处操作码错误,这是由于我对一些指令不是很熟的缘故,以后一定要多动手,多编写程序来熟悉各种指令。电路和程序都通过之后,仿真过程就很容易了。最后就是写课程设计报告了,这是对表达能力的一个检查,我花了两天时间到今天才写完。 现在不仅有完成了课程设计的喜悦,更多的是感觉自己学到了不少东西,通过
14、这样一次实践性的练习,让我加深了对单片机的认识,熟练了PROTEUS、WORD的各种操作,进一步提高了自己的表达能力,同时也看到了自己由于缺乏实践而暴露的不足,希望以后能够多进行一些实践性活动来弥补自己的不足。1 曹巧媛.单片机原理及应用M.北京:电子工业出版社,1997.7.2 张洪润,兰清华.单片机应用技术教程M.北京:清华大学出版社,1997.11.3 李华.MCS-51系列单片机实用接口技术M.北京航空航天大学出版社,1993.8.致 谢 在这次课程中,电路图和程序的完成还算顺利,就是在撰写课程设计报告时,感觉自己不知从何下手,后来通过老师的指导让我有了大体的思路,于是自己着手写。自己感觉还不错的时候拿给老师看,但老师很不满意,再一次耐心地帮我指出了不足之处,然后我又再一次加以改进。正是老师的严格要求和耐心指导,让我学到了更多东西,因此在这里我要对老师表示由衷的感谢。同时也要感谢我们这组的同学对我工作的支持与配合。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1