




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
工程課題:基于STM32的溫濕度檢測(cè)院系:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專業(yè):物聯(lián)網(wǎng)工程工程經(jīng)理:于淵學(xué)號(hào):123921043副經(jīng)理:謝金光學(xué)號(hào):123921024工程成員:李周恒學(xué)號(hào):123921002工程成員:袁桃學(xué)號(hào):123921048工程成員:頡濤學(xué)號(hào):123921054工程成員肖青學(xué)號(hào):123921025工程成員馮錦榮學(xué)號(hào):123921011工程成員唐敏學(xué)號(hào):123921023指導(dǎo)教師:2023年12月目錄摘要2Absract3一.設(shè)計(jì)目標(biāo)4二.設(shè)計(jì)方案4三.實(shí)驗(yàn)所需器材5四.設(shè)計(jì)內(nèi)容54.1STM32模塊54.2AM2302介紹64.2.1產(chǎn)品概述64.2.2應(yīng)用范圍74.2.3產(chǎn)品亮點(diǎn)74.2.4單總線接口定義74.2.5傳感器性能84.2.6單總線通信94.3Nokia5110介紹104.3.1SPI接口時(shí)序?qū)憯?shù)據(jù)/命令114.3.2顯示漢字114.3.4顯示圖形114.4原理圖設(shè)計(jì)114.5PCB板設(shè)計(jì)13五.實(shí)驗(yàn)軟件設(shè)計(jì)135.1溫濕度傳感器DHT22的程序135.2濕度顯示函數(shù)175.3主函數(shù)程序18顯屏程序19六.作品實(shí)物展示27七.設(shè)計(jì)總結(jié)28基于STM32的溫濕度檢測(cè)摘要隨著現(xiàn)代社會(huì)的高速開(kāi)展,越來(lái)越多的科學(xué)技術(shù)被應(yīng)用于農(nóng)業(yè)生產(chǎn)領(lǐng)域。在溫室大棚中對(duì)溫濕度、二氧化碳濃度等外部參數(shù)的實(shí)時(shí)準(zhǔn)確的測(cè)量和調(diào)節(jié)更是保證農(nóng)業(yè)高效生產(chǎn)的重要前提。本次課程設(shè)計(jì)中實(shí)現(xiàn)了一個(gè)基于STM32F103VET6的智能溫濕度檢測(cè)系統(tǒng),目的是實(shí)現(xiàn)溫濕度的采集和顯示,溫濕度的采集是作為自動(dòng)化科學(xué)中一個(gè)必須掌握的檢測(cè)技術(shù),也是一項(xiàng)比擬實(shí)用的技術(shù)。本次實(shí)驗(yàn)主要作了如下幾個(gè)方面工作:首先通過(guò)對(duì)實(shí)時(shí)性、準(zhǔn)確性、經(jīng)濟(jì)性和可擴(kuò)展性等四個(gè)方向的分析比擬之后,選擇了STM32F103VE微控制器作為主控芯片和AM2303溫濕度傳感器來(lái)實(shí)現(xiàn)對(duì)溫濕度數(shù)據(jù)進(jìn)行采集;在Nokia5110顯示屏上顯示出溫度和濕度,然后詳細(xì)介紹了各個(gè)模塊的工作原理和硬件電路設(shè)計(jì)思路,實(shí)現(xiàn)了溫濕度數(shù)據(jù)實(shí)時(shí)準(zhǔn)確的測(cè)量;之后闡述了系統(tǒng)各個(gè)局部的軟件設(shè)計(jì)思路;最后對(duì)系統(tǒng)在實(shí)際應(yīng)用中采集到的數(shù)據(jù)進(jìn)行了處理,分析了誤差產(chǎn)生的原因,并通過(guò)分段線性插值算法對(duì)系統(tǒng)非線性誤差進(jìn)行了校準(zhǔn),同未校準(zhǔn)時(shí)采集的數(shù)據(jù)相比,校準(zhǔn)后的數(shù)據(jù)準(zhǔn)確度更高,穩(wěn)定性更好。在保證測(cè)量效果的根底上,本系統(tǒng)設(shè)計(jì)中充分考慮到性價(jià)比和再次開(kāi)發(fā)周期性等,具有本錢低、設(shè)計(jì)開(kāi)發(fā)方便、通用性強(qiáng)等特點(diǎn),不僅適用于現(xiàn)代農(nóng)業(yè)生產(chǎn)中,還能用于其它工業(yè)控制、機(jī)械制造等其它領(lǐng)域,具有一定的市場(chǎng)推廣價(jià)值?!娟P(guān)鍵詞】:嵌入式技術(shù),電路設(shè)計(jì),STM32,AM2302溫濕度采集,Nokia5110顯示屏,程序設(shè)計(jì)AbsractInthedesignofthecurriculumimplementsasmarttemperatureandhumiditydetectionsystembasedonSTM32F103VET6,thepurposeistorealizetheacquisitionanddisplayofthetemperatureandhumidity,temperatureandhumidityoftheacquisitionasamustmasterinautomationsciencedetectiontechnology,isalsoapracticaltechnology.Thisexperimentmainlymadethefollowingseveralaspectswork:firstofall,basedonthereal-time,accuracy,economyandexpansibilityetc.Afteranalysisandcomparisonoffourdirections,STM32F103VEmicro-controllerasthemastercontrolchipandAM2303temperatureandhumiditysensorstoachievetemperatureandhumiditydataacquisition;OntheNokia5110screendisplaythetemperatureandhumidity,andthenintroducesindetailtheworkingprincipleofeachmoduleandthehardwarecircuitdesign,realizedthereal-timeaccuratemeasurementoftemperatureandhumiditydata;Elaboratedthesystemaftereachpartofthesoftwaredesignidea;Finally,thesysteminthepracticalapplicationofdealingwiththedatacollected,analyzedthereasonsoftheerror,andthroughthepiecewiselinearinterpolationalgorithmforsystemofnonlinearerrorcalibration,comparedwithnotcalibrationdata,aftercalibrationdatawithhigheraccuracyandbetterstability.Keywords:embeddedtechnology,circuitdesign,STM32,collectingAM2302temperatureandhumidity,Nokia5110display,theprogramdesign一.設(shè)計(jì)目標(biāo)本次設(shè)計(jì)要求實(shí)現(xiàn)對(duì)周圍環(huán)境溫濕度的感知以及顯示。要求學(xué)生對(duì)STM32有一定程度的理解,熟悉STM32串口以及中斷的使用,會(huì)根本的C語(yǔ)言和java,熟練掌握keilforARM軟件的使用與程序下載以及軟件開(kāi)發(fā)環(huán)境。二.設(shè)計(jì)方案了解溫濕度傳感器工作原理,根據(jù)原理畫好PCB原理圖。根據(jù)PCB原理圖自制PCB板電路,將液晶屏,溫濕度傳感器,變壓器,stm32開(kāi)發(fā)板等相關(guān)元件設(shè)備進(jìn)行集成。測(cè)試PCB電路,檢查相關(guān)電路能否正常工作,以及STM32核心板的能否正常調(diào)試。在完成電路調(diào)試后,用jlink下載器下載調(diào)試程序成功完成程序?qū)ο嚓P(guān)元件的驅(qū)動(dòng)。實(shí)驗(yàn)完成后做好相應(yīng)的實(shí)驗(yàn)總結(jié)。三.實(shí)驗(yàn)所需器材1.STM32F核心板2.溫濕度傳感器〔DHT22〕3.電容4.3MM紅光LED發(fā)光二極管5.穩(wěn)壓集成塊〔L7805〕6.整流橋7.電解電容8.保險(xiǎn)座 9.散熱器10.電阻11.變壓器12.電位器13.排座 14.5110液晶屏模塊四.設(shè)計(jì)內(nèi)容4.1STM32模塊芯片的選擇:STM32VET6芯片的介紹:內(nèi)核:ARM32位的Cortex?-M3CPU?
最高72MHz工作頻率,在存儲(chǔ)器的0等待周期訪問(wèn)時(shí)可達(dá)1.25DMips/MHz(Dhrystone2.1)?
單周期乘法和硬件除法■
存儲(chǔ)器?
從64K或128K字節(jié)的閃存程序存儲(chǔ)器?
高達(dá)20K字節(jié)的SRAM■
時(shí)鐘、復(fù)位和電源管理?
2.0~3.6伏供電和I/O引腳?
上電/斷電復(fù)位(POR/PDR)、可編程電壓監(jiān)測(cè)器(PVD)?
4~16MHz晶體振蕩器?
內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器?
內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器?
產(chǎn)生CPU時(shí)鐘的PLL?
帶校準(zhǔn)功能的32kHzRTC振蕩器■
低功耗?
睡眠、停機(jī)和待機(jī)模式?
VBAT為RTC和后備存放器供電■
2個(gè)12位模數(shù)轉(zhuǎn)換器,1μs轉(zhuǎn)換時(shí)間(多達(dá)16個(gè)輸入通道)?
轉(zhuǎn)換范圍:0至3.6V?
雙采樣和保持功能?
溫度傳感器■
DMA:?
7通道DMA控制器?
支持的外設(shè):定時(shí)器、ADC、SPI、I2C和USART圖4.1STM32VET6芯片引腳圖圖4.2STM32芯片實(shí)物圖4.2AM2302介紹產(chǎn)品概述AM2302濕敏電容數(shù)字溫濕度模塊是一款含有己校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式感濕元件和一個(gè)高精度測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在單片機(jī)中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。標(biāo)準(zhǔn)單總線接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最正確選擇。產(chǎn)品為3引線〔單總線接口〕連接方便。特殊封裝形式可根據(jù)用戶需求而提供。圖4.3實(shí)物圖 外形尺寸〔單位:mm〕應(yīng)用范圍暖通空調(diào)、除濕器、測(cè)試及檢測(cè)設(shè)備、消費(fèi)品、汽車、自動(dòng)控制、數(shù)據(jù)記錄器、家電、濕度調(diào)節(jié)器、醫(yī)療、氣象站、及其他相關(guān)濕度檢測(cè)控制等。產(chǎn)品亮點(diǎn)超低能耗、傳輸距離遠(yuǎn)、全部自動(dòng)化校準(zhǔn)、采用電容式濕敏元件、完全互換、標(biāo)準(zhǔn)數(shù)字單總線輸出、卓越的長(zhǎng)期穩(wěn)定性、采用高精度測(cè)溫元件。單總線接口定義引腳名稱描述①VDD電源(3.5V-5.5V)②SDA串行數(shù)據(jù),雙向口③NC空腳④GND地表4.1AM2302引腳分配表圖4.4AM2302引腳分配圖AM2302的供電電壓范圍為3.5V-5.5V,建議供電電壓為5V。數(shù)據(jù)線SDA引腳為三態(tài)結(jié)構(gòu),用于讀寫傳感器數(shù)據(jù)。傳感器性能參數(shù)條件mintypmax單位分辨率0.1%RH分辨率16bit[1]精度25±2%RH重復(fù)性±0.3%RH互換性完全互換[2]響應(yīng)時(shí)間1/e(63%)<5S遲滯<0.3%RH[3]漂移典型值<0.5%RH/yr表4.2AM2302相對(duì)濕度性能表參數(shù)條件mintypmax單位分辨率0.1℃分辨率16bit精度±0.5±1℃量程范圍-4080℃重復(fù)性±0.2℃互換性完全互換響應(yīng)時(shí)間1/e(63%)<10S漂移±0.3℃/yr表4.3AM2302相對(duì)溫度性能表圖4.525℃時(shí)AM2302的相對(duì)濕度最大誤差溫度傳感器的溫最大誤差單總線通信①AM2302器件采用簡(jiǎn)化的單總線通信。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制均由數(shù)據(jù)線完成。設(shè)備〔微處理器〕通過(guò)一個(gè)漏極開(kāi)路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放總線,而讓其它設(shè)備使用總線;單總線通常要求外接一個(gè)約5.1kΩ的上拉電阻,這樣,當(dāng)總線閑置時(shí),其狀態(tài)為高電平。由于它們是主從結(jié)構(gòu),只有主機(jī)呼叫傳感器時(shí),傳感器才會(huì)應(yīng)答,因此主機(jī)訪問(wèn)傳感器都必須嚴(yán)格遵循單總線序列,如果出現(xiàn)序列混亂,傳感器將不響應(yīng)主機(jī)。②SDA用于微處理器與AM2302之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次傳送40位數(shù)據(jù),高位先出。具體通信時(shí)序如圖4.5所示,通信格式說(shuō)明見(jiàn)表4.3。圖4.5AM2302單總線通信協(xié)議名稱單總線格式定義起始信號(hào)微處理器把數(shù)據(jù)總線〔SDA〕拉低一段時(shí)間(至少800μs)[1],通知傳感器準(zhǔn)備數(shù)據(jù)。響應(yīng)信號(hào)傳感器把數(shù)據(jù)總線〔SDA〕拉低80μs,再接高80μs以響應(yīng)主機(jī)的起始信號(hào)。數(shù)據(jù)格式收到主機(jī)起始信號(hào)后,傳感器一次性從數(shù)據(jù)總線〔SDA〕串出40位數(shù)據(jù),高位先出濕度濕度分辨率是16Bit,高位在前;傳感器串出的濕度值是實(shí)際濕度值的10倍。溫度溫度分辨率是16Bit,高位在前;傳感器串出的溫度值是實(shí)際溫度值的10倍;溫度最高位〔Bit15〕等于1表示負(fù)溫度,溫度最高位〔Bit15〕等于0表示正溫度;溫度除了最高位〔Bit14~Bit0〕表示溫度值。校驗(yàn)位校驗(yàn)位=濕度高位+濕度低位+溫度高位+溫度低位表4.3:AM2302通信格式說(shuō)明③用戶主機(jī)〔MCU〕發(fā)送一次起始信號(hào)〔把數(shù)據(jù)總線SDA拉低至少800μs〕后,AM2302從休眠模式轉(zhuǎn)換到高速模式。待主機(jī)開(kāi)始信號(hào)結(jié)束后,AM2302發(fā)送響應(yīng)信號(hào),從數(shù)據(jù)總線SDA串行送出40Bit的數(shù)據(jù),先發(fā)送字節(jié)的高位;發(fā)送的數(shù)據(jù)依次為濕度高位、濕度低位、溫度高位、溫度低位、校驗(yàn)位,發(fā)送數(shù)據(jù)結(jié)束觸發(fā)一次信息采集,采集結(jié)束傳感器自動(dòng)轉(zhuǎn)入休眠模式,直到下一次通信來(lái)臨。4.3Nokia5110介紹1〕84x48的點(diǎn)陣LCD,可以顯示4行漢字,
2〕采用串行接口與主處理器進(jìn)行通信,接口信號(hào)線數(shù)量大幅度減少,包括電源和地在內(nèi)的信號(hào)線僅有9條。支持多種串行通信協(xié)議〔如AVR單片機(jī)的SPI、MCS51的串口模式0等〕,傳輸速率高達(dá)4Mbps,可全速寫入顯示數(shù)據(jù),無(wú)等待時(shí)間。
3〕可通過(guò)導(dǎo)電膠連接模塊與印制版,而不用連接電纜,用模塊上的金屬鉤可將模塊固定到印制板上,因而非常便于安裝和更換。
4〕LCD控制器/驅(qū)動(dòng)器芯片已綁定到LCD晶片上,模塊的體積很小。
5〕采用低電壓供電,工作電壓為3,3V,正常顯示時(shí)的工作電流在200μA以下,且具有掉電模式。
LPH7366的這些特點(diǎn)非常適合于電池供電的便攜式通信設(shè)備和測(cè)試設(shè)備中。圖4.6SPI接口時(shí)序?qū)憯?shù)據(jù)/命令Nokia5110(PCD8544)的通信協(xié)議是一個(gè)沒(méi)有MISO只有MOSI的SPI協(xié)議,如果單片機(jī)有富裕的SPI接口,也可以利用硬件SPI,但通常沒(méi)有必要,只需要軟件程序模擬即可。顯示漢字顯示漢字可以采用兩種點(diǎn)陣方式,一種是12*12點(diǎn)陣,一種是16*16點(diǎn)陣,網(wǎng)上也有一個(gè)自動(dòng)提取字模的小軟件“3310液晶顯示屏漢字提取程序〞,這個(gè)小程序只適用于水平尋址(V=0)。采用12*12點(diǎn)陣漢字時(shí),由于不是8的整數(shù)倍數(shù),因此行與行之間只能隔開(kāi),這樣才能完整顯示一個(gè)漢字。顯示圖形顯示的圖形像素大小不能超過(guò)84*48。也有一個(gè)字模提取小軟件Zimo21可以幫助我們得到圖像的像素?cái)?shù)組。但要注意Zimo21軟件的設(shè)置,不然的話就顯示不了想要的圖片。4.4原理圖設(shè)計(jì)圖4.7電路板設(shè)計(jì)軟件:Altium圖4.8傳感器電路圖4.95110顯示屏電路圖4.10電源電路圖4.11實(shí)驗(yàn)原理圖4.5PCB板設(shè)計(jì)要制作封裝庫(kù)首先必須對(duì)所需封裝資料進(jìn)行了解其長(zhǎng)、寬、焊盤大小模塊資料上都會(huì)有提供,另外還包括管腳信息,管腳標(biāo)號(hào)都要明確了解。圖4.12五.實(shí)驗(yàn)軟件設(shè)計(jì)5.1溫濕度傳感器DHT22的程序#include<stm32f10x_lib.h>#include"dht22.h"http://復(fù)位DHT22voidDHT22_Rst(void) { DHT22_IO_OUT(); //SETOUTPUTDHT22_DQ_OUT=0; //拉低DQdelay_ms(20); //拉低至少18msDHT22_DQ_OUT=1; //DQ=1 delay_us(30); //主機(jī)拉高20~40us}u8DHT22_Check(void) { u8retry=0; DHT22_IO_IN();//SETINPUT while(DHT22_DQ_IN&&retry<100)//DHT22會(huì)拉低40~80us { retry++; delay_us(1); }; if(retry>=100)return1; elseretry=0;while(!DHT22_DQ_IN&&retry<100)//DHT22拉低后會(huì)再次拉高40~80us { retry++; delay_us(1); }; if(retry>=100)return1; return0;}//從DHT22讀取一個(gè)位//返回值:1/0u8DHT22_Read_Bit(void) { u8retry=0; while(DHT22_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?{ retry++; delay_us(1); } retry=0; while(!DHT22_DQ_IN&&retry<100)//等待變高電平 { retry++; delay_us(1); } delay_us(40);//等待40us if(DHT22_DQ_IN)return1; elsereturn0; }//從DHT22讀取一個(gè)字節(jié)//返回值:讀到的數(shù)據(jù)u8DHT22_Read_Byte(void){u8i,dat;dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT22_Read_Bit();} returndat;}/u8DHT22_Read_Data(u8*temp,u8*humi){ u8buf[5]; u8i; DHT22_Rst(); if(DHT22_Check()==0) { for(i=0;i<5;i++)//讀取40位數(shù)據(jù) { buf[i]=DHT22_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } }elsereturn1; return0; }u8DHT22_Init(void){ RCC->APB2ENR|=1<<2;//使能PORTA口時(shí)鐘 GPIOA->CRH&=0XFFFF0FFF;//PA11推挽輸出 GPIOA->CRH|=0X00003000; GPIOA->ODR|=1<<11;//輸出1 DHT22_Rst(); returnDHT22_Check();}5.2濕度顯示函數(shù)voidHumidity_display(void){ uchartable0[]={"Temp:00.00C"}; uchartable1[]={"Humi:00.00%"}; u8t=0; u8temperature,tem; u8humidity,hum; intnum; if(t%10==0)//每100ms讀取一次 { DHT22_Read_Data(&temperature,&humidity); //讀取溫濕度值 //顯示溫度值 table0[5]=temperature/10+0x30; table0[6]=temperature%10+0x30;tem=temperature*100; table0[8]=tem/10%10+0x30; table0[9]=tem%10+0x30; //顯示濕度值 table1[5]=humidity/10+0x30; table1[6]=humidity%10+0x30; hum=humidity*100; table1[8]=hum/10%10+0x30; table1[9]=hum%10+0x30; write_1602_com(0x80); for(num=0;num<16;num++){ write_1602_dat(table0[num]); delay_ms(8);} write_1602_com(0x80+0x40); for(num=0;num<16;num++){ write_1602_dat(table1[num]); delay_ms(8); } } delay_ms(10); t++; if(t==10) { t=0; }}5.3主函數(shù)程序#include"stm32f10x.h"#include"5110LCD.h"#include"main.h"externunsignedcharchinese1;intmain(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);GPIO_Configuration_LCD(); LCD_Init(); LCD_Clear();while(1){ LCD_WriteString_en(0,0,"wendu:");LCD_WriteString_en(0,1,"shidu:");} }顯屏程序#include"5110LCD.h"voiddelay_ms(intt){ inti,j; for(i=t;i>0;i--) for(j=110;j>0;j--);}voidGPIO_Configuration_LCD(void){GPIO_InitTypeDefGPIO_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_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);}#defineWIDTH6#defineHEIGHT8#defineWIDTH_CN 13#defineHEIGHT_CN 16unsignedcharlcd_display[]="0123456789";constunsignedcharfont[][6]={ {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,0x7f,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,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},//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,0x00,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,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,0x7F},//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 {0x00,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,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,0x04},//^ {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 {0x00,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,0x04,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,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}//horizlines};voidLCD_WriteByte(unsignedchardt,unsignedcharcommand){ unsignedchari; sce0;//使能LCD if(command==0)//傳送命令 dc0; else dc1;//傳送數(shù)據(jù) for(i=0;i<8;i++) { if(dt&0x80) sdin1; else sdin0; dt=dt<<1; sclk0; sclk1; } dc1;sce1;//關(guān)閉LCD sdin1;}voidLCD_Init(void){ sce1; res0;//產(chǎn)生一個(gè)讓LCD復(fù)位的低電平脈沖 delay_ms(10); res1; delay_ms(100); LCD_WriteByte(0x21,0);//使用水平尋址,進(jìn)入拓展指令LCD_WriteByte(0x13,0);//定液晶偏置系統(tǒng)1:48 LCD_WriteByte(0xbb,0);//設(shè)定設(shè)置Vop,相當(dāng)于亮度LCD_WriteByte(0x20,0);//芯片活動(dòng)使用根本指令并且水平尋址 LCD_WriteByte(0x0c,0);//設(shè)定顯示模式,正常顯示LCD_Clear();}voidLCD_Set_XY(unsignedcharX,unsignedcharY){Y|=0x40;X|=0x80; LCD_WriteByte(Y,0);//列 LCD_WriteByte(X,0);//行 sce1;}voidLCD_Clear(void){ unsignedchart,k; LCD_Set_XY(0,0); for(t=0;t<6;t++) { for(k=0;k<84;k++) { LCD_WriteByte(0x00,1); } }}voidLCD_WriteChar(unsignedcharX,unsignedcharY,unsignedcharc){unsignedchari,j;constunsignedchar*map=&font[0][0];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);}}voidLCD_WriteString_en(unsignedcharX,unsignedcharY,unsignedchar*s){unsignedchari=0,j=0;while(*s){LCD_WriteChar(X,Y,*s++);X+=WIDTH;i++;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)銀行法律顧問(wèn)合同范本
- 勞務(wù)分包個(gè)人合同范本
- 中醫(yī)飲售賣合同范本
- 剩余產(chǎn)品合同范本
- 農(nóng)業(yè)土豆銷售合同范本
- 公務(wù)車服務(wù)合同范本
- 個(gè)人包車協(xié)議合同范本
- 制定企業(yè)合同范本
- 個(gè)人餐館轉(zhuǎn)讓合同范本
- 單位買車合同范例
- 大學(xué)學(xué)院學(xué)生獎(jiǎng)助資金及相關(guān)經(jīng)費(fèi)發(fā)放管理暫行辦法
- 2022蘇教版科學(xué)五年級(jí)下冊(cè)全冊(cè)優(yōu)質(zhì)教案教學(xué)設(shè)計(jì)
- 加油員的安全生產(chǎn)責(zé)任制
- 2023年R2移動(dòng)式壓力容器充裝操作證考試題及答案(完整版)
- 九年級(jí)物理實(shí)驗(yàn)記錄單
- 2022年湖北省高中學(xué)業(yè)水平考試真題-音樂(lè)學(xué)科
- 提高屋面防水施工質(zhì)量年QC成果
- 部編初中語(yǔ)文古詩(shī)詞按作者分類梳理
- 博朗IRT6520中文說(shuō)明書家用版
- 旅行社運(yùn)營(yíng)實(shí)務(wù)電子課件 1.1 初識(shí)旅行社
- 【讀書如熬粥閱讀答案】讀書如熬粥閱讀答案
評(píng)論
0/150
提交評(píng)論