



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用课程设计报告课题名称:基于lcd的单片机键盘显示系统设计院 (系):电 气 信 息 学 院 专 业:电子信息工程2011级 姓 名:隆 秀 芸 学 号:1 1 0 7 0 3 0 1 0 2 指导老师:孙 晓 玲 日期:2 0 1 4. 7.4目 录 摘要3一 、设计任务3二、 方案设计3三、 硬件设计33.1 单片机控制系统原理33.2 单片机主机系统电路4 3.2.1 时钟电路4 3.2.2 复位电路53.3 矩阵式键盘电路53.4 译码显示电路6四、 软件设计7 4.1 软件流程图74.2 源程序编写8五、调试过程 8六、实验结果9七、心得体会9参考文献10 附 录 10摘要:矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以n个端口连接控制n*n个按键,显示在1602lcd液晶显示器上。单片机控制的就是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用89c51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用c语言编程。单片机将检测到的按键信号转换成数字量,显示于lcd显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。关键词:单片机 液晶显示器 矩阵式键盘一、设计任务本设计主要研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以及软、硬件各个部分进行研究。任务要求:1)用键盘和lcd作为输入/输出设备。 2)将按键输入的键码在lcd上显示出来。二、方案设计 本设计选用单片at89c51作为控制系统,结构简单、效率高且易于操作;以4x4的矩阵式键盘最为输入,可显示“0-9”和“+、-、*、/、=、on/c”字符,为计算器的设计做准备;以1602lcd液晶显示器作为输出,可显示2行16个字符,体积小,功耗低,显示内容丰富。三、硬件设计3.1单片机控制系统原理 电路的整体设计主要由三大模块组成:矩阵式键盘电路、单片机和译码与显示电路。如图3-1所示:译码与显示电路单片机89c51矩阵式键盘电路图3-132 单片机主机系统电路at89c51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2k字节可编程flash存储器的低电压、高性能coms八位微处理器,与intel mcs-51系列单片机的指令和输出管脚相兼容。由于将多功能八位cpu和闪速存储器结合在单个芯片中,因此,at89c2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的ram、rom和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。单片机的实图如图3-2所示:图3-23.2.1时钟电路时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。mcs-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚xtall和xtal2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图 3-2-1所示:图3-2-1在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。3.2.2复位电路为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使cpu及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要rst引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果rst引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为ffh,堆栈指针sp置为07h, sbuf内置为不定值,其余的寄存器全部清0,内部ram的状态不受复位的影响,在系统上电时ram的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用手动复位方式,如图3-2-2所示:图3-2-23.3 矩阵式键盘电路at89c51单片机的并行口p1接44矩阵键盘,以p1.0p1.3作输入线,以p1.4p1.7作输出线;p1口输出按键信息,当矩阵键盘上有按键被按下,液晶显示器上会显示相应的字符,键盘的实图如图3-3所示:图3-33.4 1602液晶显示器液晶显示模块具有体积小、功耗低、显示内容丰富等特点。现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。1602能够显示2行16个字符,有8位数据总线d0-d7,和rs、rw、en三个控制端口,工作在5v的电压下。1602液晶显示器的实图如图3-4所示:图3-4四、软件设计 4、1软件设计流程图 把一个多功能的复杂程序划分为若干个简单的、功能单一的程序模块,各程序模块完成明确的任务,实现某个具体的功能,在具体需要时调用相应的模块即可。软件设计流程图如图4-1所示:开始键盘值初始化是否有键按下ny延时去抖动是否有键按下ny根据当前状态识别按键显示键值结束图4-14、2源程序编写 源程序编写见附件。五、调试过程 调试与运行:1、程序调试顺序。2、键盘扫描程序调试。3、液晶模块的写指令代码子程序。4、液晶模块的写显示数据代码子程序。5、初始化液晶显示模块子程序。6、液晶显示一个字符子程序。程序调试 1、当各个部分的子程序调试无误后,按照源程序的调用顺序,将各个部分连接起来,进行编程。2、得到的结果是当用户按下某个键是,在液晶显示器上显示该键被按下后实现功能对应的参数。六、实验结果经调试后,最终得到结果。当键盘上有相应的键被按下,在lcd就显示出相应的字符;当复位键被按下时,清除lcd显示器上的字符,以备下一次的输入,输出结果如图6-1所示:图6-1七、心得体会通过此次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地时间才能掌握知识,而且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。创新,是要我们将理论很好地联系实际,并不断地去开动自己的脑子,从为先到并做到别人没想到没做到的事,不断地超越别人,超越自己;同时,更重要的是,在这一设计过程中,我懂得了坚持不懈,不轻易言弃是每个理工科学子应具备的良好素质。设计过程,也好比是我们的成长的历程,常有一些不如意的事情发生,这就对我们提出了挑战。只要自己坚持,坚持,再坚持,再苦再累也值得。机遇青睐有准备的人。这个设计过程中,我遇到过许多的考验,给整个设计带来的困扰,但最后还是坚持了下来.回头想想这个设计的过程,我明白了,原来结果并不是那么得重要,我们更应该注重的是过程。系统以单片机at89c51为核心部件,单片机系统完成对按键信号识别、检测、处理、显示等功能,用proteus软件绘制电路原理图,利用c语言编制程序。这个系统设计能让我们更好地去认识和使用单片机,矩阵式键盘,节约i/o口资源,引脚分配,实时显示,芯片应用,编程实践,还有诸如此类的优点。参考文献1 李智奇著. msp430系列低功耗单片机原理与设计. 西安电子科技大学出版社,2008.2 谭浩强著. c语言程序设计(第三版). 清华大学出版社,2005.3 胡大可著. msp430系列超低功耗16位单片机原理与应用(第三版). 北京航空航天出版社,2006.4 孙传友等. 测控电路及装置. 北京航空航天大学出版社,2002.5 李朝青著. 单片机原理及接口技术. 北京航空航天大学出版社,2005.6 李建忠著. 单片机原理及应用. 西安电子科技大学出版社,2007.附录:程序代码:主程序段:#include #include #include ht.h#define uchar unsigned char#define uint unsigned intuchar m;int i;/ uchar keyscan(void) uchar i, j, temp, buffer4 = 0xef, 0xdf, 0xbf, 0x7f; for(j = 0; j 4; j+) /循环四次 p1 = bufferj; /在p1高四位分别输出一个低电平 temp = 0x01; /计划先判断p1.0位 for(i = 0; i 4; i+) /循环四次 if(!(p1 & temp) /从p1低四位,截取1位 return (i + j * 4); /返回取得的按键值 temp = 1; /判断的位,左移一位 return 16; /判断结束,没有键按下,返回16 /*/*主程序*/*/ main() lcd_init(); / lcd_pos(0); while(1) m = keyscan(); /读入按键 if (m 9) m += 7; switch(m) case 0 : cdis10=7;break; case 1 : cdis10=8;break; case 2 : cdis10=9;break; case 3 : cdis10=/;break; case 4 : cdis10=4;break; case 5 : cdis10=5;break; case 6 : cdis10=6;break; case 7 : cdis10=*;break; case 8 : cdis10=1;break; case 9 : cdis10=2;break; case 10 : cdis10=3;break; case 11 : cdis10=-;break; case 12 : cdis10=c;break; case 13 : cdis10=0;break; case 14 : cdis10=;break; case 15 : cdis10=+;break; / cdis10 = m + 0; /写入缓冲区 m = 0; while(cdis1m)lcd_wdat(cdis1m+); /显示 while(keyscan() 16);/等待按键释放 显示程序段:#define uchar unsigned char#define uint unsigned int#define delaynop(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); sbit lcd_rs = p20;sbit lcd_rw = p21;sbit lcd_en = p22;uchar cdis116;/void delay(uchar x) uchar j; while (x-)!=0 ) for(j=0;j125;j+); bit lcd_busy() /检查lcd忙状态 lcd_busy为1时忙 bit result; lcd_rs = 0; lcd_rw = 1; lcd_en = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(p0&0x80); lcd_en = 0; return (result);void lcd_wcmd(uchar cmd) while(lcd_busy(); lcd_rs = 0; lcd_rw = 0; lcd_en = 0; _nop_(); _nop_(); p0 = cmd; _nop_(); _nop_();_nop_();_nop_();lcd_en = 1; _nop_(); _nop_(); _nop_(); _nop_(); lcd_en = 0;void lcd_wdat(uchar dat) while(lcd_busy(); lcd_rs = 1; lcd_rw = 0; lcd_en = 0; p0 = dat; _nop_(); _n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川绵阳梓潼县人民法院第二次招录聘用制书记员5人笔试备考试题及答案解析
- 掌握色彩艺术
- 2026中国水利水电第九工程局有限公司秋季招聘148人备考考试题库附答案解析
- 大数据分析驱动的法律文本分析-洞察及研究
- ESG整合战略研究-洞察及研究
- 手指印画梅花课件
- 化肥厂半成品检验办法
- 河南省新乡市2025-2026学年高二上学期9月月考历史试卷(含答案)
- 安徽省阜阳市临泉县田家炳实验中学(临泉县教师进修学校)2025-2026学年高一上学期9月月考语文试题(含答案)
- 2024-2025学年广东省揭阳市普宁市兴文中学高一下学期期中考试数学试卷(含答案)
- 食堂员工服务培训
- 提升心理抗压能力的技巧
- 中医医术确有专长人员(多年实践人员)医师资格考核申请表
- 低空飞行器设计
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 律师事务所人事管理制度
- 脑梗塞并出血护理查房
- 三对三篮球赛记录表
- 中医基础之五行学说与五脏六腑
- 某水库调度规程完整
评论
0/150
提交评论