基于單片機的溫濕度傳感器課程設(shè)計報告書_第1頁
基于單片機的溫濕度傳感器課程設(shè)計報告書_第2頁
基于單片機的溫濕度傳感器課程設(shè)計報告書_第3頁
基于單片機的溫濕度傳感器課程設(shè)計報告書_第4頁
基于單片機的溫濕度傳感器課程設(shè)計報告書_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE27 / NUMPAGES27基于單片機的溫濕度傳感器課程設(shè)計摘 要由于溫度與濕度不管是從物理量本身還是在實際人們的生活中都有著密切的關(guān)系,所以溫濕度一體的傳感器就會相應(yīng)產(chǎn)生。 DHT11與單片機之間能采用簡單的單總線進行通信,僅僅需要一個I/O口。操作簡單,使用基亞5110二手屏幕顯示DHT11傳感器讀出來的溫度和濕度值。關(guān)鍵字:AT89S52;5110液晶;DHT11傳感器;單總線AbstractBecause of the temperature and the humidity from both the physical quantity itself or in the

2、actual life of people are closely related, so the temperature and humidity sensor integrated will arise accordingly. Between DHT11 and SCM can adopt the simple single bus, only need a I/O port. Simple operation, using the base of 5110 secondhand screen display DHT11 sensor Read out the temperature a

3、nd humidity.Keywords: AT89S52; DHT11 5110 LCD; sensor; single bus目 錄 引 言 11.1 DHT11描述21.2 管腳排列21.3 應(yīng)用電路連接說明21.4 DHT11數(shù)據(jù)結(jié)構(gòu)31.5 DHT11的傳輸時序31.5.1 DHT11開始發(fā)送數(shù)據(jù)流程31.5.2主機復(fù)位信號和DHT11響應(yīng)信號 31.5.3數(shù)字0信號表示方法31.5.4數(shù)字1信號表示方法42、諾基亞5110液晶簡介(PCD8544驅(qū)動)4 2.1 引腳4 2.2 功能描述:52.2.1 地址計數(shù)器 (AC)52.2.2 初始化52.2.3復(fù)位的作用62.2.4顯示控

4、制62.2.5 串行接口時序62.2.6 指令集 6總結(jié)7辭85、參考文獻96、附錄10 5.1 實驗總框架圖10 5.2 硬件部分105.2.1硬件原理圖105.2.2 硬件PCB圖115.2.3 所需元器件115.3 實驗效果11 5.4 實驗軟件程序12引 言可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個8位單片機相連接。該產(chǎn)品具有通信便捷、超快響應(yīng)、抗干擾能力強等優(yōu)點。每個DHT11傳感器都在OTP存中存入了在濕度校驗室中獲得的校準(zhǔn)系數(shù)。校準(zhǔn)系數(shù)以程序的形式儲存,在傳感器部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單總線串行接口,僅需1個I/O口即

5、可實現(xiàn)對溫度和濕度的同時測量,使系統(tǒng)集成變得簡易快捷,小體積、低功耗,使其成為一種溫濕度測量原件的不錯選擇。是居家溫濕度表不錯的傳感器件。1.1 DHT11描述DHT11是奧松生產(chǎn)的一款濕溫度一體化的數(shù)字傳感器。該傳感器包括一個電阻式測濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。通過單片機等微處理器簡單的電路連接就能夠?qū)崟r的采集本地濕度和溫度。DHT11與單片機之間能采用簡單的單總線進行通信,僅僅需要一個I/O口。傳感器部濕度和溫度數(shù)據(jù)40Bit的數(shù)據(jù)一次性傳給單片機,數(shù)據(jù)采用校驗和方式進行校驗,有效的保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。DHT11功耗很低,5V電源電壓下,工作平均最大電流0

