文档详情

基于LCD1602,DS1302,DS18B20的程序设计.pdf

发布:2024-08-05约1.39万字共12页下载文档
文本预览下载声明

//=====================================.c文件===============================

#includereg52.h

#includeintrins.h#includeintrins.h#includeintrins.h#includeintrins.h#includeintrins.h

voidlcd_init()

{

write_lcdcom(0x38);

write_lcdcom(0x8c);

write_lcdcom(0x06);

write_lcdcom(0x01);

/***************时间分割符*****************/

write_lcdcom(0x80);//年20

write_lcddate(0x32);

write_lcddate(0x30);

write_lcdcom(0x84);//年月分隔符

write_lcddate(0x2d);

write_lcdcom(0x87);

write_lcddate(0x2d);//月日分隔符

write_lcdcom(0xc2);

write_lcddate(0x3a);//时分点分隔符

write_lcdcom(0xc5);

write_lcddate(0x3a);//分秒点分隔符

/***************温度分隔符*****************/

write_lcdcom(0xcc);

write_lcddate(0x2e);//温度小数点

write_lcdcom(0xce);//温度符号

write_lcddate(0xdf);

write_lcddate(0x43);

}

voidmain()

{

ISP_CONTR=0X40;

lcd_init();

setime();//设置时间,设置一次就需屏蔽,若还需设置,则可以开启

while(1)

{

keyscan();//键盘扫描,用于调时

if(flag==0)

{

read();//读取DS1302中数据,是十六进制

ds1302display();//在液晶上显示,是十进制

ds18b20_display();

}

}

}

//=================================各定义=================================

#defineucharunsignedchar

#defineuintunsignedint

sfrISP_CONTR=0XE7;

/************液晶定义****************/

sbiten=P2^7;

sbitrw=P2^6;

sbitrs=P2^5;

/************DS1302定义****************/

sbitds1302_clk=P1^6;

sbitds1302_io=P3^5;

sbitds1302_rst=P1^7;

sbits0=P2^4;//调时,按一下光标闪烁,再按一下就向左跳动一格,按下最后一次就

开始计时

sbits1=P2^3;//按一下加一

sbits2=P2^2;//按一下减一

sb

显示全部
相似文档