温湿度论文正文(6)

2019-03-29 13:33

附录一 C语言源程序

#include #include #include #define uchar unsigned char #define uint unsigned int sbit beep = P3^7;//定义扬声器 sbit DQ = P2 ^ 0;//ds18B20数据位 uint tvalue;//温度值

uchar tflag,flagdat,t;//温度正负标志 sbit KEY_1 = P2^7;

sbit KEY_2 = P2^6; sbit KEY_3 = P2^5; sbit KEY_4 = P2^4;

sbit LED1 = P1^0; //电源指示灯 sbit LED2 = P1^1; //温度超上限 sbit LED3 = P1^2; //温度超下限 sbit RS = P1^5; sbit RW = P1^6;

sbit E = P1^7; #define Lcd_Bus P0

sbit clock_clk = P2 ^ 1;//ds1302_clk(时钟线) sbit clock_dat = P2 ^ 2;//ds1302_dat(数据线) sbit clock_Rst = P2 ^ 3;//ds1302_Rst(复位线) sbit a0 = ACC ^ 0; sbit a1 = ACC ^ 1; sbit a2 = ACC ^ 2; sbit a3 = ACC ^ 3; sbit a4 = ACC ^ 4; sbit a5 = ACC ^ 5; sbit a6 = ACC ^ 6; sbit a7 = ACC ^ 7;

23

unsigned char hh,mm,ss,n,n1,n2,e=0; bit w = 0;

static unsigned char menu = 0; static unsigned char keys = 0; static unsigned char timecount = 0; void DelayM(unsigned int a){ unsigned char i; while( --a != 0){

for(i = 0; i < 125; i++);

}

}

void Delay(int num){ while(num--) ; }

void chk_busy(){ RS=0; RW=1; E=1;

Lcd_Bus=0xff;

while((Lcd_Bus&0x80)==0x80); E=0; }

void write_com(unsigned char cmdcode){ chk_busy(); RS=0; RW=0; E=1;

Lcd_Bus=cmdcode; E=0; }

void write_data(unsigned char Dispdata){ chk_busy(); RS=1; RW=0; E=1;

Lcd_Bus=Dispdata;

24

E=0; }

void lcm_init(){

write_com(0x30); write_com(0x0c); write_com(0x01); }

void lcm_w_word(unsigned char *s){ while(*s>0){ write_data(*s); s++; } }

void write_data1(unsigned char Dispdata){

chk_busy(); RS=1; RW=0; E=1;

Lcd_Bus=Dispdata; DelayM(10); E=0; }

void lcm_w_word1(unsigned char *s){ while(*s>0){ write_data1(*s); s++; } }

void lcm_w_test(bit i,unsigned char word){ if(i == 0){

write_com(word);

}else{ write_data(word);

} }

void lcm_clr(void){

25

lcm_w_test(0,0x01); }

void delay_18B20(unsigned int i) {

while(i--); }

void ds1820rst()//ds1820 { unsigned char x=0; DQ = 1; delay_18B20(4); DQ = 0; delay_18B20(100); DQ = 1; delay_18B20(40); }

unsigned char ds1820rd() { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; dat>>=1; DQ = 1; if(DQ) dat|=0x80; delay_18B20(10); }

return(dat); }

void ds1820wr(uchar wdata) {unsigned char i=0; for (i=8; i>0; i--) { DQ = 0;

DQ = wdata&0x01; delay_18B20(10); DQ = 1;

26

wdata>>=1; } }

read_temp() {uchar a,b; ds1820rst(); ds1820wr(0xcc); ds1820wr(0x44); ds1820rst(); ds1820wr(0xcc); ds1820wr(0xbe); a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue<<=8; tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else

{tvalue=~tvalue+1; tflag=1; }

tvalue=tvalue*(0.625); return(tvalue); }

void lcm_w_ss(void);void lcm_w_mm(void); void lcm_w_hh(void);void lcm_w_dd(void); void lcm_w_mo(void);void lcm_w_yy(void); void lcm_w_xq(void); unsigned char clock_in(void); void clock_out(unsigned char dd); void Init_1302(void);

unsigned char read_clock(unsigned char ord); void read_clockS(void); void Set_time(unsigned char sel);

void write_clock(unsigned char ord, unsigned char dd);

27


温湿度论文正文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:做一名有责任心的教师

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

马上注册会员

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