華北水利水電大學
North China University of Water Resources and Electric Power
課程報告
題目秒表系統設計
課程名稱單片機原理與應用設計
學院信息工程學院
專業網絡工程
姓名劉*
學號201517705
完成時間2017.12.22
目錄
0 前言 ------------------------------------------------------------------------------------------------3
1總體方案設計 ----------------------------------------------------------------------------------------------3
2 系統硬件設計 ----------------------------------------------------------------------------------------------4
3 軟件設計 ---------------------------------------------------------------------------------------------6
3.1軟件設計概述 ----------------------------------------------------------------------------------------6
3.2程序流程圖 ----------------------------------------------------------------------------------------------6
3.3程序匯編語言 ---------------------------------------------------------------------------------------7
4系統調試及結果分析 ---------------------------------------------------------------------------------------9
5結論及進一步設想 ---------------------------------------------------------------------------------------10
參考文獻 ----------------------------------------------------------------------------------------------------10
課程設計體會 ---------------------------------------------------------------------------------------------10
附錄1 元件清單 ---------------------------------------------------------------------------------------------11
附錄2 系統電路圖 --------------------------------------------------------------------------------------11
基于單片機的秒表系統設計
摘要:本設計的多功能秒表系統采用AT89C51單片機為中心器件,利用其定時器/計數器定時和記數的原理,結合顯示電路、電源電路、LED數碼管以及鍵盤電路來設計計時器。將軟、硬件有機地結合起來,使得系統能夠實現6位LED顯示,顯示時間為000000~999999秒,每秒自動加1。其中軟件系統采用匯編語言編寫程序,包括顯示程序,加減計數程序,中斷,延時程序等,硬件系統利用PROTEUS強大的功能來實現,簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態。
關鍵字:單片機;多功能秒表;設計
0 前言近年來隨著科技的飛速發展,單片機的應用正在不斷的走向深入,同時帶動著傳統控制檢測日新月異更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面的知識是不夠的,還要根據具體的硬件結構,以及針對具體的應用對象的軟件結合,加以完善。秒表的出現,解決了傳統的由于人為因素造成的誤差和不公平性,本文就是利用AT89C51單片機與數碼管設計一個簡單的秒表系統。
1總體方案設計本系統采用AT89C51單片機為中心器件,利用其定時器/計數器定時和記數的原理,結合硬件電路如電源電路,復位電路,顯示電路等來設計計時器,將軟、硬件有機地結合起來。其中軟件系統采用匯編語言編寫程序,包括顯示程序,加減計數程序,中斷,延時程序等,硬件系統利用proteus強大的功能來實現,簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態。
圖1 系統電路原理
2 系統硬件設計本系統中,硬件電路主要有電源電路,晶振電路,復位電路,顯示電路,以及一些按鍵電路等
(1)單片機簡介
本系統設計采用AT89C51單片機。
AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容(由于在微機原理中學過C-51的具體知識,這里不再詳細說明)。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效的微控制器。
(2)電源電路
電源電路是系統最基本的部分,任何電路都離不開電源部分,由于三端集成穩壓器件所組成的穩壓電源線路簡單,性能穩定,工作可靠,調整方便,已逐漸取代分立元件,在生產中被廣泛采用,由于是小系統,我們采用7809電源提供+5V穩壓電壓。
(3)復位電路
采用上電+按鍵復位電路,上電后,由于電容充電,使RST持續一段高電平時間。當單片機已在運行之中時,按下復位鍵也能使用使RST持續一段時間的高電平,從而實現上電加開關復位的操作。這不僅能使單片機復位,而且還能使
單片機的外圍芯片也同時復位。當程序出現錯誤時,可以隨時使電路復位。

