最近幾年來(lái),隨著科技的飛速發(fā)展,單片機(jī)領(lǐng)域正在不斷的走向社會(huì)各個(gè)角落,還帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新。在實(shí)時(shí)運(yùn)作和自動(dòng)控制的單片機(jī)應(yīng)用到系統(tǒng)中,單片機(jī)如今是作為一個(gè)核心部件來(lái)使用,僅掌握單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)其具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。“單片機(jī)原理及應(yīng)用課程設(shè)計(jì)”是電子類專業(yè)的學(xué)科基礎(chǔ)科,它是繼“匯編語(yǔ)言程序設(shè)計(jì)”,“接口技術(shù)”等課程之后開出的實(shí)踐環(huán)節(jié)課程。
以STC89C51RC單片機(jī)為核心,起著控制作用。系統(tǒng)包括數(shù)碼管顯示電路、復(fù)位電路、時(shí)鐘電路、按鍵調(diào)整電路和蜂鳴器電路。設(shè)計(jì)思路分為六個(gè)模塊:復(fù)位電路、晶振電路模、STC89C51RC、數(shù)碼管顯示電路、按鍵調(diào)整電路和蜂鳴器電路這六個(gè)模塊。
2.1 總設(shè)計(jì)框圖系統(tǒng)電源使用外接直流5伏。
USB是通用串行總線(Universal Serial Bus)接口的簡(jiǎn)稱。它是目前使用比較廣泛的電腦接口之一,主要版本有1.0、1.1和最新的2.0三種版本。根據(jù)USB總線的工業(yè)標(biāo)準(zhǔn),它可以提供額定功率為5V/500mA的電源供USB設(shè)備使用。
2.2.2 單片機(jī)最小系統(tǒng)51單片機(jī)是對(duì)目前所有兼容intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是intel的8031單片機(jī),后來(lái)隨著技術(shù)的發(fā)展,成為目前廣泛應(yīng)用的8為單片機(jī)之一。單片機(jī)是在一塊芯片內(nèi)集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O口等計(jì)算機(jī)所需要的基本功能部件的大規(guī)模集成電路,又稱為MCU。51系列單片機(jī)內(nèi)包含以下幾個(gè)部件:
一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;
4KB的ROM程序存儲(chǔ)器;
一個(gè)128B的RAM數(shù)據(jù)存儲(chǔ)器;
尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)空間的控制電路;
32條可編程的I/O口線;
兩個(gè)16位定時(shí)/計(jì)數(shù)器;
一個(gè)可編程全雙工串行口;
5個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。
如圖2-2-1所示為STC89C51RC單片機(jī)基本構(gòu)造,其基本性能介紹如下:
STC89C51RC本身內(nèi)含40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中端口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,STC89C51RC可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。
STC89C51RC的主要特性如下表所示:
兼容MCS—51指令系統(tǒng) | 32個(gè)可編程I/O線 |
4k字節(jié)可編程閃爍存儲(chǔ)器 | 可編程UARL通道 |
三個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 | 時(shí)鐘頻率0-24MHz |
2個(gè)外部中斷源,共8個(gè)中斷源 | 256×8bit內(nèi)部RAM |
2個(gè)讀寫中斷口線 | 可直接驅(qū)動(dòng)LED |
軟件設(shè)置睡眠和喚醒功能 | 低功耗空閑和掉電模式 |
STC89C51RC為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的89c51相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號(hào)功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。
P0口:P0口是一組8位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。
P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。
P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口P2寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。
P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能P3口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。
ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)AL脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條 MOVX 和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。
PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C51RC由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。
EA/VPP:外部訪問(wèn)允許。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。
XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
單片機(jī)最小原理圖如圖2-2-2所示。
時(shí)鐘信號(hào)的產(chǎn)生:在MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的時(shí)鐘振蕩電路。
時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。
一般地,電容C2和C3取30pF左右,晶體的振蕩頻率范圍是1.2-12MHz。如果晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)的運(yùn)行速度也就快。
單片機(jī)復(fù)位使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài)下,并從這個(gè)狀態(tài)開始工作。單片機(jī)復(fù)位條件:必須使9腳加上持續(xù)兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平。
2.2.3 顯示系統(tǒng)圖2-2-3 數(shù)碼管顯示電路
2.2.4 按鍵調(diào)整電路該系統(tǒng)由延時(shí)子函數(shù)、蜂鳴器子函數(shù)、初始化子函數(shù)、調(diào)節(jié)比賽時(shí)間數(shù)碼管顯示子函數(shù)、比賽開始數(shù)碼管顯示子函數(shù)、甲隊(duì)得分?jǐn)?shù)碼管顯示子函數(shù)、乙隊(duì)得分?jǐn)?shù)碼管顯示子函數(shù)、按鍵掃描子函數(shù)、定時(shí)器0中斷子函數(shù)、主函數(shù)和數(shù)據(jù)定義這幾部分組成。
圖3-1-1 主程序流程圖
圖3-1-2 倒計(jì)時(shí)程序流程圖
Proteus ISIS是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:
(1)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。
(2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
(3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。
(4)具有強(qiáng)大的原理圖繪制功能。
可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。
在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。 PROTEUS 是單片機(jī)課堂教學(xué)的先進(jìn)助手。
PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。
它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。
課程設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于PROTEUS提供了實(shí)驗(yàn)室無(wú)法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)。
4.2仿真圖經(jīng)過(guò)近三個(gè)月的努力,終于順利完成了設(shè)計(jì)。剛開始,我們頭緒不是很清楚,不知道從哪里入手,但通過(guò)老師的耐心指導(dǎo)并和同學(xué)認(rèn)真研究設(shè)計(jì)課題,跑圖書館查資料、確定基本設(shè)計(jì)方案、對(duì)所用芯片功能進(jìn)行查找、調(diào)試、上機(jī)仿真等,經(jīng)歷了一次次的困難,卻積累了很多寶貴的經(jīng)驗(yàn)。在整個(gè)設(shè)計(jì)的過(guò)程中遇到的問(wèn)題主要有以下三點(diǎn),第一:基礎(chǔ)知識(shí)掌握的不牢固,主要表現(xiàn)在一些常用的電路的形式和功能不清楚,對(duì)書本上的內(nèi)容理解不夠透徹。第二:對(duì)一些常用的應(yīng)用軟件缺少應(yīng)用,體現(xiàn)在畫電路圖和系統(tǒng)的仿真的時(shí)候,對(duì)這些軟件的操作不熟練,浪費(fèi)了很多時(shí)間。第三:相關(guān)知識(shí)掌握的不夠全面,缺少系統(tǒng)設(shè)計(jì)的經(jīng)驗(yàn)。
這次設(shè)計(jì)進(jìn)一步端了我的學(xué)習(xí)態(tài)度,學(xué)會(huì)了實(shí)事求是,嚴(yán)謹(jǐn)?shù)淖黠L(fēng),對(duì)自己要嚴(yán)格要求,不能夠一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會(huì)浪費(fèi)時(shí)間,還會(huì)適得其反。我覺(jué)得動(dòng)手之前,頭腦里必須清楚該怎么做,這一點(diǎn)是很重要的。就目前來(lái)說(shuō),我的動(dòng)手能力雖然差一點(diǎn),但我想,通過(guò)我的不懈努力,在這方面,我總會(huì)得到提高。這一點(diǎn),我堅(jiān)信。因?yàn)閯e人能做到的,我也一定能做到。
在此次的設(shè)計(jì)中我最大的體會(huì)就是進(jìn)一步認(rèn)識(shí)到了理論聯(lián)系實(shí)踐的重要性。一份耕耘,一份收獲。通過(guò)這段時(shí)間的設(shè)計(jì),讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美。總而言之,此次設(shè)計(jì)讓我學(xué)到了好多平時(shí)在課堂上學(xué)不到的東西,增加了我的知識(shí)運(yùn)用能力,增強(qiáng)我的實(shí)際操作能力。謝謝老師給我們提供這么好的機(jī)會(huì),為我們之后走向社會(huì)奠定了一個(gè)好的基礎(chǔ)。
本次設(shè)計(jì)讓我學(xué)到了很多,也學(xué)會(huì)到了要怎么樣去面對(duì)困難,不要對(duì)知識(shí)一知半截,要有的求實(shí)的能力,通過(guò)老師的幫助我學(xué)到了很多在平時(shí)的沒(méi)有注意到的動(dòng)?xùn)|西及知識(shí),更美沒(méi)有深入的的去理解,通過(guò)這次我要更加的明確自己。更要注重自己在各方面的鍛煉能力,把握機(jī)會(huì)。這次的設(shè)計(jì)非常的感謝老師們。
單片機(jī)源程序如下:
基于51單片機(jī)籃球計(jì)時(shí)計(jì)分器的設(shè)計(jì).doc
(808.29 KB, 下載次數(shù): 475)
80.79 KB, 下載次數(shù): 224, 下載積分: 黑幣 -5
Jorge 發(fā)表于 2019-5-26 16:18
自己做的一個(gè)較新版的
77.02 KB, 下載次數(shù): 120, 下載積分: 黑幣 -5
Jorge 發(fā)表于 2019-5-26 16:18
自己做的一個(gè)較新版的
aliu925 發(fā)表于 2020-11-16 17:27
大佬,我這個(gè)顯示按鍵那里有錯(cuò),我不知道怎么改
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |