


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、51單片機(jī)C程序:MM I feTelJ-皚血FT F£TPiin?fi PJJflT: pjjiit FiriTt-PJATl FJXMT PJ TfH言皿IIidEllt 處比#in clude<reg51.h>#in clude< intrin s.h>#defi ne uchar un sig ned charsbit RS=P3A5;定義 LCD 端口sbit RW=P3A6;sbit E=P3A7;sbit DQ=P3A4;定義單總線端口uchar LCD_3, LCD_2, LCD_1, LCD_0;uchar ds18b20_romA8=0x8
2、e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28;四個(gè) DS18B20的64位ROM 地址uchar ds18b20_romB8=0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28;uchar ds18b20_romC8=0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28;uchar ds18b20_romD8=0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28;uchar code LCDData ="0123456789"uchar first_line16=&q
3、uot;A:000.0 B:000.0"/LCD 第一行顯示緩存數(shù)組uchar second_line16="C:000.0 D:000.0"/LCD 第二行顯示緩存數(shù)組/*/延時(shí)程序/*void delay (un sig ned int N)un sig ned int i;for(i=0;i<N;i+);/*/LCD1602 測(cè)忙/*void check_busy(void)while(1)P1=0xff;E=0;_nop_();RS=0;_nop_();_nop_();RW=1;_nop_();_nop_();E=1;_nop_();_nop_();
4、_nop_();_nop_();if(P1&0x80)=0)break;E=0;/*/LCD1602 寫命令*void write_command(uchar tempdata) E=0;_nop_();_nop_();RS=0;_nop_();_nop_();RW=0;P1=tempdata;_nop_();_nop_();E=1;_nop_();_nop_();E=0;_nop_(); check_busy();/* /LCD1602 寫數(shù)據(jù)/* void write_data(uchar tempdata) E=0;_nop_();_nop_();RS=1;_nop_();_no
5、p_();RW=0;P1=tempdata;_nop_();_nop_();E=1;_nop_();_nop_();E=0;_nop_(); check_busy();/* /初始化 LCD1602/* void init_lcd1602()/清除屏幕/功能設(shè)定( 8 位,2行,5*7 點(diǎn)陣式)顯示器ON,光標(biāo)OFF,閃爍OFF/延時(shí) 500uswrite_command(0x01);write_command(0x38);write_command(0x0c);write_command(0x06);/ 地址加 1 /* /初始化 ds18b20 /* bit resetpulse(void
6、)DQ=0; delay(40);DQ=1;delay(4);return(DQ);void ds18b20_init(void)while(1)if(!resetpulse()DQ=1;delay(40);break;elseresetpulse();/*/讀 ds18b20 一位/*uchar read_bit(void)DQ=0;_nop_();_nop_();DQ=1;delay(2);return(DQ);/*/讀 ds18b20 一個(gè)字節(jié)/*uchar read_byte(void)uchar i,m,receive_data;m=1;receive_data=0;for(i=0;
7、i<8;i+)if(read_bit()receive_data=receive_data+(m<<i);/延時(shí) 60us/讀取 P1.0 的狀態(tài)/收到 ds18b20 的應(yīng)答信號(hào)/延時(shí) 240us/否則再發(fā)復(fù)位信號(hào)delay(7); return(receive_data);/*/向 ds18b20 寫一位*void write_bit(uchar bitval)DQ=0;if(bitval=1)DQ=1;delay(5);DQ=1;/*/向 DS18B20 寫一個(gè)字節(jié)命令/* void write_byte(uchar val) uchar i,temp; for(i=0
8、;i<8;i+) temp=val>>i; temp=temp&0x01; write_bit(temp); delay(5);/* /64 位的 ROM 序列號(hào)匹配*bit match_rom(uchar *rom) uchar i; ds18b20_init(); write_byte(0x55); for(i=8;i>0;i-) write_byte(*(rom+i-1); return 1;*/從 ds18b20 中讀出 64 位序列號(hào) /* /*uchar * read_rom(void)uchar rom8,i;ds18b20_init();writ
9、e_byte(0x33);for(i=8;i>0;i-)romi-1=read_byte();return &rom0;*/*/ 將 64 位序列號(hào)顯示在 LCD 上顯示出來/*/*void print_char(uchar a)if(a>=0&&a<=9)write_data(a+0x30);else if(a>=0x0a &&a<= 0x0f) write_data(a+0x37);*/*/溫度轉(zhuǎn)換,將從 ds18b20 中讀出來的溫度值 /轉(zhuǎn)化成十進(jìn)制的溫度值 ,并存放顯示緩存 /* void convert_T(uc
10、har temp_data_h,uchar temp_data_l) uchar temp;/如果溫度寄存器里的高位為 1,/則溫度為負(fù)/負(fù)溫度將補(bǔ)碼轉(zhuǎn)成二進(jìn)制 ,/取反再加 1if(temp_data_h&0xf0)=0xf0) temp_data_l=temp_data_l; if(temp_data_l=0xff)temp_data_l=temp_data_l+0x01; temp_data_h=temp_data_h; temp_data_h=temp_data_h+0x01;elsetemp_data_l=temp_data_l+0x01; temp_data_h=temp_
11、data_h;/查表得負(fù)溫度溫度十位/查表得負(fù)溫度個(gè)位LCD_0=dot_tabtemp_data_l&0x0f;/查表得小數(shù)位的值 temp=(temp_data_l&0xf0)>>4)|(temp_data_h&0x0f)<<4);LCD_3='-'/顯示 "-" 號(hào)LCD_2=LCDData(temp%100)/10;LCD_1=LCDData(temp%100)%10;else/溫度為正LCD_0=dot_tabtemp_data_l&0x0f;/查表得小數(shù)位的值temp=(temp_data_
12、l&0xf0)>>4)|(temp_data_h&0x0f)<<4);LCD_3=LCDDatatemp/100;LCD_2=LCDData(temp%100)/10;LCD_1=LCDData(temp%100)%10;/查表得溫度百位/查表得溫度十位/查表得溫度個(gè)位void display(void) uchar i;write_command(0x80);for(i=0;i<16;i+)write_data(first_linei); write_command(0xc0); for(i=0;i<16;i+)write_data(sec
13、ond_linei);void main(void)uchar temp_data_l,temp_data_h;/*uchar *ds18b20_rom;*/ init_lcd1602();/*while(1)uchar i;ds18b20_rom=read_rom(); write_command(0x80); for(i=0;i<8;i+)ds18b20_romAi=*ds18b20_rom;ds18b20_rom+;/讀序列號(hào)/顯示序列號(hào)/啟動(dòng)溫度轉(zhuǎn)換/匹配第一路/讀溫度/溫度低 8 位/溫度高 8 位/溫度轉(zhuǎn)換后的各位/分別存入顯示緩存數(shù)組中/匹配第二路/讀溫度/溫度低 8 位/
14、溫度高 8 位/溫度轉(zhuǎn)換后的各位/分別存入顯示緩存數(shù)組中/匹配第三路/讀溫度/溫度低 8 位/溫度高 8 位/溫度轉(zhuǎn)換后的各位/分別存入顯示緩存數(shù)組中/匹配第四路/讀溫度write_command(0x80); for(i=0;i<8;i+) print_char(ds18b20_romAi/16); print_char(ds18b20_romAi%16);*/while(1)ds18b20_init(); write_byte(0xcc);write_byte(0x44); delay(700); match_rom(ds18b20_romA);write_byte(0xbe); t
15、emp_data_l= read_byte(); temp_data_h = read_byte(); convert_T(temp_data_h,temp_data_l); first_line2=LCD_3; first_line3=LCD_2; first_line4=LCD_1; first_line6=LCD_0; match_rom(ds18b20_romB);write_byte(0xbe); temp_data_l= read_byte(); temp_data_h = read_byte(); convert_T(temp_data_h,temp_data_l); first
16、_line10=LCD_3; first_line11=LCD_2; first_line12=LCD_1; first_line14=LCD_0;display(); match_rom(ds18b20_romC);write_byte(0xbe); temp_data_l= read_byte(); temp_data_h = read_byte(); convert_T(temp_data_h,temp_data_l); second_line2=LCD_3; second_line3=LCD_2; second_line4=LCD_1; second_line6=LCD_0; match_rom
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 證劵交易平臺(tái)使用手冊(cè)
- 農(nóng)藥與肥料使用指導(dǎo)作業(yè)指導(dǎo)書
- 保育師初級(jí)練習(xí)測(cè)試卷
- 母嬰護(hù)理員初級(jí)練習(xí)測(cè)試題附答案
- 倉庫管理工作計(jì)劃模板
- 工作效率提升方案報(bào)告
- 地理人教版2024版七年級(jí)初一上冊(cè)1.1宇宙中的地球教案02
- 技術(shù)方案選型表-技術(shù)方案選擇
- 新一代辦公軟件使用手冊(cè)
- 調(diào)研報(bào)告之行業(yè)市場(chǎng)現(xiàn)狀分析
- 廚房設(shè)備購銷合同范本(一)與廚房設(shè)備采購合同8篇
- 2025年中儲(chǔ)糧吉林分公司招聘(74人)筆試參考題庫附帶答案詳解
- 2024-2025學(xué)年九年級(jí)化學(xué)人教版教科書解讀
- 2025年長春醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫及完整答案1套
- 中國保險(xiǎn)行業(yè)協(xié)會(huì)官方-2023年度商業(yè)健康保險(xiǎn)經(jīng)營數(shù)據(jù)分析報(bào)告-2024年3月
- (課件)急性胸痛的鑒別診斷
- Audio-Jack-連接器設(shè)計(jì)經(jīng)驗(yàn)課件
- 裝修巡查表范本
- 北京市水利工程維修養(yǎng)護(hù)定額
- 最新固體制空調(diào)凈化系統(tǒng)設(shè)計(jì)確認(rèn)方案
- 《品牌策劃與管理(第4版)》知識(shí)點(diǎn)與關(guān)鍵詞解釋
評(píng)論
0/150
提交評(píng)論