6、.5mA。性能指標(biāo)和特性如下: 1、工作電壓圍:3.5V-5.5V 2、工作電流 :平均0.5mA 3、濕度測量圍:2090RH 4、溫度測量圍:050 5、濕度分辨率 :5RH 8位 6、溫度分辨率 :1 8位 7、采樣周期 :1S 8、單總線結(jié)構(gòu) 9、與TTL兼容(5V)1.2 管腳排列 :PIN名稱注釋1VDD供電(3-5V)2DATA串行數(shù)據(jù),單總線3NC懸空4GND電源地1.3 應(yīng)用電路連接說明 DHT11數(shù)字濕溫度傳感器連接方法極為簡單。第一腳接電源正,第四腳接電源地端。數(shù)據(jù)端為第二腳??芍苯咏又鳈C(單片機)的I/O口。為提高穩(wěn)定性,建議在數(shù)據(jù)端和電源正之間接一只1K的上拉電阻。第

7、三腳為空腳,此管腳懸空不用。 因為DHT11是數(shù)字傳感器,所以建議在電源正引腳接上濾波電容以提高穩(wěn)定性。1.4 DHT11數(shù)據(jù)結(jié)構(gòu) DHT11數(shù)字濕溫度傳感器采用單總線數(shù)據(jù)格式。即,單個數(shù)據(jù)引腳端口完成輸入輸出雙向傳輸。其數(shù)據(jù)包由5Byte(40Bit)組成。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明。一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù) +8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù) +8bit校驗和 校驗和數(shù)據(jù)為前四個字節(jié)相加。 傳感器數(shù)據(jù)輸出的是未編碼的二進制數(shù)據(jù)。數(shù)據(jù)(濕度、溫度、整數(shù)、小數(shù))之間應(yīng)該分開處理。如果,某次從傳感器

8、中讀取如下5Byte數(shù)據(jù): byte4 byte3 byte2 byte1 byte0 00101101 00000000 00011100 00000000 01001001 整數(shù) 小數(shù) 整數(shù) 小數(shù) 校驗和 濕度 溫度 校驗和 由以上數(shù)據(jù)就可得到濕度和溫度的值,計算方法: humi (濕度)= byte4 . byte3=45.0 (RH) temp (溫度)= byte2 . byte1=28.0 ( ) Jiaoyan=byte4+byte3+byte2+byte1=73(=humi+temp)(校驗正確) 注意:DHT11一次通訊時間最大3ms,主機連續(xù)采樣間隔建議不小于100ms。1

9、.5 DHT11的傳輸時序1.5.1、DHT11開始發(fā)送數(shù)據(jù)流程主機發(fā)送開始信號后,延時等待20us-40us后讀取DH11T的回應(yīng)信號,讀取總線為低電平,說明DHT11發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以低電平開始,格式見下面圖示。如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),請檢查線路是否連接正常。 VCC主機開始 DHT響應(yīng)輸出 數(shù)據(jù)0 數(shù)據(jù)1 GND 拉高并等待 準(zhǔn)備輸出 1.5.2主機復(fù)位信號和DHT11響應(yīng)信號 VCC 主機拉高20-40us DHT拉高40-50us GND 主機至少拉低18ms DHT拉高40-50us傳送指令

10、開始1.5.3數(shù)字0信號表示方法VCC26-28us 表示 0下一位開始GND12-14us1BIT開始1.5.4數(shù)字1信號表示方法 VCC116-118us 表示 1下一位開始GND1BIT開始 12-14us2、諾基亞5110液晶簡介(PCD8544驅(qū)動)特征:單芯片LCD 控制/驅(qū)動48 行,84 列輸出顯示數(shù)據(jù)RAM 48*84 位芯片集成:LCD 電壓發(fā)生器(也可以使用外部電壓供應(yīng))LCD偏置電壓發(fā)生器振蕩器不需要外接元件(也可以使用外部時鐘)外部RES(復(fù)位)輸入引腳串行界面最高4.0Mbits/SCMOS 兼容輸入混合速率:48邏輯電壓圍VDD 到VSS:2.7V3.3V顯示電壓

