




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、大連交通大學(xué)信息工程學(xué)院2012屆本科畢業(yè)生畢業(yè)設(shè)計(jì)(論文)摘要單片機(jī)體積小,功耗小,價(jià)格低,用途靈活,無處不在,屬于專用計(jì)算機(jī)。是一種特殊器件,需經(jīng)過專門學(xué)習(xí)方能掌握應(yīng)用,應(yīng)用中需設(shè)計(jì)專用的硬件和軟件。由于其內(nèi)部自帶兩個(gè)16位計(jì)數(shù)器,所以近年來在計(jì)數(shù)器領(lǐng)域的應(yīng)用也十分廣泛,計(jì)數(shù)器種類很多,根據(jù)構(gòu)成計(jì)數(shù)制的不同,可分為二進(jìn)制計(jì)數(shù)器和非二進(jìn)制計(jì)數(shù)器。根據(jù)計(jì)數(shù)器的增減趨勢,又分為加法、減法和可逆計(jì)數(shù)器。還有可預(yù)置數(shù)和可編程序功能計(jì)數(shù)器等等。本設(shè)計(jì)通過一個(gè)由AT89C51單片機(jī)控制,結(jié)合顯示電路、電源電路、LED數(shù)碼管以及鍵盤電路等組成的一個(gè)簡單的秒表系統(tǒng),對(duì)單片機(jī)的定時(shí)器/計(jì)數(shù)器的定時(shí)和計(jì)數(shù)原理進(jìn)
2、行研究。該系統(tǒng)的核心部分是由單片機(jī)最小系統(tǒng)構(gòu)成,在加上一系列外圍電路組成。這個(gè)多功能秒表系統(tǒng)能夠是實(shí)現(xiàn)兩位LED顯示,顯示的最大時(shí)間為24小時(shí)59分鐘59秒,每秒自動(dòng)加1,能正確地進(jìn)行計(jì)時(shí),還具有快加、復(fù)位功能。同時(shí)還可以當(dāng)做時(shí)鐘來使用。通過C語言編寫代碼并使用Proteus仿真、調(diào)試,實(shí)現(xiàn)了LED顯示屏實(shí)時(shí)時(shí)間顯示,按鍵切換顯示內(nèi)容的顯示狀態(tài)。由于Protues具有很強(qiáng)大的仿真調(diào)試功能,使用它可以實(shí)現(xiàn)在沒有單片機(jī)硬件仿真器的情況下仍然可以實(shí)現(xiàn)單片機(jī)系統(tǒng)的軟硬件開發(fā)的仿真調(diào)試。本系統(tǒng)利用Protues這一功能繪制了LED顯示屏原理圖、單片機(jī)最小系統(tǒng)原理圖以及整個(gè)完整的秒表系統(tǒng)的工作原理圖。向P
3、rotues中下載代碼,連接調(diào)試成功。關(guān)鍵詞:單片機(jī) 秒表 protuseABSTRACTMicrocontroller has many advantages such as small size, low consumption , low prices, be used widely, and be used everywhere and so on.It belong to the isinaprivate computer. It is a special device, after specialized
4、0;learning you can master and application it.In the application we must be designed in a dedicated hardware and software.The interior comes with two 16-bit counter, so in recent years it be used widely in the counter field.Th
5、ere are many kinds of counter, According to constitute the notation is different, can be divided into binary counter and the binary counter. According to the counter of the increase and decrease of the trend, and divided into the addition, subtraction, and reversible counter. And preset number and p
6、rogrammable function counter and so on.This design through the AT89C51 single-chip microcomputer control, combined with the show circuit, the power supply circuit, LED digital tube, and keyboard circuit consisting of a simple stopwatch system, the single chip microcomputer timer/counter of the timin
7、g and count principle for research. The core of the system is the smallest part of microcomputer system structure, combined with a series of periphery of circuit. The multi-function stopwatch system can realize is two LED display, display time for 00-99 seconds per second to be automatic add 1, can
8、correctly to add, subtract (fall) time, also has quickly add and reset function.Through the C language writing code and use Proteus simulation, commissioning, realized the LED display real-time time to show, switch button showing the contents of the display state. Because Protues has very powerful s
9、imulation commissioning function, use it can realize in no microcontroller hardware simulation suppressor can still achieve the SCM system hardware and software development of the simulation test. This system USES Protues this function to draw the LED display principle diagram, single chip minimize
10、system diagram and the complete a stopwatch system work principle diagram. Protues to download the code, connection debugging success.Key words: microcontrollerstopwatchprotuse目錄1 前言12 單片機(jī)控制電路的設(shè)計(jì)22.1 單片機(jī)介紹32.2 單片機(jī)的特點(diǎn)和結(jié)構(gòu)原理42.2.1 單片機(jī)的特點(diǎn)42.2.2 單片機(jī)結(jié)構(gòu)52.3 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)73 系統(tǒng)外圍電路的設(shè)計(jì)113.1 鍵盤電路的設(shè)計(jì)113.1.1 按鍵電路的
11、選擇113.1.2 按鍵電路的故障及解決方法123.2顯示電路的設(shè)計(jì)123.2.1 顯示電路的介紹123.2.2 LED數(shù)碼管的工作原理133.3 晶振振蕩電路的設(shè)計(jì)144 系統(tǒng)軟件的設(shè)計(jì)164.1 軟件設(shè)計(jì)概述164.2 軟件設(shè)計(jì)流程圖164.3 定時(shí)中斷服務(wù)程序流程圖174.3.1 中斷的介紹174.3.2 定時(shí)中斷的設(shè)置184.3.3 定時(shí)中斷程序195 Protues軟件仿真205.1 Protues軟件功能簡介205.2 Keilu Vision2.0軟件編譯215.2.1 Keilu Vision2.0軟件簡介215.2.2 Keilu Vision2.0軟件的使用說明226 系統(tǒng)
12、調(diào)試與功能說明256.1 系統(tǒng)性能測試與功能說明256.2 系統(tǒng)誤差分析256.3 軟件調(diào)試問題及解決25結(jié)論26謝辭27參考文獻(xiàn)28附錄29大連交通大學(xué)信息工程學(xué)院2012屆本科畢業(yè)生畢業(yè)設(shè)計(jì)(論文)1 前言隨著科學(xué)技術(shù)的不斷發(fā)展與進(jìn)步10,目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)
13、療器械以及各種智能機(jī)械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用具有高度現(xiàn)實(shí)意義。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:1.在智能儀器儀表上的應(yīng)用 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計(jì),示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用
14、用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。 3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。 4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處
15、可見的移動(dòng)電話,集群移動(dòng)通信,無線電對(duì)講機(jī)等。 5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 6.在各種大型電器中的模塊化應(yīng)用 某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機(jī),看似簡單的功能,微縮在純電子芯片中(有別于磁帶機(jī)的原理),就需要復(fù)雜的類似于計(jì)算機(jī)的原理。如:音樂信號(hào)以數(shù)字的形式存于存儲(chǔ)器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(hào)(類似于聲卡)。 在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低
16、了損壞、錯(cuò)誤率,也方便于更換。 7.單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在汽車電子中的應(yīng)用非常廣泛,例如汽車中的發(fā)動(dòng)機(jī)控制器,基于CAN總線的汽車發(fā)動(dòng)機(jī)智能電子控制器,GPS導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動(dòng)系統(tǒng)等等。 此外,單片機(jī)在計(jì)數(shù)器技術(shù)領(lǐng)域也有著十分廣泛的用途。隨著計(jì)數(shù)器技術(shù)的不斷發(fā)展與進(jìn)步,計(jì)數(shù)器的種類越來越多,應(yīng)用的范圍越來越廣,隨之而來的競爭也越來越激烈。過硬的技術(shù)也成為眾多生產(chǎn)廠商競爭的焦點(diǎn)之一。廠商為了在競爭中處于不敗之地,從而不斷地改進(jìn)技術(shù),增加產(chǎn)品的種類?,F(xiàn)計(jì)數(shù)器的種類以增加到:電磁計(jì)數(shù)器、電子計(jì)數(shù)器、機(jī)械計(jì)數(shù)器(拉動(dòng)機(jī)械計(jì)數(shù)器、轉(zhuǎn)動(dòng)機(jī)械計(jì)數(shù)器、按動(dòng)機(jī)械計(jì)數(shù)器、測長機(jī)械計(jì)數(shù)
17、器)、液晶計(jì)數(shù)器等。本文通過對(duì)一個(gè)簡單的秒表系統(tǒng)設(shè)計(jì),對(duì)單片機(jī)的定時(shí)/計(jì)數(shù)功能、最小系統(tǒng)進(jìn)行研究。并運(yùn)用Protues這款強(qiáng)大的仿真工具進(jìn)行仿真,對(duì)單片機(jī)的研究和學(xué)習(xí)真正的做到學(xué)以致用把科學(xué)技術(shù)應(yīng)用于我們的生活。2 單片機(jī)控制電路的設(shè)計(jì)2.1 單片機(jī)介紹單片機(jī)是一種集成在電路芯片4,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。單片微型計(jì)算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器(
18、Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹唵慰煽慷阅懿诲e(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域
19、要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦
20、和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。 單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計(jì)算的總和,甚至比人類的數(shù)量還要多。 單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是
21、把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 單片機(jī)內(nèi)部也用和電腦功能類似的模塊5,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可.用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影。它主要是作為控制部分的核心部件。
22、 它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性! 由于單片機(jī)對(duì)成本是敏感
23、的,所以目前占統(tǒng)治地位的軟件還是最低級(jí)匯編語言,它是除了二進(jìn)制機(jī)器碼以上最低級(jí)的語言了,既然這么低級(jí)為什么還要用呢?很多高級(jí)的語言已經(jīng)達(dá)到了可視化編程的水平為什么不用呢?原因很簡單,就是單片機(jī)沒有家用計(jì)算機(jī)那樣的CPU,也沒有像硬盤那樣的海量存儲(chǔ)設(shè)備。一個(gè)可視化高級(jí)語言編寫的小程序里面即使只有一個(gè)按鈕,也會(huì)達(dá)到幾十K的尺寸!對(duì)于家用PC的硬盤來講沒什么,可是對(duì)于單片機(jī)來講是不能接受的。 單片機(jī)在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計(jì)算機(jī)上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來運(yùn)行,家用PC的也是承受不了的。 可以說,二十世紀(jì)跨越了三個(gè)“電”的
24、時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智
25、能型洗衣機(jī)等。現(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機(jī)或其它可編程邏輯器件上。2.2 單片機(jī)的特點(diǎn)和結(jié)構(gòu)原理2.2.1 單片機(jī)的特點(diǎn)AT89C51是ATMEL公司推出的51單片機(jī)9,該系列單片機(jī)是采用高性能的靜態(tài)80C51 設(shè)計(jì)由先進(jìn)CMOS 工藝制造并帶有非易失性Flash 程序存儲(chǔ)器全部支持12 時(shí)鐘和6 時(shí)鐘操作P89C51X2 和P89C52X2/54X2/58X2 分別包含128 字節(jié)和256 字節(jié)RAM 32 條I/O 口線3 個(gè)16 位定時(shí)/計(jì)數(shù)器6 輸入4 優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)1
26、個(gè)串行I/O 口可用于多機(jī)通信I/O 擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時(shí)鐘電路此外由于器件采用了靜態(tài)設(shè)計(jì)可提供很寬的操作頻率范圍頻率可降至0 可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式空閑模式和掉電模式空閑模式凍結(jié)CPU 但RAM 定時(shí)器串口和中斷系統(tǒng)仍然工作掉電模式保存RAM 的內(nèi)容但是凍結(jié)振蕩器導(dǎo)致所有其它的片內(nèi)功能停止工作由于設(shè)計(jì)是靜態(tài)的時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù)運(yùn)行可從時(shí)鐘停止處恢復(fù)。它除了具有集成芯片的特點(diǎn)外還有許多特點(diǎn)。(l)高度集成,體積小、制作方便。單片機(jī)內(nèi)部集成CUP、內(nèi)存、1/0口,保證控制功能的實(shí)現(xiàn),雙列直插40引腳的單片機(jī)尺寸大約只1.srnmxsrnrn,貼片式單片機(jī)的尺寸
27、大約有小紐扣大小,給設(shè)計(jì)制作電路帶來了方便。(2)靈活性好、可靠性高。在設(shè)計(jì)電路時(shí),單片機(jī)的最小系統(tǒng)就可以提供電路工作所需的時(shí)序,因此在設(shè)計(jì)電路的時(shí)候,只要根據(jù)具體要求擴(kuò)展外圍電路就可以達(dá)到要求。單片機(jī)的工作電壓是SV,在單片機(jī)內(nèi)固化不同的程序,實(shí)現(xiàn)的功能,它的誤差就會(huì)控制在可控范圍內(nèi)。(3)易于擴(kuò)展ROM、RAM等資源,用途廣、價(jià)格低。單片機(jī)的資源一般可以滿足小系統(tǒng)的應(yīng)用,若系統(tǒng)較大,單片機(jī)可以擴(kuò)展資源,它有便于擴(kuò)展的結(jié)構(gòu)及控制引腳,利用它們?nèi)菀讟?gòu)成各種規(guī)模的單片機(jī)系統(tǒng)和單片機(jī)應(yīng)用系統(tǒng)。每片STC89C52單片機(jī)的價(jià)格大致在8元左右,對(duì)于學(xué)生和大多數(shù)研究開發(fā)人員可以承擔(dān)其開發(fā)經(jīng)費(fèi)。2.2.2
28、 單片機(jī)結(jié)構(gòu)1. 內(nèi)部結(jié)構(gòu)框圖89C51系列的各單片機(jī)的生產(chǎn)廠商和型號(hào)的不同,導(dǎo)致其ROM、RAM、中斷系統(tǒng)、外圍功能模塊以及處理器速度等方面有一定的不同7,但是其基本結(jié)構(gòu)相同,均包括算術(shù)邏輯單元ALU、片內(nèi)RAM、1/0端口、定時(shí)器、中斷系統(tǒng)等基本的功能單元。89C51單片機(jī)的內(nèi)部結(jié)構(gòu)如圖2.1所示。圖2.1 89C51內(nèi)部結(jié)構(gòu)圖2. 89C51單片機(jī)內(nèi)部主要部件1.3.5.6(l) 算數(shù)邏輯單元ALU(Arithmetic Logic Unit)。運(yùn)算器是進(jìn)行算術(shù)/邏輯運(yùn)算的部件,包括存放操作數(shù)和運(yùn)算結(jié)果的累加器和寄存器等。51單片機(jī)包含一個(gè)8位的算術(shù)邏輯單元ALU,它為用戶提供了指令系統(tǒng)
29、,在外部時(shí)鐘頻率為12MHz的情況下,多數(shù)指令的執(zhí)行時(shí)間僅為lus,乘法指令為4us。它包括運(yùn)算器、布爾處理器、累加器A、寄存器B、暫存器、程序狀態(tài)字PSW寄存器等。(2) 片內(nèi)存儲(chǔ)器。片內(nèi)存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,即RAM、ROM。51單片機(jī)提供了128B片內(nèi)RAM存儲(chǔ)器,提供了4KB的片內(nèi)ROM存儲(chǔ)器。用于存儲(chǔ)控制單片機(jī)執(zhí)行操作的代碼,或者進(jìn)行運(yùn)算的數(shù)據(jù)。(3) 并行I/O口。單片機(jī)共有4個(gè)8位并行I/O口P1、P2、P3和P4共32根引腳,每個(gè)I/O口都有自己寄存器、驅(qū)動(dòng)器和鎖存器,保證數(shù)據(jù)的雙向傳輸?shù)姆€(wěn)定運(yùn)行。其中P3口具有第二功能,P3口的每位引腳具有特殊功能,其中具體功能如
30、表2.1所示。表2.1 P3口特殊功能表I/O口引腳說明P3.0RXD-串行數(shù)據(jù)接收端P3.1TXD-串行數(shù)據(jù)發(fā)送端P3.2-外部中斷0請(qǐng)求端P3.3-外部中斷1求端P3.4T0-定時(shí)器/計(jì)數(shù)器0P3.5T1定時(shí)器/計(jì)數(shù)器1P3.6-外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)P3.7-外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)(4) 定時(shí)/計(jì)數(shù)系統(tǒng)和中斷系統(tǒng)。51單片機(jī)內(nèi)部有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,通過設(shè)置寄存器,實(shí)現(xiàn)4種工作模式。中斷系統(tǒng)包含5個(gè)中斷源,即外部中斷。、外部中斷1、定時(shí)器/計(jì)數(shù)器0溢出中斷、定時(shí)器/計(jì)數(shù)器1溢出中斷和串口中斷。計(jì)算機(jī)響應(yīng)中斷的先后順序即中斷優(yōu)先級(jí),系統(tǒng)有默認(rèn)的級(jí)別定義,同時(shí)也可以人為設(shè)定。具體的
31、89C51/89C52系列單片機(jī)主要包括的功能部件如下:(l)l個(gè)8位的CPU;(2)片內(nèi) 128/256字節(jié)數(shù)據(jù)存儲(chǔ)器 RAM/SFR,用以存放可以讀/寫的數(shù)據(jù),如的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等;(3)片內(nèi)4KB/8KB程序存儲(chǔ)器ROMEPROM,用以存放程序、一些原始數(shù)據(jù)和表格;(4)4個(gè)8位雙向UO口,每個(gè)端口既可以用作輸入,也可以用作輸出;(5)2或3個(gè)16位定時(shí)/計(jì)數(shù)器,每個(gè)定時(shí)/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制;(6)具有5個(gè)或6個(gè)中斷源、2個(gè)中斷優(yōu)先級(jí)的中斷控制系統(tǒng):(7)1個(gè)全雙工異步串行
32、口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與PC機(jī)之間的串行通信;(8)片內(nèi)振蕩器和時(shí)鐘電路,但石英晶體和微調(diào)電容需要外接,最高允許振蕩頻率為24MHZ;(9)可尋址外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,最大范圍均為64KB;(l0)具有位尋址能力。從以上介紹的單片機(jī)的功能部件可以看出單片機(jī)可以實(shí)現(xiàn)基本的處理器功能,是計(jì)算機(jī)的微型化,但是單片機(jī)的體積小,集成化高,給設(shè)計(jì)電路帶來了方便。2.3 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)本設(shè)計(jì)采用的是AT89C51單片機(jī)芯片,以它為核心對(duì)LED顯示屏實(shí)現(xiàn)控制。89C51單片機(jī)主要由多個(gè)基本部件組成,即微處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器 (ROM/EPROM)、1/0口(
33、P0-P3口)、串行口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。它具有51系列單片機(jī)所具有的共同的特點(diǎn),它有40個(gè)引腳,包括8位的I/O口四個(gè):P0、Pl、P2和P3,共32個(gè)引腳;電源Vcc引腳,電源地GND引腳,外接晶振引腳XTALI和XTALZ,控制信號(hào)引腳:RST、ALE、和11。輸入/輸出端口:P0、Pl、P2和P3,每個(gè)P口都有八位,其中P0口是準(zhǔn)雙向口,作為輸出口的時(shí)候,要先向該口寫入1,P0口的內(nèi)部不包含內(nèi)部上拉電阻,因此在對(duì)P0口操作的時(shí)候要在其外部電路加入上拉電阻。P3口具有第二功能,具體功能詳見表2.1,這里不再贅述。P2口可以用在訪問外部程序存儲(chǔ)器和16位地址
34、的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出的是高8位地址,P0口提供低8位地址,P0口可分時(shí)提供8位數(shù)據(jù)總線。控制信號(hào)引腳:RST、ALE、和。RST是單片機(jī)的復(fù)位引腳,外接硬件電路可以實(shí)現(xiàn)單片機(jī)的復(fù)位操作。ALE是地址鎖存允許信號(hào)引腳,高電平有效,當(dāng)單片機(jī)訪問外部存儲(chǔ)器時(shí),ALE輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。PSEN是程序存儲(chǔ)允許輸出信號(hào)端,主要應(yīng)用在對(duì)片外存儲(chǔ)器的操作方面。EA是外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端,主要應(yīng)用在訪問外部ROM,在實(shí)際應(yīng)用時(shí),保持該引腳是高電平即可。晶振連接引腳:XTAL1和XTAL2,在需要接振蕩晶體的時(shí)候?qū)蓚€(gè)引腳之間跨接一個(gè)晶振,如果需要采用外部
35、時(shí)鐘電路的時(shí)候,XTAL1輸入外部時(shí)鐘脈沖,XTAL2引腳懸空。電源引腳:Vcc為電源端,接+5V電壓源,GND是接地端,接電源地。單片機(jī)如果要正常工作,需要有時(shí)鐘脈沖源,使單片機(jī)有可以工作的時(shí)序脈沖。另外為了防止單片機(jī)工作時(shí)不穩(wěn)定,或者出現(xiàn)程序跑飛、死循環(huán)等現(xiàn)象,還要有使單片機(jī)重新初始化的電路即復(fù)位電路,這就組成了單片機(jī)的最小系統(tǒng)電路,最小系統(tǒng)電路如圖2.2所示。圖2.2 單片機(jī)最小系統(tǒng)電路圖時(shí)鐘電路是由石英晶體及兩個(gè)電容構(gòu)成的穩(wěn)定的自激振蕩器,電容通常取值30pF左右,可穩(wěn)定頻率并對(duì)振蕩頻率有微調(diào)作用。振蕩脈沖頻率范圍為0-24MHZ,晶體振蕩器的頻率為fosc,89C51的一個(gè)機(jī)器周期包
36、括12個(gè)振蕩周期,如果采用6MHz晶體振蕩器,則每個(gè)機(jī)器周期恰為2腳。每條指令都由一個(gè)或幾個(gè)機(jī)器周期組成,在89C51系統(tǒng)中,有單周期指令、雙周期指令和4周期指令。指令的運(yùn)算速度和它的機(jī)器周期數(shù)直接相關(guān),機(jī)器周期數(shù)較少則執(zhí)行速度快。但是,晶振的振蕩頻率不能選擇過大,超過了單片機(jī)的承受能力單片機(jī)就會(huì)無法執(zhí)行程序。RST引腳是單片機(jī)復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期,即二個(gè)機(jī)器周期以上,單片機(jī)晶振選用16MHZ,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)該超過2us,才能完成復(fù)位操作。復(fù)位電路分自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是在加電瞬間電容通過充電來實(shí)現(xiàn)復(fù)位,電路圖如圖
37、2.3所示。在通電瞬間,電容C通過電阻R充電,RST端出現(xiàn)正脈沖,用以復(fù)位。只要Vcc的上升時(shí)間不超過 1ms,就可以實(shí)現(xiàn)上電復(fù)位,當(dāng)采用12MHz晶體的時(shí)候,電容C取值為10us,電阻R取值為8.2K。手動(dòng)復(fù)位是通過人為的按鍵使單片機(jī)復(fù)位,當(dāng)程序出現(xiàn)不需要的死循環(huán),或者程序跑飛的時(shí)候就需要人為的來使單片機(jī)復(fù)位初始化,這樣就可以通過按鍵來使單片機(jī)復(fù)位。單片機(jī)復(fù)位電路通常是上電復(fù)位電路和手動(dòng)復(fù)位電路組合在一起使用。圖2.3 手動(dòng)復(fù)位電路和上電復(fù)位電路3 系統(tǒng)外圍電路的設(shè)計(jì)3.1 鍵盤電路的設(shè)計(jì)為了實(shí)現(xiàn)對(duì)定時(shí)器輸入的控制,我們在該設(shè)計(jì)中加入了按鍵設(shè)置。由于該系統(tǒng)要實(shí)現(xiàn)開始計(jì)時(shí)、停止計(jì)時(shí)、繼續(xù)計(jì)時(shí)、
38、清零、加調(diào)時(shí)、減調(diào)時(shí)等功能等6個(gè)功能,所以需要6個(gè)獨(dú)立按鍵滿足設(shè)計(jì)要求。3.1.1 按鍵電路的選擇按照鍵盤與CPU的連接方式可以分為獨(dú)立式鍵盤和矩陣式鍵盤。(l) 獨(dú)立式鍵盤獨(dú)立式鍵盤是各按鍵相互獨(dú)立,每個(gè)按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會(huì)影響其他I/O口線上的按鍵工作狀態(tài)。獨(dú)立式鍵盤電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根I/O口,在按鍵數(shù)量較多時(shí),I/O口線浪費(fèi)較大,且電路結(jié)構(gòu)顯得繁雜,故這種形式適用于按鍵數(shù)量較少的場合。(2) 矩陣式鍵盤在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不
39、直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口就可以構(gòu)成4×4=16個(gè)按鍵,比直接用端口線連接鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些。無論是獨(dú)立鍵盤還是矩陣鍵盤,單片機(jī)檢測其是否被按下的依據(jù)都是一樣的,也就是檢測與該鍵對(duì)應(yīng)的I/O口是否為低電平。獨(dú)立鍵盤有一端固定為低電平,單片機(jī)寫程序檢測時(shí)比較方便。而矩陣鍵盤兩端都與單片機(jī)I/O口相連,因此在檢測時(shí)需要人為的通過單片機(jī)I/O口送出低電
40、平。檢測時(shí),先送一列為低電平,其余幾列全為高電平,然后立即輪流檢測一次各行是否有低電平,若檢測到某一行為低電平,則我們便可確認(rèn)當(dāng)前被按下的鍵是哪一行那一列的,用同樣的方法輪流送各列一次低電平,再輪流檢測一次各行是否變?yōu)榈碗娖?,這樣即可檢測完所有的按鍵,當(dāng)有按鍵被按下時(shí)便可判斷出按下的鍵是哪一個(gè)鍵。當(dāng)然我們也可以將行先置低電平,掃描列是否有低電平。這就是矩陣鍵盤檢測的原理和方法12。根據(jù)對(duì)兩種不同鍵盤電路工作原理的了解,通過對(duì)比選擇,本系統(tǒng)設(shè)計(jì)選擇采用6個(gè)獨(dú)立式鍵盤,分別控制切換各種狀態(tài)。按鍵接口電路圖3.1所示。P2.1-P2.5接6個(gè)按鍵,分別控制開始計(jì)時(shí)、停止計(jì)時(shí)、繼續(xù)計(jì)時(shí)、清零、加調(diào)時(shí)、
41、減調(diào)時(shí)等功能。功能的實(shí)現(xiàn)主要是對(duì)按鍵的掃描,主要體現(xiàn)在軟件程序編寫方面,根據(jù)不同的按鍵值,執(zhí)行不同的操作,在具體場合應(yīng)用中可以將按鍵的功能重新定義,只要在程序中重新編寫就可以,使工作更加有效率。圖3.1 按鍵接口電路圖3.1.2 按鍵電路的故障及解決方法本系統(tǒng)采用的按鍵的開關(guān)為機(jī)械彈性開關(guān)。當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開,有可能伴隨有一連串的抖動(dòng)。抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5-10ms。按鍵穩(wěn)定閉合的長短則是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒至數(shù)秒。鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次,為了確保對(duì)鍵的一次
42、閉合僅作一次處理,必須去除鍵抖動(dòng)。去抖有專用的去抖硬件電路,也有專用的去抖芯片,本系統(tǒng)采用軟件方法去除抖動(dòng),即檢測出鍵閉合后執(zhí)行一個(gè)延時(shí)程序產(chǎn)生5ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平則確認(rèn)為真正有鍵按下。延時(shí)程序如下所示。void delay(uint n) uint y,z; for(z=0;z<n;z+) /250*n us for(y=0;y<125;y+); /2*125 us= 250 us 該程序延時(shí)250×n us,具體延時(shí)多長時(shí)間由n決定。3.2 顯示電路的設(shè)計(jì)3.2.1 顯示電路的介紹顯示器普遍地用于直觀地顯示數(shù)字的運(yùn)行
43、狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有:發(fā)光二極管LED(Liquid Crystal Display)顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一,發(fā)光二極管LED由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號(hào)。本系統(tǒng)的顯示電路采用六位數(shù)碼管進(jìn)行顯示。3.2.2 LED數(shù)碼管的工作原理數(shù)碼管分為共陰極、和共陽極之分
44、,由于本系統(tǒng)使用的數(shù)碼管屬于共陰極,所以下面只對(duì)共陰極數(shù)碼管的工作原理進(jìn)行敘述。數(shù)碼管的顯示原理是靠點(diǎn)亮內(nèi)部的發(fā)光二極管來發(fā)光,圖3.2為數(shù)碼管內(nèi)部電路圖,由圖可以看出,一位數(shù)碼管的引腳是10個(gè),顯示一個(gè)8字需要7小段,另外還有個(gè)一個(gè)小數(shù)點(diǎn),所以其內(nèi)部一共有8個(gè)小的發(fā)光二極管,最后還有一個(gè)公共端,生產(chǎn)商為了封裝統(tǒng)一,單位數(shù)碼管封裝10個(gè)引腳,其中第3和第8引腳是連在一起的。圖3.2 數(shù)碼管內(nèi)部原理圖對(duì)于共陰極數(shù)碼管來說,其8個(gè)發(fā)光二極管的陰極在數(shù)碼管內(nèi)部全部連在一起,所以稱為“共陰”,而它們的陽極是獨(dú)立的,通常在設(shè)計(jì)電路時(shí)一般把陰極接地。當(dāng)我們給數(shù)碼管的任一個(gè)陽極加一個(gè)高電平時(shí),對(duì)應(yīng)的這個(gè)發(fā)光
45、二極管就點(diǎn)亮了。如果想要顯示一個(gè)8字,并且把右下角的小數(shù)點(diǎn)也點(diǎn)亮的話,可以給8個(gè)陽極全部送高電平,如果想要顯示一個(gè)0字,那么我們可以除了給“g 、dp”這兩位送低電平外,其余引腳全部都送高電平,這樣就顯示出0字了。想讓它幾,就給相對(duì)應(yīng)的發(fā)光二極管送高電平,因此我們在顯示數(shù)字的時(shí)候首先做的就是給0-9十個(gè)數(shù)字編碼,在要它亮什么數(shù)字的時(shí)候直接把這個(gè)編碼送到它的陽極就行了。顯示電路如圖3.3所示。圖3.3 顯示電路3.3 晶振振蕩電路的設(shè)計(jì)一般的晶振振蕩電路都是在一個(gè)反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個(gè)電容分別接到晶振的兩端,每個(gè)電容的另一端再接到地,這兩個(gè)電容串聯(lián)的容量值就
46、應(yīng)該等于負(fù)載電容。單片機(jī)如果要正常工作,需要有時(shí)鐘脈沖源,使單片機(jī)有可以工作的時(shí)序脈沖。時(shí)鐘電路是由石英晶體及兩個(gè)電容構(gòu)成的穩(wěn)定的自激振蕩器,電容通常取值30pF左右,可穩(wěn)定頻率并對(duì)振蕩頻率有微調(diào)作用。振蕩脈沖頻率范圍為0-24MHz,晶體振蕩器的頻率為osc,89C51的一個(gè)機(jī)器周期包括12個(gè)振蕩周期,如果采用6MHz晶體振蕩器,則每個(gè)機(jī)器周期恰為2us。每條指令都由一個(gè)或幾個(gè)機(jī)器周期組成,在89C51系統(tǒng)中,有單周期指令、雙周期指令和4周期指令。指令的運(yùn)算速度和它的機(jī)器周期數(shù)第二章單片機(jī)控制電路的設(shè)計(jì)直接相關(guān),機(jī)器周期數(shù)較少則執(zhí)行速度快。但是,晶振的振蕩頻率不能選擇過大,超過了單片機(jī)的承受
47、能力單片機(jī)就會(huì)無法執(zhí)行程序。AT89C51單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反相放大器,引線XYAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器8。這里,選用51單片機(jī)12MHz的內(nèi)部振蕩方式,電路如下:電容器C1,C2起穩(wěn)定振蕩頻率,快速起振的作用,C1和C2可在20-100PF之間取,這里取30P,接線時(shí)要使用晶體振蕩器X1盡可能接近單片機(jī)。圖3.4 晶振振蕩電路4 系統(tǒng)軟件的設(shè)計(jì)4.1 軟件設(shè)計(jì)概述在軟件設(shè)計(jì)中,一般采用模塊化的程序設(shè)計(jì)方法,它具有明顯的優(yōu)點(diǎn)。把一個(gè)多功能的復(fù)雜的程序劃分為若干個(gè)簡單的、功能單一的程
48、序模塊,有利于程序的設(shè)計(jì)和調(diào)試,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。應(yīng)用系統(tǒng)的程序由包含多個(gè)模塊的主程序和各種子程序組成。各程序模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,如:延時(shí)、中斷服務(wù)程序、快加、快減調(diào)時(shí)等。在軟件設(shè)計(jì)時(shí)通常要考慮以下幾個(gè)問題:(l) 根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個(gè)相對(duì)獨(dú)立的部分,設(shè)計(jì)出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;(2) 培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計(jì)、實(shí)行模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植和修改;(3) 建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4) 繪制程序流程圖;(5)
49、合理分配系統(tǒng)資源;(6) 為程序加入注釋,提高可讀性,實(shí)施軟件工程;(7) 注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性;4.2 軟件設(shè)計(jì)流程圖程序的編寫主要體現(xiàn)的是模塊化,將每個(gè)功能分別用獨(dú)立的子函數(shù)編寫,然后再調(diào)用主函數(shù)調(diào)用子程序,實(shí)現(xiàn)相應(yīng)的功能,其中子函數(shù)包括按鍵掃描子函數(shù),實(shí)時(shí)時(shí)鐘讀取子函數(shù)以及延時(shí)子函數(shù)。程序首先初始化所有宏定義和全局變量,以及存儲(chǔ)在ROM里的數(shù)據(jù),執(zhí)行按鍵掃描程序,如果有鍵按下,則單片機(jī)的P2口產(chǎn)生一個(gè)低電平,并執(zhí)行按鍵消抖程序,使系統(tǒng)的誤差變小。如果是Kl鍵按下,系統(tǒng)則計(jì)時(shí)開始;若是K2鍵按下,系統(tǒng)則停止計(jì)時(shí);若是K3鍵按下系統(tǒng)則繼續(xù)計(jì)時(shí);若是K4鍵被按下,秒表系統(tǒng)被清
50、零;若是K5按鍵按下,則可以對(duì)系統(tǒng)進(jìn)行加調(diào)時(shí);若是K6按鍵按下,則可以對(duì)系統(tǒng)進(jìn)行減調(diào)時(shí);主程序的程序框圖如圖4.1所示。是否有鍵按下?開始初始化鍵盤掃描K1?K2?K3?K4?K5?K6?開始計(jì)時(shí)停止計(jì)時(shí)繼續(xù)計(jì)時(shí)清零加數(shù)調(diào)時(shí)減數(shù)調(diào)時(shí)NYYYYYYYNNNNNN圖4.1 系統(tǒng)主程序流程圖4.3 定時(shí)中斷服務(wù)程序流程圖4.3.1 中斷的介紹CPU在執(zhí)行程序時(shí),CPU以外的設(shè)備請(qǐng)求停止現(xiàn)程序的執(zhí)行,轉(zhuǎn)去處理外設(shè)事件,處理后再回到原地執(zhí)行,這一過程叫中斷。其流程如圖4.2所示。中斷工作方式的優(yōu)點(diǎn):(l) 外設(shè)與CPU可并行工作CPU與多個(gè)外設(shè)同時(shí)工作,互不干擾(2) 實(shí)現(xiàn)了實(shí)時(shí)處理、實(shí)時(shí)控制 CPU能
51、及時(shí)處理外部信息,如數(shù)據(jù)采集,監(jiān)控(3) 能及時(shí)處理隨機(jī)故障 圖4.2 中斷流程圖4.3.2 定時(shí)中斷的設(shè)置51單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動(dòng)和中斷申請(qǐng)。工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如表4.3所示。表4.3 TMOD寄存器位76543210字節(jié)地址:89HGATEC/M1M0GATEC/M1M0TMODGATE:門控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中
52、斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)多了一條件。C/:定時(shí)/計(jì)數(shù)模式選擇位。C/=0為定時(shí)模式;C/=1為計(jì)數(shù)模式。M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。M1M0工作方式如表4.4所示5。表4.4 定時(shí)/計(jì)數(shù)器工作方式設(shè)置M1M0工作方式說明00方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)器10方式28位自動(dòng)重裝定時(shí)/定時(shí)器11方式3T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器;T1此方式停止技術(shù)TCON的低4位用于控制外部中斷,其高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如表4.5所示。TCON中的TF1和TF0是溢出中斷
53、請(qǐng)求標(biāo)志位。有硬件自動(dòng)設(shè)置,這里不做介紹。TCON中的TR0和TR1的運(yùn)行控制位。TR1置1時(shí),T1開始工作,TR1置0時(shí),T1停止工作。TR1由軟件置1或清0.所以,用軟件可以控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)與停止。TR0功能與TR1功能類同,這里也不再贅述。表4.5 TCON寄存器位76543210字節(jié)地址:88TF1TR1TF0TR0M0TCON4.3.3 定時(shí)中斷程序根據(jù)前一小節(jié)的介紹,要使用定時(shí)器/計(jì)數(shù)器,先應(yīng)對(duì)其進(jìn)行初始化,其初始化程序如下所示。TMOD=0x10; /定時(shí)器1為工作方式1TH1=(65536-50000)/256; /送入初值50msTL1=(65536-50000)%2
54、56; EA=1; /打開總中斷ET1=1;TR1=1;5 Protues軟件仿真5.1 Protues軟件功能簡介Proteus就是一款硬件仿真軟件2,它由英國Labcenier公司開發(fā),集51單片機(jī),PIC單片機(jī),MSP430單片機(jī),甚至是ARM和AVR單片機(jī)于一起,還配有虛擬儀器仿真平臺(tái),使用該軟件就可以給自學(xué)者和學(xué)生、研究人員帶來了方便。該軟件操作簡單,容易學(xué)習(xí),在互聯(lián)網(wǎng)的時(shí)代很容易在網(wǎng)絡(luò)上搜集關(guān)于該軟件使用方法的介紹。本系統(tǒng)就是在該軟件仿真環(huán)境下進(jìn)行設(shè)計(jì)研發(fā)的,仿真結(jié)果與實(shí)際結(jié)果差別較小,操作靈活,給研究工作帶來了便利。本設(shè)計(jì)具體仿真步驟描述如下:(l) 打開Proteus 7Pro
55、fessional,選擇Proteus菜單欄中的打開選項(xiàng),打開已經(jīng)繪制好的仿真電路圖。打開后,鼠標(biāo)左鍵雙擊單片機(jī)芯片,出現(xiàn)如圖5.1所示的界面。然后再單擊Program File一欄中的“文圖5.1 Proteus選擇界面件夾”圖標(biāo),出現(xiàn)如圖5.2所示的界面。然后再鼠標(biāo)雙擊所需的HEX文件后,就完成了程序的加載。圖5.2 Proteus仿真的HEX文件選擇界面(2) 完成程序加載后,點(diǎn)擊Proteus仿真中的“”按鈕,軟件便開始了仿真。仿真結(jié)束時(shí)按“”按鈕,則結(jié)束仿真。5.2 Keil Uvision2.0軟件編譯5.2.1 Keil Uvision2.0軟件簡介Keil C51是美國Keil
56、 Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51
57、 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。用KeilC開發(fā)的程序可以在用Proteus設(shè)計(jì)的仿真電路中調(diào)試和交互運(yùn)行。Keil Uvision2.0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 度建筑鋼材供應(yīng)合同書
- 房屋共有權(quán)分割合同
- 房地產(chǎn)開發(fā)施工合同范本
- 企業(yè)與運(yùn)營商電路租賃合同模板
- 學(xué)生暑假旅游安全合同書
- 高端翡翠飾品購銷合同協(xié)議書
- 員工餐廳服務(wù)合同協(xié)議
- 大數(shù)據(jù)分析與處理合同項(xiàng)目
- 廣州市房地產(chǎn)委托代理銷售合同(新版)
- 日用雜品跨境電商運(yùn)營與管理考核試卷
- 電氣自動(dòng)化工程師考試題庫
- 小學(xué)利潤問題應(yīng)用題100道附答案(完整版)
- 醫(yī)院智能化系統(tǒng)內(nèi)網(wǎng)、外網(wǎng)及設(shè)備網(wǎng)系統(tǒng)拓?fù)鋱D-可編輯課件
- 社交禮儀-儀態(tài)禮儀
- 安徽省2024年中考語文真題試卷【附答案】
- 2024年南京科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- DB52-T 1780-2024 醬香型白酒安全生產(chǎn)規(guī)范
- 2024年皖西衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 線蟲病疫木及異??菟浪蓸涮幹猛稑?biāo)方案(技術(shù)方案技術(shù)標(biāo))
- 中國茶世界之旅智慧樹知到期末考試答案章節(jié)答案2024年吉林大學(xué)
- 2024年鞍山職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫(500題)含答案解析
評(píng)論
0/150
提交評(píng)論