单片机4X4键盘接口和显示设计报告.docx

上传人:scccc 文档编号:12928508 上传时间:2021-12-07 格式:DOCX 页数:23 大小:253.40KB
返回 下载 相关 举报
单片机4X4键盘接口和显示设计报告.docx_第1页
第1页 / 共23页
单片机4X4键盘接口和显示设计报告.docx_第2页
第2页 / 共23页
单片机4X4键盘接口和显示设计报告.docx_第3页
第3页 / 共23页
单片机4X4键盘接口和显示设计报告.docx_第4页
第4页 / 共23页
单片机4X4键盘接口和显示设计报告.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机4X4键盘接口和显示设计报告.docx》由会员分享,可在线阅读,更多相关《单片机4X4键盘接口和显示设计报告.docx(23页珍藏版)》请在三一文库上搜索。

1、单片机课程设计汽车学院单片机原理及接口技术课程设计题目:单片机原理与应用专业:交通运输班级:_0 8 0 1姓名:白鹭学号:_0811140107指导教师:黄 艳(2011-6-29)3目录一、开题报告3一、实验目的6二、实验内容6三、设计要求6四、系统设计环境7五、实验原理7六、实验步骤8七、设计流程图11八、程序编程13九、仿真过程18十、调试过程中的难点及其解决思路18H一、课设总结与体会19十二、参考文献20开题报告一. 课设目的为了进一步加强巩固理论知识增强学生对所学知识的实际应用能 力和应用所学知识解决问题的能力。通过本设计使学生在巩固所学知识 的基础上具有初步的单片机系统设计与应

2、用能力。1、通过本设计,使学生综合应用,微型计算机技术,数学电路, 及模拟电路等课程内容,为以后从事电子产品设计、 软件编程、系 统控制等工作奠定一定的基础。2、学会使用KEIL C和PROTEU等软件,用C语言或汇编语言编 写一个较完整的实用程序,并仿真运行,保证设计的正确性。3、了解单片机接口应用开发的全过程:分析需求、设计原理图、 选用元器件、布线、编程、调试、撰写报告等。二、设计内容1、 本设计利用各种器件设计,并利用原理图将 8255单元与键盘及数 码管显示单元连接,扫描键盘输入,最后将扫描结果送入数码管显示。键盘采用4*4键盘,每个数码管可以显示0-F共16个数。将键盘编号, 记作

3、0-F,当没按下其中一个键时,将该按键对应的编号在一个数码管 上显示出来,当在按下一个键时,便将这个按键的编号在下一个数码管上显示,数码管上可以显示最近6次按下的按键编号。设计并实现一 4X4键盘的接口,并在两个数码管上显示键盘所在 的行与列。三、问题分析及方案的提出4 X 4键盘的每个按键均和单片机的 P1 口的两条相连。若没有按键按下 时,单片机P1 口读得的引脚电平为“1”;若某一按键被按下,则该键 所对应的端口线变为地电平。单片机定时对 P1 口进行程序查询,即可 发现键盘上是否有按键按下以及哪个按键被按下。实现4X4键盘的接口需要用到单片机并编写相应的程序来识别键盘的 十六个按键中哪

4、个按键被按下。 因为此题目还要求将被按下的按键显示 出来,因此可以用两个数码管来分别显示被按下的按键的行与列四、设计思路及原因对于4X4键盘,共有十六个按键。如果每个按键与单片机的一个引脚 相连,就会占用16个引脚,这样会使的单片机的接口不够用(即使够 用,也是对单片机端口的极大浪费)。因此我们应该行列式的接法。行 列式非编码键盘是一种把所有按键排列成行列矩阵的键盘。在这种键若没有按键按下时,单片机从 P1 口读得的引脚电平为“ 1”;若某一按键 被按下,则该键所对应的端口线变为地电平。因此0xEX(X表示任意4X 4键盘的第一行中的某个按键被按下,相应的 0xDX 0xBX 0x7X(X表示

5、任意一个十六进制数)分别表示键盘的第二行、第二行、第四行;0xXE、0xXD 0xXB 0xX7(X表标十六进制数)则分别表示键 盘的第一列、第二列、第三列和第四列。例如 0xD7是键盘的第二行第 四列的按键对于数码管的连接,采用了共阳极的接法,其下拉电阻应保证芯片 不会因为电流过大而烧坏。五、电路设计及功能说明4 X4键盘的十六个按键分成四行四列分别于 P1端口的八条I/O 数据线相连;两个七段数码管分别与单片机的P0 口和P2 口的低七位I/O数据线相连。数码管采用共阳极的接法,所以需要下拉电阻 来分流。结合软件程序,即可实现 4X4键盘的接口及显示的设计。 当按下键盘其中的一个按键时,数

6、码管上会显示出该按键在 4X 4键 盘上的行值和列值。所以实现了数码管显示按键位置的功能六、课设完成计划(按周次划分)13周形成开题报告并发送到邮箱 liuzhe79026。16-17周形成设计底稿。18周设计底稿发送到liuzhe79026。19周形成设计报告并打印出来。5单片机课程设计键盘接口和显示设计课程设计一、实验目的学习和掌握计算机中常用接口电路的应用和设计技术, 充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到

7、全面1、通过本设计,使学生了解8255的工作方式及其应用。2、学会使用KEIL C等软件,用汇编语言编写一个较完整的实用程序,并 仿真运行,保证设计的正确性。3、了解键盘扫描及数码显示的基本原理并熟悉 8255的编程。二、实验内容设计并实现一 4X4键盘的接口,并在两个数码管上显示键盘所在的行与列。即将8255单元与键盘及数码管显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送数码显示,键盘 采用4X 4键盘,每个数码管值可以为0到F, 16个数。将键盘进行编号记作 0F当按下其中一个按键时将该按键对应的编号在 一个数码管上显示出来,当按下下一个按键时便将这个按键的编号在下一个数码 管上显

8、示出来,且数码管上可以显示最近 6次按下按键的编号。三、设计要求1、接口电路设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路,并进行电路连接和调试。2、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和 程序注释。3、 设计文件:a、设计图纸(接口电路原理图);b、使用或操作说明;c、 设计报告:字数约30004000字,内容包括:(1)设计题目;(2)系统的主要功 能作用及主要技术性能和指标;(3)总体设计方案及组成原理(框图) 或设计说 明及技术路线;(4)系统设计:接口电路设计,程序设计(程序框图和程序活单 及注释)其他有关的理论分析和计算;(5)设计总结:对设计中

9、所存在的问题和 不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、 收获和提高。四、系统设计环境PC机一台,TD-NMC教学实验系统五、基本原理XTHRW3PQW1PCSWZXTMLZPQJAD3FU 柏姑可rciw?0购PZ忡P2 卫Ml,必M声H.HA12XF颂口P2M14P1B:P1.1pimsFiaVIflF1JPUP15niniP1J6u咐P1.Tpi枷通业谴邙_专业-1. 电路设计及功能说明2. 硬件原理框图及电路图(包括接口芯片简介)电路图:六、实验步骤.把实验平台与PC机申行口连起来,根据实验连线提示在实验台上连线,之后打开电源。(2). 在PC机上用鼠标点

10、击“ Wve ”图标,进入WINDOWS调试环境, 而后进行初始化设置。点击仿真器 仿真器设置出现“仿真器设 置”窗,进行仿真器的设置。. 用鼠标点一下文件 打开文件,输入文件名*.as门创建新文 件,在该窗口中输入事先编好的程序。. 用鼠标点项目 全部编译窗,对当前源文件进行编译,反复 修改好程序,直到编译通过为止。. 全速运行程序,通过在键盘按键,观察八段管的显示结果,理 解键盘扫描原理及程序编写方法。接口芯片简介AT89C5倘介AT89C5促一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用

11、ATMEI®密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由丁将多功能 8位CPUW闪烁存储器组合在单个芯 片中,ATMEL勺AT89C51是一种高效微控制器。单片机课程设计主要管脚说明:VCC供电电压。GND接地。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当P1 口的管脚第一次写1时,被定义为高阻输入。P0能够用丁外部程序数据 存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原 码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一个内部提供上

12、拉电阻的 8位双向I/O 口,P1 口缓冲器能 接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由丁内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的 8位双向I/O 口,P2 口缓冲器可接收,输 出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作 为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由丁 内部上拉的缘故。P2 口当用丁外部程序存储器或16位地址外部数据存储器进 行存取时,P2 口输出地址的高八位。在给出

13、地址“ 1”时,它利用内部上拉优 势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2口在FLASHS程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL门 电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由丁外部下拉为低电平,P3 口将输出电流(ILL)这是由丁上拉的缘故。P3 口同时为闪烁编程和编程校验接收一些控制信号。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用丁锁存地址的地位字节。在FLASH®程期间,此引脚用丁输入编程脉冲。在平时

14、,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用丁定时目的。然而要注意的是:每当用作外部数据存 储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR8EI址上置0。 此时,ALE只有在执行MOVXMOV©旨令是ALE才起作用。另外,该引脚被略 微拉高。如果微处理器在外部执行状态 ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的 /PSEN信 号将不出现。数码管简介数码管按段数分为七段数码管和八段数码管,八段数码管

15、比七段数码管多 一个发光二极管单元(多一个小数点显示);按能显示多少个“ 8”可分为1位、 2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极 数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极 CO戚到+5V,当某一字段发光二极 管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应 字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM)勺数码管。共阴数码管在应用时应将公共极 CO戚到地线GND±,当某一 字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字

