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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的时钟、温度显示1

#include reg52.h#include intrins.h#define uchar unsigned char#define uint unsigned intsbit rs=P1^0;//寄存器选择sbit rw=P1^1;//读写信号线sbit lcden=P1^2;//led使能端sbit scl=P1^3;//时钟线sbit rst=P1^5;//复位线sbit io=P1^4;//数据口sbit key_set_time=P3^4;//设置时间键sbit key_add=P3^5;//加键sbit key_minus=P3^6;//减键sbit key_set_alarm=P3^7;//设置闹钟键sbit bee=P1^6;//蜂鸣器接口sbit dq=P1^7;//ds18b20测温uchar getTimebuf[7];//存放时间数据uchar time[]={ : : };//时间格式字符串uchar date[]={20 - - };//日期格式字符串uchar weeklist[]={SunMonTueWedThuFriSat};//星期字符列表uchar week[]={ };//星期格式字符串int count;//设定秒分时日月星期年的时候count的值分别为int alarm;//是否进入闹钟设置界面 123分别代表开关 分 小时的设置int isOpen;//闹钟是否开启 默认不开启int fen,shi;//闹钟的分钟小时int isRing;//闹钟是否在响uchar isInit_1302;//是否初始化时钟完毕int num;int temperature;//温度int temp_flag;//温度正负标志void delay(uint x){int y;while(x--){for(y=100;y0;y--);}}void write_1602com(uchar com){//1602写指令rs=0;lcden=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;}void write_1602data(uchar dat){//1602写数据rs=1;lcden=0;P2=dat;delay(5);lcden=1;delay(5);lcden=0;}void init_1602(){//初始化1602液晶rw=0;lcden=0;write_1602com(0x38);//设置显示模式write_1602com(0x0c);//显示开关及光标是否显示和闪动write_1602com(0x06);//光标移动方向write_1602com(0x01);//清屏}void write_ds1302_byte(uchar temp){//ds1302写一个字节数据uchar i;for(i=0;i8;i++){io=temp0x01;//将数据放到IO口上scl=0;//scl为低时准备数据scl=1;//上升沿写入temp=1;}}void write_ds1302(uchar add,uchar dat){//向地址add写入数据datrst=0;scl=0;rst=1;write_ds1302_byte(add);write_ds1302_byte(dat);scl=1;rst=0;}uchar read_ds1302(uchar add){//ds1302读数据uchar i,dat;rst=0;scl=0;rst=1;write_ds1302_byte(add);//首先写入要读的数据处的地址for(i=0;i8;i++){if(io==1){dat|=0x80;}scl=1;scl=0;//下降沿读取数据dat=1;}scl=1;rst=0;return dat;}void read_time(uchar curr_time[]){ uchar i; uchar ucAddr = 0x81; for (i=0;i7;i++){curr_time[i] = read_ds1302(ucAddr);//格式为: 秒 分 时 日 月 星期 年 ucAddr += 2; }}void set_time(uchar *pSecDa){//设定时间uchar i;uchar ucAddr = 0x80;write_ds1302(0x8e,0x00);for(i =7;i0;i--){ write_ds1302(ucAddr,*pSecDa); //秒 分 时 日 月 星期 年pSecDa++;ucAddr+=2;}write_ds1302(0x8e,0x80);}void init_ds1302(){//ds1302初始化is

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档