11、圍VLCD 到VSS:6.08.5V LCD部電壓發(fā)生器(充許電壓發(fā)生器)6.09.0V LCD 外部電壓供應(yīng)(電壓發(fā)生器關(guān)閉)低功耗,適用于電池供電系統(tǒng)關(guān)于VLCD 的溫度補償使用溫度圍:-25702.1 引腳SDIN串行數(shù)據(jù)輸入端SCLK串行時鐘輸入端D/C數(shù)據(jù)/命令SCE芯片使能RES外部復(fù)位輸入端SDIN:串行數(shù)據(jù)線 輸入:數(shù)據(jù)線。SCLK: 串行時鐘線 輸入:時鐘信號: 0.0 4.0 Mbits/s.D/C: 模式選擇 輸入:選擇命令/地址或輸入數(shù)據(jù) SCE: 芯片使能使能引腳充許輸入數(shù)據(jù),低電平有效。RES:復(fù)位此信號會復(fù)位設(shè)備,應(yīng)用于初始化芯片。低電平有效。2.2 功能描述:2

12、.2.1地址計數(shù)器 (AC) 地址計數(shù)器為寫入顯示數(shù)據(jù)存儲器指定地址。X地址 X6X0和Y地址Y2Y0 分別設(shè)置。寫入操作之后,地址計數(shù)器依照V標(biāo)志自動加1。顯示數(shù)據(jù)存儲器 (DDRAM)。DDRAM是存儲顯示數(shù)據(jù)的48*84位靜態(tài)RAM。RAM分為6排,每排84字節(jié)(6*8*84位)。訪問RAM期間,數(shù)據(jù)通過串行接口傳輸。這里X地址與列輸出直接通信。2.2.2 初始化 接電源后,部寄存器和RAM的容不確定。必須應(yīng)用一個RES脈沖。注意,不正確的復(fù)位是危險的,可能會損壞設(shè)備。所有部寄存器在指定的時間,通過31腳的外部RES脈沖(低電平)復(fù)位。無論如何,RAM的容仍然不確定。2.2.3復(fù)位的作用

13、 復(fù)位后,LCD驅(qū)動器有下列狀態(tài):電源節(jié)省模式 (位 PD = 1)水平尋址 (位 V = 0)常規(guī)指令設(shè)置(位 H = 0)顯示頁(位 E = D = 0)地址計數(shù)器 X6 至 X0 = 0; Y2 至 Y0 = 0溫度控制模式(TC1 TC0 = 0)偏置系統(tǒng) (BS2 至 BS0 = 0)VLCD 等于 0, HV 發(fā)生器為關(guān)閉狀態(tài)(VOP6 至 VOP0 = 0)加電后,RAM容不確定。2.2.4顯示控制 位 D 和 E 位 D 和 E 選擇顯示模式 設(shè)置RAM的 Y 地址 定義顯示RAM的Y尋址向量。Y的圍是0至5 設(shè)置RAM的 X 地址 X 地址指向列。X的圍是0至83(53H)。

14、位 V 當(dāng) V = 0,選擇水平尋址。數(shù)據(jù)寫入DDRAM 當(dāng) V = 1,選擇垂直尋址。數(shù)據(jù)寫進DDRAM位 H 當(dāng) H = 0, 可以執(zhí)行顯示控制,設(shè)置Y地址和設(shè)置X地址; 當(dāng) H = 1,可以執(zhí)行其它命令。 操作電壓 VLCD 可以用軟件設(shè)置,值根據(jù)液晶來選擇。VLCD = a + (VOP6 to VOP0)x b V.對于PCD8544,a = 3.06 ,b = 0.06在室溫下的編程圍為3.0010.68。注意如果VOP 6to VOP0設(shè)為0時,會關(guān)閉負(fù)荷的吸取。例如混合比 1 : 48, 適當(dāng)?shù)囊壕Р僮麟妷?,Vth 是液晶的極限使用電壓。警告, 在低溫下增加VOP 時,在25情

