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

📄 8.asm

📁 我的大学单片机课程案例和ppt
💻 ASM
字号:
			ORG 0000H
			AJMP START
			ORG 000BH                 ;定时器0的中断向量地址
			AJMP TIME0                ;跳转到定时器0中断处理程序处
			ORG 30H
START:			
			MOV TMOD,#00000001B     ;定时0工作于方式1(16位)
			MOV TH0,#0B1H 
			MOV TL0,#0E0H            ;设定定时时间20ms		
			SETB TR0                   ;定时器0开关打开
			SETB ET0                   ;打开开定时/计数器0允许
			SETB EA                   ;打开总中断允许
			MOV	DPTR,#TABLE	;将数据表TABLE的首地址赋给DPTR			
			MOV	30H,#0		;30H-33H为显示内容,初始为0
			MOV	31H,#0
			MOV	32H,#0
			MOV	33H,#0
			MOV	R3,#50	;计溢出次数50×20ms=1S
DISAGAIN:
			MOV	R4,#4
			MOV	R1,#30H
			MOV	R2,#10000000B
LOOP:  
			MOV	A,@R1		;
			MOVC	A,@A+DPTR	;将(A+DPTR)地址中的值赋给A
			MOV	P2,R2	        ;选择数码管                                   
			MOV	P0,A		;送到P0口数码管显示
			LCALL	DELAY	;显示延时
			MOV	A,R2	;R2的值移位
			RR	A
			MOV	R2,A	
			INC	R1	
			DJNZ	R4,LOOP	;扫描完4个否?
			LJMP	DISAGAIN	;重新开始扫描
DELAY:
			MOV	R6,#4
D1:			MOV	R7,#100
D2:			DJNZ	R7,D2
			DJNZ	R6,D1
			RET

TIME0:			PUSH  PSW
			MOV TH0,#0B1H
			MOV TL0,#0E0H             ;重置定时时间20ms
			DJNZ	R3,TRUESC;不到1S退出中断程序
			MOV	R3,#50	;重新赋溢出计数值
			INC	30H	;P2口左移
			MOV	A,30H
			CJNE	A,#10,TRUESC
			MOV	30H,#0
			INC	31H
			MOV	A,31H
			CJNE	A,#6,TRUESC
			MOV	31H,#0
			INC	32H
			MOV	A,32H
			CJNE	A,#10,TRUESC
			MOV	32H,#0
			INC	33H
			MOV	A,33H
			CJNE	A,#6,TRUESC
			MOV	33H,#0
			
TRUESC:			POP  PSW
			RETI  
TABLE:	DB	0C0H,0F9H,0A4H,0B0H		;0,1,2,3
	DB	99H,92H,82H,0F8H,80H,90H	;4,5,6,7,8,9
			END 

⌨️ 快捷键说明

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