簡易秒表的制作_第1頁
簡易秒表的制作_第2頁
簡易秒表的制作_第3頁
簡易秒表的制作_第4頁
簡易秒表的制作_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課 題 設(shè) 計 論 文課題名稱: 簡易秒表的制作 班級: 姓名: 學號:指導教師: 二o一三 年 一月 三 日 摘要基于8051的簡易秒表的制作,此電路主要是由三個部分組成:8051的最小系統(tǒng)、鍵盤、顯示器,利用單片機的定時器中斷實現(xiàn)分、秒定時,利用動態(tài)掃描的方式使得四位數(shù)碼管用于顯示秒、分的個位和十位,電路中有四個按鍵:ke0是啟動按鍵,ke1是暫停按鍵,ke2是清0按鍵,ke3是復位按鍵;ke0、ke1、ke2這三個按鍵是采用以中斷方式實現(xiàn)鍵盤的掃描,按下ke0電路開始計時,按下ke1電路計時停止并顯示電路的計時時間,按下ke2數(shù)碼管顯示00分00秒。關(guān)鍵詞:8051芯片 數(shù)碼管 復位電

2、路 目錄第一章 設(shè)計方案41.1 要求41.2 方法51.4 軟件設(shè)計51.5 程序編制61.6 資源分配表6第二章 8051芯片介紹72.1 8051單片機的簡介72.2 8051單片機的引腳及其功能82.3 外接晶體引腳92.4 復位 rst 992.5輸入輸出引腳10第三章 硬件線路設(shè)計圖11第四章 程序流程圖12第五章 系統(tǒng)軟件編程15總結(jié)18參考文獻19第一章 設(shè)計方案1.1 要求用8051單片機,采用動態(tài)掃描的方式,用4位led數(shù)碼管顯示秒、分值。晶振采用6mhz。具體要求如下:(1) 從右往左顯示秒值的個位、十位,分值的個位、十位,個位能向十位進位;(2) 上電后首先顯示00 0

3、0 ,表示從00 00 秒開始計時,當時間顯示到59 59時,4位顯示都清零,從零開始。(3) 以三個獨立式按鍵實現(xiàn)復位、啟動、停止。 1.2 方法用中斷的編程思路使用定時器t0,定時器工作在定時方式,顯示時間的刷新由定時器的中斷產(chǎn)生,定時器每50ms溢出中斷一次,當中斷20次后,對時間單元(秒單元、分單元)進行更新,然后通過拆字子程序?qū)r間單元里面的十六進制數(shù)拆開為兩個bcd碼,并送到顯示緩沖區(qū)。返回主程序后顯示緩沖區(qū)的待顯示數(shù)據(jù)被刷新一次,數(shù)碼管相應(yīng)的顯示數(shù)值也隨之發(fā)生變化;通過鍵盤掃描方式取得ke0、ke1、ke2的鍵值,用鍵盤的中斷處理程序?qū)崿F(xiàn)秒表的啟動、停止、清0等功能。1.3 試驗

4、線路分析4位led顯示的位碼由單片機的p2口輸出,段碼由p0口輸出,p2口線與led之間接有510歐限流電阻;led為共陽極數(shù)碼管,顯示方式為動態(tài)顯示方式;3個按鍵可以采用獨立式鍵盤,其中兩個按鍵分別連接到外部中斷int0、int1,第3個按鍵連接到定時器1的t1端口,以中斷方式實現(xiàn)鍵盤的掃描。動態(tài)顯示程序中,在單片機內(nèi)部ram中設(shè)置待顯示數(shù)據(jù)緩沖區(qū),由查表程序完成顯示譯碼,將緩沖區(qū)內(nèi)待顯示數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的段碼,再將段碼通過8051的p0口輸出;位碼數(shù)據(jù)由累加器循環(huán)左移指令產(chǎn)生,再通過p2口輸出。1.4 軟件設(shè)計整體程序主要分為3個部分:主程序、顯示子程序和定時器中斷程序。主程序主要是初始化部

5、分和不斷調(diào)用動態(tài)顯示子程序部分。動態(tài)顯示子程序完成四位led的輪流位掃描,它被主程序不斷調(diào)用,以保證穩(wěn)定可靠的顯示。顯示時間的刷新由定時器中斷產(chǎn)生,定時器每50ms中斷一次,當中斷20次后(即1s后),對時間單元(秒計數(shù)單元、分計數(shù)單元)進行更新,然后通過拆字子程序?qū)r間單元里面的十六進制數(shù)拆開為兩個bcd碼,并送到顯示緩沖區(qū)。返回主程序后顯示緩沖區(qū)的待顯示數(shù)據(jù)被刷新一次,數(shù)碼管相應(yīng)的顯示數(shù)值也就隨之發(fā)生變化。1.5 程序編制編程時置ke0健為“啟動”,置ke1鍵為“停止”,置ke2鍵為“清0”,因按鍵較少,所以采用獨立式按鍵即可滿足條件,其中兩個按鍵分別連接到外部接口int0、int1,另外

6、一個連接到外部引腳t1,編程時置t1為8位計數(shù)方式,初始值設(shè)定為0ffh.程序中,int0、int1和t1均允許中斷,故按鍵的處理通過各相應(yīng)中斷子程序來完成。4位led顯示的數(shù)據(jù)由顯示緩沖區(qū)30h33h單元中的數(shù)據(jù)決定,順序是從右至左。動態(tài)顯示時,每位顯示持續(xù)時間為1ms,1ms延時由軟件實現(xiàn),4位顯示約耗時4ms。1秒定時采用定時器t0方式1中斷,每50ms中斷一次,用20h(mcec)作50ms計數(shù)單元,每20次為一個循環(huán)體,計滿20次,秒計數(shù)單元21h(sec)加1。21h、22h單元的數(shù)據(jù)均采用十六進制計數(shù),該數(shù)據(jù)被拆成個位和十位兩個數(shù)據(jù)后分別送至顯示緩沖區(qū)的30h、31h、32h、3

7、3單元。1.6 資源分配表表 1-1資源分配表名稱地址分配用 途初始化值msec20h定時器50ms計數(shù)單元14hsec21h秒計數(shù)單元00hmin22h分計數(shù)單元00h30h33h顯示緩沖區(qū)00h30h:秒的個位31h:秒的十位32h:分的個位33h:分的十位40h以上堆棧區(qū) 第二章 8051芯片介紹2.1 8051單片機的簡介單片機是70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是cpu、ram、rom、i/o接口和中斷系統(tǒng)。80年代以來,單片機發(fā)展迅速,各類新產(chǎn)品不斷涌現(xiàn),出現(xiàn)了許多高性能新型機種,現(xiàn)已逐漸成為工廠自動化和各控制領(lǐng)域的支柱產(chǎn)業(yè)之一。8051單片機內(nèi)部包含了作為微型計算機所

8、必需的基本功能部件,各功能部件相互獨立地集成在同一塊芯片上。 (1)cpu結(jié)構(gòu):8051內(nèi)部cpu是一個字長為二進制8位的中央處理單元,也就是他對數(shù)據(jù)的處理是按字節(jié)為單位進行的。8051內(nèi)部cpu也是由運算器、控制器和專用寄存器組三部分電路組成。 (2)存儲器結(jié)構(gòu) (3)io端口io端口又稱為io接口,也叫做io通道或者io通路。有串行和并行之分,串行io端口每次只能傳送一位二進制信息,并行io端口一次可以傳送一組二進制信息。8051有四個并行io端口,分別命名為p0、p1、p2、p3,在這個并行io端口中,每個端口都有雙向io功能。 2.2 8051單片機的引腳及其功能8051有40條引腳,

9、共分為端口線、電源線和控制線三類。1. 端口線(4×8) 1 p0.0p0.7 p0口位雙向口線(在引腳的3932號端子)。 2 p1.0p1.7 p1口8位雙向口線(在引腳的18號端子)。 3 p2.0p2.7 p2口8位雙向口線(在引腳的2128號端子)。 4 p3.0p3.7 p3口8位雙向口線(在引腳的1017號端子)。這4個i/o口具有不完全相同的功能p0口有三個功能1、外部擴展存儲器時,當做數(shù)據(jù)總線(d0d7為數(shù)據(jù)總線接口)2、外部擴展存儲器時,當作地址總線(a0a7為地址總線接口)3、不擴展時,可做一般的i/o使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。

