【正文】
e LED_CODES[]= {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86, 0x8e,0xff,0x0c,0x89,0x7f,0xbf}。多位LED顯示器的顯示方式分為靜態(tài)方式和動(dòng)態(tài)掃描方式。共陽(yáng)極LED與其相反。輸出內(nèi)容較復(fù)雜的系統(tǒng)也有才有字符型點(diǎn)陣式LED、字符型LCD等,這里只介紹八段LED顯示器,可用于數(shù)字和部分字符顯示。 本設(shè)計(jì)是接口技術(shù)、應(yīng)用系統(tǒng)設(shè)計(jì)、Proteus仿真的結(jié)合,介紹存儲(chǔ)系統(tǒng)、數(shù)據(jù)采集、串口通信等知識(shí)及其在PID溫控器設(shè)計(jì)中的應(yīng)用于仿真,從個(gè)子系統(tǒng)開始,設(shè)計(jì)并逐步完善,直至整個(gè)應(yīng)用系統(tǒng)的實(shí)現(xiàn)。按Ctrl+C計(jì)入子電路所在的設(shè)計(jì)頁(yè),原ULA2003驅(qū)動(dòng)部分加上相應(yīng)的端子。它支持匯編、C語(yǔ)言以及混合編程,同時(shí)具備功能強(qiáng)大的軟件仿真,在軟件模擬仿真方式下不需要任何單片機(jī)硬件即可完成用戶程序仿真調(diào)試;雖然Keil也提供了硬件仿真(用Monitor51協(xié)議,需要硬件支持)功能,但我們?cè)诶盟挠布抡婀δ艿臅r(shí)候,它會(huì)受到一定的限制。 Proteus 與Keil C 的聯(lián)合仿真 目前,單片機(jī)仿真軟件很多,Proteus ISIS 與其他單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能夠仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其他電路的工作情況。解決方法為:選擇Edit|Configuration 菜單項(xiàng),彈出界面,將C源程序文本字體選擇為DotumChe , 此字體可避免出現(xiàn)漢字亂碼現(xiàn)象。通過uVision 3的各種選項(xiàng),配置Cx51編譯器、Ax51宏編譯器、BL51/Lx51連接定位器以Debug 調(diào)試器的功能。 從標(biāo)準(zhǔn)C轉(zhuǎn)向Keil CC51是專門為51系列單片機(jī)設(shè)計(jì)的,根據(jù)51單片機(jī)自身的特點(diǎn)進(jìn)行了若干擴(kuò)展,與ANSIC在語(yǔ)法和庫(kù)函數(shù)方面存在稍許差別,但絕大部分是兼容的。一個(gè)全雙工串行通信口。外部數(shù)據(jù)存儲(chǔ)器尋址空間為64KB。4KB程序存儲(chǔ)器ROM(4096個(gè)8位淹沒ROM)。該系列其他單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減改變而來的,所以人們習(xí)慣用8051來稱呼MCS-8051系列單片機(jī),而其中的8031在20世紀(jì)80年代末90年代初是我國(guó)最流行的單片機(jī)之一。系統(tǒng)程序主要包括主程序,讀出溫度子程序,計(jì)算溫度子程序、按鍵處理程序、LCD顯示程序以及數(shù)據(jù)存儲(chǔ)程序等。本設(shè)計(jì)論述了一種以STC89C52單片機(jī)為主控制單元。該控制系統(tǒng)可以實(shí)時(shí)存儲(chǔ)相關(guān)的溫度數(shù)據(jù)。關(guān)鍵詞: STC89C52單片機(jī);DS18B20;顯示電路AbstractAlong with the puter measurement and control technology of the rapid development and wide application, based on singlechip temperature gathering and control system development and application greatly improve the production of temperature in life level of control. This design STC89C52 describes a kind of mainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can realtime storage temperature data and record related to the current time. System design related hardware circuit and related applications. STC89C52 microcontroller hardware circuit include temperature detection circuit smallest system, and realtime clock circuit, LCD display circuit, munication module circuit, etc. System programming mainly include main program, read temperature subroutine, the calculation of temperature subroutines, key processing procedures, LCD display procedures and data storage procedures, etc. Keywords :STC89C52 microcontroller;DS18B20;display circuit第1章 51單片機(jī)結(jié)構(gòu)和原理單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),也稱為微控制器(Micro Controller Unit),,它把微型計(jì)算機(jī)的宮格功能部件(中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、輸入輸出I/O接口、定時(shí)器/計(jì)數(shù)器以及串行通信接口等)集成在一塊芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),故又稱為單片微型計(jì)算機(jī)。INTEL公司后來將MCS51的核心技術(shù)授權(quán)給了其他公司,現(xiàn)在生產(chǎn)8051內(nèi)核單片機(jī)的公司,主要有ATMEL、WINBOND、NXP、NC?。模遥粒牵希蔚?。128字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM(128個(gè)8位淹沒RAM)。外部程序存儲(chǔ)器尋址空間為64KB。有位尋址功能,適于布爾處理的位處理機(jī)制。但在學(xué)習(xí)中,使用最多的還是Keil u Vision3。利用uVision 3的構(gòu)造功能對(duì)項(xiàng)目中的源程序文件進(jìn)行編譯鏈接,生成絕對(duì)目標(biāo)代碼和可選的HEX格式的可執(zhí)行文件,如果出現(xiàn)編譯鏈接錯(cuò)誤則返回上一步,修改源程序中的錯(cuò)誤后重新構(gòu)造整個(gè)項(xiàng)目。原版的Keil C編譯器會(huì)忽略編碼為0xFD的字符,當(dāng)編寫中文顯示程序時(shí)會(huì)出現(xiàn)問題,應(yīng)安裝針對(duì)這一問題的專用補(bǔ)丁,許多Keil C安裝包都含有該補(bǔ)丁程序,安裝時(shí)間可根據(jù)幫助文件安裝該補(bǔ)丁。一次在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程師的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。如果我們將Proteus ISIS與Keil整合起來使用,充分利用各自的仿真功能,單片機(jī)軟硬件的調(diào)試將變的十分有效。由于LED的驅(qū)動(dòng)部分有多中方案,將來采用別的方案時(shí)不需要做任何的修改。 8051存儲(chǔ)系統(tǒng)擴(kuò)展和PID溫控器的存儲(chǔ)系統(tǒng)設(shè)計(jì) PID溫控器存儲(chǔ)系統(tǒng)設(shè)計(jì)PID溫控器的存儲(chǔ)系統(tǒng)設(shè)計(jì)中使用了一片38譯碼器74LS138來產(chǎn)生各芯片所需的片選信號(hào)。 八段LED顯示器下圖為筆段式八段LED數(shù)碼管原理圖。圖33 筆段式八段LED數(shù)碼管原理圖不考慮端,可知共陽(yáng)極顯示字符0時(shí)的各段二進(jìn)制編碼為1100 0000 ,寫成十六進(jìn)制為0xC0。靜態(tài)方式中各LED的段引腳和端都獨(dú)立接線,這種方式的好處是程序相對(duì)簡(jiǎn)單,顯示無(wú)閃爍;缺點(diǎn)是功耗大。void main() { XBYTE[0x0000]= LED_CODES[1]。 } 圖39 試驗(yàn)仿真圖 PID溫控器LED顯示及仿真YES關(guān)閉全部LED1ms延時(shí)取輸入數(shù)據(jù)查表送取字型碼送字選通信號(hào)顯示一個(gè)數(shù)據(jù)是否是最后一位顯示結(jié)束設(shè)置顯示位數(shù)i初始化8255A開始圖310 LED程序流程圖下圖為PID溫控器LED顯示部分的Proteus仿真原理圖。8255A端口C經(jīng)74LS244的相同輸出S0~S7作為L(zhǎng)ED的段驅(qū)動(dòng)信號(hào),當(dāng)某位LED各段全部點(diǎn)亮?xí)r,端電流會(huì)達(dá)到120~150mA,所以,選用驅(qū)動(dòng)能力較強(qiáng)的ULN2003A作為驅(qū)動(dòng)器件。void oneByone (char datas[])。 include include include unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20}。j10。XBYTE[PORT_CONTROL]=0x90。XBYTE[PORT_B] =Select[led]。 Init8255()。m!=0。m!=0。 } }圖312 PID溫控器LED動(dòng)態(tài)顯示運(yùn)行效果圖 鍵盤監(jiān)測(cè)基本原理鍵盤猶如一個(gè)開關(guān),當(dāng)鍵盤未閉合時(shí),A點(diǎn)為高電平,當(dāng)K閉合后,電路導(dǎo)通,A點(diǎn)電平拉低,如將A點(diǎn)以某種方式介入計(jì)算機(jī)系統(tǒng),計(jì)算機(jī)就可以通過檢測(cè)A點(diǎn)電平的高低來判別K鍵是否閉合。下圖是獨(dú)立式鍵盤的接線示意圖。矩陣鍵盤的識(shí)別有行掃描法和行反轉(zhuǎn)法兩種。如果有某一個(gè)鍵被按下,則必有一條列線位低電平,在進(jìn)行反轉(zhuǎn),即將讀入的列線值從列線所連的端口輸出,在從行線所連端口讀入行線的值,那么閉合鍵所對(duì)應(yīng)的行線必位低電平。i!=0。 P1=0xf0。i!=0。Result= 1。i!=0。break。P1=t1。for(i=4。 if(t3!=0){*row=i1。}