版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了
2、传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1602LCD1602LCD基本参数: 1602LCD内置HD44780(目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的)专用液晶显示控制器,分为带背光和不带背光两种,带背光的比不带背光的厚,是否带背光在应用中并无差别。显示容量为162个字符,即可以显示2行,每行16个字符。芯片工作电压:4.55.5V;最佳工作电压为5.0V;工作电流:2.0mA(5.0V)1602LCD16
3、02LCD引脚功能:1602芯片(在proteus中名字为LM016L)采用标准的14脚(无背光)或16脚(带背光)接口,如右图所示,各引脚功能如下:VSS:电源地VDD:电源正极VEE:液晶显示偏压,为对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。(补充说明:整体回路中的某个点,测量它相对某个基准点的电压(是整体回路电压的1/n)就称之为该点的偏压,各段电路的偏压之和就是整体回路电压,相应位置的电流就是偏压电流。)RS:数据/命令选择信号,高电平时选择数据寄存器、低电平时选择指令寄存器。RW(read/write
4、,读/写):读/写控制信号,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。E (enable,使能):使能端,为1时读取信息,当E端由高电平跳变成低电平(下降沿)时,液晶模块执行命令。D0D7:8位双向数据线BLA:背光源正极BLK:背光源负极1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式
5、设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令
6、8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。 走时:默认为走时状态,分两行显示年、月、日 星期 “年年-月月-日日 星期”时间按24小时制分别显示“时时-分分-秒秒”,时间会按实际时间以秒为最少单位变化。 走时调整:按KEY功能进行选择,按下keY1对所选的年、月、日、星、期、时、分秒进行加1,按一下加一次;按下keY2对所选的年、月、日、星、期、时、分秒进行减1,按一下减一次;按下KEY3进行定时器的开启及关闭,从而达到快速设定时间的目的。#include #def
7、ine uchar unsigned char#define uint unsigned intsbit RS=P20;sbit RW=P21;sbit E=P22;void display_time();/显示时间void getnyr_date(); /年月日的处理void time_date() /对年月日时分秒进行位置分配void hourDEC();/小时减void minuteDEC();/分减void secondDEC();/秒减void lcd_init():/液晶初始化void KeyScan():/按键扫描程序void main() lcd_init();/ 液晶初始化程
8、序 xianshi(); /定时器T0 while(1) time_date(); / 时分秒函数 wr_week(); /写星期函数 wrcommand(0 x80); for(m=0;m16;m+) wrdata(time1m); wrcommand(0 xc0); for(m=0;m16;m+) wrdata(timem); if(minute=minute1&second=second1) Di=0; clock(); else Di=1; KeyScan();/ 按键扫描程序 void wrcommand(uchar com)/写命令 delay(300); RS=0;/RS
9、高电平为写入数据低电平为写入命令 /命令选择信号 rs和rw同为低电平时为写入命令 RW=0;/(read/write)高电平执行读操作/低电平执行写操作 E=1; /高电平时为读取数据 跳变为低电平时,执行液晶显示模块 P0=com; E=0;void wrdata(uchar dat) /写入数据 delay(300); RS=1;/rs高电平和rw低电平 执行写入数据 RW=0; E=1; /从高电平到低电平执行一个下降沿操作 P0=dat; E=0;void lcd_init() wrcommand(0 x01); /光标清零 00000001 执行 wrcommand(0 x38);
10、 /不检测读忙信号 wrcommand(0 x06); / 显示光标移动设置 左移动 wrcommand(0 x0c); /显示光标全开、控制及光标设置 wrcommand(0 x80+0 x10); /从第一行显示 for(m=0;m16;m+) wrdata(namem);delay(50); wrcommand(0 x80+0 x50); /从第二行显示 for(m=0;m16;m+) wrdata(schoolm); delay(50); for(m=0;m7) ct=0;if(ct=1) wrcommand(0 xc0+0 x03);/小时位置 wrcommand(0 x0f); d
11、elayms(800); wrcommand(0 x0c); if(ct=2) wrcommand(0 xc0+0 x06);/定义到分位置 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c); if(ct=3) wrcommand(0 xc0+0 x09);/定义到秒位置 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c); if(ct=4) wrcommand(0 x80+0 x0d);/星期位置闪烁 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c);
12、 if(ct=5) wrcommand(0 x80+0 x0a);/日位置闪烁 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c); if(ct=6) wrcommand(0 x80+0 x07);/月位置闪烁 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c); if(ct=7) wrcommand(0 x80+0 x04);/ 年位置闪烁 wrcommand(0 x0f); delayms(800); wrcommand(0 x0c); break;case 0 xfd:switch(ct) cas
13、e 0:break; case 1:hour+; if(hour=24) hour=0;day+;week+; break;case 2:minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; break;case 3: second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; break;case 5: /调整天数,并判断平年闰年是几月份 day+;if(year%4=0&year%100!=0
14、|year%400=0) /闰年月的判断 if(day=month1month-1+1) day=1; month+; if(month=13) month=1; year+; if(year=100) year=1; case 4: week+; if(week=8) week=1; break;else if(day=month0month-1+1) day=1; month+; if(month=13) month=1; year+; if(year=100) year=1; break; case 6: month+; /执行月加 if(month=13) month=1;year+;
15、if(year=100) year=1; break; case 0 xfb: switch(ct) case 0:break; case 1:hourDEC(); break; case 2:minuteDEC(); break; case 3:secondDEC(); break; case 4: if(week=1) week=7;else week-; break;case 7: year+; /执行年加 if(year=100) year=1; break; break;case 5: if(day=1) day=28; else day-; break; case 6: if(mo
16、nth=1) month=12; else month-; break; case 7: if(year=0) year=99; else year-;break; break;case 0 xf7: TR0=TR0; break; void wr_week()/ 写星期函数 switch(week) case 1: time113=week100; time114=week101; time115=week102; break; case 2: time113=week110; time114=week111; time115=week112; break; case 3: time113=
17、week120; time114=week121; time115=week122; break; case 4: time113=week130; time114=week131; time115=week132; break; case 5: time113=week140; time114=week141; time115=week142; break; case 6: time113=week150; time114=week151; time115=week152; break; case 7: time113=week160; time114=week161; time115=we
18、ek162; break; void xianshi() TMOD=0 x01; / 定时器0中断初值装置 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;void T0_1() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; ct+; getnyr_date(); display_time();void hourDEC() if(hour=0) hour=23; else hour-; void minuteDEC() if(minute=0)
19、 minute=59; else minute-; void secondDEC() if(second=0) second=59; else second-;void time_date() /年月日时间处理time2=hour/10+0 x30;time3=hour%10+0 x30;time5=minute/10+0 x30;time6=minute%10+0 x30;time8=second/10+0 x30;time9=second%10+0 x30;/*年月日的分配*/time11=year/1000+0 x30;time12=year/100%10+0 x30time13=year/10%100+0 x30;time14=year%10+0 x30;time16=month/10+0 x30;time17=month%10+0 x30;time19=day/10+0 x30;time110=day%10+0 x30;void display_time()if(ct=20) ct=0; second+; if(second=60
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年科技制造业ESG领先企业实践路径:连续四年MSCI AAA评级解析
- 投资性房地产的转换和处置处理
- 水痘症状观察与记录
- 2026年水库游泳安全须知
- 2026年实验室安全知识竞赛
- 2026年山野安全培训
- 2026护理论文撰写写作思路(含2026宫腔镜护理措施)
- DB37-T 4510-2022 矿井供电系统电能质量检测技术规范
- 新型环保智能化处置产业-固体废物利用项目可行性研究报告模板-备案拿地
- 新生儿常见病预防与处理
- 【MOOC】管理会计工具与应用-江苏理工学院 中国大学慕课MOOC答案
- 《信息技术(基础模块)麒麟操作系统+WPSOffice(微课版)》全套教学课件
- 马尾神经综合征个案护理
- 2023年北京大学留学生入学考试英语试卷
- 人音版小学六年级下册音乐全册教案(教学设计)
- 中型水库除险加固工程蓄水安全鉴定自检报告
- 电路分析基础第2版卢飒课后参考答案
- 孙权劝学省公共课一等奖全国赛课获奖课件
- JCT 906-2023 混凝土地面用水泥基耐磨材料 (正式版)
- 2023工业园区分布式光伏发电项目可研报告
- 大单元下的教学评一体化
评论
0/150
提交评论