版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 - 27 - 1設(shè)計(shj)背景 單 片 機單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力(nngl)的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。計時器廣泛應(yīng)用于實際生活當中,有倒計時器和計時器,我們本次設(shè)計(shj)為計時器。計時器廣泛應(yīng)用于各種比賽當中用來計時,往往都精確到百分秒的精度,其次也應(yīng)用于計時鬧鐘等。生活中計時器比較常見,而設(shè)計計時器是很具有實際意義的。2 硬件設(shè)計:2.1
2、99秒計時器的總體設(shè)計方案利用單片機的定時器設(shè)計一個秒計時器,其中設(shè)有一個按鍵,當?shù)谝淮伟聪掳存I時,開始計時,第二次按下按鍵時,停止計時,送入P0和P2端口顯示,P0口驅(qū)動顯示秒時間的十位,而P2口驅(qū)動顯示秒時間的個位。第三次按下按鍵時使定時器清零,等待下一次按鍵。本設(shè)計中需要一個時鐘電路,一個復(fù)位電路和一個控制電路來實現(xiàn)整個電路的運行,實現(xiàn)00到99的循環(huán)計時。2.2 99秒計時器的組成及其原理圖秒計時器由以下幾個部件組成:單片機AT89C51、兩個靜態(tài)數(shù)碼顯示、一個按鈕等其它組件。 該電路的工作原理:AT89C51從穩(wěn)壓(wn y)電路中獲得穩(wěn)定的+5V電壓,接到VCC端,提供穩(wěn)定的電壓(
3、diny);P2、P0口通過電阻接到顯示電路的七段數(shù)碼管的a b c d e f g 端口上,利用數(shù)碼管顯示數(shù)字;RST接復(fù)位電路,實現(xiàn)電路的復(fù)位;XTAL1、XTAL2接晶振電路;整個(zhngg)電路實現(xiàn)循環(huán)動態(tài)顯示數(shù)字0099.2.3 AT89C51簡單介紹及引腳說明AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準
4、的MCS-51指令集和輸出管腳相兼容。AT89C51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)(shj)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入
5、口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。本設(shè)計中采用P0口顯示計時器的十位數(shù)字。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收(jishu)輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻(dinz)的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流
6、。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。本設(shè)計中采用P2口顯示計時器的個位數(shù)字。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表
7、所示: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部(wib)輸入) P3.5 T1(記時器1外部(wib)輸入) P3.6 /WR(外部(wib)數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,A
8、LE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-F
9、FFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.4復(fù)位電路(d
10、inl)、時鐘電路及控制電路 復(fù)位(f wi)電路 單片機的復(fù)位(f wi)電路有上電自動復(fù)位和按鍵手動復(fù)位兩種。 上電自動復(fù)位通過電容的放電實現(xiàn)。在時鐘電路工作后,在RST端給出兩個周期的搞點評就可完成復(fù)位操作;上電加按鍵手動復(fù)位的工作方式,當復(fù)位鍵按下時,復(fù)位端通過小電阻與電源接通,電容迅速放電使RST引腳為高電平,當復(fù)位鍵彈起后,電源通過電阻重新給電容充電,使RST端出現(xiàn)復(fù)位正脈沖,實現(xiàn)復(fù)位,本電路采用上電自動復(fù)位 時鐘(shzhng)電路 單片機的時鐘方式有內(nèi)部時鐘方式和外部時鐘方式,本電路采用內(nèi)部時鐘方式。內(nèi)部時鐘電路利用芯片內(nèi)部的振蕩器,在XTAL1和XTAL2兩端(lin dun
11、)跨接晶振,構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時鐘電路。外界晶振時C1、C2都在30pF左右;C1、C2對頻率都有微調(diào)作用,晶振的頻率范圍一般是1.212MHz。為了減小寄生電容(dinrng),更好的保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能的與XTAL1和XTAL2靠近。本設(shè)計時鐘由12MHZ的晶振來組成振蕩電路,來控制單片機對數(shù)碼管的動態(tài)掃描。 按鍵(n jin)電路圖 上圖為本電路的按鍵(控制)電路,第一次按下按鍵,電平由高電平變?yōu)榈碗娖?,計時器從此刻開始計數(shù);第二次按下按鍵時,電平由高電平變?yōu)榈碗娖?,計時器計時暫停,數(shù)碼管顯示(xinsh)暫停時的數(shù)字;第三次按下按
12、鍵時,電平由高電平變?yōu)榈碗娖?,計時器復(fù)位,計時器數(shù)字變?yōu)?0,當按鍵再次按下時重新開始計時。2.5 數(shù)碼管的顯示方法與工作(gngzu)方式顯示方法發(fā)光二極管顯示器一般由若干個發(fā)光數(shù)碼管組成,數(shù)碼管的每一位數(shù)碼段是一支發(fā)光二極管。當發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或一個筆劃發(fā)光,控制發(fā)光二極管發(fā)光組合,可以顯示出所需字符。若一個數(shù)碼管的若干只發(fā)光二極管的陽極連接在一起,通過陰極控制其顯示,則構(gòu)成共陽極結(jié)構(gòu);若將發(fā)光二極管陰極連接在一起,通過陽極控制其顯示,則構(gòu)成共陰極結(jié)構(gòu)。無論是共陰極(ynj)數(shù)碼還是共陽極數(shù)碼,其顯示字形中碼段的定義是一致的。微機進行顯示控制時,一般通過I/O口送出七段碼。顯
13、然即使送出的七段碼相同,若I/O口線與數(shù)碼管引腳連線不同,顯示的字形也不相同。在本設(shè)計中我們組采用了共陰極的顯示方法。工作(gngzu)方式根據(jù)控制(kngzh)原理不同,顯示方式分為靜態(tài)顯示方式和動態(tài)顯示方式。若數(shù)碼管顯示為某一個字符時相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,則該顯示方式為靜態(tài)顯示方式。靜態(tài)顯示方式時所有數(shù)碼管同時點亮,字符顯示期間加在數(shù)碼管上的七段碼不變,即每一個數(shù)碼管對應(yīng)一個8位I/O接口,所以占用的硬件資源較多。動態(tài)顯示則是輪流點亮各數(shù)碼光即對顯示器進行掃描。任何時刻只給一個數(shù)碼管通電,通電一定時間后再給下一個數(shù)碼管通電。只要刷新率足夠高,動態(tài)顯示方式同樣可以實現(xiàn)穩(wěn)定顯示。動
14、態(tài)顯示的最大優(yōu)點是節(jié)約I/O口。靜態(tài)顯示方式簡單不容易出錯,如果電路設(shè)計合適,也能夠用較少的線完成多個數(shù)碼管的顯示。但與動態(tài)顯示相比,動態(tài)顯示電路連接更簡單,節(jié)省單片機I/O口,從而節(jié)省單片機的資源,如今已經(jīng)有很多這樣成熟的基于動態(tài)掃描的芯片,并且采用動態(tài)顯示方式極大的節(jié)省單片機的資源,特別是在單片機的I/O數(shù)量比較緊張的情況下,更能體現(xiàn)采用動態(tài)顯示的優(yōu)越性。因此,在現(xiàn)在的多數(shù)電子系統(tǒng)中,數(shù)碼管多數(shù)采用動態(tài)掃描技術(shù)來顯示,本設(shè)計中我們采用的事動態(tài)顯示方法。2.6仿真電路圖及電路連接 數(shù)碼管顯示圖 系統(tǒng)硬件連接(1 把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0P0.6/AD6端口用8芯排線連接到“四
15、路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個ae端口上;要求:P0.0/AD0對應(yīng)著a,P0.1/AD1對應(yīng)著b,P0.6/AD6對應(yīng)著e。 (2 把“單片機系統(tǒng)(xtng)”區(qū)域(qy)中的P2.0/A8P2.6/A14端口用8芯排線連接(linji)到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個ae端口上;要求:P2.0/A8對應(yīng)著a,P2.1/A9對應(yīng)著b,P2.6/A14對應(yīng)著e。 (3 把“單片機系統(tǒng)“區(qū)域中的P3.7/RD用導(dǎo)線連接到”獨立式鍵盤“區(qū)域中的SP1端口上;(4. 把三極管提供電壓的蜂鳴器連接到按鍵電路上,當按鍵按下時,蜂鳴器響起,提示開始計時、暫停計時或者復(fù)位;(5 將8排阻按照順序
16、連接到數(shù)碼顯示管的電路中通過控制電阻的大小來控制a b c d f e g管的滅或者亮從而控制數(shù)碼管顯示的數(shù)字;(6 連接復(fù)位電路和時鐘電路。2.7利用PROTUES進行仿真電路圖的連接利用工具欄中的PICK 利用關(guān)鍵字尋找所需要的仿真元器件。如圖所示利用(lyng)鼠標將找到的各個元器件連接起來。如下圖所示將KEIL軟件編譯無誤后生成(shn chn)的HEX文件導(dǎo)入到仿真電路圖的AT89C51單片機中,如圖所示最后(zuhu),在所有的步驟無誤后即可進行軟件仿真。利用左下角的按鈕可控制仿真的運行和停止。完成(wn chng)后的仿真電路圖如下(rxi) 3軟件設(shè)計3 .1流程圖 此程序采用
17、匯編語言用十六進制算法編寫了兩位數(shù)碼管循環(huán)掃描動態(tài)顯示的專用程序。通過軟件的控制使兩位數(shù)碼管能從00計數(shù)到99,再回到00,依次進行循環(huán)。若在計數(shù)期間有復(fù)位高電平出現(xiàn)時,便重新從00開始計數(shù)。并有電源開關(guān)控制讓電路是否工作,且有指示燈只是電源是否正常。 主程序流程圖如下(rxi)圖所示中斷(zhngdun)程序流程圖在正常(zhngchng)計時狀態(tài)下,若按下P1.1口按鍵,則進行(jnxng)時鐘 /秒表功能的轉(zhuǎn)換,轉(zhuǎn)換后計時從開始。當按下P1.2口的按鍵時,可實現(xiàn)清0、計時啟動、暫停功能。3.2 程序代碼second equ 30htcount equ 31hkcount equ 32hk
18、ey bit p3.7org 00hsjmp startorg 00hsjmp startorg 0bhljmp int_t0start:mov dptr,#tablemov p2,#3fhMOV P0,#3fh ;開始(kish)顯示器顯示00mov second,#00hmov tcount,#00hmov kcount,#00hmov tmod,#01h ;定時器0工作(gngzu)在方式1mov tl0,#(65536-50000)/256mov th0,#(65536-50000) mod 256k1: jb key,$lcall delayjb key,$ ;等待(dngdi)按鍵
19、mov a,kcountcjne a,#00H,k2 ;判斷按鍵次數(shù)setb TR0 ;第一次按鍵(n jin)啟動定時器mov ie,#82hjnb key,$inc kcount ;抬起按鍵(n jin) 定時器次數(shù)加1ljmp k1k2: cjne a,#01h,k3clr tr0 ;第二次按鍵(n jin)關(guān)閉定時器mov ie,#00hjnb key,$inc kcount ;按鍵抬起按鍵次數(shù)加1ljmp k1k3: cjne a,#02h,k1 ;第三次按鍵返回初始狀態(tài)jnb key,$ljmp startint_t0:mov th0,#(65536-50000)/256mov t
20、l0,#(65536-50000) mod 256 inc tcountmov a,tcountcjne a,#20,i2 ;是否積夠1秒mov tcount,#00hinc secondmov a,secondcjne a,#100,i1mov second,#00hi1:mov a,secondmov b,#10div abmovc a,a+dptr ;顯示(xinsh)時間mov p0,amov a,bmovc a,a+dptrmov p2,ai2: retitable:db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fhdelay:mov r6,#
21、20d1:mov r7,#250 djnz r7,$djnz r6,d1retend3.3利用KEIL軟件進行(jnxng)程序編譯打開keil之后(zhhu)新建工程,選擇ateml,如下圖所示在選擇(xunz)方式為atmel之后,在選擇單片機是選擇AT89C51,選擇情況如下圖所示,選擇為完成后,新建程序并將程序編寫后打入,保存(bocn)為asm格式保存玩之后設(shè)置其他的要求的要求,比如要設(shè)置晶振為12MHz在設(shè)置完成后可利用軟件本身的編譯程序進行編譯,編寫正確就會提示無錯誤無警告;假如程序有問題的話,就會顯示所編寫的程序的錯誤類型及錯誤所在的位置。程序正確后就能把文件轉(zhuǎn)換為hex格式,
22、兵將其輸入到設(shè)計的計時器電路的AT89C51單片機中,將編寫的程序展示出來。將編譯無誤的程序(chngx)導(dǎo)入仿真電路圖中運行運行過程(guchng)中,第一次按下按鍵,計時器開始從00開始計時;第二次按下按鍵,計時器計時暫停,若計時超過99秒,計時器從00開始循環(huán)計時;第三次按下按鍵,計時器復(fù)位00。 計時器復(fù)位(f wi)圖第二次按下按鍵(n jin)計時器顯示當前計數(shù) 第三次按下按鍵(n jin)計時器復(fù)位4結(jié)論(jiln) 使用軟件和編寫程序時一定要注意每一個細節(jié),一個分號的遺漏也會造成錯誤。制作前一定要做好規(guī)劃設(shè)計,反復(fù)論證和計算,防止考慮不到的地方使得做好的東西需要翻工。如果制作或
23、使用中發(fā)現(xiàn)問題,既極大地打擊積極性和自信心,還會極大地消耗時間,拖延項目的進度。制作硬件也一定要耐心細致,極小的失誤都會造成短路等問題而直接造成大錯。這門課的學(xué)習(xí)確實給了我們很多,而且不單單是知識和技能,還有精神層面上的東西。而在項目制作過程中的困難和喜悅,希望和失望,成功和失敗,也都是我們心中永遠的寶貴財富。通過這次單片機課程設(shè)計,我不僅加深了對單片機理論的理解,將理論很好地應(yīng)用到實際當中去,而且我還學(xué)會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進行改進,使之功能不斷完善,成為真己的東西。這個設(shè)計過程中,我們通過在原有的計數(shù)器系統(tǒng)進行了改進,使之增添了暫停、計數(shù)、清零等的三個控制功能,使之成為一個更加適用,功能更加完備的屬于自己的一個系統(tǒng)。設(shè)計結(jié)果能夠符合題意,成功完成了此次實習(xí)要求,我們
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)機械購買補貼合同
- 技術(shù)開發(fā)服務(wù)合同案例
- 企業(yè)培訓(xùn)就業(yè)協(xié)議書編寫技巧
- 2第二章-血液一般檢驗-02-血栓與止血、血型
- 室內(nèi)清潔合作合同格式
- 員工個人合同書范本
- 投資合作協(xié)議范本:2024投資合作協(xié)議范本
- 場地游戲安全協(xié)議書
- 建筑安裝工程用地協(xié)議范本
- 個人結(jié)算賬戶管理文件
- 人工智能時代高等院校教師信息素養(yǎng)提升研究
- 商家聯(lián)盟合作方案
- 廣東省廣州市2021年中考英語真題(含答案)
- 《應(yīng)用統(tǒng)計學(xué)》(第4版)-自測試卷及答案A卷
- 公司法課件(新員工)
- GB/T 10082-2024軌道車重型軌道車
- 山東省青島市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 考古與人類學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年上海市標準房屋租賃合同經(jīng)典版(三篇)
- 新目標藝術(shù)培訓(xùn)中心商業(yè)策劃書(3篇)
- 小學(xué)生防火安全教育課件
評論
0/150
提交評論