單片機秒表課程設計
;***********************************************************
; 暫停鍵K3,快加鍵K4程序
;***********************************************************
here:jb p1.0,here
show:clr tr1
clr tr0
acall xianshi
kuaijia:jb p1.2,kuaijia ;等待P1.2為0 快加
clr tr0
setb tr1
here3:jnb p1.2,here3
ajmp here
;***********************************************************
; 外部中斷INT0子程序-----計時(shí)按鍵K1子程序
;***********************************************************
zhongduan0: setb tr0 ;計時(shí)按鍵
reti
;***********************************************************
; 外部中斷INT1子程序----復位按鍵K2子程序
;***********************************************************
zhongduan1:clr tr0 ;復位按鍵
clr tr1
mov 12h,#00h
mov 11h,#00h
acall xianshi ;調用顯示子程序
mov r1,#00h
mov r2,#00h
reti
;***********************************************************
; 加一子程序
;***********************************************************
jia1: inc r1 ;加1子程序
cjne r1,#0ah ,loop ;判斷是否到表尾
mov r1,#00h
inc r2
cjne r2,#0ah,loop
mov r2,#00h
loop: mov 12h,r1 ;重新賦值
mov 11h,r2
ret
;***********************************************************
; 顯示子程序
;***********************************************************
xianshi:mov r7,#02h ;2個(gè)數碼管顯示子程序
mov r0,#12h
loop5: mov r6,#08h ;8位2進(jìn)制數
mov a,@r0
movc a,@a+dptr
loop6:rlc a ;循環(huán)左移
clr p3.1
mov p3.0,c
setb p3.1
djnz r6,loop6
dec r0
djnz r7,loop5
ret
;***********************************************************
; 定時(shí)器T0子程序
;***********************************************************
yanshi: mov tl0,#2Ch ;定時(shí)子程序
mov th0,#0CFh
djnz r3,loop7
acall jia1 ;調用加1子程序
acall xianshi ;調用顯示子程序
mov r3,#40
loop7: reti
;***********************************************************
;定時(shí)器T1子程序
;***********************************************************
dingshi1:mov tl1,#78h ;置初值,定時(shí)10MS
mov th1,#0ech
clr tr0
setb tr1
mov 12h,r1
mov 11h,r2
jnb p1.0,show
acall jia1
acall xianshi
lop7:reti
;***********************************************************
tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
十一、課程設計心得體會(huì )
1、 認真審題,看懂題目的要求!選擇適當的課題,不益太簡(jiǎn)單或者太難。做到既能把課題完成又能鍛煉自己的能力!
2、 根據課題要求,復習相關(guān)的知識,查詢(xún)相關(guān)的資料。
3、 根據實(shí)驗條件,找到適合的方案,找到需要的元器件及工具,準備實(shí)驗。
4、 根據課程設計的要求和自己所要增加的功能寫(xiě)好程序流程圖,在程序流程圖的基礎上,根據芯片的功能寫(xiě)出相應的程序。然后再進(jìn)行程序調試和相應的修改,以達到能夠實(shí)現所要求的功能的目的。
5、 還要根據實(shí)驗的實(shí)際情況,添加些額外程序來(lái)使系統更加的穩定,如開(kāi)關(guān)的消震蕩(采用延遲)。
6、 程序要盡量做到由各個(gè)子程序組成,在有些程序后面最好加注釋?zhuān)@樣在程序出錯的檢查過(guò)程中可以更容易查找的到,也更簡(jiǎn)潔,更明白易懂。
7、 該實(shí)驗的程序可以參考DVCC系列單片機微機仿真實(shí)驗系統實(shí)驗指導書(shū)中的串并轉換實(shí)驗,也可自己根據自己熟悉的方法來(lái)編程。
8、 在設計控制開(kāi)關(guān)時(shí),注意2個(gè)中斷的打開(kāi)和關(guān)閉的先后順序,否則就會(huì )出錯。
9、 這次的單片機課程設計重點(diǎn)是理論與實(shí)際的相結合。不再只讀書(shū)了。
10、 該設計從頭到尾都要自己參與,熟悉了對整個(gè)設計的過(guò)程,更系統的鍛煉了自己。
此設計完畢??!
-------------------------------------------------------
下面提供一個(gè)程序(供參考的)
;開(kāi)機初始化
MOV P3,#0FFH;對P3口初始化,設置為高電平,用于按鍵輸入
MOV P0,#0FFH;使顯示時(shí)間數碼管熄滅
CLR F0
CLR F1
MOV DPTR,#NUMTAB ;指定查表啟始地址
;等待按鍵輸入
;根據按鍵的輸入判斷執行什么功能
;按鍵1按下則執行功能1
MOV P3,#0FFH;對P3口初始化,設置為高電平,用于按鍵輸入
MOV P0,#0FFH;使顯示時(shí)間數碼管熄滅
START:JB P3.6,START1;循環(huán)判斷開(kāi)始按鈕K1是否按下?
ACALL DELAY10;延時(shí)10毫秒觸點(diǎn)消抖
JB P3.6,START;如果是干擾就返回
JNB P3.6,$;等待按鍵松開(kāi)
LJMP GN1
;按鍵2按下則執行功能2
START1: JB P3.7,START;循環(huán)判斷開(kāi)始按鈕K2是否按下?
ACALL DELAY10;延時(shí)10毫秒觸點(diǎn)消抖
JB P3.7,START1;如果是干擾就返回
JNB P3.7,$
LJMP GN2
評論