15、況下,VOP不能超過8.5V極限值。2.2.5 串行接口時序2.2.6 指令集 指令D/C命令字描述DB7DB6DB5DB4DB3DB2DB1DB0(H=0 or 1)NOP000000000空操作功能設(shè)置000100PDVH寫數(shù)據(jù)1D7D6D5D4D3D2D1D0寫數(shù)據(jù)到顯示 RAMH=0保留0000000XX不可使用顯示控制000001D0E設(shè)置顯示配置保留00001XXXX不可使用設(shè)置RAM的Y地址001000Y2Y1Y0Y的圍是0至5設(shè)置RAM的x地址01X6X5X4X3X2X1X0X的圍是0至83H=1保留000000001不可使用保留00000001X不可使用溫度控制0000001

16、TC1TC0設(shè)置溫度系數(shù)(TC x)保留000001XXX不可使用偏置系統(tǒng)000010BS2BS1BS0設(shè)置偏置系統(tǒng)保留001XXXXXX不可使用設(shè)置Vop01Vop6Vop5Vop4Vop3Vop2Vop1Vop0寫VOP 到寄存器PD芯片是活動的芯片處于掉電模式V水平尋址垂直尋址H使用基本指令集使用擴展指令集D and E00顯示空白01普通模式10開所有顯示段11反轉(zhuǎn)映象模式TC1 and TC000VLCD 溫度系數(shù) 001VLCD 溫度系數(shù) 110VLCD 溫度系數(shù) 211VLCD 溫度系數(shù) 33 總結(jié):通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)課本知識,在設(shè)計過程中雖然遇到了一些問

17、題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗不足。因為在試驗中,我畫PCB時忘記了連接晶振電容的地引腳,導(dǎo)致做出板后用導(dǎo)線連接,降低了電路板的美觀。忽略了AT89S52的第31引腳接VCC才是訪問片存儲器,也導(dǎo)致了我燒壞了一片DHT11傳感器。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。 辭首先感學(xué)院給了我實際動手做電路板的機會,讓我對自己專業(yè)知識有更深一步的認(rèn)識。讓我感受到我們工科生要不斷提高自己的動手能力,日后做電子作品才能更好,更快地完成。在此感老師在我寫論文時給的批注和改正。讓我對本科論文的編寫格式有更深的理

18、解和認(rèn)識更深刻。參考文獻:諾基亞5110液晶中文手冊奧松DHT11溫濕度傳感器說明書1 郭天祥.新概念51單片機C語言教程入門、提高、開發(fā)、拓展全攻略.:電子工業(yè),20092 譚浩強.C程序設(shè)計教程.:清華大學(xué),2007.7附 錄5.1 實驗總框架圖:DHT11采集溫濕度 CPU AT89S52提取,處理實時溫濕度值 液晶5110顯示當(dāng)前溫濕度值5.2 硬件部分:由AT89S52最小系統(tǒng),諾基亞5110液晶和DHT11溫濕度傳感器組成,電路相當(dāng)簡單。5.2.1硬件原理圖5.2.2 硬件PCB圖5.2.3 硬件所需元器件CommentDesignatorFootprintQuantity10UF

19、C1, C6, C7RB13104C2RAD0.15130pC3, C4RAD0.152100nfC5RAD0.151ledD1diode111.0592MD2晶振1JTAGJ8JTAG1Header 3X2AP1HDR2X3_CEN1Header 20P2, P4HDR1X202res10kP3HDR1X91RESR1RES11kR2, R3AXIAL0.3210kR4AXIAL0.31自鎖S11SW-PB*S2sw-pb15110U151101AT89S52U2DIP401DHT11U415.3 實驗效果: 上電后,5110液晶顯示第二,三行分別顯示溫度,濕度值。接著在第一行顯示學(xué)號100

20、0220620。停留1秒鐘后,切換顯示能劍,再停留1秒后,就動態(tài)顯示基于單片機的溫濕度傳感器。5.4 軟件程序流程圖:5.4.1軟件流程圖: 開始 5110復(fù)位 初始化5110 5110清屏 5110顯示溫度: 濕度: %RH 進入while(1) 循環(huán) 執(zhí)行DHT11_ReadTempAndHumi(); 讀取溫濕度當(dāng)前值 顯示溫濕度值顯示名字 李能劍顯示學(xué)號 10000220620 Flag=1flag=2 判flag 動態(tài)顯示 基于單片機的溫 濕度傳感器5.4.2 軟件程序#include reg52.hsbit res =P27;sbit sce =P26;sbit dc =P25;s

21、bit sdin =P24;sbit sclk =P23;sbit dht11=P20;#define OK 1#define ERROR 0#define NUMBER 20#define SIZE 5unsigned char flag=1;unsigned char status; / 存放五字節(jié)數(shù)據(jù)的數(shù)組unsigned char value_arraySIZE; /* 可在其他的文件引用溫濕度值, 實際是溫度的整數(shù)的10倍;*/* 如dht11讀回的溫度是 26,則temp_value = 260, 濕度同理*/unsigned char k=0;unsigned int code

22、hanzi=0 x82,0 x82,0 xFF,0 xAA,0 xAA,0 xAA,0 xAA,0 xAA,0 xFF,0 x82,0 x82,0 x00,0 x0A,0 x09,0 x0A,0 x0A,0 x0A,0 x0F,0 x0A,0 x0A,0 x0A,0 x09,0 x0A,0 x00,/*基,0*/0 x20,0 x21,0 x21,0 x21,0 x21,0 xFF,0 x21,0 x21,0 x21,0 x21,0 x20,0 x00,0 x00,0 x00,0 x00,0 x08,0 x08,0 x0F,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00

23、,/*于,1*/0 x00,0 x7C,0 x55,0 x56,0 x54,0 xFC,0 x54,0 x56,0 x55,0 x7C,0 x00,0 x00,0 x01,0 x01,0 x01,0 x01,0 x01,0 x0F,0 x01,0 x01,0 x01,0 x01,0 x01,0 x00,/*單,2*/0 x00,0 x00,0 xFE,0 x90,0 x90,0 x90,0 x90,0 x9F,0 x90,0 x10,0 x10,0 x00,0 x08,0 x06,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0F,0 x00,0 x00,0 x

24、00,/*片,3*/0 x88,0 x68,0 xFF,0 x28,0 x40,0 xFE,0 x02,0 x02,0 xFE,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0F,0 x08,0 x04,0 x03,0 x00,0 x00,0 x07,0 x08,0 x0E,0 x00,/*機,4*/0 xFC,0 x46,0 x45,0 x44,0 xFC,0 x10,0 x08,0 x27,0 xC4,0 x04,0 xFC,0 x00,0 x0F,0 x04,0 x04,0 x04,0 x0F,0 x00,0 x00,0 x00,0 x08,0 x08,0 x07,0

25、 x00,/*的,5*/0 x22,0 x44,0 x00,0 xC0,0 x5F,0 xD5,0 x55,0 xD5,0 x5F,0 xC0,0 x00,0 x00,0 x04,0 x02,0 x09,0 x0F,0 x08,0 x0F,0 x08,0 x0F,0 x08,0 x0F,0 x08,0 x00,/*溫,6*/0 x11,0 x22,0 x80,0 x3E,0 x2A,0 xEA,0 x2A,0 xEA,0 x2A,0 x3E,0 x80,0 x00,0 x04,0 x02,0 x08,0 x09,0 x08,0 x0F,0 x08,0 x0F,0 x08,0 x09,0 x08

26、,0 x00,/*濕,7*/0 x00,0 xFE,0 x0A,0 x8A,0 xBE,0 xAA,0 xAB,0 xAA,0 xBE,0 x8A,0 x0A,0 x00,0 x08,0 x07,0 x00,0 x08,0 x09,0 x0A,0 x04,0 x04,0 x0A,0 x09,0 x08,0 x00,/*度,8*/0 x20,0 x10,0 xFC,0 x23,0 x24,0 xE4,0 xBC,0 xA7,0 xA4,0 xA4,0 x20,0 x00,0 x00,0 x00,0 x0F,0 x00,0 x00,0 x02,0 x02,0 x04,0 x06,0 x09,0 x

27、00,0 x00,/*傳,9*/0 x00,0 xFE,0 x02,0 xEA,0 xAA,0 xEA,0 x02,0 x9F,0 x62,0 x9B,0 xC2,0 x00,0 x09,0 x06,0 x00,0 x06,0 x08,0 x0A,0 x0D,0 x08,0 x0C,0 x02,0 x0D,0 x00,/*感,10*/0 x20,0 x27,0 xA5,0 xA5,0 x67,0 x38,0 x67,0 xA5,0 xAD,0 x37,0 x20,0 x00,0 x01,0 x0F,0 x0A,0 x0A,0 x0E,0 x00,0 x0E,0 x0A,0 x0A,0 x0F,

28、0 x01,0 x00,/*器,11*/0 x00,0 x88,0 x48,0 xE8,0 x98,0 xFE,0 x88,0 x98,0 xA8,0 x48,0 xC8,0 x00,0 x00,0 x08,0 x08,0 x08,0 xC8,0 x7C,0 x0A,0 x09,0 x09,0 x08,0 x08,0 x00,/*,0*/0 x00,0 xB0,0 xAC,0 xA6,0 xA8,0 xB0,0 x20,0 x7E,0 x48,0 x48,0 x64,0 x00,0 x00,0 xFF,0 x12,0 x12,0 xD2,0 x7F,0 x00,0 x7F,0 x44,0 x4

29、6,0 x62,0 x00,/*能,1*/0 x00,0 x60,0 x10,0 x4C,0 x46,0 x48,0 x10,0 x00,0 xF8,0 x00,0 xFE,0 x00,0 x00,0 x43,0 x4C,0 x63,0 x24,0 x3E,0 x21,0 x00,0 x0F,0 xC0,0 x7F,0 x00,/*劍,2*/0 x00,0 x30,0 x48,0 x30,0 xE0,0 x10,0 x10,0 x08,0 x10,0 x30,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x1F,0 x30,0 x20,0 x20,0 x20,0

30、x10,0 x00,0 x00,/*,15*/0 x00,0 x00,0 xF8,0 x88,0 x78,0 x00,0 x80,0 x60,0 x10,0 x08,0 x00,0 x00,0 x00,0 x00,0 x20,0 x18,0 x04,0 x03,0 x00,0 x1E,0 x22,0 x3E,0 x00,0 x00,/*,16*/0 x00,0 x70,0 x34,0 xB8,0 xB0,0 xBE,0 xB0,0 xB0,0 xBC,0 x32,0 x70,0 x00,0 x00,0 x08,0 x08,0 x08,0 xC8,0 xC8,0 x7E,0 x0B,0 x09,

31、0 x08,0 x08,0 x00,/*學(xué),17*/0 x00,0 x80,0 x80,0 xBC,0 xA4,0 xA4,0 xA4,0 xA4,0 xBC,0 x80,0 x80,0 x00,0 x00,0 x00,0 x00,0 x06,0 x05,0 x04,0 xC4,0 x44,0 x74,0 x0C,0 x00,0 x00,/*號,18*/0 x00,0 x20,0 xFC,0 x22,0 xE0,0 x60,0 x1C,0 x10,0 xFE,0 x10,0 x10,0 x00,0 x00,0 x43,0 x34,0 x1F,0 x30,0 x43,0 x43,0 x43,0

32、x7F,0 x43,0 x43,0 x40,/*姓,19*/0 x00,0 x00,0 x20,0 x18,0 x6E,0 xC8,0 x88,0 x68,0 x38,0 x08,0 x00,0 x00,0 x00,0 x04,0 x04,0 xFE,0 x22,0 x23,0 x22,0 x22,0 x22,0 xFE,0 x00,0 x00,/*名,20*/;unsigned char code zimu=/*- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=6x12 -*/*- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=6x16 -*/0 x00,0 xF0,0 x18,0 x08,0 x18,

33、0 xF0,0 x01,0 x1F,0 x30,0 x20,0 x30,0 x1F,/*0,0*/0 x00,0 x20,0 x20,0 xF8,0 x00,0 x00,0 x00,0 x00,0 x00,0 x3F,0 x00,0 x00,/*1,1*/0 x00,0 x70,0 x18,0 x08,0 x98,0 xF0,0 x00,0 x38,0 x2C,0 x26,0 x23,0 x20,/*2,2*/0 x00,0 x30,0 x18,0 x08,0 x98,0 xF0,0 x0C,0 x1C,0 x30,0 x21,0 x31,0 x1E,/*3,3*/0 x00,0 x00,0

34、xC0,0 x30,0 xF8,0 x00,0 x04,0 x07,0 x04,0 x04,0 x3F,0 x04,/*4,4*/0 x00,0 xF8,0 x88,0 xC8,0 x88,0 x88,0 x00,0 x19,0 x30,0 x20,0 x30,0 x1F,/*5,5*/0 x00,0 xE0,0 x98,0 x88,0 x98,0 x30,0 x00,0 x1F,0 x31,0 x20,0 x30,0 x1F,/*6,6*/0 x00,0 x08,0 x08,0 x08,0 xC8,0 x78,0 x00,0 x00,0 x20,0 x3E,0 x03,0 x00,/*7,7

35、*/0 x00,0 xF0,0 x98,0 x08,0 x98,0 xF0,0 x00,0 x1E,0 x31,0 x21,0 x31,0 x1E,/*8,8*/0 x00,0 xF0,0 x18,0 x08,0 x18,0 xF0,0 x00,0 x19,0 x33,0 x22,0 x31,0 x0F,/*9,9*/0 x00,0 x00,0 x80,0 x00,0 x00,0 x00,0 x00,0 x00,0 x31,0 x00,0 x00,0 x00,/*:,10*/0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0C,0 x00,

36、0 x00,0 x00,/*.,11*/0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,/* ,12*/0 x08,0 xF8,0 x08,0 x08,0 xF0,0 x00,0 x00,0 x3F,0 x01,0 x0F,0 x30,0 x00,/*R,13*/0 x08,0 xF8,0 x00,0 x00,0 xF8,0 x08,0 x00,0 x3F,0 x01,0 x01,0 x3F,0 x00,/*H,14*/; void delay_ms(unsigned char t) unsigne

37、d char i,j;for(i=0;it;i+) for(j=0;j80;j+) ; void delay_us(unsigned char t) unsigned char j;for(j=0;jt;j+) ; /*LCD_write_byte: 使用SPI接口寫數(shù)據(jù)到LCD輸入?yún)?shù):dt:寫入的數(shù)據(jù);command :寫數(shù)據(jù)/命令選擇;*/void LCD_write_byte(unsigned char dt, unsigned char command)unsigned char i; sce=0;if(command=1) dc=1; else dc=0; for(i=0;i8;i

38、+) if(dt&0 x80) sdin=1; else sdin=0;dt=dt1;sclk=0; sclk=1; delay_ms(1);dc=1;sce=1;/sdin=1;/LCD_init: 3310LCD初始化void LCD_init(void)res=0; delay_ms(1); res=1; LCD_write_byte(0 x21,0);/初始化Lcd,功能設(shè)定使用擴充指令LCD_write_byte(0 xd0,0);/設(shè)定液晶偏置電壓LCD_write_byte(0 x20,0);/使用基本指令LCD_write_byte(0 x0C,0);/設(shè)定顯示模式,正常顯示/

