版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#define uint unsigned int#define uchar unsigned charsbit k1=P31;/按键1sbit k2=P32;/按键2sbit k3=P37;/按键2sbit k4=P33;/按键2sbit Q=P36;/蜂鸣器接口sbit dat=P14;/1302的数据端sbit res=P13;/使能端sbit clk=P17;/时钟端sbit DS=P34;/18B20int temp;sbit rs=P10;/液晶sbit rw=P11;/液晶sbit e=P12; /液晶uchar code disdata3;/18B20void
2、tmpchange(void); /1820 void display_7(tem);/1820uchar read7=0,0,0,0,0,0,0;uchar write7=0x40,0x59,0x23,0x01,0x07,0x05,0x13;/写时间,秒,分,时,日,月,周,年uchar code table7=欢迎使用我的万年;/每个汉字2个字节uchar code table8=历;/每个汉字2个字节uchar code table9= welcome you;/每个汉字2个字节uchar code table10=My name is ;/每个汉字2个字节/12345678uchar
3、code table11= ;/每个汉字2个字节uchar code table12=学号 1001904012 ;/每个汉字2个字节uchar code table13= ;/每个汉字2个字节uchar code table14=学号1001904045;/每个汉字2个字节 uchar code table15=现在进入日历显示;/每个汉字2个字节uchar code table16= ;/每个汉字2个字节 uchar code table17= ;/每个汉字2个字节 uchar code table18=温度检测欢迎使用;/每个汉字2个字节uchar code table3= 2000年0
4、0月00日 ;/每个汉字2个字节uchar code table4= 00时00分00秒 ;/每个汉字2个字节uchar code table5=温度: 00 度 ;/每个汉字2个字节uchar code table6=星期: 00 ;/每个汉字2个字节void display(uchar);void display_1(void);void display_2(void);void display_3(void);void display_4(void);void display_5(void);void display_6(void);void display7(uint);void di
5、splay_8(void);void display_9(void);void display_10(void);void display_11(void);void display_12(void);void display_13(void);void display_14(void);void display_15(void);void display_16(void);void display_17(void);void dsreset(void);int tmp();uint i,temp1,temp2,tvalue,wed=340,xia=310; /温度上线时35度,下线30度 u
6、char n=0;void tmpchange(void) ; void tmpwritebyte(uchar dat); uchar tmpread(void); bit tmpreadbit(void) ; /发送温度转换命令void write_command(uchar com);void write_data(uchar dat);void LCD_init();void fengming();/蜂鸣器/void baoshi(); void delayms(uint j)uint i,k;for(i=j;i0;i-)for(k=114;k0;k-);void delayus(uin
7、t i)while(i-);void delayb(uchar z)uint i;while(z)i=200;while(i0)i-;z-;void delay_50us(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay_50ms(uint t)/延时函数 uint j; for(;t0;t-) for(j=6245;j0;j-); void fengming() Q=0; delay_50ms(1); Q=1; /*lcd函数*/void write_command(uchar com)/写指令函数void write_dat
8、a(uchar dat)/写数据函数 void LCD_init() rw=0; rs=0;/rs=0时是写指令; delay_50us(1); P2=com; e=1; delay_50us(10); e=0; delay_50us(2);void write_data(uchar dat)/写数据函数 void LCD_init() rw=0; rs=1;/rs=1时是写指令shu ju; delay_50us(1); P2=dat; e=1; delay_50us(10); e=0; delay_50us(2);void LCD_init()/delay_50ms(2); write_c
9、ommand(0x01);/清除显示 delay_50us(4); write_command(0x03);/地址归为 delay_50us(4); write_command(0x0e);/整体显示开,开游标,游标不反白 delay_50us(4); write_command(0x01);/清除显示 delay_50us(240); write_command(0x06);/模式设计 delay_50us(10); write_command(0x80);/整板显示 delay_50us(10);/*1864显示函数*/void display(uchar date)uchar ge,sh
10、i;shi=date/16;ge=date%16;write_data(shi+0x30);write_data(ge+0x30);/*1302部分函数*/void write_byte(uchar temp)uchar i;for(i=0;i=1;uchar read_byte()uchar i,temp=0;for(i=0;i=1;if(dat) temp|=0x80;/1000 0000elsetemp&=0x7f;/0111 1111clk=1;delayus(5); return temp;void write_date(uchar addr,uchar date)res=0;clk
11、=0;delayus(5);res=1;delayus(5);write_byte(addr);delayus(1);write_byte(date);res=0;delayus(5);uchar read_date(uchar addr)uchar dat;res=0;clk=0;delayus(5);res=1;delayus(5);write_byte(addr);delayus(5);dat=read_byte();res=0;delayus(5);return dat;void ReadTime()write_date(0x8f,0x80);/禁止写入read0=read_date(
12、0x81);/读取秒寄存器的数据read1=read_date(0x83);/读取分钟寄存器的数据read2=read_date(0x85);/读取小时寄存器的数据read3=read_date(0x87);/读取日期寄存器的数据read4=read_date(0x89);/读取月寄存器的数据read5=read_date(0x8b);/读取星期寄存器的数据read6=read_date(0x8d);/读取年寄存器的数据void SetTime() uint shi,ge,shi1,shi3,shi4,shi5,ge1,shi2,ge2,ge3,ge4,ge5,a=13,b; uint yea
13、r,yue,ri,n=0,a1=7,b1,a2=1,b3,a4=8,b4,a5=30,b5,a6=30; uint b7,a7=3,shi6,ge6;/write_date(0x84,write2);/时/write_date(0x86,write3);/日 while(k1!=0) write_date(0x8e,0x00);/可以写入 write_command(0x0e);/整体显示开,开游标,游标不反白 if(k2=0) fengming(); delay_50ms(4); n+; if(n9)n=1; /*设置年*/if(n=1) write_command(0x0f);/整体显示开
14、,开游标,游标反白if(k3=0)/ fengming(); delay_50ms(4); a+; if(k4=0) fengming(); delay_50ms(4); a-; b=a/10*16+a%10;/转变成16进制 write_date(0x8c,b);/nianReadTime();/1302 write_command(0x82);/地址,定在哪显示shi=a/10; ge=a%10;year=20*100+shi*10+ge; write_data(shi+0x30); write_data(ge+0x30); /年 /*设置月*/ if(n=2) write_command
15、(0x0f);/整体显示开,开游标,游标反白 if(k3=0)/设置月 fengming(); delay_50ms(4); a1+; if(k4=0) fengming(); delay_50ms(4); a1-; b1=a1/10*16+a1%10;/10进制转变成16进制 write_date(0x88,b1);/月ReadTime();/1302哦 write_command(0x84);/地址,定在哪显示shi1=a1/10; ge1=a1%10; yue=shi1*10+ge1;if(yue12)a1=1;if(yue=0&k4=0) fengming(); delay_50ms(
16、4); a1=a1+12; write_data(shi1+0x30); write_data(ge1+0x30); /年 /*设置日*/ if(n=3) if(k4=0&a2=0)/设置跳变,方便调节 fengming(); delay_50ms(4); a2=a2+27; if(k3=0)/ fengming(); delay_50ms(4); a2+; if(k4=0) fengming(); delay_50ms(4); a2-; if(yue%2=0) if(ri30&yue!=8) a2=1; if(yue=8) if(ri31) a2=1; else if(yue%2!=0) i
17、f(ri31) a2=1; if(year%4=0)&(year%100!=0)|(year%400=0)/闰年是“能被4整除但不能被100整除”,或者“能被400整除” if(yue=2&ri29) a2=1; else if(yue=2&ri28) a2=1; b3=a2/10*16+a2%10;/10进制转变成16进制 write_date(0x86,b3);/日ReadTime();/1302哦 write_command(0x86);/地址,定在哪显示shi2=a2/10; ge2=a2%10; ri=shi2*10+ge2; write_data(shi2+0x30); write
18、_data(ge2+0x30); /年 /*设置时*/if(n=4) if(k3=0)/ fengming(); delay_50ms(4); a4+; if(k4=0) fengming(); delay_50ms(4); a4-; b4=a4/10*16+a4%10;/转变成16进制 write_date(0x84,b4);/日ReadTime();/1302 write_command(0x91);/地址,定在哪显示 if(a424) a4=0; if(a4=0&k4=0) fengming(); delay_50ms(2); a4=a4+24; shi3=a4/10; ge3=a4%1
19、0; write_data(shi3+0x30); write_data(ge3+0x30); /年 /*设置分*/ if(n=5) if(k3=0)/ fengming(); delay_50ms(4); a5+; if(k4=0) fengming(); delay_50ms(4); a5-; b5=a5/10*16+a5%10;/转变成16进制 write_date(0x82,b5); /分ReadTime();/1302哦 write_command(0x93);/地址,定在哪显示shi4=a5/10; ge4=a5%10; if(a560) a5=0; if(a5=0&k4=0) f
20、engming(); delay_50ms(2); a5=60+a5; write_data(shi4+0x30); write_data(ge4+0x30); /年 /*设置秒*/if(n=6) if(k3=0)/ fengming(); /delay_50ms(1); a6+; if(k4=0) fengming(); /delay_50ms(1); a6-; b5=a6/10*16+a6%10;/转变成16进制 write_date(0x80,b5);/秒 /分ReadTime();/1302哦 write_command(0x95);/地址,定在哪显示shi5=a6/10; ge5=a
21、6%10; if(a660) a6=0; if(a6=0&k4=0) a6=60+a6; write_data(shi5+0x30); write_data(ge5+0x30); /年 /*设置星期*/if(n=7) if(k3=0)/ fengming(); delay_50ms(1); a7+; if(k4=0) fengming(); delay_50ms(1); a7-; b7=a7/10*16+a7%10;/转变成16进制 write_date(0x8a,b7);/周ReadTime();/1302哦 write_command(0x9b);/地址,定在哪显示shi6=a7/10; ge6=a7%10; if(a77) a7=1; if(a7wed|tem0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) / 读一位 uint i; bit dat; DS=0;i+; /小延时一下 DS=1;i+;i+;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《物流运输管理》 课件 模块八 单元二 分析运输管理信息系统
- 深度解析(2026)《GBT 33495-2017农村地区家电维修服务规范》(2026年)深度解析
- 深度解析(2026)《GBT 33376-2016光学功能薄膜术语及其定义》
- 任务6.5 客户管理与营销
- 2树之歌【从基到通】二年级上册语文统编版
- 医疗数据安全成熟度评估:区块链与数据溯源的结合
- 医疗数据安全密钥管理的共识机制分发
- 医疗数据安全合规性风险应对流程
- 医疗数据安全共享的法律法规适应性研究
- 医疗数据安全共享生态构建
- 国际投资学的试题及答案
- 《CRTAS-2024-06 互联网租赁自行车停放区设置指南》
- 云南省曲靖市麒麟区2023年小升初数学试卷
- 安徽旧锅炉拆除合同范本
- 全检员考试试题及答案
- (2025年标准)京东养车授权协议书
- 苏教版三年级数学上册期末易错易混提分卷(含答案)
- 医院搬迁整体方案
- 湖南涉外经济学院《高等数学》2024-2025学年期末试卷(A卷)含答案
- 免陪照护服务的持续改进与质量监控机制
- 2025秋人教版(2024)八年级上册英语课件 Unit 1 Happy Holiday (第2课时) Section A Pronunciation 1- 2f
评论
0/150
提交评论