剛剛咱們講了電子秒表用的是C語言,接下來咱們再講一講用匯編。
硬件設計
(末尾附文件)
電路圖1:
數(shù)碼管顯示;時間清零;啟動計時;暫定計時;繼續(xù)計時;
電路圖2
程序設計
TLOW EQU 78H
THIGH EQU 0ECH
LED_WEI_Pro EQU 0f0H;數(shù)碼管位選 保護位
;寄存器設置
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 ;數(shù)碼管位選
LED_DAT EQU P0 ;數(shù)碼管數(shù)據(jù)
BEEP_PIN EQU P3.7 ;蜂鳴器
KEY_START EQU P3.0 ;啟動
KEY_STOP EQU P3.1 ;停止/歸零鍵
;標志位配置
FLAG_TIMING EQU 20H.1 ;20H.1 為計時狀態(tài)標記
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;剛開機為非計時狀態(tài)
SETB BEEP_EN;開機響一聲
CALL INIT_TIMER
SETB TR0
LOOP:
CALL BEEP
K1:
JB KEY_START,K2;啟動
NOP
JNB KEY_START,$
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;增加小數(shù)點
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:;共陽數(shù)碼管表
DB 0C0H ;"0"
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82H ;"6"
DB 0F8H ;"7"
文件僅供參考:
鏈接:https://pan.baidu.com/s/12Yc0D2vZqSAloPW4UgGGig
提取碼:ih55
上一篇:51單片機60秒倒計時 數(shù)碼管顯示
下一篇:最后一頁
推薦閱讀
史海拾趣
設計資源 培訓 開發(fā)板 精華推薦
- 孚能科技全固態(tài)電池中試線年底建成,能量密度超400Wh/kg
- 比亞迪新專利:電池尺寸不變,續(xù)航大幅提升
- 豐田子公司37億大連建廠首次在中國生產(chǎn)純電汽車電池
- 博泰車聯(lián)網(wǎng)沖刺港股:上海灘走出的汽車智能化隱形冠軍
- 從自動駕駛到具身智能,激光雷達緣何一邊被嫌棄,一邊被追捧?
- 軟件定義車輛改變汽車行業(yè)的3種方式
- 混合動力汽車也是超級跑車:強調(diào)性能,而不是里程
- 人形機器人風口下,六維力傳感器成為國產(chǎn)廠商“卡位”關(guān)鍵點
- AURIX? TC4x虛擬化技術(shù)詳解
- 從荔枝的“鮮和煎”,看英特爾銳炫Pro B60的AI空間折疊魔術(shù)
- 【已結(jié)束】R&S 直播【PCI Express Gen 3 一致性測試(含demo演示)】
- 你評論,我送禮!《玩轉(zhuǎn)TI MSP430 Launchpad》TI社區(qū)與EEWORLD聯(lián)合首發(fā)!
- Nexperia有獎直播|電動汽車中車規(guī)功率MOSFET和氮化鎵器件的介紹及應用
- TE Connectivity 小有乾坤蘊藏無限可能
- 【EE團】搶先體驗 ST最新STM32F0308-DISCOVERY開發(fā)工具!
- 新年測評活動!ST NUCLEO-H743ZI“佩奇”待測,快來申請年后第一波測評!
- 第三代半導體如何測試 進階技能備好了!收集能量抽好禮!
- Wi-Fi智能戰(zhàn)隊征集令,Open1081免費試用進行中...
- 恩智浦開發(fā)板交流火熱進行中
- 特斯拉上海工廠預計最早11月投產(chǎn),2024產(chǎn)達到能巔峰
- 外資、新勢力入局,動力電池市場競爭格局將發(fā)生改變
- ABB將為新加坡電動巴士提供充電基礎(chǔ)設施
- 小鵬汽車拿出新的補救措施,未提車用戶直接換新款
- Arm Pelion物聯(lián)網(wǎng)平臺落地,率先選擇了中國聯(lián)通
- STM32 HAL I2C庫讀指定寄存器的數(shù)據(jù)
- STM32CUBE HAL庫 關(guān)于串口usart收發(fā)的一個問題
- STM32_HAL庫入門筆記(一) USART配置
- [HAL庫]STM32之DMA方式串口發(fā)送
- STM32 HAL庫串口發(fā)送4字節(jié)數(shù)據(jù)