基于STM32的溫濕度監(jiān)測_第1頁
基于STM32的溫濕度監(jiān)測_第2頁
基于STM32的溫濕度監(jiān)測_第3頁
基于STM32的溫濕度監(jiān)測_第4頁
基于STM32的溫濕度監(jiān)測_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、物聯(lián)網(wǎng)工程設計與實施項目設計項目課題: 基于STM32的溫濕度檢測 院 系: 計算機科學與技術學院專 業(yè): 物聯(lián)網(wǎng)工程項目經(jīng)理:于淵學號: 123921043副 經(jīng) 理:謝金光學號: 123921024項目成員:李周恒學號: 123921002項目成員: 袁桃 學號: 123921048 項目成員: 頡濤 學號: 123921054 項目成員 肖青 學號: 123921025 項目成員 馮錦榮 學號: 123921011 項目成員 唐敏 學號: 123921023 指導教師: 2014 年 12月目錄摘要2Absract3一設計目標4二設計方案4三實驗所需器材5四設計內(nèi)容54.1 STM32模

2、塊54.2 AM2302介紹64.2.1 產(chǎn)品概述64.2.2 應用范圍74.2.3 產(chǎn)品亮點74.2.4 單總線接口定義74.2.5 傳感器性能84.2.6 單總線通信94.3 Nokia 5110 介紹104.3.1 SPI接口時序寫數(shù)據(jù)/命令114.3.2 顯示漢字114.3.4 顯示圖形114.4 原理圖設計114.5 PCB板設計13五實驗軟件設計135.1 溫濕度傳感器DHT22的程序135.2 濕度顯示函數(shù)175.3主函數(shù)程序185.3.1顯屏程序19六作品實物展示27七設計總結28基于STM 32 的溫濕度檢測摘要隨著現(xiàn)代社會的高速發(fā)展,越來越多的科學技術被應用于農(nóng)業(yè)生產(chǎn)領域。

3、在溫室大棚中對溫濕度、二氧化碳濃度等外部參數(shù)的實時準確的測量和調(diào)節(jié)更是保證農(nóng)業(yè)高效生產(chǎn)的重要前提。 本次課程設計中實現(xiàn)了一個基于STM32F103VET6的智能溫濕度檢測系統(tǒng),目的是實現(xiàn)溫濕度的采集和顯示,溫濕度的采集是作為自動化科學中一個必須掌握的檢測技術,也是一項比較實用的技術。本次實驗主要作了如下幾個方面工作:首先通過對實時性、準確性、經(jīng)濟性和可擴展性等四個方向的分析比較之后,選擇了STM32F103VE微控制器作為主控芯片和AM2303溫濕度傳感器來實現(xiàn)對溫濕度數(shù)據(jù)進行采集;在Nokia5110顯示屏上顯示出溫度和濕度,然后詳細介紹了各個模塊的工作原理和硬件電路設計思路,實現(xiàn)了溫濕度數(shù)

4、據(jù)實時準確的測量;之后闡述了系統(tǒng)各個部分的軟件設計思路;最后對系統(tǒng)在實際應用中采集到的數(shù)據(jù)進行了處理,分析了誤差產(chǎn)生的原因,并通過分段線性插值算法對系統(tǒng)非線性誤差進行了校準,同未校準時采集的數(shù)據(jù)相比,校準后的數(shù)據(jù)準確度更高,穩(wěn)定性更好。 在保證測量效果的基礎上,本系統(tǒng)設計中充分考慮到性價比和再次開發(fā)周期性等,具有成本低、設計開發(fā)方便、通用性強等特點,不僅適用于現(xiàn)代農(nóng)業(yè)生產(chǎn)中,還能用于其它工業(yè)控制、機械制造等其它領域,具有一定的市場推廣價值?!娟P鍵詞】: 嵌入式技術,電路設計,STM32,AM2302溫濕度采集,Nokia5110 顯示屏,程序設計AbsractIn the design of

5、the curriculum implements a smart temperature and humidity detection system based on STM32F103VET6, the purpose is to realize the acquisition and display of the temperature and humidity, temperature and humidity of the acquisition as a must master in automation science detection technology, is also

6、a practical technology. This experiment mainly made the following several aspects work: first of all, based on the real-time, accuracy, economy and expansibility etc. After analysis and comparison of four directions, STM32F103VE micro-controller as the master control chip and AM2303 temperature and

7、humidity sensors to achieve temperature and humidity data acquisition; On the Nokia5110 screen display the temperature and humidity, and then introduces in detail the working principle of each module and the hardware circuit design, realized the real-time accurate measurement of temperature and humi

8、dity data; Elaborated the system after each part of the software design idea; Finally, the system in the practical application of dealing with the data collected, analyzed the reasons of the error, and through the piecewise linear interpolation algorithm for system of nonlinear error calibration, co

9、mpared with not calibration data, after calibration data with higher accuracy and better stability.Keywords: embedded technology, circuit design, STM32, collecting AM2302 temperature and humidity, Nokia5110 display, the program design一設計目標本次設計要求實現(xiàn)對周圍環(huán)境溫濕度的感知以及顯示。要求學生對STM32有一定程度的理解,熟悉STM32串口以及中斷的使用,會

10、基本的C語言和java,熟練掌握keil for ARM軟件的使用與程序下載以及手機軟件開發(fā)環(huán)境。二設計方案(1) 了解溫濕度傳感器工作原理,根據(jù)原理畫好PCB原理圖。(2) 根據(jù)PCB原理圖自制PCB板電路,將液晶屏,溫濕度傳感器,變壓器,stm32開發(fā)板等相關元件設備進行集成。(3) 測試PCB電路,檢查相關電路能否正常工作,以及STM32核心板的能否正常調(diào)試。(4) 在完成電路調(diào)試后,用jlink下載器下載調(diào)試程序成功完成程序對相關元件的驅動。(5) 實驗完成后做好相應的實驗總結。三實驗所需器材1.STM32F核心板 2.溫濕度傳感器(DHT22) 3.電容 4.3MM 紅光LED發(fā)光二

11、極管 5.穩(wěn)壓集成塊(L7805)6.整流橋 7.電解電容 8.保險座 9.散熱器10.電阻 11.變壓器 12.電位器 13.排座 14.5110液晶屏模塊四設計內(nèi)容4.1 STM32模塊芯片的選擇:STM32VET6芯片的介紹:內(nèi)核:ARM 32位的Cortex-M3 CPU  最高72MHz工作頻率,在存儲器的0等待周期訪問時可達1.25DMips/MHz(Dhrystone 2.1)  單周期乘法和硬件除法 存儲器  從64K或128K字節(jié)的閃存程序存儲器  高達20

12、K字節(jié)的SRAM  時鐘、復位和電源管理  2.03.6伏供電和I/O引腳  上電/斷電復位(POR/PDR)、可編程電壓監(jiān)測器(PVD)  416MHz晶體振蕩器  內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器  內(nèi)嵌帶校準的40kHz的RC振蕩器  產(chǎn)生CPU時鐘的PLL  帶校準功能的32kHz RTC振蕩器  低功耗  睡眠、停機和待機模式  VBAT為RTC和后備寄

13、存器供電  2個12位模數(shù)轉換器,1s轉換時間(多達16個輸入通道)  轉換范圍:0至3.6V  雙采樣和保持功能  溫度傳感器  DMA:  7通道DMA控制器  支持的外設:定時器、ADC、SPI、I2C和USART 圖4.1 STM32VET6芯片引腳圖 圖 4.2 STM32芯片實物圖4.2 AM2302介紹4.2.1 產(chǎn)品概述AM2302濕敏電容數(shù)字溫濕度模塊是一款含有己校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術和

14、溫濕度傳感技術,確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電容式感濕元件和一個高精度測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優(yōu)點。每個傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式儲存在單片機中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準系數(shù)。標準單總線接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選擇。產(chǎn)品為3引線(單總線接口)連接方便。特殊封裝形式可根據(jù)用戶需求而提供。 圖4.3 實物圖外形尺寸(單位:mm)4.2

15、.2 應用范圍暖通空調(diào)、除濕器、測試及檢測設備、消費品、汽車、自動控制、數(shù)據(jù)記錄器、家電、濕度調(diào)節(jié)器、醫(yī)療、氣象站、及其他相關濕度檢測控制等。4.2.3 產(chǎn)品亮點超低能耗、傳輸距離遠、全部自動化校準、采用電容式濕敏元件、完全互換、標準數(shù)字單總線輸出、卓越的長期穩(wěn)定性、采用高精度測溫元件。4.2.4 單總線接口定義引腳名稱描述VDD電源(3.5V-5.5V)SDA串行數(shù)據(jù),雙向口NC空腳GND地 表4.1 AM2302引腳分配表 圖4.4 AM2302引腳分配圖AM2302的供電電壓范圍為3.5V-5.5V,建議供電電壓為5V。數(shù)據(jù)線SDA引腳為三態(tài)結構,用于讀寫傳感器數(shù)據(jù)。4.2.5 傳感器性

16、能參數(shù)條件mintypmax單位分辨率0.1%RH分辨率16bit1精度25±2%RH重復性±0.3%RH互換性完全互換2響應時間1/e(63%)<5S遲滯<0.3%RH3漂移典型值<0.5%RH/yr表 4.2 AM2302相對濕度性能表參數(shù)條件mintypmax單位分辨率0.1分辨率16bit精度±0.5±1量程范圍-4080重復性±0.2互換性完全互換響應時間1/e(63%)<10S漂移±0.3/yr表4.3 AM2302相對溫度性能表圖4.5 25時 AM2302 的相對濕度最大誤差 溫度傳感器的溫最大

17、誤差4.2.6 單總線通信 AM2302器件采用簡化的單總線通信。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制均由數(shù)據(jù)線完成。設備(微處理器)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設備使用總線;單總線通常要求外接一個約5.1k的上拉電阻,這樣,當總線閑置時,其狀態(tài)為高電平。由于它們是主從結構,只有主機呼叫傳感器時,傳感器才會應答,因此主機訪問傳感器都必須嚴格遵循單總線序列,如果出現(xiàn)序列混亂,傳感器將不響應主機。SDA用于微處理器與AM2302之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次傳送40位數(shù)據(jù),高位先出。具體通信時序如圖4.5所示,通信格式

18、說明見表4.3。圖4.5 AM2302單總線通信協(xié)議 名稱單總線格式定義起始信號 微處理器把數(shù)據(jù)總線(SDA)拉低一段時間(至少 800µs)1,通知傳感器準備數(shù)據(jù)。響應信號傳感器把數(shù)據(jù)總線(SDA)拉低 80µs,再接高 80µs 以響應主機的起始信號。數(shù)據(jù)格式 收到主機起始信號后,傳感器一次性從數(shù)據(jù)總線(SDA)串出 40 位數(shù)據(jù),高位先出濕度濕度分辨率是 16Bit,高位在前;傳感器串出的濕度值是實際濕度值的 10 倍。溫度溫度分辨率是 16Bit,高位在前;傳感器串出的溫度值是實際溫度值的 10 倍;溫度最高位(Bit15)等于 1 表示負溫度,溫度最高位

19、(Bit15)等于 0 表示正溫度;溫度除了最高位(Bit14Bit0)表示溫度值。校驗位校驗位濕度高位+濕度低位+溫度高位+溫度低位表4.3:AM2302 通信格式說明用戶主機(MCU)發(fā)送一次起始信號(把數(shù)據(jù)總線SDA拉低至少800µs)后,AM2302從休眠模式轉換到高速模式。待主機開始信號結束后,AM2302發(fā)送響應信號,從數(shù)據(jù)總線SDA串行送出40Bit的數(shù)據(jù),先發(fā)送字節(jié)的高位;發(fā)送的數(shù)據(jù)依次為濕度高位、濕度低位、溫度高位、溫度低位、校驗位,發(fā)送數(shù)據(jù)結束觸發(fā)一次信息采集,采集結束傳感器自動轉入休眠模式,直到下一次通信來臨。4.3 Nokia 5110 介紹1)84x48 的

20、點陣LCD,可以顯示4 行漢字,2)采用串行接口與主處理器進行通信,接口信號線數(shù)量大幅度減少,包括電源和地在內(nèi)的信號線僅有9 條。支持多種串行通信協(xié)議(如AVR 單片機的I、MCS51 的串口模式等),傳輸速率高達4Mbps,可全速寫入顯示數(shù)據(jù),無等待時間。3)可通過導電膠連接模塊與印制版,而不用連接電纜,用模塊上的金屬鉤可將模塊固定到印制板上,因而非常便于安裝和更換。4)LCD 控制器驅動器芯片已綁定到LCD 晶片上,模塊的體積很小。5)采用低電壓供電,工作電壓為3,3V,正常顯示時的工作電流在200A 以下,且具有掉電模式。LPH7366 的這些特點非常適合于電池供電的便攜式通信設備和測試

21、設備中。 圖4.64.3.1 SPI接口時序寫數(shù)據(jù)/命令Nokia5110(PCD8544)的通信協(xié)議是一個沒有MISO只有MOSI的SPI協(xié)議,如果單片機有富裕的SPI接口,也可以利用硬件SPI,但通常沒有必要,只需要軟件程序模擬即可。4.3.2 顯示漢字顯示漢字可以采用兩種點陣方式,一種是12*12點陣,一種是16*16點陣,網(wǎng)上也有一個自動提取字模的小軟件“3310液晶顯示屏漢字提取程序”,這個小程序只適用于水平尋址(V=0)。采用12*12點陣漢字時,由于不是8的整數(shù)倍數(shù),因此行與行之間只能隔開,這樣才能完整顯示一個漢字。4.3.4 顯示圖形顯示的圖形像素大小不能超過84*48。也有一

22、個字模提取小軟件Zimo21可以幫助我們得到圖像的像素數(shù)組。但要注意Zimo21軟件的設置,不然的話就顯示不了想要的圖片。4.4 原理圖設計圖4.7 電路板設計軟件:Altium圖 4.8 傳感器電路圖4.9 5110顯示屏電路圖4.10 電源電路圖 4.11 實驗原理圖4.5 PCB板設計要制作封裝庫首先必須對所需封裝資料進行了解其長、寬、焊盤大小模塊資料上都會有提供,另外還包括管腳信息,管腳標號都要明確了解。 圖 4.12五實驗軟件設計5.1 溫濕度傳感器DHT22的程序#include <stm32f10x_lib.h>#include "dht22.h"

23、 /復位DHT22void DHT22_Rst(void) DHT22_IO_OUT(); /SET OUTPUT DHT22_DQ_OUT=0; /拉低DQ delay_ms(20); /拉低至少18ms DHT22_DQ_OUT=1; /DQ=1 delay_us(30); /主機拉高2040usu8 DHT22_Check(void) u8 retry=0;DHT22_IO_IN();/SET INPUT while (DHT22_DQ_IN&&retry<100)/DHT22會拉低4080usretry+;delay_us(1); if(retry>=100

24、)return 1;else retry=0; while (!DHT22_DQ_IN&&retry<100)/DHT22拉低后會再次拉高4080usretry+;delay_us(1);if(retry>=100)return 1; return 0;/從DHT22讀取一個位/返回值:1/0u8 DHT22_Read_Bit(void) u8 retry=0;while(DHT22_DQ_IN&&retry<100)/等待變?yōu)榈碗娖絩etry+;delay_us(1);retry=0;while(!DHT22_DQ_IN&&r

25、etry<100)/等待變高電平retry+;delay_us(1);delay_us(40);/等待40usif(DHT22_DQ_IN)return 1;else return 0; /從DHT22讀取一個字節(jié)/返回值:讀到的數(shù)據(jù)u8 DHT22_Read_Byte(void) u8 i,dat; dat=0;for (i=0;i<8;i+) dat<<=1; dat|=DHT22_Read_Bit(); return dat;/u8 DHT22_Read_Data(u8 *temp,u8 *humi) u8 buf5;u8 i;DHT22_Rst();if(DHT

26、22_Check()=0)for(i=0;i<5;i+)/讀取40位數(shù)據(jù)bufi=DHT22_Read_Byte();if(buf0+buf1+buf2+buf3)=buf4)*humi=buf0;*temp=buf2;else return 1;return 0; u8 DHT22_Init(void)RCC->APB2ENR|=1<<2; /使能PORTA口時鐘 GPIOA->CRH&=0XFFFF0FFF; /PA11 推挽輸出GPIOA->CRH|=0X00003000;GPIOA->ODR|=1<<11; /輸出1 DHT

27、22_Rst();return DHT22_Check();5.2 濕度顯示函數(shù)void Humidity_display(void)uchar table0="Temp:00.00C "uchar table1="Humi:00.00% "u8 t=0; u8 temperature,tem; u8 humidity,hum; int num;if(t%10=0)/每100ms讀取一次 DHT22_Read_Data(&temperature,&humidity);/讀取溫濕度值/顯示溫度值table05=temperature/10+

28、0x30; table06=temperature%10+0x30;tem=temperature*100; table08=tem/10%10+0x30; table09=tem%10+0x30; /顯示濕度值table15=humidity/10+0x30; table16=humidity%10+0x30;hum=humidity*100; table18=hum/10%10+0x30; table19=hum%10+0x30; write_1602_com(0x80);for(num=0;num<16;num+)write_1602_dat(table0num);delay_ms

29、(8);write_1602_com(0x80+0x40);for(num=0;num<16;num+)write_1602_dat(table1num);delay_ms(8); delay_ms(10);t+;if(t=10)t=0;5.3主函數(shù)程序#include "stm32f10x.h"#include "5110LCD.h"#include "main.h"extern unsigned char chinese1;int main(void) RCC_APB2PeriphClockCmd(RCC_APB2Perip

30、h_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_Configuration_LCD(); LCD_Init();LCD_Clear(); while (1) LCD_WriteString_en(0,0,"wen du :"); LCD_WriteString_en(0,1,"shi du :"); 5.3.1顯屏程序#include"5110LCD.h"void delay_ms(int t)int i,j;for(i=t;i&

31、gt;0;i-)for(j=110;j>0;j-); void GPIO_Configuration_LCD(void) GPIO_InitTypeDef GPIO_InitStructure; GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8| GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_

32、Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin= GPIO_Pin_14| GPIO_Pin_15| GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); #define WIDTH 6#define HEIGHT 8#de

33、fine WIDTH_CN13#define HEIGHT_CN16unsigned char lcd_display="0123456789" const unsigned char font6 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , / sp 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 , / ! 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 , / " 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 , / # 0x00, 0x24, 0x2a, 0

34、x7f, 0x2a, 0x12 , / $ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 , / % 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 , / & 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 , / ' 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 , / ( 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 , / ) 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 , / * 0x00, 0x08, 0x08, 0x3E,

35、0x08, 0x08 , / + 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 , / , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 , / - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 , / . 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 , / / 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E , / 0 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 , / 1 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 ,

36、/ 2 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 , / 3 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 , / 4 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 , / 5 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 , / 6 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 , / 7 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 , / 8 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E , / 9 0x00, 0x0

37、0, 0x36, 0x36, 0x00, 0x00 , / : 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 , / ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 , / < 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 , / = 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 , / > 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 , / ? 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E , / 0x00, 0x7C, 0x12,

38、0x11, 0x12, 0x7C , / A 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 , / B 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 , / C 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C , / D 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 , / E 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 , / F 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A , / G 0x00, 0x7F, 0x08, 0x08, 0x08, 0

39、x7F , / H 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 , / I 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 , / J 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 , / K 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 , / L 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F , / M 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F , / N 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E , / O 0x0

40、0, 0x7F, 0x09, 0x09, 0x09, 0x06 , / P 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E , / Q 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 , / R 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 , / S 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 , / T 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F , / U 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F , / V 0x00, 0x3F, 0x40

41、, 0x38, 0x40, 0x3F , / W 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 , / X 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 , / Y 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 , / Z 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 , / 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 , / 55 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 , / 0x00, 0x04, 0x02, 0x01, 0x02, 0x

42、04 , / 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 , / _ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 , / ' 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 , / a 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 , / b 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 , / c 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F , / d 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 , / e 0x

43、00, 0x08, 0x7E, 0x09, 0x01, 0x02 , / f 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C , / g 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 , / h 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 , / i 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 , / j 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 , / k 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 , / l 0x00, 0x7C, 0x0

44、4, 0x18, 0x04, 0x78 , / m 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 , / n 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 , / o 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 , / p 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC , / q 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 , / r 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 , / s 0x00, 0x04, 0x3F, 0x44, 0x40

45、, 0x20 , / t 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C , / u 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C , / v 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C , / w 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 , / x 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C , / y 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 , / z 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 / hori

46、z lines;void LCD_WriteByte(unsigned char dt, unsigned char command)unsigned char i; sce0; /使能LCDif(command=0) /傳送命令 dc0;else dc1; /傳送數(shù)據(jù)for(i=0;i<8;i+) if(dt&0x80)sdin1;elsesdin0;dt=dt<<1;sclk0;sclk1;dc1; sce1;/關閉LCDsdin1;void LCD_Init(void)sce1;res0;/產(chǎn)生一個讓LCD復位的低電平脈沖 delay_ms(10); res1;

47、delay_ms(100);LCD_WriteByte(0x21,0);/使用水平尋址,進入拓展指令 LCD_WriteByte(0x13, 0);/定液晶偏置系統(tǒng) 1:48LCD_WriteByte(0xbb,0);/設定設置Vop,相當于亮度 LCD_WriteByte(0x20,0);/芯片活動 使用基本指令并且水平尋址LCD_WriteByte(0x0c,0);/設定顯示模式,正常顯示 LCD_Clear();void LCD_Set_XY(unsigned char X, unsigned char Y) Y|=0x40; X|=0x80;LCD_WriteByte(Y, 0);/

48、列LCD_WriteByte(X, 0);/ 行sce1; void LCD_Clear(void)unsigned char t,k;LCD_Set_XY(0,0);for(t=0;t<6;t+) for(k=0;k<84;k+) LCD_WriteByte(0x00,1); void LCD_WriteChar(unsigned char X,unsigned char Y,unsigned char c) unsigned char i,j ; const unsigned char *map = &font00; c -= 32; /變換 map += c *( HEIGHT/8*WIDTH); for(i=0;i<HEIGHT/8;i+) LCD_Set_XY(X, Y+i); for(j=0;j<WIDTH;j+) LCD_WriteByte(*map+, 1); void LCD_WriteString_en(unsigned char X,unsigned char Y,unsigned char *s) unsigned char i=0,j=0; while

溫馨提示

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

評論

0/150

提交評論