基于LCD1602电子时钟毕业论文报告(4)

2019-04-22 16:29

E=1;

_nop_(); _nop_(); _nop_(); E=0;

delay1ms(1); }

*初始化*

void Lcd_Int(void) {

Write_com(0x38); delay1ms(1); Write_com(0x38); delay1ms(1); Write_com(0x06); delay1ms(1); Write_com(0x0c); delay1ms(1);

Write_com(0x01); }

void displaymainpart(void)显示液晶主要部分(不变化部分) {

Write_Address(0x01); delay1ms(1); Write_Date('D'); Write_Date('A'); Write_Date('T'); Write_Date('E'); Write_Date(':'); delay1ms(1);

Write_Address(0x0A); delay1ms(1); Write_Date('-');

Write_Address(0x0D); Write_Date('-');

Write_Address(0x42); Write_Date('T'); Write_Date('I'); Write_Date('M'); Write_Date('E'); Write_Date(':');

Write_Address(0x4A); Write_Date('-');

Write_Address(0x4D); Write_Date('-');

Write_Address(0x06); Write_Date('2'); Write_Date('0'); }

void display_Second(unsigned char second) 在液晶上显示秒 {

unsigned char i,j; i=second10; j=second;

Write_Address(0x4E); Write_Date(digit[i]); Write_Date(digit[j]); delay1ms(1); }

void display_Minute(unsigned char minute) 在液晶上显示分 {

unsigned char i,j; i=minute10; j=minute;

Write_Address(0x4B); Write_Date(digit[i]); Write_Date(digit[j]); delay1ms(1); }

void display_Hour(unsigned char []={%unsigned char code displayerror[]={%unsigned char code displayerror1[]={%unsigned char code displaypart1[]={%unsigned char code displaypart2[]={%unsigned char flag;

**********************操作DS18B20模块*************************** sbit DQ=P3^3;

unsigned char time;

**********************DS18B20初始化**************************** bit IntDS18B20(void) {

bit temp; DQ=1;

for(time=0;time<2;time++); DQ=0;

for(time=0;time<200;time++); DQ=1;

for(time=0;time<10;time++); temp=DQ;

for(time=0;time<200;time++);

return temp; }

**************************读DS18B20********************** unsigned char ReadDS18B20(void) {

unsigned char i; unsigned char dat; for(i=0;i<8;i++) {

DQ=1; _nop_(); DQ=0; _nop_(); DQ=1;

for(time=0;time<2;time++); dat>>=1; if(DQ==1)

dat=dat|0x80; else

dat=dat|0x00;

for(time=0;time<10;time++); }

return dat; }

*********************向DS18B20写数据************************** void WriteDS18B20(unsigned char date) {

unsigned char i; for(i=0;i<8;i++) {

DQ=1; _nop_(); DQ=0;

DQ=date&0x01;

for(time=0;time<10;time++); DQ=1;

for(time=0;time<1;time++); date>>=1; }

for(time=0;time<4;time++); }

*******************为读取温度做好准备************************ void ReadyreadDS18B20(void) {

IntDS18B20();

WriteDS18B20(0XCC); WriteDS18B20(0X44); delay1ms(200); IntDS18B20();

WriteDS18B20(0XCC); WriteDS18B20(0XBE); }

*************在1602液晶上显示相关信息模块********************** ****************当未检测到DS18B20时显示信息模块**************** void Display_Error(void) {

unsigned char i=0; Write_Address(0x00);

while(displayerror[i]!='\\0') {

Write_Date(displayerror[i]); i++;

delay1ms(100); }

delay1ms(5); i=0;

Write_Address(0x40);

while(displayerror1[i]!='\\0') {

Write_Date(displayerror1[i]); i++;

delay1ms(100); }

delay1ms(3000) ; }

*************温度显示模块**************** void Display_Explain(void) {

unsigned char i=0; Write_Address(0x00); delay1ms(5);

while(displayexplain[i]!='\\0') {

Write_Date(displayexplain[i]); i++;

delay1ms(5); } i=0;

Write_Address(0x40);

while(displaypart1[i]!='\\0') {

Write_Date(displaypart1[i]); i++;

delay1ms(5); } i=0;

Write_Address(0x4C);

while(displaypart2[i]!='\\0') {

Write_Date(displaypart2[i]); i++;

delay1ms(5); }

Write_Address(0x49); Write_Date('.'); delay1ms(5); }

*********************显示温度整数部分************************* void Display_Integer(unsigned char x) {

unsigned char i,j,k; i=x100; j=x010; k=x; if(i!=0) {

Write_Address(0x46);

{ if(flag==1) Write_Date('-'); else Write_Date(' '); }

Write_Date(digit[i]); Write_Date(digit[j]); Write_Date(digit[k]); delay1ms(50) ; }

if(i==0&&j!=0) {

Write_Address(0x46); Write_Date(' ');

{ if(flag==1) Write_Date('-'); else Write_Date(' '); }

Write_Date(digit[j]);


基于LCD1602电子时钟毕业论文报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二次函数图像—符号确定-精解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: