单片机LCD1602显示年月日时钟带星期和闹钟教学内容_第1页
单片机LCD1602显示年月日时钟带星期和闹钟教学内容_第2页
单片机LCD1602显示年月日时钟带星期和闹钟教学内容_第3页
单片机LCD1602显示年月日时钟带星期和闹钟教学内容_第4页
单片机LCD1602显示年月日时钟带星期和闹钟教学内容_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、单 片 机 L CD1 6 0 2 显 示年月日时钟带星期和闹钟精品文档长春工业大学测控技术与仪器专业单片机 LCD1602 显示年月日时钟带星 期和闹钟,可识别闰年 下载文档即可完全复制#include 收集于网络,如有侵权请联系管理员删除精品文档#define uchar unsigned char#define uint unsigned intsbit lcdrs = P07;/液晶引脚定义 sbit led_cs = P06;sbit lcden = P05;sbit boom = P36;sbit key1 = P35;sbit key2 = P34;sbit key3 = P33

2、;sbit keyE = P32;ucharnum,key1num,key2num,count,hour,min,sec,day,mon,year,shi,fen,mi ao,week;char ye1,ye2;uchar code cg_1602= 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02, 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00,0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,;/ 年月日 /* 延时函

3、数 */ void delay(uint xms)收集于网络,如有侵权请联系管理员删除精品文档uint i,j;for(i=xms;i0;i-)for(j=114;j0;j-);/*1602 液晶 */void write_com(uchar com)/ 写命令lcdrs=0;lcden=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)/ 写数据lcdrs=1;lcden=0;P2=date;delay(5);lcden=1;收集于网络,如有侵权请联系管理员删除精品文档delay(5);lcden=0;

4、void write_by_xy(uchar x,uchar y)/ 坐标定位uchar address;if(y=0) address=0x80+x;/y=0, 写第一行 elseaddress=0xc0+x;/y=1, 写第二行 write_com(address);/*void write_char(uchar x,uchar y,uchar date)/ 坐标定位显示 write_by_xy(x,y);/ 先定位write_data(date);/ 后写数*/void write_string(uchar x,uchar y,uchar *s)/ 写字符串write_by_xy(x,y

5、);/ 设定显示位置 while(*s)/write character收集于网络,如有侵权请联系管理员删除精品文档P2=*s;write_data(*s);s+;void write_sfm(uchar add,uchar date)/ 写时分秒函数uchar hour,ge;hour=date/10;/ 分解一个 2 位数的十位和个位ge=date%10;write_com(0x80+add);/ 设置显示位置write_data(0x30+hour);/ 送去液晶显示十位write_data(0x30+ge); / 送去液晶显示个位void write_cg()/ 写入固定汉字和符号wr

6、ite_com(0x40); / 设定 CGRAM 地址for(num=0;num31)/ 若大于 31 后将置一 day=1;收集于网络,如有侵权请联系管理员删除精品文档write_sfm(0x48,day);/ 每调节一次送液晶显示一下回到调节处液晶显示一下回到调节处write_com(0x80+0x48);/ 显示位置重新if(key1num=5)/ 若功能键第五次按下mon+;/ 则调整月加 1 if(mon12)/ 若大于 12 后将置一 mon=1;write_sfm(0x45,mon);/ 每调节一次送write_com(0x80+0x45);/ 显示位置重新if(key1num

7、=6)/ 若功能键第六次按下ye2+;/ 则调整年加 1 if(ye2=0x0a)/ 若满 99后将清零 ye2=0;year=ye1*100+ye2;收集于网络,如有侵权请联系管理员删除精品文档write_sfm(0x42,ye2);/ 每调节一次送液晶显示一下回到调节处晶显示一下回到调节处write_com(0x80+0x42);/ 显示位置重新if(key1num=7)/ 若功能键第七次按下ye1+;/ 则调整年加 100 if(ye1=0x0a)/ 若满 99后将清零 ye1=0;year=ye1*100+ye2;write_sfm(0x40,ye1);/ 每调节一次送液write_c

