欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
4位7段數碼管秒表,一位小數,用at89c51單片機,匯編語言
[打印本頁]
作者:
木葉草
時間:
2017-5-26 11:28
標題:
4位7段數碼管秒表,一位小數,用at89c51單片機,匯編語言
51單片機匯編語言寫的4位7段數碼管秒表 帶仿真 自己下載查看。
proteus仿真原理圖(仿真工程文件可到附件下載):
0.png
(235.98 KB, 下載次數: 55)
下載附件
2017-5-26 16:35 上傳
0.png
(67.89 KB, 下載次數: 27)
下載附件
2017-5-26 16:35 上傳
單片機源程序如下:
;要求:至少包括4個功能:時間清零;啟動計時;暫定計時;繼續計時;
; 計時最小單位0.1 秒,最大計時時間999.9秒,
; 用數碼管顯示時間,同時要求按下任何一個功能鍵必須有聲音提示。
;
;使用方法: 設有啟動鍵K1和暫停/清零鍵K2。按k1啟動計時,按k2則暫停計時,再按k2則清零。
;常數設置
TLOW EQU 78H
THIGH EQU 0ECH
LED_WEI_Pro EQU 0f0H;數碼管位選 保護位
;寄存器設置
COUN_INT EQU 21H ;5ms * 20 = 100ms = 0.1S
COUN_PASSNUM EQU 22H ;
COUN_TIME_L EQU 23H ;時間累加 低位 100MS加1
COUN_TIME_H EQU 24H ;時間累加 高位
COUN_WEI EQU 3CH ;顯示位
DISP_BUF EQU 50H
;端口配置
LED_WEI EQU P2 ;數碼管位選
LED_DAT EQU P0 ;數碼管數據
BEEP_PIN EQU P3.7 ;蜂鳴器
KEY_START EQU P3.0 ;啟動
KEY_STOP EQU P3.1 ;停止/歸零鍵
;標志位配置
FLAG_TIMING EQU 20H.1 ;20H.1 為計時狀態標記
FLAG_GO EQU 20H.2 ;20H.2 為使能標記
BEEP_EN EQU 20H.3 ;蜂鳴器響使能
;--------------------------------------------------
ORG 0000H
JMP MAIN
ORG 0BH
JMP T0_INT
;--------------------------------------------------
MAIN:
MOV SP,#60H
MOV A,#00H
MOV COUN_WEI,A
MOV COUN_PASSNUM,A;
MOV COUN_TIME_L,A
MOV COUN_TIME_H,A
CLR C
CLR FLAG_GO
CLR FLAG_TIMING;剛開機為非計時狀態
SETB BEEP_EN;開機響一聲
CALL INIT_TIMER
SETB TR0
LOOP:
CALL BEEP
K1:
JB KEY_START,K2;啟動
NOP
JNB KEY_START,[ DISCUZ_CODE_1 ]nbsp;
SETB BEEP_EN;蜂鳴器響
JB FLAG_GO,LOOP
SETB FLAG_GO
SETB FLAG_TIMING
JMP LOOP
K2:
JB KEY_STOP,LOOP;暫停、歸零鍵
NOP
JNB KEY_STOP,$
SETB BEEP_EN;蜂鳴器響
JB FLAG_TIMING,STOP;計時中按此鍵則暫停計時,暫停時按此鍵則歸零
RESET_TIME:;歸零
CLR FLAG_GO
CLR FLAG_TIMING
MOV COUN_TIME_L,#00H
MOV COUN_TIME_H,#00H
CALL DISP_TRANSDAT
JMP LOOP
STOP:;暫停
CLR FLAG_GO
CLR FLAG_TIMING;暫停計時
JMP LOOP
;;;-------------------------
;;-------------------------
;;顯示子程序
;;使用寄存器組:第2組寄存器
;;出口:
;;入口:
;;--------------------------
DISPLAY:
PUSH ACC
PUSH PSW
CLR PSW.3 ;RS1、RS0(PSW.4、PSW.3): 1 0
SETB PSW.4
; MOV DISP_BUF,#1H ;test
; MOV DISP_BUF+1,#2H
; MOV DISP_BUF+2,#3H
; MOV DISP_BUF+3,#4H
MOV A,COUN_WEI
CJNE A,#0,CJMP1
JMP DISP_WEI1
CJMP1:
CJNE A,#1,CJMP2
JMP DISP_WEI2
CJMP2:
CJNE A,#2,CJMP3
JMP DISP_WEI3
CJMP3:
CJNE A,#3,CJMP4
JMP DISP_WEI4
CJMP4:
MOV COUN_WEI,#0
DISP_WEI1:
MOV A,LED_WEI;P3
ANL A,#LED_WEI_Pro
ORL A,#01H
; CPL A
MOV LED_WEI,A
JMP DISP_WEI_END
DISP_WEI2:
MOV A,LED_WEI
ANL A,#LED_WEI_Pro
ORL A,#02H
; CPL A
MOV LED_WEI,A
JMP DISP_WEI_END
DISP_WEI3:
MOV A,LED_WEI
ANL A,#LED_WEI_Pro
ORL A,#04H
; CPL A
MOV LED_WEI,A
JMP DISP_WEI_END
DISP_WEI4:
MOV A,LED_WEI
ANL A,#LED_WEI_Pro
ORL A,#08H
; CPL A
MOV LED_WEI,A
DISP_WEI_END:
MOV R0,#DISP_BUF
MOV A,COUN_WEI
ADD A,R0
MOV R0,A
MOV A,@R0
MOV DPTR,#LED_TAB
MOVC A,@A+DPTR
MOV B,A
MOV A,COUN_WEI
CJNE A,#2,DISP_WEI_NODOT;增加小數點
MOV A,B
ANL A,#7FH
MOV B,A
DISP_WEI_NODOT:
MOV A,B
MOV LED_DAT,A
INC COUN_WEI
POP PSW
POP ACC
RET
LED_TAB:;共陽數碼管表
DB 0C0H ;"0"
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82H ;"6"
DB 0F8H ;"7"
DB 80H ;"8"
DB 90H ;"9"
DB 88H ;"A"
DB 83H ;"B"
DB 0C6H ;"C"
DB 0A1H ;"D"
DB 86H ;"E"
DB 8EH ;"F";15
;;-------------------------
;;-------------------------
DELAY2:
MOV R5,#2H
DELAY: ;延時R5×10MS
MOV R6,#50
D1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,DELAY
RET
;;-------------------------
DELAY1: ;延時5MS
MOV R6,#25
D2:
MOV R7,#100
DJNZ R7,$
DJNZ R6,D2
RET
BEEP:
JNB BEEP_EN,NOT_BEEP
CLR BEEP_EN
CLR BEEP_PIN ;低電平有效
CALL DELAY1 ;延時
;NOT_BEEP:
SETB BEEP_PIN
NOT_BEEP:
RET
;;-------------------------
INIT_TIMER: ;初始化定時器
MOV TMOD,#01H ;設置定時器0 工作模式為模式1
MOV IE, #82H ;啟用定時器0 中斷產生
MOV TL0,#TLOW
MOV TH0,#THIGH
RET
;;-------------------------
T0_INT:
PUSH ACC
PUSH PSW
MOV TL0,#TLOW
MOV TH0,#THIGH
CALL DISPLAY
JNB FLAG_TIMING,T0_EXIT
CLR C
INC COUN_INT
MOV A,COUN_INT
CJNE A,#20,T0_EXIT
MOV COUN_INT,#0
MOV A,COUN_TIME_L
ADDC A,#1
DA A
MOV COUN_TIME_L,A
JNC TIME_ADD_END
MOV A,COUN_TIME_H
ADDC A,#0
DA A
MOV COUN_TIME_H,A
TIME_ADD_END:
MOV A,COUN_TIME_H
CJNE A,#99H,TIME_ADD_T
MOV A,COUN_TIME_L
CJNE A,#99H,TIME_ADD_T
CLR FLAG_TIMING;達到最大值999,則停止
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
LED數碼管_4位秒表.zip
(128.91 KB, 下載次數: 94)
2017-5-26 11:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
斷腸草
時間:
2017-11-11 14:11
你好,請問一下,AT89C51的晶振頻率是12MHz,那么
MOV TL0,#TLOW(78H)
MOV TH0,#THIGH(0ECH)
是怎樣求得的呢?初學者感到十分迷茫,麻煩解釋一下,謝謝
作者:
475124143
時間:
2018-1-18 13:59
不錯不錯不錯
作者:
lmylalala
時間:
2018-11-8 17:36
樓主優秀
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1