




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的矩阵键盘和lcd的应用摘要:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。lcd液晶显示技术作为人机交互的主流方式,正广泛应用于家电、手机、个人电脑等显示终端。随着电子技术的发展,单片机技术的应用产品日益增多,研究以单片机作为主控制器的lcd液晶显示器控制系统意义重大。展望未来,急速的响应速度将会成为个性化lcd的发展趋势,越来越多的单片机正如雨后春笋般涌现。关键词:单片机 智能化控制 液晶显示 本课题重点对键盘模块和液晶显示模块分别做了详细介绍。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程。 1.lcd液晶显示简介在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(crt)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动ic上,因而耗电量比其它显示器要少得多。2.矩阵键盘简介矩阵键盘又称行列键盘,它是用四条i/o线作为行线,四条i/o线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。这种行列式键盘结构能有效地提高单片机系统中i/o口的利用率。独立按键具有编程简单但占用i/o口资源的特点,不适合在按键较多的场合应用。在实际应用中经常要用到输入数字、字母等功能,如电子密码锁、电话机键盘等一般都至少有12到16个按键,在这种情况下如果用独立按键的话显然太浪费i/o口资源,为此我们就有必要使用矩阵键盘了。3.应用实例通过具体实验可体现出它们各自在应用中的优势,设计的这个系统的最终完成的功能和特点是:首先成本低廉核心系统成本低廉。其次操作简单,本系统最大的特点是有友好的人机界面它通过串口与pc机相连接,用户在使用时只要按动键盘上的数字就可以显示了。除了上述特点以外本系统还具有结构轻巧系统的硬件设计上充分考虑了便携性,整个系统的主要就是单片机,lcd和键盘,而它们的所占空间小,重量轻等特点。本设计利用按键控制及lcd显示,以实现一个电子时钟,且具有实时修改显示等功能。 以下实验中的最小系统模块中包括cpu、复位电路和晶振,其最小系统原理图如下所示。 cpu时钟与复位电路图4*4矩阵键盘电路 本次设计中采用的4*4的非编码键盘。矩阵式非编码键盘的电路原理图如下图所示。当没有键按下时,行线和列线之间是不相连。若第n行第m列的键被按下,那么第n行与第m列的线就被接通。如果在行线上加上信号,根据列线的状态,便可得知是否有键按下。如果在行线上逐行加上一个扫描信号(本实验中用的低电平),就可以判断按键的位置。常用的按键识别有两种方法:一种是传统的行扫描法;另一种是速度较快的线反转法,这种方法必须采用可编程并行接口。本实验中采用的是行扫描法进行识键。矩阵键盘原理图lcd显示电路 由于用1602液晶显示数据有限,显示数据的可读性不好,所以本实验采用st7920控制器的lcd液晶显示器,其具有低电压,字迹清晰、能够显示汉字和字符等特点,且编程方便,易于查看、修改。本实验中主要用到了vss、vdd、rs、rw、cs引脚。st7920液晶显示器与mcu接口电路原理图如下所示。lcd显示电路原理图软件设计根据功能将软件系统分为四部分,主程序、按键扫描程序、中断程序、显示程序以及延时函数。主函数流程图如下图主函数流程图按键扫描程序设计用行扫描法先将行拉低,再读取值,若读回的值与输出值不一致则表示有键按下,再根据读回的值判断具体按键,返回该按键的值。流程图如下图按键扫描程序流程图显示程序设计该函数主要在主函数中被调用。流程图如下图显示程序流程图中断子程序设计中断子程序主要计时和设置相应的标志位,流程图如下图中断程序流程图延时函数该函数主要用于延时,在多处都有调用。其流程图如下图所示。延时函数流程图参考文献 1汪德彪. mcs-51单片机原理及接口技术m. 北京电子工业出版社. 2004.2张毅刚,彭喜元,董继成. 单片机原理及应用m. 重庆大学出版社. 2003.源程序代码:#include reg52.h#define thco 0xee#define tlco 0x0#define keyscan p1#define u8 unsigned char#define rowkey() (p1)&0x0f/读入p1低4位(列按键值)宏u8 keyscanner(void); /键盘函数值调用unsigned char hour=0,min=0,sec=0;u8 returnnumber = 0;/按键值返回bit flag=0;/1分时间到标志bit brush_flag = 0;/更新显示器 1:更新sbit led1=p23; /二个指示灯sbit led2=p24;sbit cs =p25; /液晶接口 sbit sid=p26; sbit sclk=p27; sbit b_light=p27; /背光控制void delay(unsigned int j) unsigned char i; do for(i=0;i100;i+); while(j-);void send_command(unsigned char command_data) /发送命令 unsigned char i; unsigned char i_data,temp_data1,temp_data2; i_data=0xf8; /操作命令,可以查看资料delay(10); cs=1; sclk=0; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data1; i_data=command_data; i_data&=0xf0; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data=4; temp_data2=4; i_data=temp_data1|temp_data2; i_data&=0xf0; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data1; cs=0; void send_data(unsigned char command_data) /发送数据 unsigned char i; unsigned char i_data,temp_data1,temp_data2;i_data=0xfa; /操作命令,可以查看资料delay(10); cs=1; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data1; i_data=command_data; i_data&=0xf0; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data=4; temp_data2=4; i_data=temp_data1|temp_data2; i_data&=0xf0; for(i=0;i8;i+) sid=(bit)(i_data&0x80); sclk=0; sclk=1; i_data=i_data1; cs=0; void initlcd() /液晶初始化 send_command(0x30); /功能设置:一次送8位数据,基本指令集 send_command(0x06); /点设定:显示字符/光标从左到右移位,ddram地址加1 send_command(0x0c); /显示设定:开显示,显示光标,当前显示位反白闪动 send_command(0x04); /显示设定:开显示,显示光标,当前显示位反白闪动 send_command(0x01); /清ddram send_command(0x02); /ddram地址归位 send_command(0x80); /把显示地址设为0x80,即为第一行的首位/*x,y为起始座标 x(0=x=3),y(0=y=7),x为行座标,y为列座标; how为要显示汉字的个数; str是要显示汉字的地址 */void disphanzi(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)unsigned char hi=0; /汉字显示if(x=0) send_command(0x80+y); /else if(x=1) send_command(0x90+y);else if(x=2) send_command(0x88+y);else if(x=3) send_command(0x98+y);for(hi=0;hihow;hi+)send_data(*(stri+hi*2);send_data(*(stri+hi*2+1);void dispzimu(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)/字母数字都可以显示unsigned char hi=0;/字母显示if(x=0) send_command(0x80+y);else if(x=1) send_command(0x90+y);else if(x=2) send_command(0x88+y);else if(x=3) send_command(0x98+y);for(hi=0;hi=200)/秒计时,定时器定时5ms,计200次为一秒 count=0; sec+; flag=1; if(sec=60) sec=0; min+; if(min=60)/时间计时 min=0; hour+; if(hour=24)hour=0; returnnumber = keyscanner(); /读取矩阵键盘返回值 if(returnnumber = 1 & returnnumber = 30)/消抖处理 k_count = 0;brush_flag = 1;if(returnnumber = 16)/第十六号键,修改mode, mode+; if(mode = 3)mode = 0; /led灯指示 if(mode = 0)led1 = 1;led2 = 1;/实时时间 else if(mode = 1)led1 = 0; /修改小时 else if(mode = 2)led1 = 1;led2 = 0;/修改分钟 else if(returnnumber = 14)/第十四号键,+ 键 if(mode = 1) /实时时间小时加 hour+; if(hour = 24)hour = 0; else if(mode = 2)/实时时间分钟加 min+; if(min = 60)min = 0; else if(returnnumber = 15) /第十五号键,- 键 if(mode = 1) /小时减 if(hour = 0)hour = 23; else hour-; else if(mode = 2) /分钟减 if(min = 0)min = 59; else min-; if(returnnumber = 13)/第十三键清零 hour = 0; min = 0; sec = 0; else if(returnnumber =1 & returnnumber 20)hour = 20; else hour = shiwei + returnnumber; number = 0; if (hour 23)hour = 23; if(mode = 2 ) number +; if(number = 1) min = returnnumber * 10;shiwei = min;if(min 50)min = 50; else min = shiwei + returnnumber; number = 0; if (min 59)min = 59; else k_count=0;/*矩阵键盘扫描*/u8 keyscanner(void)u8 scan =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中安全培训计划表格式课件
- 先进安全管理方法培训课件
- 化学品防护安全培训课件
- 内蒙医教网的课件
- 古诗三首《望洞庭》公开课一等奖创新教案
- 化学厂区安全培训课件
- 先天性肺囊肿
- 先天性心脏病治疗课件
- 【大单元】二上第四单元 10《日月潭》 +公开课一等奖创新教学设计
- 创业机会概述
- 社会责任CSR培训教材
- 脊柱外科入院宣教
- 医院“十五五”发展规划(2026-2030)
- Unit1AnimalFriendsSectionA1a-1d课件-人教版英语七年级下册
- 2025铁路局劳动合同示范文本
- 教育信息化中的数字孪生技术应用案例分析
- T/CSPSTC 15-2018新型智慧楼宇评价指标体系
- T/CCPITCSC 096-2022名表真假鉴定规范
- 美的分权规范手册
- 质量策划培训
- 能源托管协议书范本
评论
0/150
提交评论