⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clockr.txt

📁 设计倒计时时钟 倒计时:当程序运行时
💻 TXT
字号:
CSEG SEGMENT
	ASSUME CS:CSEG
TCON EQU 4BH
T2 EQU 4AH
CONTPORT EQU 0DFH
DATAPORT EQU 0DEH
	ORG 1000H
START:  JMP STA
DATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATA1 DB 3FH,06H,5BH,4FH,66H,6DH
STA:	
	CLI
	MOV AX,0
	MOV DS,AX          ;修改中断向量
	MOV AX,OFFSET INT_PR
	MOV WORD PTR DS:[2CH],AX
	MOV AX,SEG INT_PR
	MOV WORD PTR DS:[2EH],AX        
	MOV AL,00010011B          ;对8259初始化
	OUT 20H,AL
	MOV AL,08H
	OUT 21H,AL
	MOV AL,00001111B
	OUT 21H,AL
	MOV AL,0F7H
	OUT 21H,AL           
	MOV AL,10110110B          ;对8253初始化
        MOV DX,TCON
	OUT DX,AL	
	MOV AX,2710H
	MOV DX,T2
	OUT DX,AL
	MOV AL,AH
	OUT DX,AL
   ;对数据区500H--501H初始化为0
    MOV BX,500H          ;用来存放秒的值
    MOV BYTE PTR DS:[BX],09h
    INC BX
    MOV BYTE PTR DS:[BX],05h
    MOV CX,0                ;中断计数初值,到100为1秒
    CALL CONV		 ;倒计时从:00开始
    CALL LEDDISP	;先让:00显示
    STI			;开中断
NOM:CMP CX,100
	JZ DENG
    JMP NOM
DENG:MOV CX,0                       ;到100为1秒,计数器置0
	CMP BYTE PTR DS:[500H],0h       ;显示值减1秒;秒个位是否为0
	JNZ GG				;不为0则继续减计数
    MOV BYTE PTR DS:[500H],09h		;为0则赋值9(减至9)
    CMP BYTE PTR DS:[501H],0h		;比较十位是否为0
    JNZ DD1			        ;不为0则继续减计数
    MOV BYTE PTR DS:[501H],05h		;十位为0则赋值5
    jmp gg2    				;逢九显示
DD1:dec BYTE PTR DS:[501H]		;十位减
    jmp gg2				 ;逢零显示
GG: dec BYTE PTR DS:[500H]		;个位减
gg2:CALL CONV				 ;装显示时间数据
    CALL LEDDISP			;调用时间显示子程序
    JMP NOM
CONV:   MOV BH,0                    ;将存放在数据区500H--501H的秒值
    MOV BL,BYTE PTR DS:[500H]       ;转化为存放在数据区700H--701H的数码管显示代码
    MOV AL,CS:[BX+DATA]
    MOV BYTE PTR DS:[700H],AL  
    MOV BL,BYTE PTR DS:[501H]
    MOV AL,CS:[BX+DATA1]
    MOV BYTE PTR DS:[701H],AL
    RET
LEDDISP:MOV AL,90H                   ;显示时间子程序
	MOV DX,CONTPORT
	OUT DX,AL
	MOV BYTE PTR DS:[0600H],00
LED1:	CMP BYTE PTR DS:[0600H],01h
	JA  LED2
	MOV BL,DS:[0600H]
	MOV BH,0H
	MOV AL,DS:[BX+700H]
	MOV DX,DATAPORT
	OUT DX,AL
	ADD BYTE PTR DS:[0600H],01H
	JNZ LED1
LED2:   RET
INT_PR: CLI            ;中断服务程序
	INC CX
	STI
	IRET
CSEG ENDS
	END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -