新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機秒表課程設計

單片機秒表課程設計

作者: 時間:2013-03-12 來源:網絡 收藏

;數碼管顯示秒表時間的程序
GN1: ;先初始化
S1:MOV A,#0
MOV TEMP,A
GOON1: MOV R2,#2
JS1: MOV R3,#250
TIME1: MOV A,TEMP ;將TEMP中的十六進制數轉換成10進制
MOV B,#10 ;10進制/10=10進制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;個位在B

LCALL DPLOP1

;插入一段判斷定時過程中是否有的程序段
C1: JB P3.6,B1
ACALL DELAY10;延時10毫秒消抖
JB P3.6,C1
JNB P3.6,$;等待按鍵松開
CPL F0
ZT1: ; MOV P3,#0FFH;對P3口初始化,設置為高電平,用于
JB P3.6,$;循環(huán)判斷開始按鈕K1是否按下?
ACALL DELAY10;延時10毫秒觸點消抖
JB P3.6,ZT1;如果是干擾就返回
JNB P3.6,$;等待按鍵松開
LCALL DPLOP1

B1: JB P3.7,LOOP1
ACALL DELAY10;延時10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按鍵松開
AJMP OVER

LOOP1: DJNZ R3,TIME1 ;2毫秒循環(huán)執(zhí)行250次,時間約0.5秒
DJNZ R2,JS1 ;循環(huán)執(zhí)行2次,時間為1 秒鐘

INC TEMP;滿一秒鐘對時間加1
MOV A,TEMP
CLR C
SUBB A,#60
JNZ GOON1;判斷TEMP的數值是否為60?不為60循環(huán)
ACALL OVER
RET


GN2: MOV A,#14H ; 設定倒計時的時間20S
MOV TEMP,A

;數碼管顯示倒計時時間的程序
;初始化
MOV P3,#0FFH;對P3口初始化,設置為高電平,用于
MOV P0,#14H;使顯示時間為設定的倒計時時間

GOON2: MOV R2,#2
JS2: MOV R3,#250
TIME2: MOV A,TEMP ;將TEMP中的十六進制數轉換成10進制
MOV B,#10 ;10進制/10=10進制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;個位在B

MOV DPTR,#NUMTAB ;指定查表啟始地址
DPLOP2: MOV A,A_BIT ;取個位數
MOVC A,@A+DPTR ;查個位數的7段代碼
MOV P0,A ;送出個位的7段代碼

CLR P2.5 ;開個位顯示
ACALL DELY1;顯示1毫秒
SETB P2.5;關閉個位顯示,防止鬼影
MOV A,B_BIT ;取十位數
MOVC A,@A+DPTR ;查十位數的7段代碼
MOV P0,A ;送出十位的7段代碼
CLR P2.6 ;開十位顯示
ACALL DELY1;顯示1毫秒
SETB P2.6;關閉十位顯示,防止鬼影

;插入一段判斷定時過程中是否有按鍵輸入的程序段
C2: JB P3.6,B2
ACALL DELAY10;延時10毫秒消抖
JB P3.6,C2
JNB P3.6,$;等待按鍵松開

ZT2: MOV P3,#0FFH;對P3口初始化,設置為高電平,用于按鍵輸入
JB P3.6,$;循環(huán)判斷開始按鈕K1是否按下?
ACALL DELAY10;延時10毫秒觸點消抖
JB P3.6,ZT2;如果是干擾就返回
JNB P3.6,$;等待按鍵松開



評論


相關推薦

技術專區(qū)

關閉