電腦編程秒錶
㈠ 如何製作秒錶計時器,時間以秒為單位增加,並用數碼管實時顯示,計數器記到100時,計數停止。要求:有設計
你好,有兩種方法:
1.純硬體的數字電路:使用計數器來對1Hz的時鍾脈沖進行計數,那麼輸出端也是1s增加1次,然後把輸出端直接或間接的與數碼管連接;還需注意數碼管的接線方式是共陰還是共陽,計數器的位數也有要求限制。
2.軟體加硬體:使用單片機編程,利用內部定時器功能,對一個變數進行一定時間增1的動作,然後當此變數等於一個與定時器定時時間相乘等於1s的值的時候,就對對秒變數加1,並編碼後顯示到數碼管。
希望我的回答能幫助到你。
㈡ 用匯編語言編寫一個51單片機程序,實現電子秒錶功能
;================================================================
;功能:本程序實現P0口的對數碼管動態顯示秒錶的分、秒、1/100秒;
; 計時程序由中斷服務程序實現,採用定時計數器T0工作方式1;
; P2口實現對數碼管的片選功能
;================================================================
;==========================初始化================================
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
;========================時間子程序=============================
;輸入:"30H、31H、32H"
;輸出:無
;實現的功能:分、秒、百分之秒的計算。
;===============================================================
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
;========================顯示子程序=============================
;輸入:"A"
;輸出:"P2口"
;實現的功能:顯示秒、分、百分之妙
;===============================================================
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
;========================計運算元程序=============================
;輸入:30H
;輸出:"A和B"
;實現的功能:把33H中的數據十位和個位分離出來
;===============================================================
JISUAN:MOV A,SHUZI ;數據放在A中
MOV B,#10 ;除數放在B中
DIV AB ;商放在A中,余數放在B中
RET
;====================復位中斷服務程序============================
;輸入;無
;輸出: 無
;實現的功能:把30H、31H、32H中的數據清零。
;================================================================
RESET:PUSH ACC
MOV 30H,#00H
MOV 3H,#00H
MOV 32H,#00H
CALL DELAY
POP ACC
RETI
;====================啟停中斷服務程序============================
;輸入;無
;輸出: 無
;實現的功能:關閉定時器
;================================================================
ON_OFF:CPL TR0
CALL DELAY
RETI
;====================定時中斷0服務子程序========================
;輸入:無
;輸出:無
;實現的功能:實現定時20MS,影響標中斷志位C_0
;===============================================================
T0_1:MOV TL0,50H ;設置定時初值
MOV TH0,51H
SETB C_0 ;定時標志位清0
RETI
;========================中斷設置子程序=========================
;輸入:無
;輸出:無
;實現的功能:初始化設置定時器,設置初值,開中斷0、中斷1,定時器0.
;===============================================================
INIT:MOV TMOD,#01H ;定時器0工作方式1
MOV DPTR,#65536-20000
MOV 50H,DPL
MOV 51H,DPH
MOV TL0,50H ;設置定時初值
MOV TH0,51H
MOV IE,#87H ;開定時器中斷0
MOV TCON,#15H
RET
;======================延時程序==================================
;輸入;無
;輸出: 無
;實現的功能:延時一段時間
;================================================================
DELAY:MOV R6,#80
L7:MOV R5,#60
L8:DJNZ R5,$
DJNZ R6,L7
RET
;======================共陽查表數據==============================
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;===========================結束=================================
END
㈢ 匯編語言 秒錶程序設計

ORG00H
AJMPMAIN
ORG03H
AJMPEX0INT
ORG0BH
AJMPT0INT
ORG13H
AJMPEX1INT
ORG0030H
MAIN:
MOVP1,#0
MOVTMOD,#01
MOVTH0,#3CH
MOVTL0,#0B0H
MOVR0,#20
SETBEA
SETBEX0
SETBIT0
SETBEX1
SETBIT1
SETBET0
MAIN1:
MOVP1,A
AJMP MAIN1
EX0INT:
CPLTR0
RETI
EX1INT:
JBTR0,EXRTI
MOVA,#0
EXRTI:
RETI
T0INT:
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZR0,RTI
MOVR0,#20
INCA
CJNEA,#0,RTI
MOVA,#0
RTI:
RETI
