基于单片机的时钟、温度显示

基于单片机的时钟、温度显示

ID:8522180

大小:17.85 KB

页数:22页

时间:2018-03-31

基于单片机的时钟、温度显示_第1页
基于单片机的时钟、温度显示_第2页
基于单片机的时钟、温度显示_第3页
基于单片机的时钟、温度显示_第4页
基于单片机的时钟、温度显示_第5页
资源描述:

《基于单片机的时钟、温度显示》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、#include#include#defineucharunsignedchar#defineuintunsignedintsbitrs=P1^0;//寄存器选择sbitrw=P1^1;//读写信号线sbitlcden=P1^2;//led使能端sbitscl=P1^3;//时钟线sbitrst=P1^5;//复位线sbitio=P1^4;//数据口sbitkey_set_time=P3^4;//设置时间键sbitkey_add=P3^5;//加键sbitkey_minus=P3^6;//减键sbitkey_set_al

2、arm=P3^7;//设置闹钟键sbitbee=P1^6;//蜂鸣器接口sbitdq=P1^7;//ds18b20测温uchargetTimebuf[7];//存放时间数据uchartime[]={"::"};//时间格式字符串uchardate[]={"20--"};//日期格式字符串ucharweeklist[]={"SunMonTueWedThuFriSat"};//星期字符列表ucharweek[]={""};//星期格式字符串intcount;//设定秒分时日月星期年的时候count的值分别为intalarm;//是否进入闹钟设置界面123分别代表开

3、关分小时的设置intisOpen;//闹钟是否开启默认不开启intfen,shi;//闹钟的分钟小时intisRing;//闹钟是否在响ucharisInit_1302;//是否初始化时钟完毕intnum;inttemperature;//温度inttemp_flag;//温度正负标志voiddelay(uintx){inty;while(x--){for(y=100;y>0;y--);}}voidwrite_1602com(ucharcom){//1602写指令rs=0;lcden=0;P2=com;delay(5);lcden=1;delay(5);lcd

4、en=0;}voidwrite_1602data(uchardat){//1602写数据rs=1;lcden=0;P2=dat;delay(5);lcden=1;delay(5);lcden=0;}voidinit_1602(){//初始化1602液晶rw=0;lcden=0;write_1602com(0x38);//设置显示模式write_1602com(0x0c);//显示开关及光标是否显示和闪动write_1602com(0x06);//光标移动方向write_1602com(0x01);//清屏}voidwrite_ds1302_byte(uchar

5、temp){//ds1302写一个字节数据uchari;for(i=0;i<8;i++){io=temp&0x01;//将数据放到IO口上scl=0;//scl为低时准备数据scl=1;//上升沿写入temp>>=1;}}voidwrite_ds1302(ucharadd,uchardat){//向地址add写入数据datrst=0;scl=0;rst=1;write_ds1302_byte(add);write_ds1302_byte(dat);scl=1;rst=0;}ucharread_ds1302(ucharadd){//ds1302读数据uchari

6、,dat;rst=0;scl=0;rst=1;write_ds1302_byte(add);//首先写入要读的数据处的地址for(i=0;i<8;i++){if(io==1){dat

7、=0x80;}scl=1;scl=0;//下降沿读取数据dat>>=1;}scl=1;rst=0;returndat;}voidread_time(ucharcurr_time[]){uchari;ucharucAddr=0x81;for(i=0;i<7;i++){curr_time[i]=read_ds1302(ucAddr);//格式为:秒分时日月星期年ucAddr+=2;}

8、}voidset_time(uchar*pSecDa){//设定时间uchari;ucharucAddr=0x80;write_ds1302(0x8e,0x00);for(i=7;i>0;i--){write_ds1302(ucAddr,*pSecDa);//秒分时日月星期年pSecDa++;ucAddr+=2;}write_ds1302(0x8e,0x80);}voidinit_ds1302(){//ds1302初始化isInit_1302=read_ds1302(0x81);//读出时钟状态if(isInit_1302&0x80){//说明没有初始化wri

9、te_ds1302(0x8e,0x00

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。