微机原理:电子钟设计

一. 实验要求

        设计一电子钟,实现电子秒表的启动、暂停和清零功能,利用6位LED显示计时效果,并利用proteus进行仿真实现。

二. 实验代码

A8255	EQU	0000H						
B8255	EQU	0002H
C8255	EQU	0004H
CTR8255	EQU	0006H
CH0	EQU	0200H							
CTR8253	EQU	0206H					
AD245	EQU	0100H					

CODE    SEGMENT PUBLIC	 'CODE'
        ASSUME	DS:DATA, CS:CODE,SS:SSEG

START:
        MOV	AX,SSEG					
		MOV	SS,AX
		MOV	AX,TOP
		MOV	SP,AX
		MOV	AX,DATA					
		MOV	DS,AX
		CLI							
		MOV	AX,0					
		MOV	ES,AX
		MOV	BX,2*4					
		MOV	AX,OFFSET	INTR_KEY
		MOV	WORD	PTR	ES:[BX],AX
		MOV	AX,SEG INTR_KEY
		MOV	WORD	PTR	ES:[BX+2],AX
		STI							
		MOV	AX,DATA
		MOV	ES,AX
		MOV	AL,10001001B			
		MOV	DX,CTR8255
		OUT		DX,AL
RUN:
		CALL	RUNNING				
		JMP		RUN
INTR_KEY PROC						
		PUSH 	AX					
		PUSH	BX
		PUSHF
		CALL	KEY					
		TEST	AL,1H				
		JZ			K1
		TEST	AL,2H				
		JZ			K2
		TEST	AL,4H				
		JZ			K3
K1:
		MOV	KEYST,1					
		JMP		FIN
K2:
		MOV	KEYST,2					
		INC		PAUSEKEY			
		JMP		FIN
K3:
		MOV	KEYST,3					
		JMP		FIN
FIN:							
		POPF											
		POP		BX
		POP		AX
		IRET
INTR_KEY	ENDP


RUNNING		PROC				
AGAIN:
		CMP		KEYST,1
		JZ			T1
		CMP		KEYST,2
		JZ			T2
		CMP		KEYST,3
		JZ			T3
		JMP		E0
T1:														
		CALL	TIME					
		JMP		E0
T2:														
		TEST	PAUSEKEY,1		
		JZ			T1
		JMP		E0
T3:													
		CALL	RESET						
		CALL	DISP
		RET
RUNNING		ENDP


TIME	PROC								
		PUSH	AX
		PUSH	SI
		LEA		SI,TIMEBUF				
		MOV	AH,[SI]
		INC		AH
		CMP		AH,100
		JZ			S1
		MOV	[SI],AH
		JMP		S5
S1:										
		MOV	[SI],AH
		MOV	AH,[SI+1]
		INC		AH
		CMP		AH,60
		JZ			S2
		MOV	[SI+1],AH
		JMP		S5
S2:											
		MOV	AH,0					
		MOV	[SI+1],AH
		MOV	AH,[SI+2]
		INC		AH
		CMP		AH,60
		JZ			S3
		MOV	[SI+2],AH
		JMP		S5	
S3:											
		MOV	AH,0						
		MOV	[SI+2],AH
		MOV	AH,[SI+3]
		INC		AH
		CMP		AH,24
		JZ			S4
		MOV	[SI+3],AH
		JMP		S5	
S4:
		MOV	AL,0
		LEA		DI,TIMEBUF
		MOV	CX,4
		CLD
		REP		STOSB
S5:
		CALL	DIGIT				
		CALL	DELAY8253				
		POP		SI
		POP		AX
		RET
TIME	ENDP


DIGIT	PROC								
		PUSH	AX
		PUSH	BX
		PUSH	CX
		PUSH	SI
		PUSH	DI
		MOV	BL,4							
		LEA		DI,LEDBUF
		LEA		SI,TIMEBUF
NEXT:
		LODSB								
		MOV	AH,0
		MOV	CL,10				
		DIV		CL
		XCHG	AH,AL
		STOSB
		MOV	AL,AH
		STOSB
		DEC		BL
		JNZ		NEXT
		POP		DI
		POP		SI
		POP		CX
		POP		BX
		POP		AX
		RET
DIGIT	ENDP


DISP	PROC								
		PUSH	AX
		PUSH	BX
		PUSH	CX
		PUSH	DX
		PUSH	SI
		LEA		BX,LEDTAB
		LEA		SI,LEDBUF
		MOV	CX,8
		MOV	AH,7FH
LOOP1:
		MOV	AL,[SI]
		XLAT								
		MOV	DX,A8255					
		OUT		DX,AL
		MOV	AL,AH						
		MOV	DX,B8255
		OUT		DX,AL
		CALL	DELAY
		ROR		AH,1
		INC		SI
		CALL	CLRLED						
		LOOP	LOOP1
		POP		SI
		POP		DX
		POP		CX
		POP		BX
		POP		AX
		RET
DISP	ENDP


CLRLED	PROC								
		PUSH	AX
		PUSH	DX
		MOV	AL,0FFH
		MOV	DX,B8255
		OUT		DX,AL
		POP		DX
		POP		AX
		RET
CLRLED	ENDP


DELAY8253	PROC						
		PUSH	AX
		PUSH	DX
		MOV	DX,CTR8253							
		OUT		DX,AL
		MOV	DX,CH0
		MOV	AX,2000
		OUT		DX,AL
		MOV	AL,AH
		OUT		DX,AL
		MOV	DX,AD245
W1:
		IN			AL,DX
		TEST	AL,01H				
		JZ			W1
		POP		DX
		POP		AX
		RET
DELAY8253	ENDP


DELAY		PROC							
		PUSH	CX	
		MOV	CX,50
WAIT1:
		LOOP	WAIT1
		POP		CX
		RET
DELAY		ENDP


RESET		PROC						
		PUSH	AX
		PUSH	CX
		PUSH	DI
		MOV	AL,0
		LEA		DI,TIMEBUF
		MOV	CX,13
		CLD
		REP		STOSB
		POP		DI
		POP		CX
		POP		AX
RESET		ENDP


KEY		PROC							
		MOV	DX,C8255
		IN			AL,DX
		RET
KEY		ENDP


CODE    ENDS
DATA	 SEGMENT
LEDTAB	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
											
TIMEBUF	DB	0,0,0,0							
LEDBUF	DB	0,0,0,0,0,0,0,0				
PAUSEKEY	DB	0					
KEYST		DB	0				
DATA		ENDS


SSEG	SEGMENT	PARA	STACK 'STACK' 			
SDAT		DB	1000		DUP(?)
TOP			EQU		LENGTH	SDAT
SSEG		ENDS
			END		START
(只提供代码,不提供代码注释)

三. 实验结果

         若需要硬件连接图和详细的实验报告,请点击下面网址自行付积分查看。

微型计算机原理与接口技术:电子钟设计_实现电子秒表的启动、暂停、清零和整点报警功能-单片机文档类资源-CSDN下载

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.求

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值