16、段的阳极为低 电平时,相应字段就不亮。PLOPl.l 己 p 7PL3 .二Pl A ;_TT7PL6P17 己RST 二(RXD)P3.Q':(TXD1P3.I(r)p3.2.:(NTT)P3.3.(T0)P3d(TDP3.5(RDJP3.7XTAL2XTALIGN01234 5 6 7890 II 2 3 4 5- 6 7 8 9 I- 1- 1 1 I 1- 1 1 tL- 1 20 9 8 7 6 5 4 3 2 O 9 8 7 6 5 4 3 7 1 4 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 200000000000000000000VCCP

17、O.O(ADO)P(kHADI)PO.2(AD2) P0 3(AD3) P0.4(AD4)P0.5(AD5)P0.6(AD6)P0J(AD7)"TSTapp或甲RO。P2.7(AI5)P2.6(AI4)P2.5(AI3)P24(AI2)P2.3(AI I)PZO(AIO)P2.1(A9)T2.0(A8)P1 5C 1 P1 6C 2 P1 7C RSTC iFUD) P3.QLMCE iTXD) P31 匚tiFFro) P3.2 匚 8lfNTTP33C 9(TO I P3.4 匚 I DE)P3,5 匚11占口<nGCL 目<nMP口<二 £ 占<

18、;3<OQ>n_O至At-qs: 室z二wrtLO-nsd窝HE te n-ovLwV33 口 POX AD41 32 PC 5 (AD5)31 El PD.6 (AD6) 30Q=0.7(AD7:. 29曰疝 2BHNC” 口 ALEj'RSS 26QPSEN 25aP2.7(l5) 24 口 =2.6 (A141 23DP2 5(A13J口 Md &LS Urtsd-LLVJ 口 lidoM 口 L .zd 一旻 口 0£戛 口UN0 03口 L 京 J.X口 n<女 宁卜Ed厘 口 篇此£-<-七、软件部分的程序流程图,算法和使

19、用的编程技巧1.编程技巧1.在按键扫描程序中,通过for循环语句实现被按下的按键的行值的确定,用switch语句实现歹U值的确定0xEX(X表小任意一个十六进制数)表小4 X 4键盘的第一行中的某个按键被按下,相应的0xDX 0xBX 0x7X(X表示任意一个十六进制数)分别表示键盘的第二行、第三行、第四行;0xXE、0xXD 0xXB 0xX7(X 表示任意一个十六进制数)则分别表示键盘的第一歹0、第二歹0、第三列和第四歹0;2. ucRow+ucLine+1即为被按下的按键的行歹U值;3用十六个switch语句实现对单片机P0端口和P2 口的I/O数据线的控制, 来控制数码管显示被按下按键

20、的行值和列值;主流程图子流程图八、程序编程OUTBIGEQU 8002HKEYINEQU 8001H;键盘读入口MOV20H,#3FH;缓冲器设初值,赋值到6个数码管MOV21H,#3FHMOV22H,#3FHMOV23H,#3FHMOV24H,#3FHMOV25H,#3FHLCALLDISPLAY;无键码输入,调用显示模块LCALLTESTJZMAIN;累加器为0即说明无按键,则转移继续显示LCALLSEARCH;有键值输入,寻找输入键值所在的行和歹0MOV20H,21H;数码管显示出输入的键值MOV21H,22HMOV22H,23HMOV23H,204MOV24H,25HMOVDPTR,#

21、LEDTABREADY:MAIN:OUTSEG EQU8004H ;段控制口MOVC A,A+DPTRMOV 25H,ASJMP MAIN;显示模块DISPLAY:MOV R0,#20HMOV R1, #6;缓冲区从20H处开始;共6个八段管23MOV R2, #00100000B从左边开始显示灯亮为 1,灭为0,LOOP: MOVDPTR, #OUTBIGMOV A, #0MOVX DPTR, A;位选码初值设为0,即关闭所有八段管MOV A, R0;将以20H为首地址的内存值发送到段码输出口 8004HMOV DPTR, #OUTSEGMOVX DPTR,AMOV DPTR, #OUTBI

22、G;输出位选通信号,使每次只显示一位八段MOV A, R2MOVX DPTR, ALCALL DELAY;延时MOV A, R2RR A;位选信号右移一位,即动态显示下一个数码MOV R2, AINC R0DJNZ R1, LOOPRETDELAY: MOV R7,#01HDEL1:MOV R6,#00HDEL2:DJNZ R6, DEL2DJNZ R7, DEL1RETTEST: MOV DPTR,#OUTBIGMOV A,#00HMOVX DPTR,AMOV DPTR,#KEYINMOVX A,DPTRCPL AANL A,#0FHRETSEARCH:MOV R1,#00100000B;内

23、存地址加一,提供段码输出;延时子程序;检测有无键值输入;输出线置为0;读入键状态;累加器求反;高四位不用;找出键值所在的的位置(行和列)MOV R2,#06HMOV R5,#00HMOVR4,#03HLSEARCH:;找出列所在位置后MOVA,R1CPLAMOVDPTR,#OUTBIGMOVXDPTR,ACPLARRA;通过判断循环几次进位为1来实现计数的功能,从而得知行所在位置MOVR1,AMOVDPTR,#KEYINMOVXA,DPTRCPLAANLA,#0FHJNZHSEARCH;找到所在列,继续寻找行所在位置INCR5DJNZR2, LSEARCHHSEARCH:MOVR7,#04HL

24、OOP2: RRCAJCGETDECR4GET:WAIT:DJNZMOVMOVMULADDMOVMOVCMOVMOVCLRMOVXR7, LOOP2A,R4B,#6HABA,R5DPTR,#KEYTABA,A+DPTR26H,ADPTR,#OUTBIGDPTR,ALCALL DELAYLCALLTESTJNZ WAITMOV A,26HRETLEDTAB:;确定输入的键码值;键值=行 *6+ 列,R4*6+R5->A;取出键码所在位置;将取出键值暂时保存在内存中,;等键释放;释放出键盘输入值;八段管显示码DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hD

25、B 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h以免数据丢KEYTAB:;键盘码DB 07H,08H,09H,0AH,00H,00HDB 04H,05H,06H,0BH,00H,00HDB 01H,02H,03H,0CH,00H,00HDB 00H,0FH,0EH,0DH,00H,00HEND九、仿真过程综述1 .按照设计思路在PROTEUS件中找到相应元器件,按照正确的连线方法将各 个元器件连起来。再用PROTEUS件仿真时,为避免连线的复杂性,可以使用在 要连线的引脚上标注相同的符号的方法。 这样可以使PROTEUS件窗口中的连线 少一些,使电路图更加活晰;

26、2. 按照硬件电路在KEIL C软件中编写程序,对编写的程序进行编译,在确定没有错误后生成十六进制文件并加载到 PROTEUS件中原理图的AT89C515片中;3. 在PROTEUS件中点击运行按钮,实现仿真:按下键盘上的按键,观察数码管 显示的是否正确。十、调试过程中的主要难点(白己遇到的)及解决思路和办法1、真的过程因为该数码管是用的共阳极的接法,其下拉电阻起到分流的作用,应该接地,但是在仿中却不知道哪里出了问题,这种接法始终不能仿真出结果。将下拉电阻与电源相连时却仿真成功,数码管显示出了按键的正确的行值和列 值。2、编写程序时需要用到1.2.3.4共阳字形码,不能与共阴字形码混淆。3、

27、程序写好,编译好后忘记加载到单片机芯片上就开始仿真,走了不少的弯路。十一、课设结果及分析、收获、体会通过这次设计,我基本上完成了题目中所给出的要求, 设计出了 4X4键盘 的接口,并且在两个数码管上能够显示键盘所在的行值与列值。同时 深刻体会到理论与实践相结合的重要性懂得我必须学会如何整理并 利用手中的资料,没有就的用心去查去找。学习要独立不能总依赖 别人,但要学会请教同学老师。收获与体会通过本次课设,使我学会汇编软件的基本使用。使我能够综合运用以前在课 堂中学到的知识做一些简单的电子产品的仿真,使我对汇编语言有了更好的掌握 和运用,用其进行软件编程更加顺手。初步掌握了这些件,可以编写一个较完

28、整 的实用程序。本次课设使我初步了解了单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试等。更重要的是,使我明白了无论是设计硬件电路还是编写相应的软件程序, 我 们应该时刻都要仔细认真。因为在这个过程中哪怕是出现一个小小的错误, 都会 导致不能仿真出正确的结果甚至根本不会出结果。课程设计的过程是一个不断学习的过程,我们需要充分利用好网络资源和身边的资料来解决我们在课设过程中遇到的问题,只有将遇到的问题解决好,才能真正的学到一些知识,真正学到知识。才能使我们学到的东西从感性认识升华到 理性认识。参考文献1. 胡汉才 单片机原理及其接口技术活华大学出版社2. 阎石数字电

29、子技术基础(第五版)高等教育出版社3. 华成英童诗白模拟电子技术基础高等教育出版社4. 文U皖,何道启,谭明.FPG般计与应用M.北京,活华大学出版社,20065 .裆红燕,洗世斌.基丁 EDA技术的层次化设计方法在电子抢答器中的应用JJ.电子工程师,20056. 高曙光.可编程逻辑器件MJ.西安:西安电子科技大学出版社,20027. 阎石.数字电子技术基础MJ.北京:高等教育出版社,19998. 美William Klertz著,陶国彬等译,数字电子技术M.北京,科学出版社.20079. el S . Sedra, Kenneth C . Smith .(周玲玲等译),微电子电路M,北京,电子工业出版社,200610. 锋,初秀琴,常存.基丁 FPG曲嵌入式系统设计M.西安.西安电子科技大学出版社,2004教师评语:教师:日期:设计过程30 %课设报告40%答辩30 %总成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1