10、p1口只做i/o口使用,其內(nèi)部有上拉電阻。p2口有兩個功能1、擴展外部存儲器時,當作地址總線使用2、做一般i/o口使用,其內(nèi)部有上拉電阻;p3口有兩個功能除了作為i/o使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置, 上拉電阻當作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果p0口如果作為輸入時,處在高阻抗狀態(tài),只有外接一個上拉電阻才能有效。2.電源:vcc - 芯片電源,接+5v;vss為接地線。 控制線:控制線共有4根, ale/prog:地址鎖存允許/片內(nèi)eprom編程脈沖 ale功能:用來鎖存p0口送出的低8位地址 prog功能:片內(nèi)有epro

11、m的芯片,在eprom編程期間,此引腳輸入 編程脈沖。 psen:外rom讀選通信號。 rst/vpd:復位/備用電源。 rst(reset)功能:復位信號輸入端。 vpd功能:在vcc掉電情況下,接備用電源。 ea/vpp:內(nèi)外rom選擇/片內(nèi)eprom編程電源。 ea功能:內(nèi)外rom選擇端。 vpp功能:片內(nèi)有eprom的芯片,在eprom編程期間,施加編程電源vpp。 2.3 外接晶體引腳 圖 1-2外接晶體引腳xtal1 19 xtal2 18 xtal1是片內(nèi)振蕩器的反相放大器輸入端,xtal2則是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到xtal1,而xtal2懸空。內(nèi)部方式

12、時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12mhz,時鐘頻率就為6mhz。晶振的頻率可以在1mhz-24mhz內(nèi)選擇。電容取30pf左右。型號同樣為at89c51的芯片,在其后面還有頻率編號,有12,16,20,24mhz可選。大家在購買和選用時要注意了。如at89c51 24pc就是最高振蕩頻率為24mhz,40p6封裝的普通商用芯片。2.4 復位 rst 9在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環(huán)復位。復位后p0p3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器sfr全部清零。當復位腳由高電平變?yōu)?/p>

13、低電平時,芯片為rom的00h處開始運行程序。常用的復位電路如圖所示。復位操作不會對內(nèi)部ram有所影響。圖 1-3 常用復位電路2.5 輸入輸出引腳(1) p0端口p0.0-p0.7 p0是一個8位漏極開路型雙向i/o端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個ttl。對內(nèi)部flash程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電阻。在訪問外部程序和外部數(shù)據(jù)存儲器時,p0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。(2) p1端口p1.0p1.7 p1是一個帶有內(nèi)部上拉電阻的8位雙向i/0端口。輸出時可驅(qū)動4個ttl。端

14、口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時,接收低8位地址信息。(3) p2端口p2.0p2.7 p2是一個帶有內(nèi)部上拉電阻的8位雙向i/0端口。輸出時可驅(qū)動4個ttl。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,p2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。(4) p3端口p3.0p3.7 p2是一個帶有內(nèi)部上拉電阻的8位雙向i/0端口。輸出時可驅(qū)動4個ttl。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作

15、輸入用。對內(nèi)部flash程序存儲器編程時,接控制信息。除此之外p3端口還用于一些專門功能,具體請看表22.。p13端口在做輸入使用時,因內(nèi)部有上接電阻,被外部拉低的引腳會輸出一定的電流。p3引腳兼用功能p3.0串行通訊輸入(rxd)p3.1串行通訊輸出(txd)p3.2外部中斷0(int0)p3.3外部中斷1(int1)p3.4定時器0輸入(t0)p3.5定時器1輸入(t1)p3.6外部數(shù)據(jù)存儲器寫選通wrp3.7外部數(shù)據(jù)存儲器寫選通rd 表1-4端口引腳兼用功能表第三章 硬件線路設(shè)計圖 簡易秒表電路連接圖第四章 程序流程圖開始定時器中斷初始化秒單元初始化顯示緩沖區(qū)初始化子程序入口保護現(xiàn)場顯示

