单片机技术应用项目化教程(C语言版)(第2版) 课件 任务4.3_第1页
单片机技术应用项目化教程(C语言版)(第2版) 课件 任务4.3_第2页
单片机技术应用项目化教程(C语言版)(第2版) 课件 任务4.3_第3页
单片机技术应用项目化教程(C语言版)(第2版) 课件 任务4.3_第4页
单片机技术应用项目化教程(C语言版)(第2版) 课件 任务4.3_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目4电子时钟控制系统任务4.3按键可调电子时钟明确任务

在工业控制中,很多仪表显示都采用的是LCD液晶模块。LCD具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在单片机应用设计中常用来作为显示器件。工作任务:采用LCD1602显示来制作四个按键可调电子时钟,显示时分秒功能。知识链接

液晶显示器简称LCD(LiquidCrystalDiodes)是一种低压微功耗的平板型显示器件,属于被动显示器件,本身不发光,是靠调制外界光来实现显示的。液晶显示器具有寿命长、重量轻、功耗低、抗干扰能力强、显示内容丰富等特点,因而在单片机系统中得到了广泛的应用。一.LCD显示技术简介笔段式LCD显示器通常有六段、七段、八段、九段、十四段和十六段等,其中以七段最为常用,它类似于LED数码管显示器,每个显示器包括段电极a、b、c、d、e、f、g七个笔画段和一个背电极BP,可以显示数字和简单的字符,广泛用于电子表、数字仪表等。

LCD液晶显示器分类点阵式LCD显示器可分为字符型和图像型,段电极与背电极构成n行n列矩阵,液晶位于行列相交的带状电极之间,其大小可以根据由显示清晰度来决定。通过控制每个点的亮、灭来实现字符和图像的显示,点阵式LED的控制一般采用扫描方式。LCM是把LCD显示器、背光光源、驱动器、控制器等部件通过印刷电路板构造成一个整体,作为一个独立部件使用。LCD显示模块LCM

特点是功能强、易于控制、接口简单,在单片机系统中应用较多。二、LCD1602液晶模块简介LCD1602是一种专门用来显示字母、数字、符号等的点阵型液晶模块。可以显示两行,每行16个字符,有8位数据总线D0~D7和RS、R/W、EN三个控制端口。工作电压为5V,可显示192种字符,5×7或5×10点阵字形,可自编8(5×7)或4(5×10)种字符,对比度可调。编号符号引脚说明编号符号引脚说明1VSS电源地9DB2DataI/O2VDD电源正极(5V)10DB3DataI/O3V0液晶显示偏压信号11DB4DataI/O4RS数据/命令选择端(H/L)12DB5DataI/O5R/W读/写选择端(H/L)13DB6DataI/O6E使能信号14DB7DataI/O7DB0DataI/O15BLA背光源正极8DB1DataI/O16BLK背光源负极读操作时序

写操作时序

1602液晶模块内部的控制器共有11条控制指令。读写操作、屏幕和光标的操作都是通过指令编程来实现的。控制指令指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置。设定每次写入数据后光标的移位方向,并设定每次写入字符后是否移动。

I/D:光标移动方向,高电平右移,低电平左移;

S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示;

C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标;R/L:高电平右移1格,AC值加1,低电平左移1格,AC值减1。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据LCD1602液晶模块内部的HD44780内置了DDRAM、CGROM和CGRAM。CGROM是1602内部的字符发生存储器,已经存储了192个不同的点阵字符图形,包括阿拉伯数字、英文字母大小写、常用符号和日文假名等,每个字符都有固定的代码。CGRAM用于存储自定义的字符点阵,共64B,能存储8组自定义字符的点阵数组。

DDRAM用来寄存待显示的字符代码,共80个字节,其地址和屏幕显示位置的对应关系。对LCD1602寄存器操作主要有4种,读状态、写指令、读数据、写数据。操作输入输出读状态RS=L,R/W=H,E=HD0-D7=状态字写指令RS=L,R/W=L,D0-D7=指令码,E=高脉冲无读数据RS=H,R/W=H,E=HD0-D7=数据写数据RS=H,R/W=L,D0-D7=数据,E=高脉冲无三编程应用/***********LCD写指令******************/voidLCD_write_com(unsignedcharcom) { LCD_RS=0;//RS、RW为低电平LCD_EN由低电平跳变为高电平时,液晶写指令

LCD_RW=0; LCD_EN=0; LCD_DAT=com; LCD_EN=1; delay(10);//延时,等待数据传输完成

LCD_EN=0;}/**********LCD写数据*******/voidLCD_write_data(unsignedchardat) { LCD_RS=1;//RS为高电平,RW为低电平,LCD_EN由低电平跳变为高电平时时,液晶写数据

LCD_RW=0; LCD_EN=0; LCD_DAT=dat; LCD_EN=1; delay(5);//通过延时,等待数据传输完成

LCD_EN=0;}/*********液晶初始化******************/voidinit_1602() { LCD_EN=0;//初始化,RS、RW、LCD_EN为低电平

LCD_RW=0; LCD_RS=0; LCD_write_com(0x38);//显示模式设置

LCD_write_com(0x08);//显示关闭

LCD_write_com(0x01);//显示清屏

LCD_write_com(0x06);//显示光标移动设置

LCD_write_com(0x0c);//显示开及光标设置}四、硬件电路图五、软件设计与编程

(1)利用LCD1602显示字符。需要指定显示位置与字符voiddisplay_char(unsignedcharaddr,unsignedchardat){ LCD_write_com(0x80+add);//指定显示位置

LCD_write_data(dat);//显示字符}如果需要显示一串字符时,定义函数如下。注意行的切换。voiddisp_string(unsignedcharaddr,char*string) { unsignedcharlen,i,k; len=strlen(string); if(addr<0x10)//地址小于0x10时,在液晶第一行显示

{ LCD_write_com(0x80+addr); for(i=0;i<len;i++) { k=addr+i; if(k==0x10) LCD_write_com(0x80+0x40); LCD_write_data(*(string+i)); } k=0; } else//否,则在第二行显示

{ LCD_write_com(addr-0x10+0xC0); for(i=0;i<len;i++) LCD_write_data(*(string+i)); }}voidtime_chuli(void)//时间函数{ if(flag_1S==1)//每到一秒,执行一次

{flag_1S=0; sec++;}//秒数据+1 if(sec>59) //当秒数值大于59时,秒清零,分钟加1 {sec=0; min++; } if(min>59) //当分钟数值大于59时,分钟清零,小时加1 {min=0; hour++; } if(hour>23) //当小时数值大于23时,小时清零

hour=0; }(2)利用LCD1602制作24小时制时钟。第一行显示即可定时1s参照任务2秒表计,时间的处理,需要考虑实际情况。(3)添加按键,实现时钟调整功能按键功能分别为功能键,用来切换调整位置,即调整时、分、秒的选择;加键和减键对应调整对象数据加或减;确认键,按下确认,不论当前处于调整什么状态都保存数据并退出开始正常工作。

采用软件编程实现。采集并保存按键连续不同时刻的电平,通过电平来进行是否下降沿到来的判别,为了能更好的把按键去抖动也融合在里面,一般采集保存4次以上的按键状态。例如,定义三个临时缓存用来存放键盘的前3个时刻状态,当最早两个的状态temp1、temp2为1时,上一个状态temp3和当前状态为0时,才认为按键真正有效。

if(temp1&temp2&(~temp3)&(~key)) { ---//按键有效后,执行的程序

}

每采集一次按键信息,都需要更新已有状态,把最新的信息保存起来,最早一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论