![基于單片機(jī)的電子秒表課程設(shè)計(jì)(附程序)_第1頁](http://file4.renrendoc.com/view/faf8f2aefd12c6ddb1468022a3802d77/faf8f2aefd12c6ddb1468022a3802d771.gif)
![基于單片機(jī)的電子秒表課程設(shè)計(jì)(附程序)_第2頁](http://file4.renrendoc.com/view/faf8f2aefd12c6ddb1468022a3802d77/faf8f2aefd12c6ddb1468022a3802d772.gif)
![基于單片機(jī)的電子秒表課程設(shè)計(jì)(附程序)_第3頁](http://file4.renrendoc.com/view/faf8f2aefd12c6ddb1468022a3802d77/faf8f2aefd12c6ddb1468022a3802d773.gif)
![基于單片機(jī)的電子秒表課程設(shè)計(jì)(附程序)_第4頁](http://file4.renrendoc.com/view/faf8f2aefd12c6ddb1468022a3802d77/faf8f2aefd12c6ddb1468022a3802d774.gif)
![基于單片機(jī)的電子秒表課程設(shè)計(jì)(附程序)_第5頁](http://file4.renrendoc.com/view/faf8f2aefd12c6ddb1468022a3802d77/faf8f2aefd12c6ddb1468022a3802d775.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)課程設(shè)計(jì)說明書PAGEPAGE27《新編單片機(jī)原理及應(yīng)用》—課程設(shè)計(jì)電子秒表說明書一、一、題目:基于單片機(jī)的電子秒表二、任務(wù)要求:本設(shè)計(jì)以MCS-51系列單片機(jī)為核心,采用常用電子器件設(shè)計(jì),一個(gè)電源開關(guān),兩個(gè)按鍵,三位數(shù)碼管顯示,打開電源開關(guān)后顯示8,每秒循環(huán)左移一位,按A鍵開始計(jì)時(shí),實(shí)時(shí)顯示所經(jīng)歷的時(shí)間,按B鍵停止計(jì)時(shí)并顯示從開始到當(dāng)前時(shí)刻的時(shí)間,要求精確到0.1秒,量程為0—99.9秒。要求按鍵輸入采用中斷方式,按鍵A接INT0,B接INT1。三、組內(nèi)成員:四、指導(dǎo)老師:2010年7月單片機(jī)課程設(shè)計(jì)目錄目錄緒論············································3概述··············································3設(shè)計(jì)目的··········································3設(shè)計(jì)任務(wù)和內(nèi)容····································3總體設(shè)計(jì)及核心器件簡介····················4總體設(shè)計(jì)···········································4MCS-51之80C51··································4單元電路模塊設(shè)計(jì)····························6按鍵電路··········································6時(shí)鐘電路···········································7LED數(shù)碼管顯示電路·································7復(fù)位電路······································93.5總體功能介紹········································11軟件編程設(shè)計(jì)·································12設(shè)計(jì)體會(huì)及總結(jié)······························13參考文獻(xiàn)··············································14附錄一程序流程圖·····································15附錄二系統(tǒng)程序設(shè)計(jì)··································16單片機(jī)課程設(shè)計(jì)第一章緒論概述單片微型計(jì)算機(jī)簡稱單片機(jī),又稱微控制器,是微型計(jì)算機(jī)的一個(gè)重要分支。單片機(jī)是20世紀(jì)七十年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是集CPU、RAM、ROM、I/O接口和終端系統(tǒng)與同一硅片的器件。20世紀(jì)八十年代以來單片機(jī)發(fā)展迅速各類新產(chǎn)品不斷涌現(xiàn)出現(xiàn)許多新產(chǎn)品,出現(xiàn)了許多高性能新型機(jī)種現(xiàn)已成為工業(yè)控制和各控制領(lǐng)域的支柱產(chǎn)業(yè)之一。由于單片機(jī)功能功能強(qiáng)、體積小、可靠性好、價(jià)格便宜等獨(dú)特優(yōu)點(diǎn)因而受到人們的高度重視并取到了一系列的科研成果,成為傳統(tǒng)工業(yè)技術(shù)改造和新產(chǎn)品更新?lián)Q代的理想機(jī)種,并具有廣闊的發(fā)展前景。本設(shè)計(jì)運(yùn)用所學(xué)的單片機(jī)知識(shí),將單片機(jī)與普通秒表相結(jié)合設(shè)計(jì)了電子秒表,具有低功耗,保密性好等優(yōu)良特點(diǎn),具有廣闊的市場前景設(shè)計(jì)目的加強(qiáng)對(duì)單片機(jī)和C51語言的認(rèn)識(shí),充分掌握和理解設(shè)計(jì)各部分的工作原理、設(shè)計(jì)過程、選擇芯片器件、模塊化編程等多項(xiàng)知識(shí)。(1)用單片機(jī)模擬實(shí)現(xiàn)具體應(yīng)用使個(gè)人設(shè)計(jì)系統(tǒng)能夠真正使用。(2)把理論知識(shí)與實(shí)踐知識(shí)相結(jié)合,充分發(fā)揮個(gè)人能力,并在實(shí)踐中得到鍛煉。(3)提高利用已學(xué)的知識(shí)分析和解決問題的能力。(4)提高動(dòng)手實(shí)踐能力。設(shè)計(jì)任務(wù)及內(nèi)容1.3.1設(shè)計(jì)任務(wù)結(jié)合教材及參考資料,用80C51單片機(jī)模擬實(shí)現(xiàn)電子秒表的開啟,計(jì)時(shí),停止并顯示時(shí)間等功能。1.3.2設(shè)計(jì)內(nèi)容(1)填寫設(shè)計(jì)任務(wù)書(2)進(jìn)行總體設(shè)計(jì),畫出原理圖(3)用proteus軟件畫出PCB板(4)用Keil軟件編寫程序(5)在proteus里模擬并調(diào)試程序達(dá)到期望功能單片機(jī)課程設(shè)計(jì)第二章第二章總體設(shè)計(jì)及核心器件簡介2.1總體設(shè)計(jì)整個(gè)設(shè)計(jì)以MCS-51單片機(jī)為核心,由LED數(shù)碼管顯示,控制開關(guān),位驅(qū)動(dòng)電路等組成。模塊電路如圖MCS-51單片機(jī)MCS-51單片機(jī)控制開關(guān)三位數(shù)碼管位驅(qū)動(dòng)2.280C51簡介2.2.180C51單片機(jī)簡介80C51是MCS-51系列單片機(jī)中的一個(gè)子系列,是一族高性能兼容型單片機(jī)。其內(nèi)部資源分配和性能如下;8位CPU;尋址能力2X64K;4KB的內(nèi)部ROM和128B內(nèi)部RAM;四個(gè)8位I/O接口電路;一個(gè)串行全雙工異步接口;五個(gè)中斷源和兩個(gè)中斷優(yōu)先權(quán);采用CMOS工藝電流小,低功耗。80C51各管腳主要功能簡介下圖為80C51PCB圖:圖2.1(1)Vss(20腳):接地(2)VCC(40腳):主電源+5V(3)XTAL1(19腳):接外部晶體的一端。在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該端引腳必須接地;對(duì)于CHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端。XTAL2(18腳):接外部晶體的另一端。在片內(nèi)它是一個(gè)振蕩電路反相放大器的輸出端,振蕩電路的頻率是晶體振蕩頻率。若需采用外部時(shí)鐘電路,對(duì)于HMOS單片機(jī),該引腳輸入外部時(shí)鐘脈沖;對(duì)于CHMOS單片機(jī),此引腳應(yīng)懸浮。(4)RST(9腳):單片機(jī)剛接上電源時(shí),其內(nèi)部各寄存器處于隨機(jī)狀態(tài),在該腳輸入24個(gè)時(shí)鐘周期寬度以上的高電平將使單片機(jī)復(fù)位(RESET)(5)PSEN(29腳):在訪問片外程序存儲(chǔ)器時(shí),此端輸出負(fù)脈沖作為存儲(chǔ)器讀選通信號(hào)。CPU在向片外存儲(chǔ)器取指令期間,PSEN信號(hào)在12個(gè)時(shí)鐘周期中兩次生效。不過,在訪問片外數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效PSEN信號(hào)不出現(xiàn)。PSEN端同樣可驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。我們根據(jù)PSEN、ALE和XTAL2輸出端是否有信號(hào)輸出,可以判別80C51是否在工作。(6)ALE/PROG(30腳):在訪問片外程序存儲(chǔ)器時(shí),此端輸出負(fù)脈沖作為存儲(chǔ)器讀選通信號(hào)。CPU在向片外存儲(chǔ)器取指令期間,PSEN信號(hào)在12個(gè)時(shí)鐘周期中兩次生效。不過,在訪問片外數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效PSEN信號(hào)不出現(xiàn)。PSEN端同樣可驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。我們根據(jù)PSEN、ALE和XTAL2輸出端是否有信號(hào)輸出,可以判別80C51是否在工作。(7)EA/VPP(31腳):當(dāng)EA端輸入高電平時(shí),CPU從片內(nèi)程序存儲(chǔ)器地址0000單元開始執(zhí)行程序。當(dāng)?shù)刂烦?KB時(shí),將自動(dòng)執(zhí)行片外程序存儲(chǔ)器的程序。當(dāng)EA輸入低電平時(shí),CPU僅訪問片外程序存儲(chǔ)器。在對(duì)87C51EPROM編程時(shí),此引腳用于施加編程電壓VPP。(8)輸入/輸出引腳:1)P0.0—P0.7(39腳—32腳)2)P1.0—P1.7(01腳—08腳)3)P2.0—P2.7(26腳—21腳)4)P3.0—P3.7(10腳—17腳)單片機(jī)課程設(shè)計(jì)第五章第三章單元電路模塊設(shè)計(jì)3.1按鍵電路的選擇與設(shè)計(jì)連接形式如下:圖3.1按鍵電路本設(shè)計(jì)中有四個(gè)按鍵,分別實(shí)現(xiàn)啟動(dòng)、開始、停止、和復(fù)位功能。這四個(gè)鍵可以采用中斷或是查詢的方法來識(shí)別。對(duì)于開始鍵,主要功能在于開始計(jì)時(shí)和實(shí)時(shí)顯示所經(jīng)歷的時(shí)間,而停止鍵主要用于停止計(jì)時(shí)并顯示從開始到當(dāng)前時(shí)刻的時(shí)間,對(duì)復(fù)位鍵采用查詢的方式,而對(duì)于開始和停止鍵采用外部中斷。按鍵電路中由于采用了外部中斷,所以需要用到P3口的第二功能。P3口引腳的第二功能如下表P3口引腳第二功能表P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請(qǐng)求輸入端)P3.3INT1(外部中斷1請(qǐng)求輸入端)P3.4T0(定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖輸入端)P3.5T1(定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖輸入端)P3.6WR(片外數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端)P3.7RD(片內(nèi)數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端)3.2時(shí)鐘電路的選擇與設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),80c51片內(nèi)設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入和輸出端,80c51單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時(shí)鐘很少用,若要用時(shí),只要將XTAL1接地,XTAL2接外部振蕩器就行。對(duì)外部振蕩信號(hào)無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘信號(hào)P1和P2供單片機(jī)使用。P1在每一個(gè)狀態(tài)S的前半部分有效,P2在每個(gè)狀態(tài)的后半部分有效。本設(shè)計(jì)采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。本設(shè)計(jì)系統(tǒng)的時(shí)鐘電路如圖3.2所示。只要按照所示電路進(jìn)行設(shè)計(jì)連接就能使系統(tǒng)可靠起振并能穩(wěn)定運(yùn)行。圖中,電容器C1
、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~33pF。但在時(shí)鐘電路的實(shí)際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對(duì)稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設(shè)計(jì)中采用大小為30pF的電容和12MHz的晶振。圖3.2振蕩電路3.3LED數(shù)碼管顯示電路選用的共陰極LED顯示數(shù)碼管如下:數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種。共陽極數(shù)碼管的8個(gè)發(fā)光二極管的陽極(二極管正端)連接在一起,如圖3.3(b),通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起,如圖(c),通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動(dòng)電路輸出端,當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。圖3.3(a)數(shù)碼管引腳圖(b)共陽極內(nèi)部結(jié)構(gòu)圖(c)共陰極內(nèi)部結(jié)構(gòu)圖本設(shè)計(jì)采用共陰極數(shù)碼顯示管做顯示電路,由于采用的是共陰的數(shù)碼顯示管,所以只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為高電平,那么其對(duì)應(yīng)的二極管就會(huì)發(fā)光,使數(shù)碼顯示管顯示0~9的編碼見表3.1。表3.1共陰極數(shù)碼顯示管字型代碼字型共陰極代碼字型共陰極代碼03FH56DH106H67DH25BH707H34FH87FH466H96FH3.4復(fù)位電路的選擇與設(shè)計(jì)關(guān)于單片機(jī)的置位和復(fù)位,都是為了把電路初始化到一個(gè)確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個(gè)例如狀態(tài)機(jī)初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時(shí)候單片機(jī)是把一些寄存器以及存儲(chǔ)設(shè)備裝入廠商預(yù)設(shè)的一個(gè)值,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。當(dāng)80c51單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序。因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。而本系統(tǒng)選用的是12MHz的晶振,因此一個(gè)機(jī)器周期為1μs,那么復(fù)位脈沖寬度最小應(yīng)為2μs。在實(shí)際應(yīng)用系統(tǒng)中,考慮到電源的穩(wěn)定時(shí)間,參數(shù)漂移,晶振穩(wěn)定時(shí)間以及復(fù)位的可靠性等因素,必須有足夠的余量。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位、手動(dòng)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。80C51單片機(jī)的上電復(fù)位POR(PowerOnReset)實(shí)質(zhì)上就是上電延時(shí)復(fù)位,也就是在上電延時(shí)期間把單片機(jī)鎖定在復(fù)位狀態(tài)上。在單片機(jī)每次初始加電時(shí),首先投入工作的功能部件是復(fù)位電路。復(fù)位電路把單片機(jī)鎖定在復(fù)位狀態(tài)上并且維持一個(gè)延時(shí)(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個(gè)等待時(shí)間;在電源電壓穩(wěn)定之后,再插入一個(gè)延時(shí),給予時(shí)鐘振蕩器從起振到穩(wěn)定的一個(gè)等待時(shí)間;在單片機(jī)開始進(jìn)入運(yùn)行狀態(tài)之前,還要至少推遲2個(gè)機(jī)器周期的延時(shí)。上述一系列的延時(shí),都是利用在單片機(jī)RST引腳上外接一個(gè)RC支路的充電時(shí)間而形成的。典型復(fù)位電路如圖3.4(a)所示,其中的阻容值是原始手冊(cè)中提供的。在經(jīng)歷了一系列延時(shí)之后,單片機(jī)才開始按照時(shí)鐘源的工作頻率,進(jìn)入到正常的程序運(yùn)行狀態(tài)。在電源電壓以及振蕩器輸出信號(hào)穩(wěn)定之后,又等待了一段較長的延時(shí)才釋放RST信號(hào),使得CPU脫離復(fù)位鎖定狀態(tài);而RST信號(hào)一旦被釋放,立刻在ALE引腳上就可檢測到持續(xù)的脈沖信號(hào)[8]。
圖3.4上電復(fù)位延時(shí)電路由于標(biāo)準(zhǔn)80C51的復(fù)位邏輯相對(duì)簡單,復(fù)位源只有RST一個(gè)(相對(duì)新型單片機(jī)來說,復(fù)位源比較單一),因此各種原因所導(dǎo)致的復(fù)位活動(dòng)以及復(fù)位狀態(tài)的進(jìn)入,都要依靠在外接引腳RST上施加一定時(shí)間寬度的高電平信號(hào)來實(shí)現(xiàn)。標(biāo)準(zhǔn)80C51不僅復(fù)位源比較單一,而且還沒有設(shè)計(jì)內(nèi)部上電復(fù)位的延時(shí)功能,因此必須借助于外接阻容支路來增加延時(shí)環(huán)節(jié),如圖3.4(a)所示。其實(shí),外接電阻R還是可以省略的,理由是一些CMOS單片機(jī)芯片內(nèi)部存在一個(gè)現(xiàn)成的下拉電阻Rrst。因此,在圖3.4(a)基礎(chǔ)上,上電復(fù)位延時(shí)電路還可以精簡為圖3.4(b)所示的簡化電路(其中電容C的容量也相應(yīng)減小了)。在每次單片機(jī)斷電之后,須使延時(shí)電容C上的電荷立刻放掉,以便為隨后可能在很短的時(shí)間內(nèi)再次加電作好準(zhǔn)備。否則,在斷電后C還沒有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應(yīng)有的延遲功能。因此,在圖3.4(a)的基礎(chǔ)上添加一個(gè)放電二極管D,上電復(fù)位延時(shí)電路就變成了如圖3.4(c)所示的改進(jìn)電路。也就是說,只有RC支路的充電過程對(duì)電路是有用的,放電過程不僅無用,而且會(huì)帶來潛在的危害。于是附加一個(gè)放電二極管D來大力縮短放電持續(xù)時(shí)間,以便消除隱患。二極管D只有在單片機(jī)斷電的瞬間(即VCC趨近于0V,可以看作VCC對(duì)地短路)正向?qū)?,平時(shí)一直處于反偏截止?fàn)顟B(tài)。手動(dòng)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。單片機(jī)要完成復(fù)位,必須向復(fù)位端輸出并持續(xù)兩個(gè)機(jī)器周期以上的高電平,從而實(shí)現(xiàn)復(fù)位操作。本設(shè)計(jì)采用上電且開關(guān)復(fù)位電路,如圖3.5所示上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。圖3.5單片機(jī)復(fù)位電路3.5總體功能介紹在本設(shè)計(jì)中,首先打開電源開關(guān)后顯示8,每秒循環(huán)左移一位,然后按下啟動(dòng)鍵,為計(jì)時(shí)做準(zhǔn)備。按A鍵開始計(jì)時(shí),實(shí)時(shí)顯示所經(jīng)歷的時(shí)間,按B鍵停止計(jì)時(shí)并顯示從開始到當(dāng)前時(shí)刻的時(shí)間,精確到0.1秒,量程為0—99.9秒。系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如附圖1所示。80c51單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。80c51單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個(gè)專用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機(jī)的端口連接可以由用戶自己設(shè)定,本設(shè)計(jì)中軟件復(fù)位鍵設(shè)為低電平有效。而另外的開始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機(jī)的特殊接口P3.3和P3.2,這兩個(gè)I/O口的第二功能分別為單片機(jī)的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。顯示電路由三個(gè)數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,80c51的P0口沒有集成上拉電阻,高電平的驅(qū)動(dòng)能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動(dòng)能力。三位位控制則由低位到高位分別接到P2.2~P2.4口,NPN三極管2N1711做為位控制端的開關(guān),當(dāng)P2.2~P2.4端口任意一個(gè)端口為高電平時(shí),與其相對(duì)應(yīng)的三極管就導(dǎo)通,對(duì)應(yīng)的數(shù)碼管導(dǎo)通顯示。通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。第四章軟件編程設(shè)計(jì)本設(shè)計(jì)采用了匯編語言編寫,匯編語言由于采用了助記符號(hào)來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體。可以對(duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)通電后,首先對(duì)系統(tǒng)進(jìn)行初始化,包括設(shè)置各入口地址、中斷的開啟、對(duì)各個(gè)數(shù)據(jù)緩存區(qū)清“0”、賦定時(shí)器初值,初始化完畢后,就進(jìn)入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進(jìn)行調(diào)用并在數(shù)碼管上進(jìn)行動(dòng)態(tài)顯示。數(shù)碼管循環(huán)顯示數(shù)字8,顯示一次就進(jìn)行一次掃描,查詢復(fù)位鍵是否按下,當(dāng)復(fù)位鍵按下后,程序返回開始,重新對(duì)系統(tǒng)進(jìn)行初始化。當(dāng)沒有按下復(fù)位鍵時(shí),則掃描啟動(dòng)鍵是否按下,當(dāng)啟動(dòng)鍵沒有按下則循環(huán)顯示數(shù)字8,當(dāng)啟動(dòng)鍵按下之后,數(shù)碼管顯示全部為0。再查詢到A鍵是否按下,按下后則開始計(jì)時(shí),并且實(shí)時(shí)顯示當(dāng)前所經(jīng)歷的時(shí)間,如果沒按下,則數(shù)碼管始終顯示數(shù)字0。程序再查詢B鍵是否按下,如果B鍵按下,則停止計(jì)時(shí),并且顯示從開始到當(dāng)前時(shí)刻的時(shí)間,若未被按下則繼續(xù)計(jì)時(shí)。在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時(shí)器初值、延時(shí)以及開啟外部中斷等操作,當(dāng)定時(shí)時(shí)間到后就轉(zhuǎn)去執(zhí)行定時(shí)中斷程序。當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序,并在執(zhí)行完后返回主程序。第五章設(shè)計(jì)體會(huì)與總結(jié)在這次單片機(jī)課程設(shè)計(jì)中,我收獲了很多,不僅對(duì)于單片機(jī)的實(shí)踐應(yīng)用有了較深刻的認(rèn)識(shí),而且使我意識(shí)到團(tuán)隊(duì)合作的重要性。在此次設(shè)計(jì)中,由我擔(dān)任組長,我對(duì)我們小組實(shí)行了分工合作的方法,充分發(fā)揮隊(duì)員的才能和長處,目的讓他們的優(yōu)點(diǎn)得到充分的發(fā)揮,在這次對(duì)我印象最深的是:我、張靜與邱林建同學(xué)負(fù)責(zé)電路原理圖模塊。為了實(shí)現(xiàn)設(shè)計(jì)結(jié)果的形象化、逼真化,我們采用了proteus電子軟件,在開始畫電路圖時(shí)感覺異常的艱難:一方面是電路原理方面的問題;另一方面是工具的軟件的問題,我們對(duì)于proteus軟件都很陌生、全英文,都是初學(xué)者,只能在摸索中前行,邊看著從圖書館借來的有關(guān)軟件的指導(dǎo)書邊實(shí)踐操作著。慢慢地,對(duì)proteus這個(gè)軟件也算有了一些了解才不再那么困難。后來很快我們?cè)谥笇?dǎo)書和同學(xué)的幫助下完成了原理圖的繪制。此時(shí)我們負(fù)責(zé)程序編制工作的同學(xué)也完成了程序的編制、調(diào)試。我們迫不及待的想要看到設(shè)計(jì)程序的結(jié)果,所以我們將已編譯好的目標(biāo)代碼文件*.HEX調(diào)入繪制好的原理圖中進(jìn)行模擬仿真,可結(jié)果數(shù)碼管一個(gè)都沒有亮,我們都有些失望但誰都沒有灰心。我們分別找自己在哪方面出現(xiàn)了錯(cuò)誤,負(fù)責(zé)程序的開始檢查起程序,查完程序沒有問題,開始仔細(xì)認(rèn)真的分析電路,后來發(fā)現(xiàn)是數(shù)碼管選用型號(hào)不對(duì),所以先拆掉了其中一個(gè)換了一個(gè)另一種型號(hào),結(jié)果真的亮了,我們興奮極了。然后隊(duì)員很快把另兩個(gè)也都換了,這次數(shù)碼管是都全亮了,但結(jié)果并不是我們預(yù)期的結(jié)果。我們只好再次認(rèn)真的檢查,經(jīng)過一番檢查,發(fā)現(xiàn)有一處電路不該聯(lián)通的地方用了黑點(diǎn)使其接通了,趕緊改正了過來,再次模擬運(yùn)行了一遍,可是好像正確結(jié)果不讓我們“不歷盡磨難”就不出來似的,依然沒有完全達(dá)到想要的結(jié)果。我們不得不再次一遍又一遍的分析檢查。在不知檢查了多少遍時(shí)隊(duì)員感到了頹然與勞累,然后發(fā)起牢騷想要放棄,我們沒有放棄,而是相互鼓勵(lì),看看同和我們負(fù)責(zé)電路原理圖的邱林建同學(xué)仍在不驕不躁的檢查分析著電路,她不得不反思自己,她應(yīng)該學(xué)習(xí)他沉著的心態(tài)。在大家的努力下,終于我們找出了另一個(gè)錯(cuò)誤原因,原來是其中一個(gè)上拉電阻阻值用錯(cuò)了。由此我明白了,要做好這次設(shè)計(jì)不僅要有對(duì)單片機(jī)的理論知識(shí)而且還要有足夠的耐心、堅(jiān)持和獨(dú)立思考的能力。其次在軟件程序設(shè)計(jì)方面,我們首先完成大的模塊,然后一點(diǎn)一點(diǎn)的細(xì)化程序,我們感覺自己的程序沒有錯(cuò)誤,但是經(jīng)過軟件一調(diào)試,錯(cuò)誤百出,我們又開始回到課本,認(rèn)真的學(xué)習(xí),然后認(rèn)真的修改程序,我們知道我們最后的結(jié)果全靠我們的設(shè)計(jì)程序上,程序錯(cuò)了,他們做的再好也不能實(shí)現(xiàn)預(yù)期的效果,我們每調(diào)試一次我們都保持原本,設(shè)計(jì)有可能最后回到最開始的方案。通過課程設(shè)計(jì),我發(fā)現(xiàn)了自己的很多基礎(chǔ)知識(shí)還是沒有掌握,對(duì)一些知識(shí)的理解是有誤的。還明白了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了仔細(xì)認(rèn)真、耐心和努力,組一個(gè)組長要有一定的領(lǐng)導(dǎo)能力,要充分發(fā)揮隊(duì)員的優(yōu)點(diǎn)和長處,這將為自己今后的學(xué)習(xí)和工作做出了很好的幫助。由于學(xué)到知識(shí)有限和時(shí)間的原因,我還想設(shè)計(jì)出把按停止時(shí)顯示的數(shù)保存,然后再開始計(jì)時(shí),最后把每次停止的數(shù)依次顯示出來。參考文獻(xiàn):[1]胡漢才單片機(jī)原理及其接口技術(shù)(第二版)清華大學(xué)出版社2004[2]李鄧化,彭書華,許曉飛.智能檢測技術(shù)及儀表.科學(xué)出版社,2007:194-201[3]戴佳.單片機(jī)C51語言應(yīng)用程序設(shè)計(jì).電子工業(yè)出版社,2006.7:168-169[4]朱民雄.計(jì)算機(jī)語言技術(shù).北京航空航天大學(xué)出版社,2002.1:103-105[5]李鴻.單片機(jī)原理及應(yīng)用.湖南大學(xué)出版社.2004:8:72-73[6]劉建清.單片機(jī)技術(shù).國防工業(yè)出版社,2006.8:104-105[7]楊寧,胡學(xué)軍.單片機(jī)與控制技術(shù).北京航空航天大學(xué)出版社,2005-03:306-單片機(jī)課程設(shè)計(jì)附錄一附錄一:程序流程圖對(duì)定時(shí)器/計(jì)數(shù)器初始化程序開始數(shù)碼管循環(huán)顯示8A鍵是否按下?N開中斷并啟動(dòng)定時(shí)器定時(shí)器溢出中斷對(duì)定時(shí)器重新賦值進(jìn)行加一操作后重新計(jì)算時(shí)間往P0口送顯示時(shí)間數(shù)碼管顯示B鍵是否按下?ND鍵是否按下?停止計(jì)時(shí),顯示時(shí)間NY開始C鍵是否按下?數(shù)碼管全顯示0N結(jié)束YYY附錄二:系統(tǒng)程序設(shè)計(jì)ORG0000HLJMPMAINORG0003H;外部中斷INT0中斷入口LJMPKAISHIORG000BH;定時(shí)器T0中斷入口LJMPUPDATEORG0013H;外部中斷INT1中斷入口LJMPTINGZHIMAIN:MOVDPTR,#TAB;存入表頭地址MOVTMOD,#01H;置T0為方式1MOVTH0,#3CH;賦定時(shí)器初值,50毫秒MOVTL0,#0B0HMOV7BH,#00H;0.1秒的存儲(chǔ)空間MOV7CH,#00H;1秒的存儲(chǔ)空間MOV7DH,#00H;10秒的存儲(chǔ)空間MOVR2,#00HMOVR3,#00HMOVR4,#00HSETBEA;CPU開中斷SETBEX0;開外部中斷0SETBEX1;開外部中斷1SETBIT0;外部中斷0位邊沿觸發(fā)方式SETBIT1;外部中斷1位邊沿觸發(fā)方式SETBET0;定時(shí)器0允許位XIAN1:MOVP0,#0FFH;顯示數(shù)字8SETBP2.2;接通100ms數(shù)碼管 LCALLDELAY2;調(diào)用延時(shí)程序2 CLRP2.2;斷開100ms數(shù)碼管 MOVP0,#0FFH SETBP2.3 LCALLDELAY2 CLRP2.3 MOVP0,#0FFH SETBP2.4 LCALLDELAY2 CLRP2.4JNBP1.0,XIAN2;按下啟動(dòng)鍵,則跳轉(zhuǎn)到XIAN2 LJMPXIAN1;返回顯示程序,重新進(jìn)行顯示XIAN2:MOVA,7BH;顯示0.1s位數(shù)字 MOVCA,@A+DPTR;查表 MOVP0,A SETBP2.2 LCALLDELAY1;調(diào)用DELAY1 CLRP2.2 MOVA,7CH;顯示1s位數(shù)字 MOVCA,@A+DPTR MOVP0,A SETBP2.3 LCALLDELAY1 CLRP2.3 MOVA,7DH;顯示10s位數(shù)字 MOVCA,@A+DPTR MOVP0,A SETBP2.4 LCALLDELAY1 CLRP2.4MOVP0,#80H;顯示小數(shù)點(diǎn) SETBP2.3 LCALLDELAY1 CLRP2.3 LJMPXIAN2;返回顯示程序,重新進(jìn)行顯示KAISHI:LCALLDELAY;調(diào)用延時(shí)程序 SETBTR0;啟動(dòng)定時(shí)器T0RETI;中斷返回 TINGZHI:CLRTR0;停止定時(shí)器T0 RETIUPDATE:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年設(shè)備操作許可協(xié)議策劃范本
- 2025年勞動(dòng)合同終止后的競業(yè)限制
- 2025年共享公寓策劃合租合同范本
- 2025年工業(yè)設(shè)備節(jié)電改造協(xié)議
- 2025年股權(quán)交換合同范本
- 2025年不銹鋼板采購合同示范文本
- 2025年債券發(fā)行信用評(píng)級(jí)協(xié)議
- 2025年梅州道路貨物運(yùn)輸從業(yè)資格證模擬考試
- 2025年資本運(yùn)作策劃與股權(quán)讓渡協(xié)議書
- 2025年醫(yī)療信息化合作策劃協(xié)議書
- 頸部瘢痕攣縮畸形治療
- 貴州省貴陽市2023-2024學(xué)年五年級(jí)上學(xué)期語文期末試卷(含答案)
- 規(guī)劃課題申報(bào)范例:俄羅斯教育改革研究(附可修改技術(shù)路線圖)
- 運(yùn)輸企業(yè)安全事故報(bào)告調(diào)查處理制度(簡單版5篇)
- SAP導(dǎo)出科目余額表和憑證表操作說明及截圖可編輯范本
- 倉庫貨物安全管理
- 服務(wù)質(zhì)量、保證措施
- 端午做香囊課件
- 2024年部編版九年級(jí)語文上冊(cè)電子課本(高清版)
- 墨香里的年味兒(2023年遼寧沈陽中考語文試卷記敘文閱讀題及答案)
- 外研版小學(xué)五年級(jí)上冊(cè)英語閱讀理解專項(xiàng)習(xí)題
評(píng)論
0/150
提交評(píng)論