51單片機lcd1602顯示溫度源程序18b20測溫_第1頁
51單片機lcd1602顯示溫度源程序18b20測溫_第2頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、個人資料整理 僅限學(xué)習(xí)使用1 / 7/III/=/b5E2RGbCAP/=作者:Ni 的年少 WAO 輕狂=/plEanqFDPw/=創(chuàng)建時間:2008.07.03 =/DXDiTa9E3d/=/RTCrpUDGiT/5PCzVD7HxA/jLBHrnAlLg/ DS18b20 溫度傳感器/*注:1、當(dāng)用到循環(huán)左移或右移時 或 ),不能超出變的范圍例如:un sig ned char i,j。j=(i4得到的結(jié)果出錯。un sig ned char j。unsignedint i。j=(i4。得到的結(jié)果正確-biPODXADClKTAL2RSTFu1/ADlP&.2XAD2PD 3怕D

2、3FO.OAIKP0./AMP0.7XAD7卩工喚PSEN叱擔(dān)P2.-3/A11ALEP2.4/A1JEAP1J5JA1SP2J8M14P2.7;A15P1.DP3.O/RXDP1.1PMPI.2P3.2/INTDPI.3P3 3/INTIPI.4PI.5F3.57T1Pl.6p財碩PI.7F3.7/1RDis.代旳匚引203Q_3i85SBSaBb?4毎-R1JLCD1twiceweDOOND 3S1SB2F:斗It26,2L2816NOU TEF1P:-49163iishenton9弍.I:個人資料整理 僅限學(xué)習(xí)使用2 / 72、LCD 的清屏?xí)r間 1.64ms。*/#in cludere

3、g51.h#i ncludeLCD1602.h#in elude vintrin s.h#defi ne uchar un sig ned char#defi ne uint un sig ned int uchartmp4=0,0,0,0。#i ncludeDS18B20.h/ 主程序 /void mai n(voiduchar temp。LCD_i nit(。LCD_write_command(0 x01。/ 清屏顯示 Delay_50Us(50。gotoxy(2,1。LCD_display(NOW TEMP:。gotoxy(2,2。LCD_display(163qishentong。De

4、lay_2Us(200。temp=Ds18b20_Read_Temperature(。Delay_50Us(1000。 /空讀一次,讀出默認(rèn)的85while(1gotoxy(12,1。change(。/Delay_2Us(200。LCD_display(tmp。Delay_50Us(100。/*= 作者:Ni 的年少 WAo 瘋狂=創(chuàng)建時間:2008.06.20=*/#define LCD_DB P0定義 LCD 的數(shù)據(jù)端口sbit LCD_RS=P2A0sbit LCD_RW=P2A1。sbit LCD_E=P2A2#defi ne uchar un sig ned charxHAQX74J

5、0XLDAYtRyKfE個人資料整理 僅限學(xué)習(xí)使用3 / 7#defi ne uint un sig ned int個人資料整理 僅限學(xué)習(xí)使用4 I 7/=延時子函數(shù)= void delay( uint xuinti,j。for(i=x。i0。i-for(j=0。j。/=寫 指令函數(shù)=voidLCD_write_comma nd(uchar comma nd LCD_DB=comma nd。LCD_RS=0 / 指令LCD_RW=0 / 寫入LCD_E=1LCD_E=0delay(1。II 等待執(zhí)行完畢。/=寫數(shù)據(jù)函數(shù)=voidLCD_write_data(uchardatLCD_DB=dat

6、LCD_RS=1 II 數(shù)據(jù)寄存器LCD_RW=0 II 寫入數(shù)據(jù)LCD_E=1LCD_E=0delay(1。II 等待程序執(zhí)行完畢。I*=顯示一個字符子函數(shù)=voidLCD_disp_char(ucharx,uchar y, uchardat uchar address。if(y=1address=0 x80+x。elseaddress=OxcO+x。LCD_write_command(address。LCD_write_data(dat。=*III=延時 1=void delay1( uint xuinti,j。for(j=0。jfor(i=0。i。II=初始化函數(shù)= voidLCD_i

7、nit(void個人資料整理 僅限學(xué)習(xí)使用5 / 7LCD_write_command(0 x38。II 設(shè)置 8 位格式,2 行,5*7LCD_write_command(OxOc。/整體顯示,關(guān)光標(biāo),不閃爍LCD_write_command(0 x06。/設(shè)定輸入方式,增量不移位LCD_write_command(OxO1。/ 清屏顯示 delay(200。/=光標(biāo)定位= voidgotoxy(ucharx,uchar y / x 表示列,y 表示行 uchar address。if(y=1address=0 x80+x。elseaddress=OxcO+x。LCD_write_comma

8、nd(address。/=顯示一個字符串= voidLCD_display(uchar*dat while(*dat!=OLCD_write_data(*dat。dat+。/Zzz6ZB2Ltk/0vzfvkwMI1/=/qyn14ZNXI/=作者:Ni 的年少 WAo 輕狂=/EmxvxOtOco/=創(chuàng)建時間:2008.07.03=/SixE2yXPq5/=/SewMyirQFL/kavU42VRUs/y6v3ALoS89/M2ub6vST nP/ Ds18b20 引腳分配 /0YujCfmUCwsbit DQ=P3A1。/eUts8ZQVRd/延時子程序/sQsAEJkW5Tvoid De

9、lay_2Us(uint us / 微妙延時 while(-us。void Delay_50Us(uint t / 毫秒延時 ucharj。for(。t0。t-個人資料整理 僅限學(xué)習(xí)使用6 / 7for(j=19。j0。j-。/DS18b20 初始化 /DQ = 1。/拉高總線zvpgeqJ1hkDelay_2Us(5。/稍做延時后while(DQ。/若 x=0 則初始化成功,若 x=1 則初始化失敗Delay_2Us(20。/NrpoJac3v1/寫一個字節(jié)的數(shù)據(jù)/1no wfTG4KIvoid Ds18b20_Write(uchardatuchar i。for(i=0。iDQ = 0。_n

10、op_(。DQ=dat&0 x01。Delay_2Us(20。DQ = 1。dat=1。/讀一個字節(jié)的數(shù)據(jù)/ ucharDs18b20_Read(voiduchari,dat。dat=0。/void Ds18b20_l ni tial(voidDQ = 1。_nop_(。DQ = 0。Delay_50Us(12。/ DQt 位7EqZcWLZNXTIrRGchYzg精確延時,大于 480uSlzq7IGf02EGMslasNXkAfjnFLDa5ZotfnNhnE6e5個人資料整理 僅限學(xué)習(xí)使用7 / 7for(i=8。i0。i- DQ = 0。dat=1。DQ = 1。個人資料整理

11、僅限學(xué)習(xí)使用8 / 7_nop_(。if(DQ dat=dat|0 x80。Delay_2Us(20。return(dat。/讀兩個字節(jié)的溫度值/ ucharDs18b20_Read_Temperature(void uchar temp1,temp。int temp2。Ds18b20_Initial(。Ds18b20_Write(0 xcc。Ds18b20_Write(0 x44。Delay_2Us(200。Ds18b20_lnitial(。 Ds18b20_Write(0 xcc。Ds18b20_Write(0 xbe。Delay_2Us(200。temp 仁 Ds18b20_Read(。

12、 temp2=Ds18b20_Read(。temp=(temp1|(temp24 。 return temp。void cha nge(voiduchartp4,temp。temp=Ds18b20_Read_Temperature(。Delay_2Us(250。if(temp&0 xc0=0 xc0temp=temp+1。tp1=(temp/10%10+0。tp2=temp%10+0。tp3=0。 if(tp1=0tmp0=。tmp1=-。tmp2=tp2。 tmp3=0。elsetmpO=-。tmp1=tp1。tmp2=tp2。 tmp3=0。HbmVN777sLV7l4jRB8個人資料整理 僅限學(xué)習(xí)使用9 / 7else tp0=(temp/100%10+0。 tp1=(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論