16、初始化查表取字型碼段碼送p0口位碼送p3口延時顯示位碼右移顯示緩沖區(qū)下一位四位顯示完?保護現(xiàn)場返回啟動定時器調(diào)用顯示子程序 定時器中斷子程序(如下圖)1s到嗎?調(diào)用拆字子程序60分到嗎?恢復現(xiàn)場調(diào)用拆字子程序調(diào)用拆字子程序置定時器初始值保護現(xiàn)場中斷入口調(diào)用拆字子程序60s到嗎?秒清0調(diào)用拆字子程序分單元加1調(diào)用拆字子程序分單元清0返回置50ms計數(shù)初始值秒加1 第五章 系統(tǒng)軟件編程 msec equ 20h ;50ms計數(shù)單元 sec equ 21h ;秒 min equ 22h ;分 org 0000h ajmp main org 0003h ajmp ke1 ;暫停 org 000bh a

17、jmp cont ;定時 org 0013h ajmp ke0 ;啟動 org 001bh ajmp ke2 ;清0 ;-主程序- ;-初始化- main: mov tmod,#61h ;0110 0001 t1計數(shù),t0定時 mov th0,#9eh ;t0初值 mov tl0,#58h mov th1,#0ffh ;t1初值 mov tl1,#0ffh mov sec,#00h ;60s計數(shù)初值 mov msec,#14h ;50ms初值 mov sp,#3fh ;堆棧初值 mov 30h,#00h ;緩沖區(qū)清0 mov 31h,#00h mov 32h,#00h mov 33h,#00h

18、 mov ie,#8fh ;打開中斷 setb tr1 ; t1 clr a ;清0;-顯示程序-disp: mov r2,#04h ;數(shù)碼管位數(shù)送r2 mov r1,#00h ;顯示時間 mov r4,#01h ;最右端數(shù)碼管 mov r0,#30h ;緩沖區(qū) mov a,r0 ;秒給adisp1: mov dptr,#tab ;字形表 movc a,a+dptr ;取字形碼 mov p0,a mov a,r4 ;位選 mov p2,a ;送p2 djnz r1,$ ;延時1ms rl a ;左移 mov r4,a inc r0 mov a,r0 djnz r2,disp1 ;未掃描完,循環(huán)

19、 sjmp disptab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;共陽極;-按鍵0中斷-ke0: setb tr0 ;開始計時 reti;-按鍵1中斷-ke1: clr tr0 ;暫停 reti;-按鍵2中斷- ke2: mov sec,#00h ;秒清0 mov mai,#00h mov 30h,#00h mov 31h,#00h mov 32h,#00h mov 33h,#00h;-定時器0中斷-cont: push acc ;保護現(xiàn)場 mov th0,#9eh mov tl0,#58h djnz msec,rn ;判斷20次

20、mov msec,#14h ;1s到,重裝值 inc sec ;秒 mov a,sec mov r1,#31h lcall binbcd ;拆字子程序 mov a,sec cjne a,#60, rn mov a,#00 mov sec,a mov a,min ;分 inc a mov min,a mov r1,#33h lcall binbcd mov a,min cjne a,#60, rn mov a,#00h mov min,a mov r1,#33h lcall binbcd rn: pop acc ;恢復現(xiàn)場 reti binbcd:mov b,#10 div ab mov r1,a ;十位給緩沖區(qū) dec r1 mov a,b ;個位給a mov r1,a ret end 總結(jié) 在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,其中比較重要的一點是:學的不扎實,對于一些指令不熟悉,需要查找,這就要求我在以后的學習中,應(yīng)該注意到這一點,更重要的是我們要學會把從書本中學到的知識和實際的電路聯(lián)系起來,我相信,通過這次的課程設(shè)計,在下一階段的學習中我會更加努力,力

溫馨提示

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

評論

0/150

提交評論