單片機答辯倒計時器課程設(shè)計報告_第1頁
單片機答辯倒計時器課程設(shè)計報告_第2頁
單片機答辯倒計時器課程設(shè)計報告_第3頁
單片機答辯倒計時器課程設(shè)計報告_第4頁
單片機答辯倒計時器課程設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應(yīng)用課程設(shè)計報告專 業(yè) 電子信息工程班 級 201001姓 名 黃 升 平指導(dǎo)老師 周瑩蓮、廖亦凡二0一二 年 十二 月 二十五 日 課程設(shè)計任務(wù)書一、設(shè)計題目:答辯倒計時器二、設(shè)計要求 設(shè)計一個答辯倒計時器,用2位數(shù)碼管顯示剩余分鐘,2位數(shù)碼管顯示剩余秒 ,復(fù)位后顯示10.00表示設(shè)定10分鐘,并可加減修改,按開始/取消按鈕開始倒計時,再次按開始/取消按鈕則復(fù)位,時間到則蜂鳴音提示。總體要求如下:1、方案論證,確定總體電路原理圖。 2、元器件選擇,設(shè)計PCB圖(或用萬能電路實驗板搭線)。3、繪制程序流程圖,編寫匯編語言源程序(或C語言源程序)。4、安裝調(diào)試,實現(xiàn)倒計時器的基本功能

2、。 三、設(shè)計報告內(nèi)容1、寫出設(shè)計方案(包括方案對比,方案確定),給出完整的電路原理圖和設(shè)計程序流程圖。 2、對所設(shè)計方案的實現(xiàn)進行全面分析。3、編程調(diào)試方法和程序清單。4、安裝調(diào)試過程,出現(xiàn)的各種現(xiàn)象,總結(jié)經(jīng)驗和體會。 5、進一步完善的設(shè)想。目 錄一、課程設(shè)計目的1二、課程設(shè)計題目描述和要求1三、課程設(shè)計報告內(nèi)容13.2 硬件電路33.2.1 復(fù)位電路33.2.2 晶振電路43.2.3 單片機最小系統(tǒng)43.2.4 硬件流程圖43.3 源程序設(shè)計53.3.1 程序清單53.3.2 程序流程圖6四、設(shè)計過程74.1實踐步驟74.2實踐標(biāo)準(zhǔn)74.3系統(tǒng)調(diào)試74.3.1 硬件調(diào)試74.3.2 軟件調(diào)試

3、9五、設(shè)計報告總結(jié)10六、總結(jié)經(jīng)驗和體會11七、進一步完善的設(shè)想12八、參考書目12附錄一:成品效果圖13附錄二:倒計時器源程序(C語言)13一、課程設(shè)計目的 1、鞏固和加深單片機原理課程知識的理解和運用。 2、進一步提高學(xué)生單片機應(yīng)用系統(tǒng)的設(shè)計能力。 3、培養(yǎng)學(xué)生綜合分析問題、發(fā)現(xiàn)問題和解決問題的能力。二、課程設(shè)計題目描述和要求設(shè)計一個答辯倒計時器,用2位數(shù)碼管顯示剩余分鐘,2位數(shù)碼管顯示剩余秒 ,復(fù)位后顯示10.00表示設(shè)定10分鐘,并可加減修改,按開始/取消按鈕開始倒計時,再次按開始/取消按鈕則復(fù)位,時間到則蜂鳴音提示??傮w要求如下:1、方案論證,確定總體電路原理圖。 2、元器件選擇,設(shè)

4、計PCB圖(或用萬能電路實驗板搭線)。3、繪制程序流程圖,編寫匯編語言源程序(或C語言源程序)。4、安裝調(diào)試,實現(xiàn)倒計時器的基本功能。 三、課程設(shè)計報告內(nèi)容3.1元器件清單及所用儀器設(shè)備 表1-1 設(shè)備清單設(shè)備名稱單組數(shù)量數(shù)量功能數(shù)字萬用表可共用1臺5V直流穩(wěn)壓電源可用實驗箱代、可共用1臺ISP下載線可共用4根計算機單片機實驗室均可用40臺裝Keil開發(fā)軟件和ISP51下載軟件 元器件名稱規(guī)格/型號單組數(shù)量金屬膜電阻1K、1/4W1金屬膜電阻10K、1/4W5電阻排200*8(SIP9)1瓷片電容30pF2獨石電容0.1µF/63V3電解電容10µF/16V2蜂鳴器10,直

5、流5V1三極管9013 1石英晶振6MHz(矮封裝)1集成電路AT89S51 DIP4017407 DIP141IC插座40PIN DIP114PIN DIP1數(shù)碼管4位一體、紅光、共陰極0.5”1接插件IDC10(與ISP下載線接口) DC3-10P1套按鍵國產(chǎn)歐姆龍輕觸按鍵3萬能電路板17cm*22cm1塊導(dǎo)線0.3mm2單股導(dǎo)線4m焊錫絲1.0mm2m松香 表1-2 元器件清單 工具名稱單組數(shù)量鑷 子1把電鉻鐵1支鉻鐵架1個吸錫槍1把斜口鉗1把表1-3 工具清單3.2 硬件電路 倒計時器硬件電路原理圖如下圖所示。 圖1 電路原理圖3.2.1 復(fù)位電路復(fù)位電路產(chǎn)生復(fù)位信號,復(fù)位信號送入 R

6、ST 后還要送至片內(nèi)的施密特觸發(fā)器,由片內(nèi)復(fù)位電路在每個機器周器的 S5P2 時刻對觸發(fā)器輸出采樣信號,然后由內(nèi)部復(fù)位電路產(chǎn)生復(fù)位操作所要的信號。一般的復(fù)位電路可分為上電自動復(fù)位和按鍵復(fù)位,我們在此選用的是上電復(fù)位。上電自動復(fù)位原理:RST 引腳是復(fù)位信號的輸入端,只要高電平的復(fù)位信號持續(xù)兩個機器周期以上的有效時間,就可以使單片機上電復(fù)位。上電自動復(fù)位是通過電容充電實現(xiàn)的,上電瞬間,RST 端 電位與Vcc 相同,隨充電電流的減少,RST 的電位逐漸下降,直到復(fù)位信號無效。按鍵復(fù)位在此不在作過多的介紹,其原理和上電復(fù)位是相同的。但其采用的是脈沖復(fù)位電路和電平復(fù)位電路兩種。3.2.2 晶振電路晶

7、振與單片機的腳XTAL0和腳XTAL1構(gòu)成的振蕩電路中會產(chǎn)生偕波(也就是不希望存在的其他頻率的波),這個波對電路的影響不大,但會降低電路的時鐘振蕩器的穩(wěn)定性。為了電路的穩(wěn)定性起見,ATMEL公司只是建議在晶振的兩引腳處接入兩個10pf-50pf的瓷片電容接地來削減偕波對電路的穩(wěn)定性的影響,所以晶振所配的電容在10pf-50pf之間都可以的。但是主流是接入兩個30pf的瓷片電容,此次電路用30PF。3.2.3 單片機最小系統(tǒng) 最小系統(tǒng)就是單片機在發(fā)揮具體測控功能時所必須的組成部分。如下圖所示為最小系統(tǒng)方框圖: 圖2 單片機最小系統(tǒng)方框圖 3.2.4 硬件流程圖倒計時器硬件電路流程圖如下圖所示。圖

8、3 倒計時器硬件電路流程圖3.3 源程序設(shè)計3.3.1 程序清單初始化:uchar Count = 0;uint n=0;uint m=0; uchar min = 10 ;uchar sec = 0 ; uchar table10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /數(shù)碼管的段碼編碼 (0-9)uchar table_d10 = 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /帶點數(shù)碼管的段碼編碼 (0-9)sbit BELL = P12; /設(shè)置P1.2口,為控制

9、蜂鳴器發(fā)聲的引腳sbit KEY1 = P32; /設(shè)置P3.2 P3.3 P3.4口為按鍵引腳sbit KEY2 = P33;sbit KEY3 = P34;函數(shù)名:void Delay(uint del) /延時子程序,延時時間為 1ms * delvoid Time0_Init() /初始化定時器 11.0592M 50msvoid time0() interrupt 1 /中斷void display(void) /數(shù)碼管每位動態(tài)顯示void DisLED_1()/復(fù)位函數(shù)void DisLED_2() /時間增加void DisLED_3() /時間減少void DisLED_4()

10、 / 時間為零的顯示void KEY() /檢測按鍵void main() /主函數(shù)主函數(shù):void main() /主函數(shù)Time0_Init(); while(1) display(); KEY(); if(min=0 && sec=0)DisLED_4(); /調(diào)用數(shù)碼管顯示代碼m=0;while(100-m)display();BELL = 0;Delay(1); /延時1毫秒BELL = 1;Delay(1); /延時1毫秒m+; TR0 = 0; while(KEY1!=0) min = 0; sec = 0; display(); 3.3.2 程序流程圖排阻單片機

11、 程序下載口數(shù)碼管驅(qū)動電路蜂鳴器外圍電路 圖4 倒計時器主程序流程圖四、設(shè)計過程4.1實踐步驟1、根據(jù)實驗要求,完成電路原理圖和應(yīng)用程序流程圖。2、編寫匯編語言(或C語言)源程序。3、根據(jù)所設(shè)計的原理圖,完成電路板的焊接,在進行測試。4、硬件軟件綜合調(diào)試,如果不能實行,在分析哪里出了問題,糾正問題在去測試,直到測試完成,完善其設(shè)計功能。4.2實踐標(biāo)準(zhǔn)1、完成電路的制作,排版與焊接,并進行測量是否能正常的運行; 2、完成程序的設(shè)計,并進行程序調(diào)試是否出現(xiàn)錯誤; 3、硬件與軟件結(jié)合進行調(diào)試看是否能達到課程設(shè)計目的; 4、最后實現(xiàn)其設(shè)計要求和功能,裝配工藝美觀,電路運行穩(wěn)定、可靠。4.3系統(tǒng)調(diào)試4.

12、3.1 硬件調(diào)試在硬件調(diào)試時,先有萬用表檢查印制電路的焊接情況,檢查是否有虛焊,是否有短路。在檢查無誤之后通電檢查LED數(shù)碼管的顯示??傮w電路正常,達到題目的要求。實際電路下圖: 圖5 實際電路圖 完成了硬件的設(shè)計、制作和軟件編程后,要使系統(tǒng)能夠按設(shè)計意圖正常運作,必須進行系統(tǒng)調(diào)試。系統(tǒng)調(diào)試包括軟件調(diào)試和硬件調(diào)試。不過,作為一個小計算機系統(tǒng),其運行是軟硬件相結(jié)合的,因此,軟硬件的調(diào)試也是不可能絕對分開的,硬件的調(diào)試常常需要利用調(diào)試軟件,軟件的調(diào)試也可能需要對硬件的測試和控制來進行。1、脫機檢查。用萬用表逐步按照電路原理圖檢查印制電路中所有器件的各引腳,尤其是電源的連接是否正確:檢查數(shù)據(jù)總線、地

13、址總線和控制總線是否有短路等故障,順序是否正確;檢查各開關(guān)按鍵是否能正常開關(guān),是否連接正常;各限流電阻是否短路等內(nèi)容。為了保護芯片,應(yīng)先對各IC電位進行檢查,確定其無誤后再插入芯片檢查。2、聯(lián)機調(diào)試。暫時拔掉89S51芯片,將仿真器的引腳插入89S51的芯片插座進行調(diào)試,檢驗鍵盤/顯示接口電路是否滿足要求設(shè)計??梢酝ㄟ^一些簡單的測軟件來查看接口工作是否正常。例如,我們可以設(shè)計一個軟件,使89S51的P1、P2口輸出55H或AAH,同時讀P3口,運行后用萬用表檢查相應(yīng)端口電平是否一高一低,在仿真器中檢查讀入的P3口8位是否為1,如果正常則說明89S51正常工作。還可以設(shè)計一個使所有LED全顯示“

14、8.”的靜態(tài)顯示程序來檢驗LED的好壞。如果運行測試結(jié)果與預(yù)期不符,很容易根據(jù)故障現(xiàn)象判斷故障原因并采取針對性措施排除故障。4.3.2 軟件調(diào)試 軟件調(diào)試的任務(wù)是利用開發(fā)工具進行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同時也能發(fā)現(xiàn)硬件故障。程序的調(diào)試應(yīng)一個模塊一個模塊地進行,首先單獨調(diào)試各功能子程序,檢驗程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來進行聯(lián)調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正常傳遞參數(shù),特別要注意各子程序的現(xiàn)場保護與恢復(fù)。調(diào)試的基本步驟如下: 1、用仿真器修改顯示緩沖區(qū)內(nèi)容,屏蔽拆字程序,調(diào)試動態(tài)掃描顯示功能。例如將DISP0DISP3單元置為“

15、0123”,應(yīng)能在LED上從左到右顯示“0123”。若顯示不正確,可在顯示子程序相應(yīng)設(shè)置斷點調(diào)試檢查,然后用仿真器修改計時緩沖區(qū)內(nèi)容,調(diào)試顯示模塊,例如,將MIN、SEC單元置為“0123”檢查是否能正確顯示“01.23”,若顯示不正確,應(yīng)在顯示子程序相應(yīng)位置設(shè)置斷點,反復(fù)調(diào)試檢驗直至完全正確。2、運行主程序調(diào)試時模塊,不按下任何鍵,檢查是否從由10.00開始正確計時,若不能正確計時則應(yīng)在定時器中斷服務(wù)子程序中設(shè)置斷點,檢查MIN、SEC單元是否隨斷點運動而變化。然后屏蔽緩沖區(qū)初始化部分,用仿真器修改計時緩沖區(qū)內(nèi)容為40:33.5,運行主程序,檢驗?zāi)芊裾_進位。3、調(diào)試鍵盤模塊掃描,先用延時1

16、0ms子程序代替顯示子程序延時消抖,在求取鍵號后設(shè)置斷點,中斷后觀察A累加器中的鍵號是否正確,然后恢復(fù)用顯示子程序延時消抖,檢驗與顯示模塊能否正常連接。4、調(diào)試時間設(shè)置定時模塊TIMSEF。首先屏蔽中斷子程序,單獨調(diào)試鍵盤設(shè)置模塊CKECKEY,觀察顯示緩沖區(qū)DISP0DISP3單元的內(nèi)容是否隨鍵入的鍵號改變,以及鍵號能否在LED上顯示。然后屏蔽CKECKEY子程序,分別將R1設(shè)置為時間緩沖區(qū)和鬧鐘值寄存區(qū)的首地址,修改顯示緩沖區(qū)內(nèi)容,程序運行后查看時間設(shè)置緩沖區(qū)MIN、SEC單元和鬧鐘值寄存區(qū)AMIN、ASEC單元內(nèi)容是否正確。最后聯(lián)調(diào)TIMSET模塊。 5、運行主程序聯(lián)調(diào),檢查能否用鍵盤修

17、改定時時間,能否正確計時、啟閉。五、設(shè)計報告總結(jié)1、設(shè)計方案:根據(jù)設(shè)計要求,設(shè)計好硬件電路和軟件程序。利用電路模擬仿真軟件對設(shè)計好的電路進行模擬仿真,以確保硬件電路能夠正常工作。用已經(jīng)準(zhǔn)備好的電子元器件,焊接電路。把設(shè)計好的軟件程序嵌入到已經(jīng)焊接好的硬件電路中,進行調(diào)試。 2、對所設(shè)計方案的實現(xiàn)進行全面分析 該硬件電路的核心部分是AT89S51單片機,對電路進行各方面控制和計算,用一個4位8段的共陰數(shù)碼管顯示,用7407作為緩沖級,提高輸出電路驅(qū)動能力,使數(shù)碼管能正常顯示。用一個9013三極管驅(qū)動蜂鳴器,當(dāng)電路上電和計時時間到時響一秒提示時間到。用一個6M石英晶振和2個30pF的電容為AT89

18、S51芯片提供時鐘頻率,2個30pF電容主要是為了方便晶振起振。K1、K2、K3、3個開關(guān)分別用于加時間、減時間、復(fù)位和開始。用若干電阻作為上拉電阻,增大電路輸出電流。3、編程調(diào)試方法 編程與調(diào)試是C語言和Keil軟件相結(jié)合的。C語言是一種國際上廣泛流行的、很有發(fā)展前途的計算機高級語言。它適合作為系統(tǒng)描述語言,即可用來編寫系統(tǒng)軟件,也可用來編寫應(yīng)用軟件。 Keil軟件是一種目前用得比較廣泛的一款單片機編程軟件,它支持C和 匯編的編譯,并可生成 HEX 文件,還可進行代碼的軟硬件仿真軟件。 4、安裝調(diào)試過程,出現(xiàn)的各種現(xiàn)象硬件:電路在接電源后,顯示器中有一個數(shù)碼管不亮。主要原因:數(shù)碼管的一根連接

19、線沒焊好,導(dǎo)致數(shù)碼管不亮。軟件:程序燒錄到板子上后蜂鳴器一直響。主要原因:沒有對BELL至低電平,只需在主程序中寫上“BELL=0”就行了。程序燒錄到板子上后數(shù)碼管顯示不穩(wěn)定,亮度不一。主要原因:延時時間不準(zhǔn)確,經(jīng)過軟件計算,對定時器賦合適的初值即可。六、總結(jié)經(jīng)驗和體會在這次的單片機程序課程設(shè)計中,學(xué)到了關(guān)于單片機的很多東西,單片機具有軟硬結(jié)合,體積小,可以很容易嵌入到各種應(yīng)用系統(tǒng)中,單片機為核心的嵌入式控制系統(tǒng)在工業(yè)檢測與控制、儀器儀表、消費類電子產(chǎn)品、通信、武器裝備、各種終端及計算機外部設(shè)備、汽車電子設(shè)備和分布式多機系統(tǒng)領(lǐng)域中得到了廣泛了應(yīng)用單片機是我們的這個專業(yè)中很重要的一門課程,同時也

