液晶显示电冰箱温控器的设计代码部分

上传人:Bod****ee 文档编号:47503769 上传时间:2018-07-02 格式:DOC 页数:17 大小:125.53KB
返回 下载 相关 举报
液晶显示电冰箱温控器的设计代码部分_第1页
第1页 / 共17页
液晶显示电冰箱温控器的设计代码部分_第2页
第2页 / 共17页
液晶显示电冰箱温控器的设计代码部分_第3页
第3页 / 共17页
液晶显示电冰箱温控器的设计代码部分_第4页
第4页 / 共17页
液晶显示电冰箱温控器的设计代码部分_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《液晶显示电冰箱温控器的设计代码部分》由会员分享,可在线阅读,更多相关《液晶显示电冰箱温控器的设计代码部分(17页珍藏版)》请在金锄头文库上搜索。

1、液晶显示电冰箱温控器的设计液晶显示电冰箱温控器的设计代码部分代码部分DS18B20.c 模块模块#define uchar unsigned char #define uint unsigned int #include #include sbit DQ=P10; bdata uchar dat; sbit dat0=dat0; sbit dat7=dat7;uchar code id28=0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e,0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9;void delay15(uchar n)/1

2、5us 延时函数 do _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); n-;while(n); void late(void) uchar i;for(i=0;i0;i-) /循环写 8 位(先低位,后高位) DQ=0; /产生 15us 的负脉冲delay15(1);DQ=dat0;/将当前数据位送数据线dat=dat1;/将下一位要写入的数据移到最低位delay15(1);/延时 15usDQ=1; /数据线拉高,为写入下一位做准备uchar

3、rdbyte(void)/从 DS18B20 读取一个字节 uchar i;dat=0;/读出数据初值为 0for(i=8;i0;i-) /循环读 8 位(先低位,后高位) dat=dat1; /读出数据先右移一位 DQ=0; /产生 1us 的负脉冲 _nop_();DQ=1;/数据总线拉高delay15(1); /延时 15usdat7=DQ;/读取数据delay15(4); /延时,为读下一位做准备return(dat); void readid(uchar id) uchar n;reset(); /复位 DS18B20wrbyte(0x33); /发 READ ROM 命令for(n

4、=0;n #define uchar unsigned char #define uint unsigned int extern void LCD_DispIni(void); extern void LCD_DispFill(uchar filldata); extern void LCD_DispChar(uchar cy,uchar cx,char dispdata); extern void LCD_DispStr(uchar cy,uchar cx,char*disp_str); extern void LCD_DispHZ(uchar cy,uchar cx,uchar disp

5、data); extern void LCD_DispHZStr(uchar cy,uchar cx,uchar*disp_str); extern void gettemp(int temp); extern void InitTimer0(void); uchar dp16=0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9; /小数部分转换 #define KSET 0xe0 #define KSET_LONG 0xe1 #define KINC 0xd0 #define KDEC 0xb0 #define KDOWN 0x70uint count; char dbuf2=5

6、,-5; uchar str6=0,0,0,0,0,0; char cang=5; char dong=-5; uchar time3=12,34,56;void delay(uchar t) uchar i;while(t-)for(i=0;i100)return key; void DispTime(void) LCD_DispDat(7,5,time0);LCD_DispChar(7,8,:);LCD_DispDat(7,9,time1);LCD_DispChar(7,12,:); LCD_DispDat(7,13,time2); void EditWD(void) uchar no=0

7、;uchar key;LCD_DispDat(no*2+1,9,dbufno);while(1)key=GetKey();if(key=KINC) /+dbufno+;LCD_DispDat(no*2+1,9,dbufno);else if(key=KDEC) /-dbufno-;LCD_DispDat(no*2+1,9,dbufno);else if(key=KDOWN)LCD_DispDat(no*2+1,9,dbufno);no=(no+1)LCD_DispDat(no*2+1,9,dbufno);else if(key=KSET_LONG)cang=dbuf0; dong=dbuf1;

8、LCD_DispIni();break; void main(void) uchar str6=0,0,0,0,0,0; uchar i,key;int temp2; bit zf; uchar buf=0,1,3,4,0xff; /冷藏温度 uchar buf1=0,6,3,4,0xff; / 冷冻温度?uchar buf2=8,9,10,5,0xff; / 压缩机 uchar buf3=0,1,13,14,0xff; / 冷藏设置 uchar buf4=0,6,13,14,0xff; / 冷冻设置LCD_DispIni(); InitTimer0(); while(1) DispTime(

9、);/显示当前时? LCD_DispHZStr(0,0,buf);LCD_DispStr(1,8,“:“);LCD_DispHZ(0,7,7); LCD_DispHZStr(1,0,buf1); LCD_DispStr(3,8,“:“); LCD_DispHZ(1,7,7);LCD_DispHZStr(2,0,buf2); key=GetKey(); if(key=KSET) LCD_DispIni();LCD_DispHZStr(0,0,buf3);LCD_DispStr(1,8,“:“);LCD_DispHZ(0,7,7); LCD_DispHZStr(1,0,buf4); LCD_Dis

10、pStr(3,8,“:“); LCD_DispHZ(1,7,7);EditWD(); gettemp(temp);for(i=0;i4; if(temp04;str0=tempi/100+0x30;tempi=tempi%100;str1=tempi/10+0x30;str2=tempi%10+0x30;str3=.;if(zf=1) if(str1=0) str0= ;str1=-; elsestr0=-;else if(str0=0) if(str1=0)str1= ; str0= ; LCD_DispStr(i*2+1,9,str); TG12864.c 模块模块#include #in

11、clude #include #define uchar unsigned char #define uint unsigned intsbit LCD_RST= P37;/ 定义 LCD 复位控制脚 sbit DI=P34; sbit RW=P35; sbit EN=P36; sbit CS=P33; sbit RDY=P37; sfr LCD=0x80;#defineLCD_DISPON 0x3f / 打开 LCM 显示命令 #define LCD_STARTROW 0xc0 / 设置起始行命令,用 LCD_STARTROW+x 设置起 始行(x15) cy+; void LCD_Disp

12、HZ(uchar cy, uchar cx, uchar dispdata) /显示 uchar code *pdat;uchar i,s,page;bit port;cy = cycx = cxpdat = if( (cxs=cx7)cy+;cx=0; Time.c 模块模块#include #include #include #include extern unsigned char time; /时间:时、分、秒缓存 extern unsigned int count;void InitTimer0(void) TMOD = 0x01; /定时器工作在方式 2TH0 = -25000/2

13、56;/定时时间为 250usTL0 = -25000%256;EA = 1; /单片机中断ET0 = 1; /允许 T0 中断TR0=1 ;void TimeOff(void) EA = 0;/单片机中断 禁止ET0 = 0;/允许 T0 中断 禁止TR0=0 ; void time0(void) interrupt 1 TH0 = -25000/256;/定时时间为 250usTL0 = -25000%256;count+;if(count=40) count=0;time2+;if(time2=60) time2=0;time1+;if(time1=60) time1=0;time0+;

14、if(time0=24)time0=0; 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅

15、羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号