单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc

上传人:yyf 文档编号:5094412 上传时间:2020-02-01 格式:DOC 页数:20 大小:253KB
返回 下载 相关 举报
单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc_第1页
第1页 / 共20页
单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc_第2页
第2页 / 共20页
单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc_第3页
第3页 / 共20页
单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc_第4页
第4页 / 共20页
单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc》由会员分享,可在线阅读,更多相关《单片机系统开发与应用实习报告-基于AT89S52单片机的44矩阵键盘设计.doc(20页珍藏版)》请在三一文库上搜索。

1、单片机系统开发与应用工程实习报告单片机系统开发与应用工程实习报告 选题名称选题名称: 基于 AT89S52 单片机的 4*4 矩阵键盘设 计 系(院)系(院): 专专 业业: 计算机科学与技术(嵌入式方向) 班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 学年学期学年学期: 2009 2010 学年 第 2 学期 2010年 5 月 30 日 摘要: 嵌入式系统已经在现代生活中伴演着越来越重要的角色,单片机就是一个最典 型的嵌入式系统,单片机的应用也越来越广泛。目前单片机功能正日渐完善:单片机 集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以完成项目开 发,不仅是

2、开发简单,产品小巧美观,同时抗干扰能力加强,系统也更加稳定,使得 它更加适合工业控制领域,具有更加广阔的市场前景;提供在线编程能力,加速了产 品的开发进程,为企业产品上市赢得宝贵时间。此外单片机具有性能高、速度快、体 积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。单片机的设计目标主要 是增强“控制”能力,满足实时控制(就是快速反应) 的需要。因此,掌握单片机的 基础和实际应用来说意义重大。键盘作为一种最为普通的输入工具在单片机项目应用 上显得尤为重要。 关键词:键盘;单片机;数码管;扫描 目录目录 1 设计目的 1 2 设计原理 1 2.1 设计电路图1 2.2 程序流程图1 2.3

3、硬件说明2 3 程序设计 6 3.1 按键过程分析6 3.2 源程序(C 语言).7 4 程序调试 12 5 仿真测试 12 6 实物实现 13 总 结 14 参考文献 15 单片机系统开发与应用工程实习计报告 1 1 1 设计目的设计目的 在数码管上显示每个按键的 0F.对应按键的序号如图 1-1,要实现按哪个键就 在数码管上显示哪个数字或字母。 图 1-1 键盘正面图 2 2 设计原理设计原理 2.12.1 设计电路图设计电路图 图 2-1 电路原理图 如图 2-1 所示,把系统中单片机的 p3.0-p3.7 端口连接到 4*4 行列式键盘端口上; 具体为:P3.0-p3.3 接行线,p3

4、.4-p3.7 接列线;把系统中单片机的 p0.0/AD0- p0.6/AD6 端口连接到共阳数码管的 a-g 端口,并一一对映。p0.0/AD 对应 a,依次对应。 整个电路由复位电路,晶振电路,主控制块,键盘扫描模块,LED 显示模块,电源电 路组成。 单片机系统开发与应用工程实习计报告 2 2.22.2 程序流程图程序流程图 图 2-2 程序流程图 如图 2-2 所示,每个按键都有他的行值和列值,行值和列值的组合就是识别这个 按键的编码。矩阵的行线和列线通过两个并行接口和单片机通信。每个案件的状态同 样需要变成数字量 0 和 1,开关的一端(列线)通过电阻接+5V,而接地时通过程序输 出

5、数字 0 实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键 的功能是什么;还要消除按键在闭合或断开时的抖动。在两个并行口中,一个输出扫 描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共 同行成键编码而识别按键,通过软件查表,查出该键的功能。 2.32.3 硬件说明硬件说明 图 2-3 共阳数码管 共阳数码管就是把每个 LED 灯的阳极接在共同接点 com,而每个 LED 灯的阴极 分别为 a,b,c,d,e,f,g,dp;通过控制 LED 灯的亮灭来显示数字。数码管跟据接收到 的字形码显示数字。 单片机系统开发与应用工程实习计报告 3 图 2-4 7

6、4ls245 芯片 74LS245 是我们常用的芯片,用来驱动 led 或者其他的设备,它是 8 路同相三态 双向总线收发器,可双向传输数据。74LS245 还具有双向三态功能,既可以输出,也 可以输入数据。当 8051 单片机的 P0 口总线负载达到或超过 P0 最大负载能力时,必 须接入 74LS245 等总线驱动器。 图 2-5 AT89S52 单片机实物图 At89s52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业 80C51 产 品指令和引脚完 全兼容。片上 Flash 允许

7、程序存储器在系统可编程,亦适于 常规编 程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 AT89S52 为 众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 具有以下标准 功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指 针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶 振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节 电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断

8、继续工 作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到 下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 单片机系统开发与应用工程实习计报告 4 图 2-6AT89S52 单片机引脚图 P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种 模式下, P0 具有内部上拉电阻。 在 flash 编程时,P0 口也用来接收指令字节;在程序校

9、验时,输出指令字节。程 序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱 动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL) 。 此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/ 计数器 2 的触发输入(P1.1/T2EX) ,具体如下表所示。 在 flash 编程和校验时,P1 口接收低 8 位地址字节。 引脚号第二功能 P1.0 T2(定时器

10、/计数器 T2 的外部计数输入) ,时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) 单片机系统开发与应用工程实习计报告 5 P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱 动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL) 。 在访问外部程序存储器或用 16 位地址读取外部数据存储

11、器(例如执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。 在使用 8 位地址(如 MOVX RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p3 输出缓冲器能驱 动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 (IIL) 。 P3 口亦作为 AT89S5

12、2 特殊功能(第二功能)使用,如下表所示。 在 flash 编程和校验时,P3 口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 单片机系统开发与应用工程实习计报告 6 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是 单

13、片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输 出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出 固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外 部数据存储器时将跳过一个 ALE 脉冲。 对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG) 。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁 止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引 脚会被微弱拉高,单片机执行外部程序时,应

14、设置 ALE 禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输 出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000H- FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如果加密位 LB1 被编程,复位 时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上+12V

15、的编程允许电源 Vpp,当然这必须是该器 件是使用 12V 编程电压 Vpp。 3 3 程序设计程序设计 3.13.1 按键过程分析按键过程分析 行信号(KEY)接到高电平,当没有键按时,行线与列线(KEYSCAN)是断开的, 且行线都是高电平(1111) ,行信号作为 FPGA 的输入端、列信号作为 FPGA 的输出 端。可以设置列线初始状态为低电平(0000) 。信号为从上到下的顺序 当有键按下时,假如是 K1 按下,行信号与列信号接通,这时相应的行线(KEY0) 变为低电平(01111) ,可以肯定第一行(K1,5,9,13)有键按下。 运用扫描的原理: 1、因为只知道第一行有键按下,不

16、知道是那个,可以设置列信号为 0111,这时行 单片机系统开发与应用工程实习计报告 7 信号变为(1111) (注:假设时钟周期很短,手还没松开,即键还在按下的状态) 2、设置列信号为 1011,行信号也变成(1111) 3、设置列信号为 1101,行信号也变成(1111) 4、设置列信号为 1110,行信号也变成(0111) ,这时就可以肯定是第一个键按下。 3.23.2 源程序(源程序(C C 语言)语言) #include unsigned char code table=0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0

17、x83, 0xC6,0xA1,0x86,0x8E; unsigned char temp; unsigned char key; unsigned char i,j; void main(void) while(1) P3=0xff; /给 P3 口置 1 P3_4=0; /给 P3.4 这条线送入 0 temp=P3; temp=temp /屏蔽低四位 if (temp!=0x0f) /看是否有按键按下 for(i=50;i0;i-) for(j=200;j0;j-); /延时,消除抖动 temp=P3; temp=temp if (temp!=0x0f) /再次判断按键是否按下 单片机系统

18、开发与应用工程实习计报告 8 temp=P3; temp=temp switch(temp) /判断与 P3.4 相连的哪个键按下了 case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; temp=P3; P0=tablekey; /送数到 P0 口显示 temp=temp while(temp!=0x0f) /松手检测,否则跳不出循环 temp=P3; temp=temp P3=0xff; P3_5=0; / /读 P3.5 这条线 temp=P

19、3; temp=temp /屏蔽低四位 单片机系统开发与应用工程实习计报告 9 if (temp!=0x0f) /判断 P3.5 这条线上是否有按键按下 for(i=50;i0;i-) for(j=200;j0;j-); /延时,消除抖动 temp=P3; temp=temp if (temp!=0x0f) /判断是否真有按键 temp=P3; temp=temp switch(temp) /判断与 P3.5 相连的哪个键按下了 case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x0

20、7: key=11; break; temp=P3; P0=tablekey; /送入 P0 口显示 temp=temp while(temp!=0x0f) /松手检测,否则跳不出循环 temp=P3; 单片机系统开发与应用工程实习计报告 10 temp=temp P3=0xff; P3_6=0; / /读 P3.6 这条线 temp=P3; temp=temp /屏蔽的低四位 if (temp!=0x0f) /判断是否有按键按下 for(i=50;i0;i-) for(j=200;j0;j-); /延时,消除抖动 temp=P3; temp=temp if (temp!=0x0f) /判断是

21、否真有按键按下 temp=P3; temp=temp switch(temp) /判断与 P3.6 相连的哪个键按下了 case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; 单片机系统开发与应用工程实习计报告 11 case 0x07: key=12; break; temp=P3; P0=tablekey; /送入 P0 口显示 temp=temp while(temp!=0x0f) /松手检测,否则跳不出循环 temp=P3; temp=temp P3=0xff; P3_7=0; / /读 P3

22、.7 这条线 temp=P3; temp=temp /屏蔽的低四位 if (temp!=0x0f) /判断是否有键按下 for(i=50;i0;i-) for(j=200;j0;j-); /延时,消除抖动 temp=P3; temp=temp if (temp!=0x0f) /判断是否真有键按下 temp=P3; temp=temp switch(temp) /判断与 P3.7 相连的哪个键按下了 单片机系统开发与应用工程实习计报告 12 case 0x0e: key=0; break; case 0x0d: key=13; break; case 0x0b: key=14; break; c

23、ase 0x07: key=15; break; temp=P3; P0=tablekey; /送入 P0 口显示 temp=temp while(temp!=0x0f) /松手检测,否则跳不出循环 temp=P3; temp=temp 4 4 程序调试程序调试 程序刚完成调试后发现并不能在数码管上正常显示数字和字母。经排查发现是程 序当中的字型码表不对,经上网查资料后改正,最终能正常显示数字和字母。 单片机系统开发与应用工程实习计报告 13 5 5 仿真测试仿真测试 本次课程设计在 PROTEUS,keils 上仿真测试通过。仿真结果如图 4-1,达到设 计要求,能在数码管上正常显示 0-9

24、,a-f。 图 5-1 仿真结果图 6 6 实物实现实物实现 本次课程设计做出了 4*4 矩阵键盘实物,并实现了预期功能,答辩完后已交给答 老师 单片机系统开发与应用工程实习计报告 14 总 结 本次课程设计,这是我第一次去作硬件实体。和以往单纯作软件不同,做硬件有 其特有的考虑问题的方式。比如,在焊接电路板时,如何布局合理,对最终作出实物 来有很重要的影响。我就是开始时布局没布好,导致后面要多接好多导线,增加了犯 错和短路的可能性。于是我重头再来,再第二次作的时候,充分考虑到这些问题,结 果只用了一个下午的时间就把实物作了出来,但是数码管上 a 线那却不亮,经排查发 现可能是排针接触不好,于

25、是用一根导线代替了改排针,最终,数码管得以正常显示, 看到自己做出的键盘能实现预期功能,着实让自己兴奋了一把。单片机功能正日渐完 善:单片机集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以 完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力加强,系统也更加 稳定,使得它更加适合工业控制领域,具有更加广阔的市场前景;通过这次课程设计, 我总算对入何作硬件以及以些单片机的知识有了更接近于实际的认识,知道了怎么烧 录程序,怎么插芯片,杜邦线的使用等。同时还温习了 PROTEL 软件,画出了无错的 原理图和 PCB 图。并熟悉了 PROTEUS 软件和 KEIL 软件的使用。从

26、最原始的元件如何 变为具有实际功能的单片机作的键盘,我感觉这是一种艺术。它就像孩子一样就这么 诞生在了我的手上。很高兴最后我把实物做了出来,这让我很有成就感,也让我对单 片机系统的开发和今后的学习产生了浓厚的兴趣。让我对走硬件这条路充满了信心, 一定要一步一个脚印,踏踏实实学习工作,创造属于我的智慧的结晶。在此,感谢指 导老师对于我在课程设计期间的耐心指导,尤其是当数码管不能正常显示时对电路一 点点的排查,并告知了我解决方案,在此我表示真诚的感谢!同时在此我也对,同学, 同学对我键盘焊法和 USB 接口用法的帮助表示真诚的感谢。 单片机系统开发与应用工程实习计报告 15 参考文献 1 肖洪兵.

27、跟我学用单片机.北京:北京航空航天大学出版社,2002 2 何立民.单片机高级教程(第 1 版).北京:北京航空航天大学出版社,2001 3 赵晓安.MCS-51 单片机原理及应用.天津:天津大学出版社,2001 4 杨居义.单片机课程设计指导.北京:清华大学出版社,2009 16 指导教师评语指导教师评语 学号姓名班级 选题 名称 基于 AT89S52 单片机的 4*4 矩阵键盘设计 序号评价内容 权重 (%) 得分 1考勤记录、学习态度、工作作风与表现。5 2 自学情况: 上网检索机时数、文献阅读情况(笔记) 。10 3 论文选题是否先进,是否具有前沿性或前瞻性。 5 4 成果验收: 是否完成设计任务;能否运行、可操作性 如何等。 20 5 报告的格式规范程度、是否图文并茂、语言规 范及流畅程度;主题是否鲜明、重心是否突出、 论述是否充分、结论是否正确;是否提出了自 己的独到见解。 30 6文献引用是否合理、充分、真实。5 7 答辩情况: 自我陈述、回答问题的正确性、用语准确 性、逻辑思维、是否具有独到见解等。 25 合计 指导教师(签章): 年 月 日 16

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

当前位置:首页 > 绩效管理


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