39、LCD_set_XY: 設(shè)置LCD坐標(biāo)函數(shù)/輸入?yún)?shù):X:083 Y:05void LCD_set_XY(unsigned char X, unsigned char Y)LCD_write_byte(0 x40 | Y, 0);/ columnLCD_write_byte(0 x80 | X, 0);/ row /LCD_clear: LCD清屏函數(shù)void LCD_clear(void)unsigned char t;unsigned char k;LCD_set_XY(0,0);for(t=0;t6;t+) for(k=0;k84;k+) LCD_write_byte(0 x00,1);

40、 /*LCD_write_shu: 顯示8(寬)*16(高)點陣列數(shù)字字母符號等半角類輸入?yún)?shù):c:顯示的字符;*/void Display_zimu(unsigned char row, unsigned char page,unsigned char c) /row:列 page:頁 dd:字符unsigned char i; LCD_set_XY(row*6, page);/ 列,頁 for(i=0; i6;i+) LCD_write_byte(zimuc*12+i,1); LCD_set_XY(row*6, page+1);/ 列,頁 for(i=6; i12;i+) LCD_writ

41、e_byte(zimuc*12+i,1); void Display_hanzi(unsigned char row, unsigned char page,unsigned char c) /row:列 page:頁 dd:字符unsigned char i; LCD_set_XY(row*6, page);/ 列,頁 for(i=0; i12;i+) LCD_write_byte(hanzic*24+i,1); LCD_set_XY(row*6, page+1);/ 列,頁 for(i=12; i 0; x-) for(y = 124; y 0; y-); void DHT11_Delay

42、_10us(void) unsigned char i; i-; i-; i-; i-; i-; i-; /* 讀一個字節(jié)的數(shù)據(jù)*/ unsigned char DHT11_ReadValue(void) unsigned char count, value = 0, i; status = OK; /設(shè)定標(biāo)志為正常狀態(tài) for(i = 8; i 0; i-) /高位在先 value = 1; count = 0; while(dht11 = 0 & count+ = NUMBER) status = ERROR; /設(shè)定錯誤標(biāo)志 return 0; /函數(shù)執(zhí)行過程發(fā)生錯誤就退出函數(shù) DHT1

43、1_Delay_10us(); /26-28us的高電平表示該位是 0, 為70us 高電平表該位 1 DHT11_Delay_10us(); DHT11_Delay_10us(); if(dht11 != 0) /延時30us 后檢測數(shù)據(jù)線是否還是高電平 value+; /進入這里表示該位是 1 while(dht11 != 0 & count+ = NUMBER) status = ERROR; /設(shè)定錯誤標(biāo)志 return 0; return (value); / 讀溫度和濕度函數(shù),讀一次的數(shù)據(jù), 共五字節(jié),讀出成功函數(shù)返回OK, 錯誤返回ERROR unsigned char DHT1

44、1_ReadTempAndHumi(void) unsigned char i = 0, check_value = 0,count = 0; dht11 = 0; /拉低數(shù)據(jù)線大于 18ms發(fā)送開始信號 Delay_1ms(20); / 需大于 18 毫秒 dht11 = 1; /釋放數(shù)據(jù)線, 用于檢測低電平的應(yīng)答信號 DHT11_Delay_10us(); /延時20-40us,等待一段時間后檢測應(yīng)答信號, 應(yīng)答信號是從機拉低數(shù)據(jù)線80us DHT11_Delay_10us(); DHT11_Delay_10us(); DHT11_Delay_10us(); if(dht11 != 0) / 檢測應(yīng)答信號, 應(yīng)答信號是低電平 return ERROR; /沒應(yīng)答信號 else /有應(yīng)答信號 while(dht11 = 0 & count+ = NUMBER) /檢測計數(shù)器是否超過了設(shè)定的圍 dht11 = 1; return ERROR; /讀數(shù)據(jù)出錯, 退出函數(shù) count = 0; dht11 = 1; /釋放數(shù)據(jù)線 while(dht11 != 0 & count+ = NUMBER) dht11 = 1; return ERROR; /退出函數(shù) for(i = 0; i SIZE; i+) /讀出濕. 溫度值 value_arrayi = DHT11_ReadValu

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論