资源描述:
《可调时,温度显示,电子表(adjustable temperature display, electronic watch )》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、可调时,温度显示,电子表1(Adjustabletemperaturedisplay,electronicwatch1)#包括“reg51.h”#定义unsignedchar函数#unsignedint定义单元公司^SCLK=P10;//定义DS1302引脚普通IO=P1^1;普通RST=P1^2;普通DQ=P0^1;//定义DS18B20引脚普通RS=P0^5;//定义1602液晶引脚6公司^RW=P06;普通EN=P0^7;公司^K1=3//定义独立按键P1;公司K2=P1^4;公司K3=P1^5;P1^了K4=6;UCHAR苗族=0,=30分,石=
2、8,RI=22,=10岳,念=12,=3周;函数标志=0,W=0;位q=0;位z=0;浮TT;单元的温度;函数temp0[3];函数temp1[6];函数代码Timema[]={0123456789};//液晶时间显示数据函数的地址码[]={0x02,0x03,0x05,0x06,0x08,0x09,0x0f,0x40,0x41,0x43,0x44,0x46,0x47};//光标显示地址函数代码weeklist[]={的,U,n,是的,O,n,//星期显示数据T,U,e、大片”,“e”,就,T、H、U、F、R”,“我”,“S”、“A”,不“};*****
3、**延时函数********////无效的极限(个F){当(f-);}//1302//**********复位无效reset1302(){RST=0;SCLK=0;RST=1;}//********十进制数据转换为BCD码的函数*******//DB函数(函数y){BCD码的函数;BCD码=((Y/10)<<4
4、(%10));返回(BCD码);}//********BCD码转化为十进制数******//BD的函数(函数BCD){函数Z;Z=(((BCD>>4)&0x0f)*10+(BCD&0x0f));返回(z);}///////////1602液晶的操
5、作////////////**********写指令操作**********////无效的WC(UCHARCOM){RS=0;//写指令允许RW=0;//写入P2=com;极限(5);EN=1;极限(10);EN=0;}**********写数据操作**********////WD(void函数日期){RS=1;RW=0;//写入/写数据操作允许日期=;极限(5);EN=1;极限(10);EN=0;}***********对液晶控制器进行初始化操作**********////无效init1602()/对液晶控制器进行初始化操作{EN=0;WC(0x38)
6、;//ontheliquidcrystaldisplaymodesettingsWC(0x0c);//nocursor,thecursorisnotflashWC(0x06);WC(0x01);}TheDS18B20///////////////////////operation/////////////////////////***********DS18B20initializationfunction***********//Bit,ds18b20_init(){Bitflag;DQ=0;//MCUbylowlevelresetpulsetoDS1
7、8B20Delay1(60);//resetpulseduration480~640us;DQ=1;//releasethebus,waitingforaresponsefromthehostmachinepulse,enterthereceivingstateDelay1(3);//thehostintothereceivingstateafter15~60us,thehostbegantopinonthefallingedgedetectionI/O,Todeterminewhetherthereis//busfrommachineFlag=DQ;/
8、/detectthebuslevelifitislow,thenfromtheansweringmachine,otherwisenoanswerDelay1(50);//fromthelowleveldurationis60~240us;thehostreceivingstateshouldbeatleast480usReturn(flag);}//*************writesabytetotheDS18B20function****************//Voidwritebyte(uchardate){Uchari;Bittestb;
9、For(i=0;i<8;i++){Testb=date&0x01;Date>>=