電路圖如下圖2 復位電路
(4)顯示電路
顯示電路既可以選用液晶顯示器,也可以選用數碼管顯示。我們采用的是數碼管顯示電路。用2個共陽極LED顯示,LED是七段式顯示器,內部有7個條形發光二極管和1個小圓點發光二極管組成,根據各管的亮暗組合成字符。
在用數碼管顯示時,我們有靜態和動態兩種選擇,靜態顯示程序簡單,顯示穩定,但是占用端口比較多;動態顯示所使用的端口比較少,可以節省單片機的I/O口。
在設計中,我們采用LED動態顯示,用P0口驅動顯示。由于P0口的輸出級是開漏電路,用它驅動時需要外接上拉電阻才能輸出高電平。

電路圖如下所示:圖3 顯示電路
3 軟件設計3.1軟件設計概述在軟件設計中,一般采用模塊化的程序設計方法,它具有明顯的優點。把一個多功能的復雜的程序劃分為若干個簡單的、功能單一的程序模塊,有利于程序的設計和調試,提高了程序的閱讀性和可靠性,使程序的結構層次一目了然。
各程序模塊都要完成一個明確的任務,實現某個具體的功能,如:加計數、減計數、延時、快加、快減,計數和顯示等,在具體需要時調用相應的模塊即可。
功能描述:用6位LED數碼顯示"秒表",顯示時間為000000-999999秒,每秒自動加1,具有開始、復位按鍵,
3.2程序流程圖(1)主程序:
采用分支結構,通過對按鍵的掃描,判斷要實現什么功能,然后通過調用子程序來實現所需要的功能。
(2)加1程序
圖6 加1程序流程圖
4系統調試及結果分析
用PROTEUS將編譯生成的秒表.HEX 文件下到單片機中,點擊運行按相應的操作鍵即可看到下圖的效果:
圖4 仿真結果
經proteus軟件仿真后,系統運行良好,結果正確。
5結論及進一步設想根據實驗要求,本次課設基本完成了設計要求,由于秒表系統并不一定僅僅局限于計時,定時等功能,還可以進行多項的擴展,可以利用AT89C51強大的擴展功能,進一步豐富秒表的功能,例如可設定計時時間,倒計時等等眾多功能。單片機以其強大的功能和良好的兼容性可以更好的為我們服務,通過查閱各種資料,多了解一些單片機的有關知識,可以為以后的工作和學習生活創造更多的便利條件。
參考文獻[1] 余發山主編.單片機原理及應用技術.徐州:中國礦業大學出版社,2003.
[2] 楊凌霄編著.微型計算機原理及應用.徐州:中國礦業大學出版社,2004.
[3] 李群芳主編.單片機原理、接口及應用.北京:清華大學出版社,2005.
[4] 陳忠平,曹巧媛等,單片機原理及接口.北京:清華大學出版社,2007.
[5] 劉同法,陳忠平等,單片機基礎與最小系統實踐.北京:北京航空航天大學出版社,2007.
[6] 吳金戌,沈慶陽,郭庭吉.8051單片機實踐與應用.北京:清華大學出版社,2002.
[7] 竇振中.單片機外圍器件實用手冊存儲器分冊.北京:北京航空航天大學出版社,1998.
[8] 張靖武,周靈彬.單片機系統的Proteus設計與仿真.北京:電子工業出版社,2007.
[9] 林志琦,郎建軍,李會杰等.基于Proteus的單片機可視化軟硬件仿真.北京:北京航空航天大學出版社,2006.
[10] 李剛民,曹巧媛等.單片機原理及實用技術.北京:高等教育出版社,2005.
課程設計體會經過大約一個星期的課程設計,過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時激情高漲到最后汗水背后的復雜心情,點點滴滴無不令我回味無長。在辛苦的學習后,我順利完成了課程設計。讓我學到了以下幾點:
1、將學習的理論知識通過實驗融會貫通,讓我對它的理解更加深刻。對程序的編譯過程了解透徹。
2、本次課程設計以自己設計為主,因此培養了學習的積極性,讓我能夠獨立去分析問題、發現問題、解決問題,更增強我與老師同學交流溝通和合作完成任務的能力。
3、由于這次課程設計不僅設計編程方面的知識,還涉及了其它學科的知識,例如PROTEUS的基本知識。程序是用匯編語言來編寫的,這次課程設計讓我在編程能力方面得到了提高。
4、由于水平有限,實驗程序運行有一定的限制,以后會加強改進。
總之,通過這次課程設計,不僅加深了我對單片機理論方面的理解,將理論更好的運用的實踐方面,而且鍛煉了我們各方面的能力,培養了堅強的毅力和做事的耐心和細心,認識合作的重要性,雖然程序可能有一定的浪費資源,且較羅嗦,但這需要在實踐中慢慢提高,還希望老師能夠多多指導,促進我不斷的進步。
附錄1 元件清單

附錄2 系統電路圖
單片機源程序如下:
- SHUCHU EQU P2 ;定義P0口為輸出口
- PIANXUAN EQU P1 ;定義P2口為片選口
- MIAO EQU 30H
- FEN EQU 31H
- MIAO0 EQU 32H
- SHUZI EQU 33H
- C_0 BIT 20H.0
- ;======================系統程序開始==============================
- ORG 00H
- LJMP START
- ORG 03H
- LJMP ON_OFF
- ORG 0BH
- LJMP T0_1
- ORG 13H
- LJMP RESET
- ORG 30H
- START:
- CALL INIT
- SETB C_0
- MOV MIAO,#00
- MOV MIAO0,#00
- MOV FEN,#00
- MOV DPTR,#TAB
- MOV R2,#5
- MAIN:
- JNB C_0,$
- CLR C_0
- LL: CALL DISPLAY
- CALL SHIJIAN
- JMP MAIN
- SHIJIAN:
- DJNZ R2,TIAOCHU
- MOV R2,#5
- INC MIAO0
- MOV R3,MIAO0
- CJNE R3,#100,TIAOCHU
- MOV MIAO0,#00
- INC MIAO
- MOV R3,MIAO
- CJNE R3,#60,TIAOCHU
- MOV MIAO,#00
- INC FEN
- MOV R3,FEN
- CJNE R3,#60,TIAOCHU
- MOV FEN,#00
- TIAOCHU:RET
- DISPLAY:MOV SHUZI,MIAO0
- CALL JISUAN
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示十位
- MOV PIANXUAN,#10H ;片選
- CALL DELAY
- MOV PIANXUAN,#00H
- MOV A,B
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示個位
- MOV PIANXUAN,#20H ;片選
- CALL DELAY ;延時
- MOV PIANXUAN,#00H
- MOV SHUZI,MIAO
- CALL JISUAN
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示十位
- MOV PIANXUAN,#04H ;片選
- CALL DELAY
- MOV PIANXUAN,#00H
- MOV A,B
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示個位
- MOV PIANXUAN,#08H ;片選
- CALL DELAY ;延時
- MOV PIANXUAN,#00H
- MOV SHUZI,FEN
- CALL JISUAN
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示十位
- MOV PIANXUAN,#01H ;片選
- CALL DELAY
- MOV PIANXUAN,#00H
- MOV A,B
- MOVC A,@A+DPTR
- MOV SHUCHU,A ;顯示個位
- MOV PIANXUAN,#02H ;片選
- CALL DELAY ;延時
- MOV PIANXUAN,#00H
- RET
- JISUAN:MOV A,SHUZI ;數據放在A中
- MOV B,#10 ;除數放在B中
- DIV AB ;商放在A中,余數放在B中
- RET
- RESET:PUSH ACC
- MOV 30H,#00H
- MOV 3H,#00H
- MOV 32H,#00H
- CALL DELAY
- POP ACC
- RETI
- ON_OFF:CPL TR0
- CALL DELAY
- RETI
- T0_1:MOV TL0,50H ;設置定時初值
- MOV TH0,51H
- SETB C_0 ;定時標志位清0
- RETI
- INIT:MOV TMOD,#01H ;定時器0工作方式1
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載(含仿真文件):