基于單片機的溫度檢測與控制系統(tǒng)設計_第1頁
基于單片機的溫度檢測與控制系統(tǒng)設計_第2頁
基于單片機的溫度檢測與控制系統(tǒng)設計_第3頁
基于單片機的溫度檢測與控制系統(tǒng)設計_第4頁
基于單片機的溫度檢測與控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一部分溫度的顯示與控制系統(tǒng)設計摘要本設計通過51單片機控制DS18B20芯片采集溫度,并對采集溫度進行分析,隨后51單片機對不同溫度范圍進行判斷并做出相應的措施,以此實現(xiàn)了一個溫度檢測與控制系統(tǒng),本設計的一個創(chuàng)新就是可以通過矩陣鍵盤對所需正常溫度進行自由設置,增加本設計系統(tǒng)的靈活性。此外,本設計都是采用C語言編寫的。仿真軟件PROTEUS與KEILVISION2開發(fā)環(huán)境介紹11、PR0TEUS軟件介紹(一)、該軟件的特點1、全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。2、具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。3、目前支持的單片機類型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。支持大量的存儲器和外圍芯片??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大,是其他任何一款軟件不能相比的。(二)、ISIS智能原理圖輸入系統(tǒng)ISIS是PREOTEUS系統(tǒng)的中心,具有控制原理圖畫圖的超強的設計環(huán)境。ISIS有以下特性1、出版質(zhì)量的原理圖ISIS提供給用戶圖形外觀,包括線寬、填充類型、字符等的全部控制,使用尸能夠生成如雜志上看到的精美的原理圖,畫完圖可以以圖形文件輸出,畫圖的外形由風格模板定義。2、良好的用戶界面ISIS有一個無連線方式,用戶只需單擊元件的引腳或者先前布好的線,就能實現(xiàn)布線此外,擺放、編輯、移動和刪除操作能夠直接用鼠標實現(xiàn)無需去單擊菜單或圖標。3自動走線只要單擊想要連接的兩個引腳,就能簡單地實現(xiàn)走線。在特殊的位置需要布線時,使用者只需在中間的角落單擊。自動走線也能在元件移動的時候操作,自動解決相應連線。節(jié)點能夠自動布置和移除。既節(jié)約了時間,又避免了其他可能的錯誤。4層次設計ISIS支持層次圖設計,模塊可畫成標準元件,特殊的元件能夠定義為通過電路圖表示的模塊,能夠任意設定層次,模塊可畫成標準元件,在使用中可放置和刪除端口的子電路模塊。5、總線支持ISIS提供的不僅是一根總線,還能用總線引腳定義元件和子電路。因此,一個連線在處理器和存儲器之間的32位的處理器總線可以用單一的線表示,節(jié)省繪圖的時間和空間。6元件庫ISIS的元件庫包含8000個元件,有標準符號、三極管、二極管、熱離子管、TTLCMOS、ECL、微處理器,以及存儲器元件、PLD、模擬IC和運算放大器。7可視封裝工具原理圖和PCB庫元件的匹配是由封裝工具簡化的。在原理圖部分的引腳旁邊將顯示PCB的封裝,并允許每個引腳名對應文本和圖形的引腳號碼。8復合元件ISIS的元件庫表達方式有很多種,無論是單個元件、同態(tài)復合元件、異態(tài)復合元件,還是連接器,都可以在原理圖上以獨立引腳來表達,不用所有線都連到一個獨立元件上。9、元件特性設計中的每個元件都有一定數(shù)日的屬性或特性。某些特性控制軟件的特定功能如PCB封裝或仿真用戶也可以添加自己的特性。一旦庫建立,就能提供默認值及特性定義。特性定義提供大量的特性描述,當修改元件時,將顯示在編輯區(qū)域內(nèi)。10、報告ISIS支持許多第三方網(wǎng)表格式,因此能為其他軟件所使使用設置元件清單后可以添加用戶所需的元件屬性,也可設置屬性列以挑選一定數(shù)目的屬性。ERC報告可列出可能的連線錯誤,如末連接的輸入、矛盾的輸出及未標注的網(wǎng)絡標號。(三)、PROTEUS6PROFESSIONAL界面簡介安裝完PROTEUS后,運行ISIS6PROFESSIONAL,會出現(xiàn)以下窗口界面1原理圖編輯窗口(THEEDITINGWINDOW)顧名思義,它是用來繪制原理圖的。藍色方框內(nèi)為可編輯區(qū),元件要放到它里面。注意,這個窗口是沒有滾動條的,你可用預覽窗口來改變原理圖的可視范圍。2預覽窗口(THEOVERVIEWWINDOW)它可顯示兩個內(nèi)容,一個是當你在元件列表中選擇一個元件時,它會顯示該元件的預覽圖;另一個是,當你的鼠標焦點落在原理圖編輯窗口時(即放置元件到原理圖編輯窗口后或在原理圖編輯窗口中點擊鼠標后),它會顯示整張原理圖的縮略圖,并會顯示一個綠色的方框,綠色的方框里面的內(nèi)容就是當前原理圖窗口中顯示的內(nèi)容,因此,你可用鼠標在它上面點擊來改變綠色的方框的位置,從而改變原理圖的可視范圍。3模型選擇工具欄(MODESELECTORTOOLBAR)主要模型(MAINMODES)1選擇元件(COMPONENTS)(默認選擇的)2放置連接點3放置標簽(用總線時會用到)4放置文本5用于繪制總線6用于放置子電路7用于即時編輯元件參數(shù)(先單擊該圖標再單擊要修改的元件配件(GADGETS)1終端接口(TERMINALS)有VCC、地、輸出、輸入等接口2器件引腳用于繪制各種引腳3仿真圖表(GRAPH)用于各種分析,如NOISEANALYSIS4錄音機5信號發(fā)生器(GENERATORS)6電壓探針使用仿真圖表時要用到7電流探針使用仿真圖表時要用到8虛擬儀表有示波器等2D圖形(2DGRAPHICS)1畫各種直線2畫各種方框3畫各種圓4畫各種圓弧5畫各種多邊形6畫各種文本7畫符號8畫原點等4元件列表(THEOBJECTSELECTOR)用于挑選元件(COMPONENTS)、終端接口(TERMINALS)、信號發(fā)生器(GENERATORS)、仿真圖表(GRAPH)等。舉例,當你選擇“元件(COMPONENTS)”,單擊“P”按鈕會打開挑選元件對話框,選擇了一個元件后(單擊了“OK”后),該元件會在元件列表中顯示,以后要用到該元件時,只需在元件列表中選擇即可。5方向工具欄(ORIENTATIONTOOLBAR)旋轉(zhuǎn)旋轉(zhuǎn)角度只能是90的整數(shù)倍。翻轉(zhuǎn)完成水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)。使用方法先右鍵單擊元件,再點擊(左擊)相應的旋轉(zhuǎn)圖標6仿真工具欄仿真控制按鈕1運行2單步運行3暫停4停止(四)、操作簡介1、繪制原理圖繪制原理圖要在原理圖編輯窗口中的藍色方框內(nèi)完成。原理圖編輯窗口的操作是不同于常用的WINDOWS應用程序的,正確的操作是用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個元件;先右鍵后左鍵編輯元件屬性;先右鍵后左鍵拖動元件;連線用左鍵,刪除用右鍵;改連接線先右擊連線,再左鍵拖動;中鍵放縮原理圖。2、定制自己的元件有三個個實現(xiàn)途徑,一是用PROTEUSVSMSDK開發(fā)仿真模型,并制作元件;另一個是在已有的元件基礎上進行改造,比如把元件改為BUS接口的;還有一個是利用已制作好(別人的)的元件,我們可以到網(wǎng)上下載一些新元件并把它們添加到自己的元件庫里面。由于我沒有PROTEUSVSMSDK,所以我只介紹后兩個。3、SUBCIRCUITS應用用一個子電路可以把部分電路封裝起來,這樣可以節(jié)省原理圖窗口的空間。12、KEILVISION2軟件介紹KEIL軟件是目前最流行開發(fā)MCS51系列單片機的軟件。KEIL提供包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境VISIION2將這些部分組合在一起。KEILUVISION2是德國KEILSOFTWARE公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用,而且大大的提高了工作效率和項目開發(fā)周期,他還能嵌入?yún)R編,您可以在關鍵的位置嵌入,使程序達到接近于匯編的工作效率。KEILC51標準C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效,快速的特點。C51編譯器的功能不斷增強,使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到UVISION2的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含編譯器,匯編器,實時操作系統(tǒng),項目管理器,調(diào)試器。UVISION2IDE可為它們提供單一而靈活的開發(fā)環(huán)境。KEILC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全WINDOWS界面,使您能在很短的時間內(nèi)就能學會使用KEILC51來開發(fā)您的單片機應用程序。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KEILC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。二、設計基本原理本設計通過51單片機對DS18B20和LCD1602兩款外設芯片進行驅(qū)動與控制,以此來實現(xiàn)系統(tǒng)功能。、51單片機原理及管教功能1、簡介89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低電壓、高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器,89C2051是它的一種精簡版本。89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。2、結(jié)構(gòu)特點8位CPU;片內(nèi)振蕩器和時鐘電路;32根I/O線;外部存貯器尋址范圍ROM、RAM64K;2個16位的定時器/計數(shù)器;5個中斷源,兩個中斷優(yōu)先級;全雙工串行口;布爾處理器;3、管腳說明VCC供電電壓。GND接地。P0口P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/89C51引腳圖地址的低八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。P2口P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示口管腳備選功能P30RXD(串行輸入口)P31TXD(串行輸出口)P32/INT0(外部中斷0)P33/INT1(外部中斷1)P34T0(記時器0外部輸入)P35T1(記時器1外部輸入)P36/WR(外部數(shù)據(jù)存儲器寫選通)P37/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP當/EA保持低電平時,則在此期間為外部程序存儲器(0000HFFFFH),不管是否有內(nèi)部程序存儲器讀取外部ROM數(shù)據(jù)。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,單片機讀取內(nèi)部程序存儲器。(擴展有外部ROM時讀取完內(nèi)部ROM后自動讀取外部ROM)。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。、DS18B20芯片讀寫原理1、特性獨特的一線接口,只需要一條口線通信,簡化了分布式溫度傳感應用無需外部元件可用數(shù)據(jù)總線供電,電壓范圍為30V至55V無需備用電源測量溫度范圍為55C至125華氏相當于是67F到257華氏度10C至85C范圍內(nèi)精度為05C。溫度傳感器可編程的分辨率為912位溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒用戶可定義的非易失性溫度報警設置應用范圍包括恒溫控制,工業(yè)系統(tǒng),消費電子產(chǎn)品溫度計,或任何熱敏感系統(tǒng)。2、引腳定義1、DQ為數(shù)字信號輸入/輸出端;2、GND為電源地;3、VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。3、DS18B20工作原理DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2S減為750MS。低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在55所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。4、DS18B20有4個主要的數(shù)據(jù)部件光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是開始8位(28H)是產(chǎn)品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRCX8X5X41)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例用16位符號擴展的二進制補碼讀數(shù)形式提供,以00625/LSB形式表達,其中S為符號位。表1DS18B20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于00625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于00625即可得到實際溫度。例如125的數(shù)字輸出為07D0H,250625的數(shù)字輸出為0191H,250625的數(shù)字輸出為FF6FH,55的數(shù)字輸出為FC90H。表2DS18B20溫度數(shù)據(jù)表(3)DS18B20溫度傳感器的存儲器DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。(4)配置寄存器該字節(jié)各位的意義如下表3配置寄存器結(jié)構(gòu)TMR1R011111低五位一直都是“1“,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如下表所示(DS18B20出廠時被設置為12位)表4溫度分辨率設置表R1R0分辨率溫度最大轉(zhuǎn)換時間009位9375MS0110位1875MS1011位375MS1112位750MS4、高速暫存存儲器高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式如表1所示。對應的溫度計算當符號位S0時,直接將二進制位轉(zhuǎn)換為十進制;當S1時,先將補碼變?yōu)樵a,再計算十進制值。表2是對應的一部分溫度值。第九個字節(jié)是冗余檢驗字節(jié)。表5DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位(LSBYTE)0溫度值高位(MSBYTE)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗值8根據(jù)DS18B20的通訊協(xié)議,主機(單片機)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟每一次讀寫之前都要對DS18B20進行復位操作,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復位成功。表6ROM指令表指令約定代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對應的DS1820使之作出響應,為下一步對該DS1820的讀寫作準備。搜索ROM0FOH用于確定掛接在同一總線上DS1820的個數(shù)和識別64位ROM地址。為操作各器件作好準備。跳過ROM0CCH忽略64位ROM地址,直接向DS1820發(fā)溫度變換命令。適用于單片工作。告警搜索命令0ECH執(zhí)行后只有溫度超過設定值上限或下限的片子才做出響應。表6RAM指令表指令約定代碼功能溫度變換44H啟動DS1820進行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750MS(9位為9375MS)。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復制暫存器48H將RAM中第3、4字節(jié)的內(nèi)容復制到EEPROM中。重調(diào)EEPROM0B8H將EEPROM中內(nèi)容恢復到RAM中的第3、4字節(jié)。讀供電方式0B4H讀DS1820的供電模式。寄生供電時DS1820發(fā)送“0”,外接電源供電DS1820發(fā)送“1”。(三)、1602LCD特性5V電壓,對比度可調(diào)內(nèi)含復位電路提供各種控制命令,如清屏、字符閃爍、光標閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC15腳和地線GND16腳圖3、1602各引腳的定義HD44780內(nèi)置了DDRAM(顯示數(shù)據(jù)存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應關系如下表也就是說想要在LCD1602屏幕的第一行第一列顯示一個“A”字,就要向DDRAM的00H地址寫入“A”的代碼就行了。但具體的寫入是要按LCD模塊的指令格式來進行的,后面我會講到的。一行有40個地址在1602中我們就用前16個就行了。第二行也一樣用前16個地址。對應如下DDRAM地址與顯示位置的對應關系1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM已經(jīng)存儲了160個不同的點陣字符圖形,如下表所示,這些字符有阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”圖4、1602字符表上表中的字符代碼與我們PC中的字符代碼是基本一致的。因此我們在向DDRAM寫C51字符代碼程序時甚至可以直接用P1A這樣的方法。PC在編譯時就把“A”先轉(zhuǎn)為41H代碼了。字符代碼0X000X0F為用戶自定義的字符圖形RAM對于5X8點陣的字符,可以存放8組,就是CGRAM了。對DDRAM的內(nèi)容和地址操作,HD44780的指令集及其設置說明,共有11條指令基本操作時序讀狀態(tài)輸入RSL,RWH,EH輸出DB0DB7狀態(tài)字寫指令輸入RSL,RWL,E下降沿脈沖,DB0DB7指令碼輸出無讀數(shù)據(jù)輸入RSH,RWH,EH輸出DB0DB7數(shù)據(jù)寫數(shù)據(jù)輸入RSH,RWL,E下降沿脈沖,DB0DB7數(shù)據(jù)輸出無1清屏指令功能清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的字符碼20H光標歸位,即將光標撤回液晶顯示屏的左上方將地址計數(shù)器AC的值設為0。2光標歸位指令功能把光標撤回到顯示器的左上方把地址計數(shù)器AC的值設置為0保持DDRAM的內(nèi)容不變3輸入模式設置指令功能設定每次寫入1位數(shù)據(jù)后光標的移位方向,并且設定每次寫入的一個字符是否移動。參數(shù)設定的情況如下所示位名設置I/D0寫入新數(shù)據(jù)后光標左移1寫入新數(shù)據(jù)后光標右移S0寫入新數(shù)據(jù)后顯示屏不移動1寫入新數(shù)據(jù)后顯示屏整體右移1個字4顯示開關控制指令功能控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。參數(shù)設定的情況如下位名設置D0顯示功能關1顯示功能開C0無光標1有光標B0光標不閃爍1光標閃爍5設定顯示屏或光標移動方向指令功能使光標移位或使整個顯示屏幕移位。參數(shù)設定的情況如下S/CR/L設定情況00光標左移1格,且AC值減101光標右移1格,且AC值加110顯示器上字符全部左移一格,但光標不動11顯示器上字符全部右移一格,但光標不動6功能設定指令功能設定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設定的情況如下位名設置DL0數(shù)據(jù)總線為4位1數(shù)據(jù)總線為8位N0顯示1行1顯示2行F057點陣/每字符1510點陣/每字符7設定CGRAM地址指令功能設定下一個要存入數(shù)據(jù)的CGRAM的地址。8設定DDRAM地址指令功能設定下一個要存入數(shù)據(jù)的CGRAM的地址。注意這里我們送地址的時候應該是0X80ADDRESS,這也是前面說到寫地址命令的時候要加上0X80的原因9讀取忙信號或AC地址指令功能讀取忙碌信號BF的內(nèi)容,BF1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令當BF0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令讀取地址計數(shù)器AC的內(nèi)容。10數(shù)據(jù)寫入DDRAM或CGRAM指令功能將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應的字符將用戶自己設計的圖形存入CGRAM。11從CGRAM或DDRAM讀出數(shù)據(jù)的指令功能讀取DDRAM或CGRAM中的內(nèi)容?;静僮鲿r序讀狀態(tài)輸入RSL,RWH,EH輸出DB0DB7狀態(tài)字寫指令輸入RSL,RWL,E下降沿脈沖,DB0DB7指令碼輸出無讀數(shù)據(jù)輸入RSH,RWH,EH輸出DB0DB7數(shù)據(jù)寫數(shù)據(jù)輸入RSH,RWL,E下降沿脈沖,DB0DB7數(shù)據(jù)輸出無三、實訓成果系統(tǒng)設計原理圖(2)、流程圖開始是否設置正常溫度范圍采用溫度否初始化或者已設置范圍是設置最大溫度值MAX設置最小溫度值MIN采集當前溫度NUM并在LCD顯示NUMMAX電機轉(zhuǎn)動、高溫燈是閃爍、蜂鳴器報警否NUMINCLUDE/包含_NOP_函數(shù)定義的頭文件DEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTUCHARCODEDIGIT“0123456789“/定義字符數(shù)組顯示數(shù)字及正負號UCHARCODETABLE1“CURRENTTEMPERATURE“UCHARCODETABLE2“CENT“UCHARCODETABLE3“HIGH“UCHARCODETABLE4“LOW“SBITLCDENP07/定義LCD使能位SBITLCDRSP06/定義LCD的RS位SBITMOTORP30/定義電機驅(qū)動位SBITLAMPP31/定義加熱燈驅(qū)動位SBITDQP36/定義DS18B20的數(shù)據(jù)位SBITLED1P05/定義高溫指示燈驅(qū)動位SBITLED2P02/定義正常指示燈驅(qū)動位SBITLED3P01/定義低溫指示燈驅(qū)動位SBITBUZZERP03UCHARTIME,FLAG,FLAG1,FLAG2,FLAG3,FLAG4,FLAG5,FLAG6,FLAG7,NUM,I2UINTTEMP,NUM1VOLATILEUINTNUMT,NUMT1,NUMT2CHARNUMHIGH,NUMLOW/定義高溫度,低溫度VOIDDELAYUINTZ/粗略延時子程序UINTX,YFORXZX0XFORY10Y0YVOIDDELAY1MS/1毫秒延時子程序UNSIGNEDINTI,JFORI0I1IFDQ1DAT|0X80/如果讀到的數(shù)據(jù)是1,則將1存入DATELSEDAT|0X00/如果讀到的數(shù)據(jù)是0,則將0存入DAT/將單片

溫馨提示

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

評論

0/150

提交評論