【51單片機(jī)】溫度傳感器DS18B20程序 LCD1602顯示.doc_第1頁
【51單片機(jī)】溫度傳感器DS18B20程序 LCD1602顯示.doc_第2頁
【51單片機(jī)】溫度傳感器DS18B20程序 LCD1602顯示.doc_第3頁
【51單片機(jī)】溫度傳感器DS18B20程序 LCD1602顯示.doc_第4頁
【51單片機(jī)】溫度傳感器DS18B20程序 LCD1602顯示.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

資料收集于網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系網(wǎng)站刪除仿真截圖:/仿真文件網(wǎng)盤地址:/s/1qW8sGQK/程序:#include#include #define uchar unsigned char #define uint unsigned intsbit P00 = P00;sbit P01 = P01;sbit P02 = P02;sbit P03 = P03;sbit P04 = P04;sbit P05 = P05;sbit P06 = P06;sbit P07 = P07;sbit P10 = P10;sbit P11 = P11;sbit P12 = P12;sbit P13 = P13;sbit P14 = P14;sbit P15 = P15;sbit P16 = P16;sbit P17 = P17;sbit P20 = P20;sbit P21 = P21;sbit P22 = P22;sbit P23 = P23;sbit P24 = P24;sbit P25 = P25;sbit P26 = P26;sbit P27 = P27;sbit P30 = P30;sbit P31 = P31;sbit P32 = P32;sbit P33 = P33;sbit P34 = P34;sbit P35 = P35;sbit P36 = P36;sbit P37 = P37;/* DS18B20 *#define DQ P17/*精確延時(shí)函數(shù)*/void delay10us(void) /誤差 0us unsigned char a,b; for(b=1;b0;b-) for(a=2;a0;a-);void delay20us(void) /誤差 0us unsigned char a,b; for(b=1;b0;b-) for(a=7;a0;a-);void delay30us() /誤差 0us unsigned char a,b; for(b=3;b0;b-) for(a=3;a0;a-);void delay100us() /誤差 0us unsigned char a,b; for(b=1;b0;b-) for(a=47;a0;a-);void delay200us(void) /誤差 0us unsigned char a,b; for(b=1;b0;b-) for(a=97;a0;a-);void delay500us() /誤差 0us unsigned char a,b; for(b=71;b0;b-) for(a=2;a0;a-);void DS18B20_init() /DS18B20初始化 復(fù)位DQ = 1;_nop_();_nop_();_nop_();_nop_();/延時(shí)幾個(gè)時(shí)鐘周期 保證DQ引腳穩(wěn)定在高電平DQ = 0;delay500us();/最短為480us的低電平信號(hào) 復(fù)位DQ = 1; /拉高總線 15-60us delay30us();delay200us();/延時(shí)足夠時(shí)間 復(fù)位基本上都會(huì)成功 因此不必再判斷是否復(fù)位成功DQ = 1;/釋放總線uchar Read_One_Byte()uchar i;uchar byte = 0;for(i = 0;i = 1;delay20us();DQ = 1;/給脈沖 產(chǎn)生讀時(shí)間間隙delay10us();/延時(shí)一定時(shí)間后,讀DQ的值if(DQ) byte |= 0x80;/讀得DQ為1 將1寫到dat最高位 ;讀得DQ為0 不必處理delay100us();DQ = 1;return(byte);void Write_One_Byte(uchar byte)uchar i = 0;for(i = 0;i = 1; int Read_Temp() /*讀取溫度值*/ 每次讀寫均要先復(fù)位 int t;float tep;uchar a,b;DS18B20_init();Write_One_Byte(0xcc);/跳過ROM命令 單個(gè)傳感器所以不必讀取ROM里的序列號(hào)Write_One_Byte(0x44);/開始轉(zhuǎn)換DS18B20_init();Write_One_Byte(0xcc);/跳過ROM命令Write_One_Byte(0xbe);/讀寄存器,共九字節(jié),前兩字節(jié)為轉(zhuǎn)換值a = Read_One_Byte(); /a存低字節(jié)b = Read_One_Byte(); /b存高字節(jié)t = b;t 0;c-) for(b=142;b0;b-) for(a=2;a0;a-);/*/*字符串復(fù)制函數(shù)*void string_copy(uchar *target,uchar *source)/字符串復(fù)制 target:目標(biāo) source:源uchar i = 0;for(i = 0;sourcei != 0;i+)/注意target的長度 無保護(hù)措施!targeti = sourcei;targeti = 0;/*字符串比較函數(shù)*uchar string_cmp(uchar *target,uchar *source)/字符串比較 target:目標(biāo) source:源uchar revalue;uchar i = 0;for(i = 0;targeti != 0 & sourcei != 0;i+) /兩個(gè)都不等于0才執(zhí)行 出現(xiàn)一個(gè)等于0就跳出if(targeti = sourcei)revalue = 1;elserevalue = 0;break;if(revalue = 1)if(targeti = 0 & sourcei = 0)revalue = 1;elserevalue = 0;return(revalue);*/* LCD */LCD基本函數(shù):void busy_check() /忙碌檢測/*RW = 1; /讀RS = 0;/指令寄存器LCD_DATA = 0xFF;/實(shí)驗(yàn)證明讀數(shù)時(shí)要將I/O口要置1 LCDEN = 0;_nop_();_nop_();_nop_();_nop_();LCDEN = 1;/ EN高電平讀信息 負(fù)跳變執(zhí)行指令_nop_();_nop_();_nop_();_nop_();while(1)if(LCD_BUSY = 0)/P07 = 0跳出循環(huán)break; */delayms(2);/仿真時(shí)用延時(shí)法 下載到真實(shí)單片機(jī)上時(shí),將這句注釋掉,采用上面的語句。void lcdwrcom(uchar command)/寫指令 busy_check();RW = 0;/寫 RS = 0;/指令寄存器 LCD_DATA = command;LCDEN = 1;/負(fù)跳變寫入指令_nop_();_nop_();_nop_();_nop_();LCDEN = 0;void lcdwrdata(uchar lcd_data)/寫數(shù)據(jù)數(shù)字、字母、標(biāo)點(diǎn)符號(hào)都是數(shù)據(jù)busy_check();RW = 0;/寫 RS = 1;/數(shù)據(jù)寄存器 LCD_DATA = lcd_data; LCDEN = 1;/負(fù)跳變寫入指令_nop_();_nop_();_nop_();_nop_();LCDEN = 0;void lcd_init()delayms(15);/必要 lcd1602上電到電壓穩(wěn)定需要時(shí)間 RW = 0;/寫RS = 0;/指令寄存器 LCD_DATA = 0x38;/ 0x38設(shè)置顯示模式為:16X2 顯示,5X7 點(diǎn)陣,8 位數(shù)據(jù)接口 LCDEN = 1;_nop_();_nop_();_nop_();_nop_();LCDEN = 0;delayms(5);lcdwrcom(0x0c);/打開顯示 無光標(biāo) 不閃爍lcdwrcom(0x06);/指令3 光標(biāo)右移 屏幕所有文字移動(dòng)無效lcdwrcom(0x01);/ 清顯示,光標(biāo)復(fù)位到地址00H位置。/LCD擴(kuò)展函數(shù):void address(uchar x,uchar y) /定位下一步要寫數(shù)的地址uchar location;if(x = 0) location = 0x80|y;elselocation = 0xC0|y; lcdwrcom(location);void printchar(uchar x,uchar y,uchar letter)/顯示字母、單個(gè)字符address(x,y);lcdwrdata(letter);void printword(uchar x,uchar y,uchar *word) /顯示單詞(字符數(shù)組)uchar i = 0;for(i = 0;wordi != 0;i+)address(x,y + i);lcdwrdata(wordi);/*void printuint(uchar x,uchar y,uchar num_ws_max,uint num)/顯示無符號(hào)整形 065535 x:行 y:列 num_ws_max 變量的最大位數(shù)uchar i = 0; uchar str5 = 0x20,0x20,0x20,0x20,0x20;if(num = 10000)str0 = num/10000 + 0;str1 = num%10000/1000 + 0;str2 = num%1000/100 + 0;str3 = num%100/10 + 0;str4 = num%10 + 0; /str5 = 0; /手動(dòng)加字符串結(jié)束標(biāo)志else if(num = 1000)str0 = num/1000 + 0;str1 = num%1000/100 + 0;str2 = num%100/10 + 0;str3 = num%10 + 0;str4 =0;else if(num = 100)str0 = num/100 + 0;str1 = num%100/10 + 0;str2 = num%10 + 0;str3 = 0;else if(num =10)str0 = num/10 + 0;str1 = num%10 + 0;str2 = 0;else if(num = 0)str0 = num + 0;str1 = 0; for(i = 0;i = 5;i+)/uint類型 最大值65535 為5位數(shù)if(stri != 0 & i num_ws_max)address(x,y + i);lcdwrdata(stri);else if(stri = 0 & i num_ws_max)address(x,y+i);lcdwrdata( );/空格 / 實(shí)現(xiàn)功能:在此變量的位數(shù)范圍內(nèi),把沒數(shù)字的位存0x20(空格) /例如:最大有3位:999 當(dāng)變?yōu)?9時(shí),存為9+0 9+0 0x20*/void printtemp(uchar x,uchar y ,uint temp)/顯示溫度 顯示一位小數(shù) 【顯示效果相當(dāng)于將一個(gè)數(shù)除以10并保存一位小數(shù)】if(temp 100)address(x,y);lcdwrdata(temp/10 + 0);address(x,y + 1);lcdwrdata(.);address(x,y + 2);lcdwrdata(temp%10 + 0);address(x,y + 3);lcdwrdata( );address(x,y + 4);lcdwrdata( );else if(temp 1000)address(x,y);lcdwrdata(temp/100 + 0);address(x,y + 1);lcdwrdata(temp%100/10 + 0);address(x,y + 2);lcdwrdata(.);address(x,y + 3);lcdwrdata(temp%10 + 0);address(x,y + 4);lcdwrdata( );else if(temp 0 )printchar(0,5,+);printtemp(0,6,temp);目前,上海市創(chuàng)業(yè)培訓(xùn)中心已開辦大學(xué)生創(chuàng)業(yè)培訓(xùn)班,共招收上海交通大學(xué)、上海商業(yè)職業(yè)技術(shù)學(xué)院等應(yīng)屆畢業(yè)生人。3、你是否購買過DIY手工藝制品?else if(temp = 0)(2) 缺乏經(jīng)營經(jīng)驗(yàn)培養(yǎng)動(dòng)手能力 學(xué)一門手藝 打發(fā)時(shí)間 興趣愛好printchar(0,5, );printchar(0,6,0);據(jù)上述部分的分析可見,我校學(xué)生就達(dá)4000多人。附近還有兩所學(xué)校,和一些居民樓。隨著生活水平的逐漸提高,家長給孩子的零用錢也越來越多,人們對(duì)美的要求也越來越高,特別是大學(xué)生。他們總希望自己的無論是衣服還是首飾都希望與眾不同,能穿出自己的個(gè)性。但在我們美麗的校園里缺少自己的個(gè)性和琳瑯滿目的飾品,所以我們的小飾品店存在的競爭力主要是南橋或是市區(qū)的。這給我們小組的創(chuàng)業(yè)項(xiàng)目提供了一個(gè)很好的市場機(jī)會(huì)。2、Google網(wǎng)站else 一、消費(fèi)者分析大學(xué)生個(gè)性化消費(fèi)增多是一種趨勢。當(dāng)前社會(huì)、經(jīng)濟(jì)飛速發(fā)展,各種新的消費(fèi)品不斷增多,流行文化時(shí)尚飛速變化,處于校園與社會(huì)兩者之間的大學(xué)生肯定會(huì)受影響。目前在大學(xué)校園,電腦、手機(jī)、CD、MP3、錄音筆被稱為大學(xué)生的“五件武器”。除了實(shí)用,這也是一種 表明自己生活優(yōu)越的炫耀性的東西?,F(xiàn)下很大一部分大學(xué)生中的“負(fù)債消費(fèi)”表現(xiàn)的典型的超前享樂和及時(shí)行樂其消費(fèi)項(xiàng)目多半是用于奢侈浪

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論