微控制器課程設計報告
設計方案之前,得先分解設計任務。本次的設計任務是籃球記分牌,據常識,籃球記分牌應有分別給兩隊加分,暫停,顯示屏既要顯示時間又要顯示分數。在進行設計之前,應自己提出幾個問題,待問題回答之後。
基本功、的設計方案就出來了。在設計之前我提出了一下幾個問題:
a:硬體部分如何控制給a對b對加分,如何控制時間與分數的顯示?場地交換的時候又是如何實現分數顯示交換的?
應該如何連線硬體,在硬體上設定控制端,控制端與微控制器各引腳之間的連。數碼管用來顯示比分與時間,有共陰和共陽,如何選擇?
b:微控制器只有乙個cpu,如何實現即要掃瞄按鍵,又要顯示比分,顯示時間。數碼管工作的本質是將要顯示的資料的字型碼送給他,如何採集到變化的分數和時間並送給數碼管。用查表嗎?
c:分數時間顯示都應該有對應的數碼管,如何控制數碼管,使時間和分數都顯示在相對應的數碼管上?加分與倒計時在程式中最本質的東西是什麼,如何用程式來說明這樣的事件,各事件之間又是如何聯絡的。
雖然這些問題看似很普通,似乎在設計過程中都要面對這樣的問題,何不事先就解決這些問題呢,在逐一回答這些問題的同時,該任務的設計方案已見雛形。以下就是該方案的詳細內容以及我問題的答案。
系統原理圖如下圖一所示:
圖一 圖中p0.0,p0.1,p0.
2,分別是給a對加分,b對加分,比賽暫停的控制口,通過按鍵檢測高低電平來控制,其具體控制過程見程式。p3.2與p3.
3口是外部中斷,其中斷服務程式的功能是實現比分交換和比分與時間的切換顯示。p2.0至p2.
3口是數碼管工作控制單,電路中選擇共陽極的數碼管,可以省去輸入端的驅動電路,使電路更簡潔。p0口作為字形碼的輸出口,與數碼管的八隻管教相連。
主要元器件有微控制器晶元at89sc51,共陽極數碼管,9012pnp三極體。其中微控制器承載程式,實現電路功能,三極體起開關及驅動數碼管顯示作用。數碼管顯示比分和時間。
程式的總體思路是主程式一直在掃瞄按鍵,倒計時減一,比分顯示,比分交換,時間與比分的切換都在中斷服務程式中完成。其具體內容如下所示。
主程式流程圖
按鍵掃瞄程式
分數顯示程式流程圖
其中時間顯示的子程式流程圖與分數的大同小異,此處就不再一一列出。
程式包含按鍵掃瞄程式,不斷地掃瞄按鍵,一旦有控制中斷的按鍵按下,就執行中斷程式,交換比分,切換時間與比分,並且顯示時間或分數。中斷服務程式,int_0交換a對與b對的總分,int_1改變軟體標誌位就可以切換分數與時間的顯示,同時掃瞄按鍵。時間顯示程式;分數顯示程式,延時程式,用於按鍵消抖。
按鍵掃瞄程式是本程式中最重要的程式段,其連線了所有的子程式,子程式的呼叫都是在其中完成。下面就對該程式段的功能,作用及編寫思路做詳細說明。
按鍵掃瞄程式
l0: jnb f0,l1 ;檢測軟體標誌位,其中軟體標誌位
;p3.2,p3.3決定,即外部中斷。
lcall display_fs ; 顯示分數,並且掃瞄按鍵
l5: ajmp key
l1: lcall display_sj ;中斷時顯示時間
key: jb p1.0,key_1
lcall del12ms
jnb p1.0,$
inc r2 ;完成給a對加分並且顯示
cjne r2,#99,l2
mov r2,#00h
l2:ljmp key_1
key_1:
jb p1.1,key_2
lcall del12ms
jnb p1.1,$
inc r3完成給b對加分
cjne r3,#99,l3
mov r3,#00h
l3:ljmp key_2
key_2:
jb p1.2,key_3
lcall del12ms
jnb p1.2,$
cpl tr1暫停時關閉定時計數器,停止計時
ljmp l0
jb p1.2,key_3若要比賽開始,檢測開始鍵是否按下
lcall del12ms
jnb p1.2,$
setb tr1比賽開始,恢復計時,完成暫停與開始切換,
ljmp key_3
key_3:
ljmp l0
程式初始化
time1 equ 11h ; 儲存時間秒的個位
time2 equ 12h ; 儲存時間秒的十位
time3 equ 13h ; 儲存時間分的個位
time4 equ 14h ; 儲存時間分的十位
times equ 15h ;儲存時間秒
timef equ 16h ;儲存時間分
ascore2 equ 17h ; a隊分數的十位
ascore1 equ 18h ; a隊分數的個位
bscore2 equ 19h ; b隊分數的十位
bscore1 equ 20h ; b隊分數的個位
主程式 org 0000h
ljmp start
org 0003h ;外部中斷0入口位址
ljmp int_0
org 001bh定時器t1中斷入口位址
ljmp int_2
org 0013h ;外部中斷1入口位址
ljmp int_1
org 0100h
start: mov sp,#60h
mov tmod,#10h
mov tl1,#0b0h
mov th1,#3ch基本定時時間為50ms
mov r7,#20
mov time4,#1
mov time3,#1
mov time2,#5
mov time1,#9 ;設開始比賽時間為12分鐘
mov times,#59
mov timef,#11
mov ascore2,#00h
mov ascore1,#00h
mov bscore2,#00h
mov bscore1,#00h ;置比賽開始時a對與b對的比分為00:00
mov r2,#00h
mov r3,#00h暫存比賽分數,初始狀態為零
setb tr1
setb ea
setb et1
setb ex0
setb ex1
setb it0
setb it1
按鍵掃瞄程式
l0: jnb f0,l1
lcall display_fs
l5: ajmp key
l1: lcall display_sj
key: jb p1.0,key_1
lcall del12ms
jnb p1.0,$
inc r2 ;完成給a對加分並且顯示
cjne r2,#99,l2
mov r2,#00h
l2: ljmp key_1
key_1: jb p1.1,key_2
lcall del12ms
jnb p1.1,$
inc r3完成給b對加分
cjne r3,#99,l3
mov r3,#00h
基於微控制器的電梯課程設計
二 一四 二 一五學年第一學期 資訊科學與工程學院 自動化系 課程設計報告書 姓名 余義 學號 201204134019 班級 自動化1201班 課程名稱 微機原理與應用課程設計 指導教師 程磊 1 前言 1 2 現代電梯概述 3 3 硬體部分設計 6 4 軟體部分設計 12 5 電梯執行介面 52...
基於微控制器的電子時鐘課程設計報告
目錄一 引言 二 設計課題 三 系統總體方案 四 系統硬體設計 1.硬體電路原理圖 2.元件清單 五 系統軟體設計 1.軟體流程圖 2.程式清單 六 系統實物圖 7 課程設計體會 八 參考文獻及 九 附錄 一 引言 微控制器因將其主要組成部分整合在乙個晶元上而得名,就是把 處理器 隨機儲存器 唯讀儲...
基於微控制器的電子時鐘設計
ds1302時鐘晶元具有通電自動計時的功能。向ds1302中寫入乙個初值,如寫入2011 05 01 00 00 00 星期日,在通電時,時間就會自動走 過60秒分加1 過60分時加1 過24小時天加1,星期日變成星期一 一周有7天,晶元內的周資訊每7天一迴圈 晶元能夠自動判斷每月有多少天,5月有3...