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

📄 shiyan2.asm

📁 微机原理课程设计报告 课题六:数字闹钟 1. 通过8253定时器产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2. 将当前时分秒在七段LED显示器上显示(如:091
💻 ASM
字号:
LF	equ	0ah		;换行16进制码
CR	equ	0dh		;回车16进制码
DATAS SEGMENT
    ;此处输入数据段代码
    Msg1	db	'please input N(between 1 and 9)= ','$'
	Msg2	db	CR,LF,'Error:Your input is not legal ','$'
	Msg3	db	CR,LF,'output ','$'    
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码据段代码
    LEA	DX,Msg1
    CALL	Puts
    CALL INPUT
    CMP AL,'#'
    JZ OVER
    CMP AL,'1'	;进行1-9范围的判断
    JB INPUT_ERRORS	;如果输入不在1-9之间则跳到
					;INPUT_ERRORS
    CMP AL,'9'
    JA	 INPUT_ERRORS
    CLC
    AND AL,0FH;
	
    MOV CL,AL
    
	
LOOP1:	;主程序实现部分
	CALL DISPLAY
	DEC	CX
	CALL DELAY2
	CMP CX,0
	JNZ LOOP1
	CALL CRLF	;调用打印回车换行
	JMP START	;跳转到程序开头执行
INPUT_ERRORS:	;输入不在1-9之间,打印错误信息
	LEA	DX,Msg2
	CALL	Puts
	CALL	CRLF
	JMP START	;跳转到程序开始处
	
OVER:	;按#结束	
    MOV AH,4CH
    INT 21H
    
INPUT PROC	;从键盘输入一个字符
    MOV AH,1H
    INT 21H
    RET
INPUT ENDP

    
DISPLAY PROC	;显示过程
    MOV AH,02H
    MOV DL,07H
    INT 21H	;响铃一次
    
    MOV AL,02H
    MOV DL,2AH
    INT 21H	;送*到显示器
    RET
DISPLAY ENDP  

DELAY1 PROC	;延迟过程
	PUSH CX
	MOV BX,30000	;	;使用嵌套延迟
LOOPDOT1:
	MOV CX,65535;
LOOPDOT2:
	DEC CX
	JNZ	LOOPDOT2
	DEC BX
	CMP BX,0
	JA	LOOPDOT1
	POP CX
    RET
DELAY1 ENDP 

DELAY2 PROC	;时钟延迟过程方式
		  PUSH	DS
          MOV   AX,   0   
          MOV   DS,   AX   
          MOV   AX,   DS:[046ch]    ;时钟计数器,每次时钟中断时自动加1。
;系统启动时,其值为从午夜到现在的时钟中断数。当其计数达24小时时,则被置为0,
;并且将0000:0470H的字节置为1
          ADD   AX,   37 
  WAIT2S:   
          CMP   AX,   DS:[046ch]   
          JA   WAIT2S
          POP	DS
          RET
DELAY2 ENDP 

Puts	proc
;入口参数:ds:dx = 输入缓冲区首地址
;功能,向显示器输出一个字符串,存入以ds:dx所指的缓冲区
;说明:对缓冲区格式的要求同int 21h的9号功能
	push	 ax
	mov	ah,9
	int	21h
	pop	ax
	ret
Puts	endp

CRLF PROC	;打印回车换行过程
    MOV AH,2
    MOV DL,0DH
    INT 21H
    
    MOV DL,0AH
    INT 21H
    RET
CRLF ENDP

CODES ENDS
    END START

⌨️ 快捷键说明

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