版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、. 目 錄摘要1第一章 總體設計方案1.1 背景21.2 系統(tǒng)功能描述21.3 系統(tǒng)總體結構3第二章 硬件系統(tǒng)的設計2.1微處理器(單片機)42.2溫度傳感器DS18B2042.3液晶顯示模塊TG12864B52.4定時器62.5功能按鍵72.6原理圖8第三章 系統(tǒng)的軟件的設計3.1 液晶顯示模塊93.2 溫度傳感器93.3壓縮機狀態(tài)103.4 總結構框圖10第四章 程序調試與運行4.1 調試方法124.2 調試過程中遇到的問題以及解決12第五章 設計小結14附錄15 :32摘 要隨著集成電路技術的發(fā)展,單片微型計算機的功能也不斷增強,許多高性能的新型機種不斷涌現(xiàn)出來。單片機以其功能強、體積小
2、、可靠性高、造價低和開發(fā)周期短等優(yōu)點,稱為自動化和各個測控領域中廣泛應用的器件,在工業(yè)生產中稱為必不可少的器件,尤其在日常生活中發(fā)揮的作用也越來越大。人們對家用電冰箱的控制功能越來越高,這對電冰箱控制器提出了更高的要求。多功能,智能化是其發(fā)展方向之一,傳統(tǒng)的機器控制,簡單的電子控制已經難以滿足發(fā)展的要求。而采用基于單片機溫度控制系統(tǒng),不僅可大大縮短設計新產品的時間,同時只要增加少許外圍器件在軟件設計方面就能實現(xiàn)功能的擴展,以及智能化方面的提高,因此可最大限度地節(jié)約成本。本文即為基于單片機的電冰箱溫度控制系統(tǒng)。目前市場銷售的雙門直冷式電冰箱,含有冷凍室和冷藏室,冷凍室通常用于冷凍的溫度為-6-1
3、8;冷藏室用于在相對冷凍室較高的溫度下存放食品,要求有一定的保鮮作用,不能凍傷食品,室溫一般為010.傳統(tǒng)的電冰箱溫度一般是由冷藏室控制,冷藏室、冷凍室的不同溫度是通過調節(jié)蒸發(fā)器在兩室的面積大小來實現(xiàn)的,溫度調節(jié)完全依靠壓縮機的開停來控制.但是冰箱內的溫度受諸多因素的影響,如放入冰箱物品初始溫度的高低、存放品的散熱特性及熱容量、物品在冰箱的充滿率、環(huán)境溫度的高低、開門的頻繁程度等.因此對這種受控參數(shù)及隨機因素很多的溫度控制,既難以建立一個標準的數(shù)學模型,也無法用傳統(tǒng)的PID調節(jié)來實現(xiàn).一臺品質優(yōu)良的電冰箱應該具有較高的溫度控制精度,同時又有最優(yōu)的節(jié)能效果,而為了達到這一設計要求采用模糊控制技術
4、無疑是最佳的選擇。 第一章 總體設計方案1.1背景隨著技術的發(fā)展,目前有些冰箱采用電腦只能溫控及LCD(或LED)箱門外溫度顯示。所謂智能溫控就是通過感溫頭精確感應,把冰箱內溫度的變化傳遞給中央控制芯片,由芯片控制制冷系統(tǒng)使冰箱內溫度達到顯示屏上設定值,使用者只需要根據(jù)食物的種類不同設定不同的溫度即可,以此達到最大的保鮮程度。傳統(tǒng)的電冰箱的冷藏室溫控器旋鈕一般有7個數(shù)字,這些數(shù)字并不表示冰箱內具體的溫度值,而是表示所控制的溫度檔位。數(shù)字越小,箱內溫度越高。隨著人們的生活水平的提高,對冰箱的控制功能要求越來越高,這對電冰箱控制器提出了更高的要求,傳統(tǒng)冰箱的溫控器也就無法滿足人們的需求了。因此,能
5、夠實現(xiàn)精確控制溫度、方便的設定和修改并且能夠實時顯示當前溫度是非常重要的。1.2總體功能 液晶顯示電冰箱溫控器的設計是以單片機AT89C51作為核心控制器,利用DALAS一線式溫度傳感器DS18B20實現(xiàn)對電冰箱內冷藏室和冷凍室的溫度采集。通過按鍵可以對電冰箱內冷藏室和冷凍室的溫度進行預先設定。當電冰箱內的溫度值高于用戶設定的溫度值時,系統(tǒng)將由單片機控制繼電器自動開啟壓縮機進行制冷,使冰箱內溫度自動降溫,當電冰箱內的溫度值低于設定溫度值時,系統(tǒng)將由單片機控制繼電器自動關閉壓縮機停止制冷,以此來自動實現(xiàn)電冰箱內溫度的自動調節(jié)。同時相關的狀態(tài)信息要在點陣漢字液晶屏上實時地顯示。具體顯示內容有: 1
6、、實時時鐘:*:*:*。2、冷藏室溫度:*.*。3、冷凍室溫度:*.*。4壓縮:開或關。5、冰箱外環(huán)境溫度:*.*。6、按鍵預置的溫度值(冷藏室溫度、冷凍室溫度)。1.3 總體框圖使用定時器,實現(xiàn)實時時間自動走時 TG12864B液晶屏顯示冷藏室、冷凍室溫度和室外溫度。通過按鍵加減預設冷藏室和冷凍室溫度,與冷藏室、冷凍室溫度相比較,決定壓縮機的開或關單片機80C51溫度傳感器DS18B20調節(jié)冷藏室、冷凍室當前溫度和室外溫度圖1.3 圖2.1 AT89S52 圖2.2 AT89S51實物圖(基本與AT89S52一樣)第二章 硬件系統(tǒng)的設計2.1 微處理器(單片機) AT89S52是美國ATME
7、L公司生產的低功耗,高性能CMOS 8位單片機,片內含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統(tǒng)及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中。AT89S52提供以下標準功能:8k字節(jié)Flash閃速存儲器,256字節(jié)內部RAM, 32個I/O口線,看門狗(WDT),兩個數(shù)據(jù)指針,三個16位定時/計數(shù)器,一個6向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89S52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作
8、模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。AT89S52的引腳圖和實物圖分別如上圖2.1和圖2.2所示。2.2 溫度傳感器DS18B202.2.1 DS18B20(如圖2.2.1)是美國DALLAS公司推出的數(shù)字溫度傳感器,傳感器及相關的數(shù)字轉換電路都被集成到了一起,外形如同一只三極管,具有微型化、低耗能、高性能、抗干擾能力強等優(yōu)點;獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條I/O口線即可實現(xiàn)微處理器與DS18B20的雙向通訊;每片DA18B
9、20均有唯一的產品序列號,所以允許在單總線上掛接數(shù)十至百片溫度傳感器,這樣可以非常方便地構成多路溫度測量系統(tǒng)。 2.2.2 DS18B20的特點: 圖2.2.1(1)適應電壓范圍寬,電壓范圍:3.0-5.5V,在寄生電源方式下可以由數(shù)據(jù)線供電;(2)DS18B20支持多點組網功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網多點測量。(3)DS18B20在使用中不需要任何外圍元件,全部傳感元(4)溫度范圍-55+125,在-10+85時精度為±0.5;(5)可編程的分辨率為912位,對應的可分辨溫度分別為0.5,0.25,0.125,0.0625,可以實現(xiàn)高精度測溫;在9位分辨
10、率時最多在93.75ms內把溫度轉換為數(shù)字,12位分辨率時最多在750ms內把溫度值轉換為數(shù)字,速度更快。(7)測量結果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時可以傳送CRC校驗碼,具有極強的抗干擾糾錯能力;(8)負壓特性:電源極性接反時,芯片不會因為發(fā)熱而燒毀,但是不能正常工作。2.2.3 單片機與DS18B20的接口電路(如圖2.2.3)圖2.2.3 單片機與DS18B20的接口電路2.3 液晶顯示模塊TG12864BTG12864B點陣液晶屏(如圖2.3.1)顯示模塊是由128*64個液晶屏顯示點組合的一個陣列,每個顯示點對應一位二進制數(shù),1表示點亮,0表示滅,儲存這些
11、點陣信息的RAM稱為顯示數(shù)據(jù)存儲器,為了在屏幕指定位置顯示某個圖形或字符,需要將相應的點陣信息寫入到DDRAM相應的單元中。 圖 2.3.1圖2-4TG12864B液晶屏實際上是由左右兩塊獨立的64*64點陣液晶屏拼接而成,每半屏有一個8*64*8bitDDRAM,左右半屏驅動電路及存儲分別有片選信號CS1和CS2選擇。顯示點在64*64液晶屏上的位置由行號(063)與列號(063)確定。DDRAM中某個存儲單元由頁地址(07)和列地址(063)確定。每個存儲單元的8位二進制數(shù)對應屏幕上同一列的8個點陣。其引腳功能說明如表2.3.2所示管腳號管腳引腳說明1 VSS 電源地 2 VDD 電源正極
12、(+5V)。使用可變電阻調整,通常接地。 3 VO 液晶顯示器對比試調整端 4 D/I 數(shù)據(jù)/指令選擇:當D/I為高電平時,DB0DB7為顯示數(shù)據(jù) 當D/I為低電平時,DB0DB7為指令數(shù)據(jù) 5 R/W 讀/寫選擇:當R/W為高電平(即R/W=1)時,從液晶模塊讀數(shù)據(jù) 當R/W為低電平(即R/W=0)時,將數(shù)據(jù)寫入液晶模塊 6 E 讀寫使能,高電平有效,下降沿鎖定數(shù)據(jù) 714 DB0DB7 雙向數(shù)據(jù)總線的第07位共8位并行數(shù)據(jù)總線 15 CS1 片選擇信號,高電平時選擇前64列 16 CS2 片選擇信號,高電平時選擇后64列 17 RST 復位信號,低電平有效 18 VEE LCD驅動電源(1
13、0V) 19 BLA 背光電源,LED+ 20 BLK 背光電源,LED- 表2.3.22.4 定時器在51系列單片機中有兩個16位的加法計數(shù)器,分別叫做T0和T1.它們在計數(shù)脈沖的作用下,其計數(shù)值不斷加1,在此過程中,計數(shù)器可能產生溢出(溢出是指計數(shù)器的計數(shù)值全為“1”時,在計數(shù)脈沖的作用下,全部歸0的動作),產生溢出后,可以向CPU發(fā)出中斷請求。計數(shù)脈沖可以來源于系統(tǒng)時鐘或外部電路。如果計數(shù)脈沖來自系統(tǒng)時鐘,稱之為”定時器”,每個機器周期(一個機器周期由12個時鐘周期組成)計數(shù)器加1;如果計數(shù)脈沖來自外部電路,稱之為”計數(shù)器”,此時單片機在每個機器周期對T0引腳進行檢測。定時器方式寄存器T
14、MOD用于控制定時器/計數(shù)器的工作方式,不具有位尋址能力。TMOD寄存器的高4位用于T1的設定,低4位用于T0的設定,其定義相同,其中:定時器/計數(shù)器T1定時器/計數(shù)器T0D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M01) M0、M1:選擇定時器/計數(shù)器的工作方式,T0有4種工作方式,T1有三種工作方式,00為方式0,01為方式1,10為方式2,11為方式3,由M1,M2設定。2) C/¯T:定時方式/計數(shù)方式的選擇控制位。C/¯T=0,選定時方式,計數(shù)脈沖來自系統(tǒng)時鐘的12分頻;C/¯T=1,選計數(shù)方式,計數(shù)脈沖來自外部電路(對于T
15、0來說,由P3.4引腳輸入,對于T1來說,由P3.5引腳輸入)。3) GATE:位被稱為“門控位”。當GATE=0時,只要TR0=1,與門的輸出就為1,計數(shù)開始。如果GATE為1時,只有TR0=1,并且P3.2-1時,才允許計數(shù)。其功能可通過圖2.4來分析。 圖2.4 定時器/計數(shù)器T0的邏輯示意圖2.5 功能按鍵本設計中用到了4個按鍵,分別為K13,K14,K15,K16,通過按鍵來預設冷藏和冷凍溫度值。其定義如下: #define KSET 0xe0 #define KSET_LONG 0xe1 #define KINC 0xd0 #define KDEC 0xb0 #define KDO
16、WN 0x702.6 原理圖開始以filldata充填液晶屏初始化液晶屏,復位驅動芯片,打開顯示在液晶屏的cy(03)行,cx(07)列顯示漢字字符點陣列號為8?在左半屏顯示在右半屏顯示求出漢字在屏幕上的起始列設置漢字的頁,列地址,顯示漢字結束YN 圖3.2液晶顯示流程圖第三章 系統(tǒng)的軟件的設計液晶顯示電冰箱溫控器含有四個模塊,分別是液晶顯示模塊,溫度傳感器,定時器走時和主函數(shù),。3.1 液晶顯示模塊液晶顯示結果如圖3.1所示,第一行為實時時間,第二行為冷藏溫度,圖3.1第三行為冷凍溫度,第四行為壓縮,開或關,液晶顯示流程圖如上圖3.2。 TG12864B液晶屏顯示4行16*16點陣的漢字,每
17、行顯示8列,如果列號小于4,則顯示在左半屏,否則顯示在右半屏。由于一個漢字占用2頁,程序首先必須設置上半個漢字的頁地址,起始列,并輸出16個字節(jié)數(shù)據(jù),隨后設置下半個漢字的頁地址、起始列地址,并輸出16個字節(jié)數(shù)據(jù)。3.2 溫度傳感器使用三個溫度傳感器DS18B20實現(xiàn)冷藏室,冷凍室和當前溫度的調節(jié)與設置,并及時地在液晶屏上顯示出來,如下:圖3.2.1為三個溫度傳感器。圖3.2.2即為液晶屏上對應的三個溫度的顯示。 圖3.2.1 溫度傳感器 圖3.2.2.3.3 壓縮機狀態(tài)如果當前冷藏室溫度和冷凍室溫度中只要有一個溫度值大于預設的冷藏室,冷凍室溫度時,則壓縮機狀態(tài)為開,如圖3.3.1和3.3.2圖
18、3.3.1 圖3.3.2如果當前冷藏室溫度和冷凍室溫度值都小于預設的冷藏室,冷凍室溫度時,則壓縮機狀態(tài)為關,如圖3.3.3和圖3.3.4。 圖3.3.3 圖3.3.43.4 總流程圖開始初始化液晶屏,在指定位置顯示漢字檢測傳感器的溫度值當前溫度<0NY求出絕對值將溫度值轉換為“XX.X”格式的字符串,去除高位的“0”字符,在LCD指定位置顯示溫度值定時器控制當前時間走時,在屏幕指定位置顯示N短按KSET原界面:顯示冷藏冷凍室溫度Y進入預設冷藏室冷凍室溫度的界面溫度值加1按鍵KINC是否按下YN溫度值減1按鍵KDEC是否按下YN溫度下移按鍵KDOWN是否按下YNY長按KSETN壓縮機狀態(tài)改
19、變(開或關)N退出溫度設定結束第四章 程序調試與運行4.1 調試方法我們用Keil uVision2以及Proteus 6 Professional這兩個軟件調試,在調試中,我們用Keil uVision2編寫和調試程序,用Proteus 6 Professional畫電路圖,液晶屏的DI接到單片機的P34,RW端連接到單片機的P35,CS選擇屏端連接到單片機的P33,E端連接到單片機的P36,DB0DB7顯示數(shù)據(jù)連接到單片的P00P07,溫度傳感器DS18B20的(RST)端接到單片機的P37口,最終將兩個軟件連接起來,編譯并全速運行,看電路圖上液晶屏的顯示是否正確。一:檢查液晶屏上漢字是否
20、正確顯示,如果液晶屏沒有正確顯示,先檢查電路,如果硬件電路圖連線沒有錯誤,然后檢查程序,用斷點或單目進行調試運行,看程序中哪一步出現(xiàn)錯誤,加以修改。二:調節(jié)溫度傳感器的溫度,檢查改變后的溫度是否正常顯示,當前時間是否正常走時。三:短按K12進入更改預設溫度狀態(tài),K13加數(shù)值,K14減數(shù)值,K15上下移,長按K12鍵退出設置界面,返回原來界面。檢查壓縮機狀態(tài)是否根據(jù)溫度的變化而變化。4.2 調試過程中遇到的問題以及解決方法4.2.1 問題: DS18B20上的溫度不能及時地顯示在TG12864B液晶屏上。解決方法:首先檢查電路,看是否有因為粗心連錯了引腳,檢查后發(fā)現(xiàn),由于每個DS18B20都有一
21、個屬于自己的序列號,所以要更改protues仿真圖中的溫度傳感器的序列號,修改后,還是不能正常顯示,然后通過斷點調試,發(fā)現(xiàn)定義的溫度字節(jié)L寫成了1,改正后就可以了。4.2.2 問題:預設的冷藏室溫度5,冷凍室溫度-5,只能顯示一個5,-5要按KDOWN鍵后才出現(xiàn)。解決方法:缺少語句 LCD_DispDat(no*2+4,10,dbuf1)。 4.2.3 問題:壓縮機一直處于開的狀態(tài),不能隨著溫度的改變轉變?yōu)殛P。解決方法:檢查相關語句,通過斷點調試以及全速運行,發(fā)現(xiàn)小數(shù)位沒有正確移位,編譯運行,發(fā)現(xiàn)可以正常切換開和關。4.2.4 問題:實時時間不能正常走時。解決方法:仔細觀察圖,其中其它有個地方
22、總是閃,所以試著更改實現(xiàn)走時的時間位置,后來時間就能正常走時了。4.2.5 問題:在顯示界面,時、分、秒顯示的行和列有問題。解決方法:修改LCD_DispDat2(7,5+col*3,timecol)使之與前面的內容相對應。4.2.6 問題:按鍵無效解決方法:按鍵無效,硬件沒有問題,那么問題就出現(xiàn)在軟件,按鍵無效,按鍵鍵值沒有正確讀取,單目運行,發(fā)現(xiàn)在按鍵的函數(shù)中出現(xiàn)死循環(huán),鍵值根本沒有傳遞,所以按鍵無效,更改函數(shù),可以正常使用。第五章 設計小結這次為期三周的智能電子產品綜合項目實踐做的是液晶顯示電冰箱溫控器的設計,它是以單片機80C51為中心,加上液晶顯示屏TG12864B,溫度傳感器DS1
23、8B20和定時器構成的,在項目中涉及到了液晶顯示,溫度傳遞,定時中斷等知識,很好地讓我復習了以前的知識,溫故而知新,同時也讓我將理論知識運用到實踐中,領悟到了“紙上得來終覺淺,絕知此事要躬行”的樂趣,讓我獲益匪淺。 第一周,老師讓我們做了幾個小項目,目的是讓我們回憶,復習一下以前學習的知識,為做液晶顯示電冰箱溫控器作基礎,我通過不斷編寫和調試漸漸地熟練地掌握了Keil uVision2以及Proteus 6 Professional兩個軟件的使用,為后面的做項目提供了很多方便。第二周和第三周,老師發(fā)給我們這個項目的任務書,要求中最基礎的是在液晶顯示屏上顯示冷藏室、冷凍室溫度,這個不怎么難,以前
24、學過,然后就是要把溫度傳感器DS18B20和液晶顯示屏上的冷藏室、冷凍室溫度聯(lián)系起來,實現(xiàn)冷藏室、冷凍室溫度隨著溫度傳感器的調節(jié)而改變,在運行與調試中,經常出現(xiàn)問題,后來通過對照書上的類似代碼查找錯誤,多次修改嘗試,終于成功聯(lián)系起來了。接著是實時時間正常走時,要使用定時器中斷來實現(xiàn),最后就是實現(xiàn)壓縮機的狀態(tài)開或關的變換,通過將當前冷藏室與冷凍室的溫度與預設的溫度值相比較,這個有一定的難度,自己調試了好幾次都沒實現(xiàn),后來請教老師,老師用斷點調試,發(fā)現(xiàn)我的小數(shù)位沒有正確地移動,修改了之后就可以正確地切換開和關了。 通過這次的項目實踐,我學到了許多知識,例如液晶顯示,溫度傳感器以及定時器的使用比以前
25、熟練多了,而且在老師的幫助下,學會了斷點調試,任何問題只要用這種方法,一步一步地調試和運行,終會找到錯誤之處,從而對癥下藥,修改錯誤,使我們不用做無用功,節(jié)省了很多時間,可以說是事半功倍。更重要的是,我認識到了,面對遇到的問題和錯誤,要冷靜從容地應對,不要干著急,或者害怕。老師說的對,遇到問題是好事,可以讓我們在解決問題、修改錯誤中獲得知識,提高自己的能力,怕就怕沒有問題,那樣我們就不會去積極地思考和不斷地嘗試,只會坐在這兒無所事事,不會提高。所以在今后的日子里,一定要直視問題,冷靜從容地面對困難,積極地尋找解決問題的方法,這樣才能使自己學到更多的知識,獲得提高,從而走向成功。附錄一、Main
26、.C 主函數(shù)模塊#include <reg51.h>#define uchar unsigned char#define uint unsigned intextern void LCD_DispIni(void);extern void LCD_DispFill(uchar filldata);extern void LCD_DispChar(uchar cy,uchar cx,char dispdata);extern void LCD_DispStr(uchar cy,uchar cx,char*disp_str);extern void LCD_DispHZ(uchar c
27、y,uchar cx,uchar dispdata);extern void LCD_DispHZStr(uchar cy,uchar cx,uchar*disp_str);extern void gettemp(int temp);extern void readid(uchar * id);extern void InitTimer0(void);uchar dp16=0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9; /小數(shù)部分轉換#define KSET 0xe0#define KSET_LONG 0xe1#define KINC 0xd0#define KDEC 0xb
28、0#define KDOWN 0x70uint count;char idata dbuf2=5,-5;uchar idata str6=0,0,0,0,0,0;char cang=5;char dong=-5;uchar time3=11,59,55;uchar buf0=0,1,2,3,4,0xff; /冷藏溫度uchar buf1=0,5,2,3,4,0xff; / 冷凍溫度uchar buf2=6,7,4,0xff; /壓縮uchar buf3=15,16,11,12,0xff; /溫度設置uchar buf4=10,0xff; /關uchar buf5=9,0xff; /開uchar
29、 buf6=0,1,14,4,0xff; /冷藏室uchar buf7=0,5,14,4,0xff; /冷凍室void delay(uchar t)uchar i; while(t-) for(i=0;i<250;i+);void LCD_DispDat(uchar cy,uchar cx,char dat) uchar str4; bit zf=0; if(dat<0) zf=1; dat=-dat; str1=dat/10+0x30; /將變量dat轉換為2位字符串 str2=dat%10+0x30; str3=0; /字符串用0作為結束符 if(zf=1) if(str1=&
30、#39;0') str0=' ' str1='-' else str0='-' else if(str0='0')str1=' 'str0=' ' LCD_DispStr(cy,cx,str); /顯示字符串uchar GetKey(void)uchar key; uchar t; if(key=P2&0xf0)=0xf0) return 0xff; for(t=0;t<5;t+) delay(5); if(key=P2&0xf0)=0xf0) return 0xff;
31、 while(P2&0xf0)!=0xf0) /檢測按鍵時間 delay(5); if(t<250) t+; if(t>100)&&(key=0xE0) return 0xE1; return key;void DispTime(void) LCD_DispDat(0,5,time0); /時 LCD_DispChar(0,8,':'); LCD_DispDat(0,9,time1); /分 LCD_DispChar(0,12,':'); LCD_DispDat(0,13,time2); / 秒void EditTemper(
32、void) /修改溫度uchar no=0; uchar key; LCD_DispDat(no*2+2,10,dbuf0); LCD_DispDat(no*2+4,10,dbuf1); while(1) key=GetKey(); if(key=KINC) /+ dbufno+; LCD_DispDat(no*2+2,10,dbufno); else if(key=KDEC) /- dbufno-; LCD_DispDat(no*2+2,10,dbufno); else if(key=KDOWN) LCD_DispDat(no*2+2,10,dbufno); no=(no+1)&0x
33、01; LCD_DispDat(no*2+2,10,dbufno); else if(key=KSET_LONG) cang=dbuf0; dong=dbuf1; LCD_DispIni(); break; void main(void) uchar str6=0,0,0,0,0,0; uchar i,key;int temp_back2; int temp3; bit zf; LCD_DispIni(); InitTimer0(); while(1) InitTimer0(); DispTime();LCD_DispHZStr(1,0,buf0); LCD_DispHZ(1,7,13);LC
34、D_DispHZStr(2,0,buf1); LCD_DispHZ(2,7,13); LCD_DispHZStr(3,0,buf2); LCD_DispHZ(3,7,13);key=GetKey();if(key=KSET) LCD_DispIni(); LCD_DispHZStr(0,2,buf3); LCD_DispHZStr(1,0,buf6); LCD_DispHZ(1,7,13); LCD_DispHZStr(2,0,buf7);LCD_DispHZ(2,7,13); EditTemper(); gettemp(temp); for(i=0;i<2;i+) temp_backi
35、=tempi;temp_backi=temp_backi>>4; if(temp_back0<cang)&&(temp_back1<dong) LCD_DispHZStr(3,3,buf4); /關 else LCD_DispHZStr(3,3,buf5); /開 for(i=0;i<3;i+) zf=0; if(tempi<0) zf=1; tempi=-tempi; str4=dptempi&0x0f+0x30; tempi=tempi>>4; str0=tempi/100+0x30; tempi=tempi%100;
36、 str1=tempi/10+0x30; str2=tempi%10+0x30; str3='.' if(zf=1) if(str1='0') str0=' ' str1='-' else str0='-' else if(str0='0') if(str1='0') str1=' 'str0=' ' LCD_DispStr(i*2)+3,9,str); 二、TG12864B.C 液晶顯示模塊#include<reg51.h>#includ
37、e<intrins.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned intsbit LCD_RST= P37;sbit DI = P34;sbit RW = P35;sbit CS = P33;sbit EN = P36;sbit RDY = P07;sfr LCD = 0x80;#define LCD_DISPON 0x3f#define LCD_STARTROW 0xc0#define LCD_ADDRSTRY 0xb8#define LCD_ADDRSTRX 0x40#def
38、ine CS1 0#define CS2 1void LCD_WrCmd(bit port,uchar cmd) EN=0; CS=port; DI=0; RW=0; EN=1; LCD=cmd; EN=0;void LCD_WrDat(bit port,uchar wrdata) EN=0; CS=port; DI=1; RW=0; EN=1; LCD=wrdata; EN=0;uchar code ASCII_TAB480 = /0x200x7F之間 ASCII碼對應的點陣數(shù)據(jù)表 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0
39、x00,0x00, 0x0e, 0x00, 0x0e, 0x00, 0x28, 0xfe, 0x28, 0xfe, 0x28, 0x48, 0x54, 0xfe, 0x54, 0x24, 0x46, 0x26, 0x10, 0xc8, 0xc4, 0x6c, 0x92, 0xaa, 0x44, 0xa0, 0x00, 0x0a, 0x06, 0x00, 0x00,0x00, 0x38, 0x44, 0x82, 0x00,0x00, 0x82, 0x44, 0x38, 0x00,0x28, 0x10, 0x7c, 0x10, 0x28,0x10, 0x10, 0x7c, 0x10, 0x10,0
40、x00, 0xa0, 0x60, 0x00, 0x00,0x10, 0x10, 0x10, 0x10, 0x10,0x00, 0xc0, 0xc0, 0x00, 0x00,0x40, 0x20, 0x10, 0x08, 0x04, 0x7C, 0xA2, 0x92, 0x8A, 0x7C,0x00, 0x84, 0xFE, 0x80, 0x00,0x84, 0xC2, 0xA2, 0x92, 0x8C,0x42, 0x82, 0x8A, 0x96, 0x62,0x30, 0x28, 0x24, 0xFE, 0x20,0x4E, 0x8A, 0x8A, 0x8A, 0x72,0x78, 0x94
41、, 0x92, 0x92, 0x60,0x02, 0xE2, 0x12, 0x0A, 0x06,0x6C, 0x92, 0x92, 0x92, 0x6C, 0x0C, 0x92, 0x92, 0x52, 0x3C,0x00, 0x6C, 0x6C, 0x00, 0x00,0x00, 0xAC, 0x6C, 0x00, 0x00,0x10, 0x28, 0x44, 0x82, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28,0x00, 0x82, 0x44, 0x28, 0x10,0x04, 0x02, 0xA2, 0x12, 0x0C, 0x64, 0x92, 0xF2,
42、 0x82, 0x7C,0xFC, 0x22, 0x22, 0x22, 0xFC,0xFE, 0x92, 0x92, 0x92, 0x6C,0x7C, 0x82, 0x82, 0x82, 0x44,0xFE, 0x82, 0x82, 0x44, 0x38,0xFE, 0x92, 0x92, 0x92, 0x82,0xFE, 0x12, 0x12, 0x12, 0x02,0x7C, 0x82, 0x92, 0x92, 0xF4,0xFE, 0x10, 0x10, 0x10, 0xFE,0x00, 0x82, 0xFE, 0x82, 0x00,0x40, 0x80, 0x82, 0x7E, 0x0
43、2,0xFE, 0x10, 0x28, 0x44, 0x82,0xFE, 0x80, 0x80, 0x80, 0x80,0xFE, 0x04, 0x18, 0x04, 0xFE,0xFE, 0x08, 0x10, 0x20, 0xFE,0x7C, 0x82, 0x82, 0x82, 0x7C, 0xFE, 0x12, 0x12, 0x12, 0x0C,0x7C, 0x82, 0xA2, 0x42, 0xBC,0xFE, 0x12, 0x32, 0x52, 0x8C,0x8C, 0x92, 0x92, 0x92, 0x62,0x02, 0x02, 0xFE, 0x02, 0x02,0x7E, 0
44、x80, 0x80, 0x80, 0x7E,0x3E, 0x40, 0x80, 0x40, 0x3E,0x7E, 0x80, 0x70, 0x80, 0x7E,0xC6, 0x28, 0x10, 0x28, 0xC6,0x0E, 0x10, 0xE0, 0x10, 0x0E,0xC2, 0xA2, 0x92, 0x8A, 0x86,0x00, 0xFE, 0x82, 0x82, 0x00,0x04, 0x08, 0x10, 0x20, 0x40,0x00, 0x82, 0x82, 0xFE, 0x00,0x08, 0x04, 0x02, 0x04, 0x08,0x80, 0x80, 0x80,
45、 0x80, 0x80, 0x00, 0x02, 0x04, 0x08, 0x00,0x40, 0xA8, 0xA8, 0xA8, 0xF0,0xFE, 0x90, 0x88, 0x88, 0x70,0x70, 0x88, 0x88, 0x88, 0x40,0x70, 0x88, 0x88, 0x90, 0xFE,0x70, 0xA8, 0xA8, 0xA8, 0x30,0x10, 0xFC, 0x12, 0x02, 0x04,0x18, 0xA4, 0xA4, 0xA4, 0x7C,0xFE, 0x10, 0x08, 0x08, 0xF0,0x00, 0x88, 0xFA, 0x80, 0x
46、00,0x40, 0x80, 0x88, 0x7A, 0x00,0xFE, 0x20, 0x50, 0x88, 0x00,0x00, 0x82, 0xFE, 0x80, 0x00,0xF8, 0x08, 0x30, 0x08, 0xF8,0xF8, 0x10, 0x08, 0x08, 0xF0,0x70, 0x88, 0x88, 0x88, 0x70, 0xF8, 0x28, 0x28, 0x28, 0x10,0x10, 0x28, 0x28, 0x30, 0xF8,0xF8, 0x10, 0x08, 0x08, 0x10,0x90, 0xA8, 0xA8, 0xA8, 0x40,0x08, 0x7E, 0x88, 0x80, 0x40,0x78, 0x80, 0x80, 0x40, 0xF8,0x38, 0x40, 0x80, 0x40, 0x38,0x78, 0x80, 0x60, 0x80, 0x78,0x88, 0x50, 0x20, 0x50, 0x88,0x18, 0xA0,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智慧城市規(guī)劃設計與應用技術服務合同3篇
- 2025年度人工智能教育機構勞動合同協(xié)議書范本3篇
- 2025年70米煙囪拆除工程施工用電安全管理與監(jiān)督合同3篇
- 2025年美甲美睫店兼職美甲師合作協(xié)議
- 2025年度體育賽事活動場地租用及保障服務協(xié)議3篇
- 二零二五年度廠房租賃安全生產責任書3篇
- 2025年度智能建筑項目分包勞務協(xié)議補充合同
- 2025年建筑工程施工合同模板:綠色建筑性能檢測與認證3篇
- 二零二五年度汽車維修配件供應鏈合同樣本3篇
- 2025年度幕墻工程綠色施工與節(jié)能減排合同4篇
- 服務器報價表
- 2025年高考化學試題分析及復習策略講座
- 世界近代史-對接選擇性必修 課件-高考統(tǒng)編版歷史一輪復習
- 2024-2029年中國制漿系統(tǒng)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 大門封條模板
- 【“凡爾賽”網絡流行語的形成及傳播研究11000字(論文)】
- ppr管件注塑工藝
- 液化氣站其他危險和有害因素辨識及分析
- 高中語文教學課例《勸學》課程思政核心素養(yǎng)教學設計及總結反思
- 中國農業(yè)銀行小微企業(yè)信貸業(yè)務貸后管理辦法規(guī)定
- 市政道路建設工程竣工驗收質量自評報告
評論
0/150
提交評論