2020年买电子元器件,上唯样商城

用51单片机汇编语言,写一个60s倒计时的程序

题目。写出一个60s倒计时的汇编语言,不要用C语言写,用汇编语言。再设置一个按键,按一下,停止倒计时,再按一下,恢复倒计时。;---------

题目。写出一个60s倒计时的汇编语言,不要用C语言写,用汇编语言。


再设置一个按键,按一下,停止倒计时,再按一下,恢复倒计时。


;---------------------------------------

;假设系统晶振为 12MHz

;按键连接在P3.2

;---------------------------------------

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP X0_INT

ORG 000BH

LJMP T0_INT

;---------------------------------------

ORG 0100H

MAIN: ;初始化

MOV TMOD, #01H

MOV TL0, #(65536 - 50000) MOD 256

MOV TH0, #(55536 - 50000) / 256

SETB TR0

SETB ET0

SETB EX0

SETB EA

MOV DPTR, #TAB ;表首址送DPTR

MOV R1, #0

MOV R2, #0

MOV R3, #20

;---------------------------------------

M_LOOP:

CALL DIS

SJMP M_LOOP

;---------------------------------------

T0_INT:

MOV TL0, #(65536 - 50000) MOD 256

MOV TH0, #(55536 - 50000) / 256

DJNZ R3, T0_E

MOV R3, #20

DEC R1

CJNE R1, #255, T0_E

MOV R1, #9

DEC R2

CJNE R2, #255, T0_E

MOV R2, #5

T0_E:

RETI

;---------------------------------------

X0_INT:

CALL DIS

JNB P3.2, X0_INT

CPL TR0

RETI

;---------------------------------------

DIS: ;显示程序.

MOV A, R2 ;显示十位.

MOVC A, @A+DPTR

CLR P2.1

MOV P1, A

SETB P2.0 ;十位的位选.

CALL DLY


MOV A, R1 ;个位显示.

MOVC A, @A+DPTR

CLR P2.0 ;关闭十位的显示.

MOV P1, A

SETB P2.1 ;个位的位选.

CALL DLY

RET

;------------------------------

TAB: DB 0xc0,0xf9,0xa4,0xb0,0x99 ;共阳极段码 0~4

DB 0x92,0x82,0xf8,0x80,0x90 ;共阳极段码 5~9

;---------------------------------------

DLY: MOV R6, #20 ;10ms延时.

D1: MOV R7, #248

DJNZ R7, $

DJNZ R6, D1

RET

;---------------------------------------

end


THE END
免责声明:本文为网友转载文章,转载此文目的在于传递更多信息,版权归原作者所有,与平台无关。本文所用视频、图片、文字如涉及作品版权问题,请电话或者邮箱(marketing@oneyac.com )联系小编进行侵删。
30元新人礼待领取
资讯排行榜
原厂授权品牌

更多授权品牌 >>

热卖元器件
编号 库存
LTV-3120S-TA1-LH 77,980
SM351LT 15,000
ICM-20690 105,109
59250 3
热门标签