20、是一門比較難學(xué)的課程,剛開始學(xué)習(xí)單片機的時候,覺得很難,特別是在學(xué)習(xí)單片機指令系統(tǒng)和單片機匯編語言程序設(shè)計這兩章的時候,都聽不懂,但是每節(jié)課都會認真聽課,認真做筆記,不過后來在自己的摸索中慢慢的有點懂了,其實單片機主要是難在寫程序和寫代碼,程序主要是用C語言編程,有時候腦子里沒有一點思緒,什么都想不出來,所以,如果想要把單片機學(xué)好的話,首先就要把C語言學(xué)好,單片機主要是建立在C語言的基礎(chǔ)上的,不過單片機也可以用匯編語言編譯。我相信在我不斷的摸索中,我一定會把它給搞懂的。在這次的課程設(shè)計中,我很感謝我們的指導(dǎo)老師周瑩蓮,廖亦凡老師,還有我的組員,他們讓我學(xué)了很多東西,讓我知道了團隊合作有多么的重

21、要,在做硬件的過程中,也遇到了很多困難,比如說電路的連接線很復(fù)雜,我和另一個組員就會想一下該怎么布線,所以每一個步驟都要做的很細心,我們在連接線路的過程中,我們是沒連接一根線都會用萬用表測量一次,以免沒有導(dǎo)通,我們在做的過程中還會了解每一個元器件能實現(xiàn)什么樣的功能,這次實踐讓我對單片機有了更深一步的了解,讓我們真正做到了理論聯(lián)系實踐,把我們所學(xué)的知識都運用到實踐中去,這樣就能把單片機學(xué)的更好。雖然我們的單片機課程結(jié)束了,我們的課程設(shè)計也順利地做完了,但是我對學(xué)單片機的熱情只增不減,還是想要更深一步的去了解單片機,我永遠也不會忘記老師對我的教悔,讓我受益終身。七、進一步完善的設(shè)想A、新增一段程序

22、,對硬件的按鍵進行防抖,使計時器計時更加的精確;B、對于硬件的導(dǎo)線線路,盡量在線路比較短的地方不使用導(dǎo)線,使用焊錫進行導(dǎo)通,這樣就會比較的美觀;C、硬件元器件的排版要進行比較的規(guī)律,盡量做到導(dǎo)線排版的時候不會出現(xiàn)重疊的現(xiàn)象;D、計算每一條語句的時間,提高執(zhí)行的定時器的精度。八、參考書目1 趙偉軍,Protel99se教程,北京,人民郵電出版社,1996年2 譚浩強,C程序設(shè)計教程,北京,清華大學(xué)出版社,2007年3 張毅剛,單片機原理及應(yīng)用,北京,高等教育出版社,2010年 4 胡漢才,單片機原理及系統(tǒng)設(shè)計,北京,清華大學(xué)出版社,2002年 5 沈紅衛(wèi),單片機應(yīng)用系統(tǒng)設(shè)計實例與分析,北京,北京

23、航空航天大學(xué)出版社,2003年 附錄一:成品效果圖 圖六 成品效果圖附錄二:倒計時器源程序(C語言) #include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar Count = 0;uint n; uint fs=0;sbit BELL = P10; /設(shè)置P1.0口,為控制蜂鳴器發(fā)聲的引腳sbit K1 = P32;sbit K2 = P33;sbit K3 = P35;uchar min = 10 ;uchar sec = 0 ;uchar ws4 = 0xfe,0xfd,0xfb,0xf

24、7; uchar table10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /數(shù)碼管的段碼編碼 (0-9)uchar table_d10 = 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /帶點數(shù)碼管的段碼編碼 (0-9)void delay(void) /誤差 0us unsigned char a,b; for(b=1;b>0;b-) for(a=7;a>0;a-);void Delay(uint del) / 延時子程序,延時時間為 1ms * deluin

25、t x,j; for(j=0;j<del;j+)for(x=0;x<=148;x+); void beep()/產(chǎn)生1KHZ頻率聲音的函數(shù)unsigned char k=0; while(100-k) BELL=1;Delay(1);BELL=0;Delay(1);k+; void Time0_Init() /初始化定時器 11.0592M 50ms EA = 1; TMOD = 0x01; TH0= 0x9E; TL0=0x58; TR0 = 0; ET0 = 1;void time0() interrupt 1 /*定時器0中斷程序*/ TH0= 0x9E; TL0=0x58; if (Count = 20) Count = 0;if(sec = 0) if(min = 0) min = 10; else min-; sec = 59;else sec-; else C

溫馨提示

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

最新文檔

評論

0/150

提交評論