可调时,温度显示,电子表1

可调时,温度显示,电子表1

ID:19632062

大小:59.50 KB

页数:25页

时间:2018-10-04

可调时,温度显示,电子表1_第1页
可调时,温度显示,电子表1_第2页
可调时,温度显示,电子表1_第3页
可调时,温度显示,电子表1_第4页
可调时,温度显示,电子表1_第5页
资源描述:

《可调时,温度显示,电子表1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、可调时,温度显示,电子表1#include"reg51.h"#defineucharunsignedchar#defineuintunsignedintsbitSCLK=P1^0;//定义DS1302引脚sbitIO=P1^1;sbitRST=P1^2;sbitDQ=P0^1;//定义DS18B20引脚sbitrs=P0^5;//定义1602液晶引脚6sbitrw=P0^6;sbiten=P0^7;sbitk1=P1^3;//定义独立按键sbitk2=P1^4;sbitk3=P1^5;sbitk4=P

2、1^6;ucharmiao=0,fen=30,shi=8,ri=22,yue=10,nian=12,zhou=3;ucharflag=0,w=0;bitq=0;bitz=0;floattt;uinttemp;uchartemp0[3];uchartemp1[6];ucharcodetimema[]={"0123456789"};//液晶时间显示数据ucharcodeaddress[]={0x02,0x03,0x05,0x06,0x08,0x09,0x0f,0x40,0x41,0x43,0x44,0x4

3、6,0x47};//光标显示地址ucharcodeweeklist[]={'S','u','n','M','o','n',//星期显示数据'T','u','e','W','e','d','T','h','u','F','r','i','S','a','t'};//*******延时函数********//voiddelay1(uintf){while(f--);}//*****复位1302*****//voidreset1302(){RST=0;SCLK=0;RST=1;}//********十进制数

4、据转换为BCD码的函数*******//ucharDB(uchary){ucharbcd;bcd=((y/10)<<4

5、(y%10));return(bcd);}//********BCD码转化为十进制数******//ucharBD(ucharbcd){ucharz;z=(((bcd>>4)&0x0f)*10+(bcd&0x0f));return(z);}///////////1602液晶的操作//////////////**********写指令操作**********//voidwc(uchar

6、com){rs=0;//写指令允许rw=0;//写入P2=com;delay1(5);en=1;delay1(10);en=0;}//**********写数据操作**********//voidwd(uchardate){rs=1;rw=0;//写入//写数据操作允许P2=date;delay1(5);en=1;delay1(10);en=0;}//***********对液晶控制器进行初始化操作**********//voidinit1602()//对液晶控制器进行初始化操作{en=0;wc(0x

7、38);//对液晶显示模式设置wc(0x0c);//无光标,光标不闪wc(0x06);wc(0x01);}///////////////////////对DS18B20进行的操作/////////////////////////***********DS18B20初始化函数***********//bitds18b20_init(){bitflag;DQ=0;//单片机向ds18b20发出低电平复位脉冲delay1(60);//复位脉冲持续480~640us;DQ=1;//释放总线,等待从机发出应答脉

8、冲,主机进入接收状态delay1(3);//主机进入接收状态15~60us后,主机开始检测I/O引脚上的下降沿,//已确定总线上是否存在从机flag=DQ;//检测总线电平,若为低,则从机应答,否则未应答delay1(50);//从机低电平持续时间为60~240us;主机整个接收状态应至少480usreturn(flag);}//*************向DS18B20写入一个字节函数****************//voidwritebyte(uchardate){uchari;bittestb

9、;for(i=0;i<8;i++){testb=date&0x01;date>>=1;if(testb)//写1{DQ=0;//拉低总线,进入写时隙delay1(1);//拉低总先后15us内必须释放总线DQ=1;//拉高总线,并维持至少60usdelay1(6);//此处已包含两个写时隙间隔至少一微秒}else{DQ=0;//拉低总线,进入写时隙delay1(6);//拉低总先后15us内必须释放总线DQ=1;//拉高总线,并维持至少60usdelay

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

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

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