8、om(0x80+0x40);/ 显示位置重新if(key1num=8)/ 若功能键第八次按下week+;/则调整周加一 if(week7)/若大于 7 后置一 week=1;收集于网络,如有侵权请联系管理员删除精品文档write_sfm(0x4f,week);/ 每调节一次送液晶显示一回到调节处write_com(0x80+0x4f);/ 显示位置重新if(key3=0)delay(5);if(key3=0)/ 确认减小键被按下while(!key3);/ 按键释放if(key1num=1)/ 若功能键第一次按下sec-;/则调整秒减 1if(sec=-1)/ 若减到负数则将其重新设置为 59

9、sec=59;write_sfm(6,sec);/ 每调节一次送液晶显示一下收集于网络,如有侵权请联系管理员删除精品文档write_com(0x80+7);/ 显示位置重新回到调节处 if(key1num=2)/ 若功能键第二次按下min-;/ 则调整分钟减 1 if(min=-1)/ 若减到负数则将其重新设置为 59min=59;write_sfm(3,min);/ 每调节一次送液晶显示一下write_com(0x80+4);/ 显示位置重新回到调节处if(key1num=3)/ 若功能键第三次按下hour-;/ 则调整小时减 1if(hour=-1)/ 若减到负数则将其重新设置为 23ho

10、ur=23;write_sfm(0,hour);/ 每调节一次送液晶显示一下收集于网络,如有侵权请联系管理员删除精品文档到调节处晶显示一下回到调节处液晶显示一下write_com(0x80+1);/ 显示位置重新回if(key1num=4)/ 若功能键第四次按下day-;/ 则调整日减 1if(day=0)/ 若日为零时将置一 day=31;write_sfm(0x48,day);/ 每调节一次送液write_com(0x80+0x49);/ 显示位置重新if(key1num=5)/ 若功能键第五次按下mon-;/ 则调整月减 1if(mon=0)/ 若月为零将置一 mon=12;write_

11、sfm(0x45,mon);/ 每调节一次送回到调节处收集于网络,如有侵权请联系管理员删除write_com(0x80+0x45);/ 显示位置重新精品文档晶显示一下回到调节处if(key1num=6)/ 若功能键第六次按下ye2-;/ 则调整年减 1if(ye20)/ 若小于零后将设置为 99 ye2=99;year=ye1*100+ye2;write_sfm(0x42,ye2);/ 每调节一次送液write_com(0x80+0x42);/ 显示位置重新晶显示一下 if(key1num=7)/ 若功能键第七次按下ye1-;/ 则调整年减 100if(ye17)week=1;if(mon=1

12、)if(day31)day=1;收集于网络,如有侵权请联系管理员删除精品文档mon+;if(mon=2)if(year%4=0 &year%100!=0)|year%4=0)if(day29)day=1;mon+;else if(day28)day=1;mon+;if(mon=3)收集于网络,如有侵权请联系管理员删除精品文档if(day31)day=1;mon+; if(mon=4) if(day30) day=1; mon+; if(mon=5) if(day31)day=1; mon+;收集于网络,如有侵权请联系管理员删除精品文档if(mon=6) if(day30) day=1; mon

13、+; if(mon=7) if(day31) day=1; mon+;if(mon=8) if(day31) day=1; mon+;收集于网络,如有侵权请联系管理员删除精品文档if(mon=9)if(day30)day=1; mon+; if(mon=10) if(day31)day=1; mon+; if(mon=11) if(day30)day=1;收集于网络,如有侵权请联系管理员删除精品文档mon+;if(mon=12)if(day31)day=1;mon=1;ye2+;write_sfm(0x4e,week);write_sfm(0x48,day);write_sfm(0x45,mon);write_sfm(0x40,ye1);w

温馨提示

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

最新文档

评论

0/150

提交评论