單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。下面,小編為大家分享單片機(jī)實(shí)習(xí)報(bào)告,希望對大家有所幫助!
一 實(shí)習(xí)目的
1. 通過對單片機(jī)小系統(tǒng)的設(shè)計(jì)、焊接、裝配,掌握電路原理圖及電子線路的基本焊接裝配工藝、規(guī)范及注意事項(xiàng);
2. 通過對系統(tǒng)板的測試,了解系統(tǒng)板的工作原理及性能,掌握元器件及系統(tǒng)故障的排除方法;
3. 掌握程序編制及調(diào)試方法,完成系統(tǒng)初始化、存儲器操作、端口操作、鍵盤顯示等程序的編制及調(diào)試(匯編語言、C語言均可);
4. 通過單片機(jī)系統(tǒng)的組裝,調(diào)試以及程序編制、調(diào)試及運(yùn)行,與理論及實(shí)驗(yàn)的有機(jī)結(jié)合和指導(dǎo)教師的補(bǔ)充介紹,使學(xué)生掌握控制系統(tǒng)的工作原理、開發(fā)方法和操作方法。
5. 培養(yǎng)學(xué)生解決實(shí)際問題的能力,提高對理論知識的感性認(rèn)識。
二 實(shí)習(xí)意義
通過本實(shí)習(xí)不但可以掌握單片機(jī)軟、硬件的綜合調(diào)試方法,而且可以熟練掌握電路原理圖,激發(fā)對單片機(jī)智能性的探索精神,提高學(xué)生的綜合素質(zhì),培養(yǎng)學(xué)生應(yīng)用單片機(jī)實(shí)現(xiàn)對工業(yè)控制系統(tǒng)的設(shè)計(jì)、開發(fā)與調(diào)試的能力。在制作學(xué)習(xí)過程中,不但可以掌握軟、硬件的綜合調(diào)試方法,而且可以使學(xué)生對單片機(jī)智能性產(chǎn)生強(qiáng)烈的欲望。達(dá)到最大限度地掌握微機(jī)應(yīng)用技術(shù),軟件及接口設(shè)計(jì)和數(shù)據(jù)采集與處理的技能,培養(yǎng)電綜合實(shí)踐素質(zhì)的目的。
三 系統(tǒng)基本組成及工作原理
1 系統(tǒng)基本組成
系統(tǒng)以單片機(jī)STC89C52作為控制核心,各部分基本組成框圖如圖1所示。
流水燈部分由單片機(jī)、鍵盤模塊等組成;
四位數(shù)碼顯示,編程實(shí)現(xiàn)30秒倒計(jì)時(shí)部分由單片機(jī)、鍵盤模塊、液晶顯示模塊等組成;
按鍵功能部分通過按鍵控制流水燈部分、四位數(shù)碼顯示部分;
電子鐘部分由單片機(jī)、鍵盤模塊、液晶顯示模塊等組成;
使用功能鍵實(shí)現(xiàn)相應(yīng)的功能組合部分通過流水燈部分、30秒倒計(jì)時(shí)部分實(shí)現(xiàn);
模數(shù)轉(zhuǎn)換部分由單片機(jī)、ADC0809轉(zhuǎn)換模塊、鍵盤模塊、液晶顯示模塊等組成。
2 系統(tǒng)工作原理
本設(shè)計(jì)采用STC89C52RC單片機(jī)作為本系統(tǒng)的控制模塊。單片機(jī)可把由ADC0809及單片機(jī)中的數(shù)據(jù)利用軟件來進(jìn)行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊,實(shí)現(xiàn)阻值大小的顯示。以數(shù)碼管顯示為顯示模塊,把單片機(jī)傳來的數(shù)據(jù)顯示出來。在顯示電路中,主要靠按鍵來實(shí)現(xiàn)各種顯示要求的選擇與切換。
對于模數(shù)轉(zhuǎn)換部分,單片機(jī)89C51通過P0口的I/O線向ADC0809發(fā)送鎖存地址以及復(fù)位、啟動轉(zhuǎn)換等信號,并查詢轉(zhuǎn)換狀態(tài)。 ADC0809啟動轉(zhuǎn)換后,將0-8個通道一次輸入的電壓信號轉(zhuǎn)換成相應(yīng)的數(shù)字量,供89c51讀取使用,并且將EOC置1供單片機(jī)查詢轉(zhuǎn)換狀態(tài)。而滑動變阻器負(fù)責(zé)將阻值信號轉(zhuǎn)換成電壓信號,再送到ADC0809的八個通道。當(dāng)單片機(jī)查詢到轉(zhuǎn)換結(jié)束后依次讀取數(shù)據(jù)并按照現(xiàn)實(shí)的需要進(jìn)行二進(jìn)制轉(zhuǎn)BCD碼等處理最后控制顯示電路顯示出數(shù)字。 其實(shí)現(xiàn)方式是:ADC0809轉(zhuǎn)換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用于讀取轉(zhuǎn)換結(jié)果,同時(shí)P0.0-P0.6作控制總線,向ADC0809發(fā)送鎖存、啟動等控制信息,并查詢EOC狀態(tài)。ALE經(jīng)分頻后給ADC0809提供時(shí)鐘信號。P3.0和P3.1口用于向顯示電路輸出段碼,P3.2-P3.7用于數(shù)碼管的位選。
四 系統(tǒng)硬件設(shè)計(jì)
結(jié)合本設(shè)計(jì)的要求和技術(shù)指標(biāo),通過對系統(tǒng)大致程序量的估計(jì)和系統(tǒng)工作的估計(jì),考慮價(jià)格因素。選定AT89C51單片機(jī)作為系統(tǒng)的主要控制芯片,8位模擬轉(zhuǎn)換器ADC0809進(jìn)行阻值轉(zhuǎn)換。 逐次比較法A/D轉(zhuǎn)換器是目前種類最多、應(yīng)用最廣的A/D轉(zhuǎn)換器,其原理即“逐位比較”,其過程類似于用砝碼在天平上稱物體重量。它由N位寄存器、A/D轉(zhuǎn)換器、比較器和控制邏輯等部分組成,N位寄存器代表N位二進(jìn)制碼。目前應(yīng)用最廣的逐次比較法A/D轉(zhuǎn)換器有ADC0809。它是一種8路模擬輸入8位數(shù)字輸出的逐次比較法A/D轉(zhuǎn)換器件。其主要性能指標(biāo)和特性如下:
分表率:8位
轉(zhuǎn)換時(shí)間:取決于芯片時(shí)鐘頻率,轉(zhuǎn)換一次時(shí)間位64個時(shí)鐘周期
單一電源:+5v
模擬輸入電壓范圍:單極性0-+5v;雙極性-5v-+5v
具有可控三態(tài)輸出鎖存器
啟動轉(zhuǎn)換控制位脈沖式,上升沿使內(nèi)部所有寄存器清零,下降沿使A/D轉(zhuǎn)換開始。
通過以上性能比較,我們不難看出ADC0809滿足本設(shè)計(jì)的要求,所以本設(shè)計(jì)采用ADC0809作為A/D轉(zhuǎn)換器
1 按鍵電路設(shè)計(jì)
利用單片機(jī)的P1口擴(kuò)展一個8位鍵盤。
2 晶振與復(fù)位電路設(shè)計(jì)
本設(shè)計(jì)采用的是上電復(fù)位的形式,如圖3.3所示,上電順進(jìn)RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,只要高電平能保持復(fù)位所需要的兩個機(jī)器周期以上時(shí)間,單片機(jī)就能實(shí)現(xiàn)復(fù)位操作。 晶振電路為單片機(jī)提供工作所需要的時(shí)鐘信號。震蕩頻率越高,系統(tǒng)時(shí)鐘頻率也越高,單片機(jī)運(yùn)行的速度就越快。其電路如圖3.4所示。89C51的XTAL1和XTAL2兩個引腳跨接晶體振蕩器和微調(diào)電容C1、C2形成反饋電路,就構(gòu)成了穩(wěn)定的自激振蕩器,本設(shè)計(jì)的震蕩器頻率為12MHZ。
3 下載電路設(shè)計(jì)
4 流水燈模塊設(shè)計(jì)
5 模數(shù)轉(zhuǎn)換模塊設(shè)計(jì)
6 顯示電路設(shè)計(jì)
本設(shè)計(jì)采用六位數(shù)碼管。本系統(tǒng)采用共陽極動態(tài)掃描的方式連接。數(shù)碼管的段碼數(shù)據(jù)由89C51的P3.0-P3.1口送出,89C51的P3.2-P3.7輸出位選通信號,只有被選中的那位數(shù)碼管才會顯示段碼
7 整體電路設(shè)計(jì)
五 系統(tǒng)軟件設(shè)計(jì)
1主程序設(shè)計(jì)
主程序采用分支結(jié)構(gòu),以狀態(tài)號標(biāo)識系統(tǒng)所處的狀態(tài)。在上電初始化后即進(jìn)入狀態(tài)號的輪詢掃描,狀態(tài)號的值決定了分支程序的入口。其中分支程序分別為:AD轉(zhuǎn)換模塊(狀態(tài)號為0),數(shù)字模塊狀態(tài)號為1),倒計(jì)時(shí)模塊(狀態(tài)號為2),電子鐘模塊(狀態(tài)號為3),功能組合模塊(狀態(tài)號為4),流水燈模塊(狀態(tài)號為5)。
2 功能子程序設(shè)計(jì)
2.1 流水燈模塊
流水燈模塊利用單片機(jī)的P3口,通過給P3口的各位送低電平,相應(yīng)的實(shí)現(xiàn)流水燈有規(guī)律的點(diǎn)亮。
2.2 30秒倒計(jì)時(shí)模塊
30秒倒計(jì)時(shí)模塊利用單片機(jī)的P3.0與P3.1口送相應(yīng)的段控?cái)?shù)據(jù),P3.2-P3.7口送相應(yīng)的位控?cái)?shù)據(jù)。通過程序?qū)崿F(xiàn)30秒倒計(jì)時(shí)。
2.3 數(shù)字加減模塊
利用數(shù)碼管實(shí)現(xiàn)數(shù)字顯示,通過加一鍵或者是減一鍵實(shí)現(xiàn)數(shù)字變量的加一或者減一,進(jìn)而實(shí)現(xiàn)利用數(shù)碼管顯示加一鍵、減一鍵功能。
2.4 電子鐘模塊
利用數(shù)碼管實(shí)現(xiàn)時(shí)間顯示,通過加一鍵或者是減一鍵實(shí)現(xiàn)小時(shí)變量或者是分鐘變量的加一,從而實(shí)現(xiàn)調(diào)時(shí)功能。
2.5 模數(shù)轉(zhuǎn)換模塊
對于模數(shù)轉(zhuǎn)換部分,單片機(jī)89C51通過P0口的I/O線向ADC0809發(fā)送鎖存地址以及復(fù)位、啟動轉(zhuǎn)換等信號,并查詢轉(zhuǎn)換狀態(tài)。 ADC0809啟動轉(zhuǎn)換后,將0-8個通道一次輸入的電壓信號轉(zhuǎn)換成相應(yīng)的數(shù)字量,供89c51讀取使用,并且將EOC置1供單片機(jī)查詢轉(zhuǎn)換狀態(tài)。而滑動變阻器負(fù)責(zé)將阻值信號轉(zhuǎn)換成電壓信號,再送到ADC0809的八個通道。
當(dāng)單片機(jī)查詢到轉(zhuǎn)換結(jié)束后依次讀取數(shù)據(jù)并按照現(xiàn)實(shí)的需要進(jìn)行二進(jìn)制轉(zhuǎn)BCD碼等處理最后控制顯示電路顯示出數(shù)字。 其實(shí)現(xiàn)方式是:ADC0809轉(zhuǎn)換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用于讀取轉(zhuǎn)換結(jié)果,同時(shí)P0.0-P0.6作控制總線,向ADC0809發(fā)送鎖存、啟動等控制信息,并查詢EOC狀態(tài)。ALE經(jīng)分頻后給ADC0809提供時(shí)鐘信號。P3.0和P3.1口用于向顯示電路輸出段碼,P3.2-P3.7用于數(shù)碼管的位選。
六 實(shí)習(xí)總結(jié)、體會
本次單片機(jī)實(shí)習(xí)我們一共完成了個模塊的程序設(shè)計(jì),包括:led顯示模塊、數(shù)碼管顯示模塊和鍵盤模塊。分別實(shí)現(xiàn)了流水燈的循環(huán)點(diǎn)亮控制、數(shù)碼管的靜態(tài)和動態(tài)計(jì)數(shù)顯示,還有矩陣鍵盤按鍵控制數(shù)碼管顯示的程序設(shè)計(jì)。然后我們分別用protues系統(tǒng)仿真軟件對各個模塊進(jìn)行了模擬仿真,用keil軟件編制了匯編語言程序,驗(yàn)證了我們所設(shè)計(jì)的程序。 這次實(shí)習(xí)還使我理解了編寫程序的一些技巧。單片機(jī)應(yīng)用系統(tǒng)一般由包含多個模塊的主程序和由各種子程序組成。每一模塊都要完成一個明確的任務(wù),實(shí)現(xiàn)某個具體的功能,如計(jì)算、接受、發(fā)送、延時(shí)、顯示等。采用模塊化程序設(shè)計(jì)方法,就是將這些具體功能程序進(jìn)行獨(dú)立設(shè)計(jì)和分別調(diào)試,最后將這些模塊程序裝配成整體程序并進(jìn)行聯(lián)合調(diào)試。
模塊化程序設(shè)計(jì)方法的優(yōu)點(diǎn):一個模塊可以為多個程序所共享;單個功能明確的程序模塊的設(shè)計(jì)和調(diào)試比較方便,容易完成;利用已經(jīng)編好的成熟模塊,將大大縮短開發(fā)程序的時(shí)間,降低開發(fā)成本。采用循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)可以使程序的容量大大減少,提高程序的效率,節(jié)省內(nèi)存。對于多重循環(huán),要注意各重循環(huán)的初值和循環(huán)結(jié)束的條件,避免出現(xiàn)程序無休止循環(huán)的“死循環(huán)”現(xiàn)象; 通過這次的實(shí)習(xí)我發(fā)現(xiàn),只有理論水平提高了,才能夠?qū)⒄n本知識與實(shí)踐相結(jié)合,理論知識服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動手能力。這次實(shí)習(xí)十分有意義,這次實(shí)習(xí)我們知道了理論和實(shí)踐的距離,也知道了理論和實(shí)踐相結(jié)合的重要性。
回顧起此次課程設(shè)計(jì),感覺受益匪淺,從拿到題目到完成整個編程,從理論到實(shí)踐,學(xué)到很多很多的課堂理論中沒學(xué)到過的東西,不僅對鍵盤的識別技術(shù)這一章節(jié)的知識點(diǎn)有了深刻的認(rèn)識,而且對這學(xué)期開設(shè)的單片機(jī)這門課程有了更全面的了解,尤其是在學(xué)習(xí)使用proteus軟件片編程和仿真時(shí)收獲良多。通過這次單片機(jī)課程設(shè)計(jì),還使我懂得了實(shí)踐的重要性。同時(shí)在程序調(diào)試的過程中提高自己的發(fā)現(xiàn)問題、解決問題、實(shí)際動手和獨(dú)立思考的能力。 這次課程設(shè)計(jì)能順利的完成,除了我們的努力外,當(dāng)然也離不開指導(dǎo)老師申老師的辛勤指導(dǎo),致使我在設(shè)計(jì)的過程中學(xué)到了很多實(shí)用性的知識。同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師表示忠心的感謝!
[單片機(jī)實(shí)習(xí)報(bào)告]