首页 ADC0809与18b20程序

ADC0809与18b20程序

举报
开通vip

ADC0809与18b20程序ADC0809与18b20程序 ï??#include //包æ‹?ä??ä?ª52æ ‡å‡†å†…æ ?çš„å??æ–‡ä?? #include #include #define uchar unsigned char //å?šä?‰ä??ä?‹æ–?ä??ä??ç”? #define uint unsigned int #define ulong unsigned long /********************************************/ sbit duan...

ADC0809与18b20程序
ADC0809与18b20程序 ï??#include //包æ‹?ä??ä?ª52æ ‡å‡†å†…æ ?çš„å??æ–‡ä?? #include #include #define uchar unsigned char //å?šä?‰ä??ä?‹æ–?ä??ä??ç”? #define uint unsigned int #define ulong unsigned long /********************************************/ sbit duan=P2^6; sbit wei=P2^7; sbit key=P1^0; sbit adcs=P2^5; sbit adwr=P3^6; sbit adrd=P3^7; sbit sd=P2^0; sbit beep=P3^1; sbit led0=P3^2; sbit led1=P3^3; sbit led2=P3^4; sbit led3=P3^5; /////////////////////////////////////////// uchar ge,shi,bai,temp0,flagï?Œ; uchar code table[]={ox3f,ox06,ox5b,ox4f,ox66, ox6d,ox7d,ox07,ox7f,ox6f}; uint temp; float f_temp; uint warn_l1=270; uint warn_l2=250; uint warn_h1=300; uint warn_h1=320; /////////////////////////////////// /***********************************************/ void display(uint temp_data) { uchar ge_data,shi_data,bai_data; bai_data=temp_data/100 ; temp_data=temp_data%100; //å –ä??è? ç?— shi_data=temp_data/10 ; temp_data=temp_data%10; //å –ä??è? ç?— ge_data=temp_data; bai_data=table[bai_data]; shi_data=table[shi_data]; ge_data =table[ge_data]; bai = bai_data; shi = shi_data; ge = ge_data ; switch(flag) { case 0x00: wei=1; P0=0xfb; wei=0; duan=1; P0=bai; duan=0; flag++; break; case 0x01: wei=1; P0=0xfd; wei=0; duan=1; P0=shi; duan=0; flag++; break; case 0x02: wei=1; P0=0xfe; wei=0; duan=1; P0=ge; duan=0; flag++; break; } } /****************ds18b20åˆ?å?‹åŒ–*************************/ void ds_init() { uint i; ds=0; i=100; while(i>0)i--; ds=1; i=4; while(i>0)i--; } /********************è??ä??ä??æ•?æ??***************************/ bit tempreadbit(void) { uint i; bit dat; ds=0; i++; ds=1; i++;i++; dat=ds; i=8; while(i>0)i--; return(dat); } /********************è??ä??ä?ªå?—节***************************/ uchar tempread(void) { uchar i,j,dat; dat=0; for(i=0;i<8;i--) { j=tempreadbit(); dat=(j<<7)|(dat>>1); } return(dat) } /********************å†?ä??ä?ªå?—节***************************/ void tempwrite(uchar dat) { uint i; uchar j; bit testb; for(j=0;j<8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) { ds=0; i++; i++; ds=1; i=8;while(i>0)i--; } else { ds=0; i=8; while(i>o)i--; ds=1; i++;i++; } } } /********************è??å –æ??åº?å??è??æ•?***************************/ void tempchange(void) { ds_init(); delay_50us(2); tempwrite(oxcc); tempwrite(ox44); } /*********************è??å?„å??å??ä??æ??åº?å??**************************/ uint get_temp() { uchar a,b; ds_init(); delay_50us(2); tempwrite(oxcc); tempwrite(oxbb); a=tempread(); b=tempread(); temp=b; temp<<=8; temp=temp|a; f_temp=temp*0.0625; temp=f_temp*10+0.5; f_temp=f_temp+0.05; return temp; } /*******************ç›?应æŠ?è??è??ç??****************************/ void warn(uint s,uchar led) { uchar i; i=s; beep=0; P1=~led; while(i--) { display(get_temp()); } beep=1; P1=0xff; i=s; while(i--) { display(get_temp); } } /*******************æ??åº?å?„ç?†****************************/ void deal(uint m) { uchar i; if((m>warn_l2)&&(m<=warn_l1)) { warn(40,0x01); } else if(m<=warn_l2) { warn(10,0x03); } else if((m=warn_h1)) { warn(40,0x04); } else if(m>=warn_h2) { warn(10,0x0c); } else { i=40; while(i--); { display(get_temp()); } } } /********************adc0809***************************/ void ad() { uint b,value; while(1) { adcs=0; adwr=0; delay_50us(2); adcs=1; adwr=1; delay_50us(10); adcs=0; adrd=0; delay_50us(1); value=P1;//P1å??æ??adcèŠ?片DB1--DB8 display(value); adrd=1; adcs=1; } } /*******************ä??å‡?æ•?****************************/ void main() { if(key==0) { ad(); /*while(1) { adcs=0; adwr=0; delay_50us(2); adcs=1; adwr=1; delay_50us(10); adcs=0; adrd=0; delay_50us(1); display(b); adrd=1; adcs=1; }*/ } else { while(1) { tempchange(); for(i=10;i>0;i--) { display(get_temp()); } deal(temp); } } }
本文档为【ADC0809与18b20程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-18
浏览量:19