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

📄 ha0010-ht48c10.asm

📁 有MCUht48c10做的交通灯程序
💻 ASM
字号:
include ht48c10.inc
;-------------------------------
data .section 'data'		;数据段
count1	db	? 		;延时变量1
count2	db	? 		;延时变量2
count3	db	?		;延时变量3
flash	db	?		;LED闪烁控制寄存器
rglight	db	?		;LED控制寄存器
;-------------------------------
code .section at 0 'code'	;程序段
	org	00h		;程序初始入口地址
	jmp	start
start:				;程序开始
	mov	a,0	;(1)	;
	mov	pac,a		;设置PA口为输出口
	mov	pa,a		;清除PA口
;-------------------------------
loop:				;LED灯循环
	mov	a,0		;
	mov	tblp,a		;表格指针初始化
	tabrdl	rglight	;(2)	;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight ;(3)	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delayl	;(4)	;调用延时子程序delayl
	inc	tblp	;(5)	;递增表格指针
	mov	a,6		;
	mov	flash,a		;设置LED闪烁控制寄存器的值为6次
flashlamp:			;LED闪烁循环
	tabrdl	rglight		;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delays	;(6)	;调用延时子程序delays
	inc	tblp		;递增表格指针
	sdz	flash		;检查LED闪烁是否结束
	jmp	flashlamp	;闪烁没有结束,则跳至LED闪烁循环
	tabrdl	rglight		;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delaym	;(7)	;调用延时子程序delaym
	inc	tblp		;递增表格指针
;-------------------------------;
	tabrdl	rglight		;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delayl		;调用延时子程序delayl
	inc	tblp		;递增表格指针
	mov	a,6		;设置LED闪烁次数
	mov	flash,a		;将闪烁次数存入LED闪烁控制寄存器
flash2:				;LED闪烁循环2
	tabrdl	rglight		;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delays		;调用延时子程序delays
	inc	tblp		;递增表格指针
	sdz	flash		;检查LED闪烁是否结束
	jmp	flash2		;闪烁没有结束,则跳至LED闪烁循环2
	tabrdl	rglight		;读取最后一页的表格内容,放入LED控制寄存器
	mov	a,rglight	;
	mov	pa,a		;将LED寄存器的内容输出到PA口
	call	delaym		;调用延时子程序delaym
	jmp	loop		;
;-------------------------------
delayl proc			;延时子程序delayl
	mov	a,0fh
	mov	count1,a
	mov	count2,a
	mov	count3,a
d1:
	sdz	count3
	jmp	d1
	sdz	count2
	jmp	d1
	sdz	count1
	jmp	d1
	ret
delayl endp
;-------------------------------
delaym proc			;延时子程序delaym
	mov	a,07h
	mov	count1,a
	mov	a,0ffh
	mov	count2,a
	mov	count3,a
d2:
	sdz	count3
	jmp	d2
	sdz	count2
	jmp	d2
	sdz	count1
	jmp	d2
	ret
delaym endp
;-------------------------------
delays proc			;延时子程序delays
	mov	a,0ffh
	mov	count1,a
	mov	count2,a
d3:
	sdz	count2
	jmp	d3
	sdz	count1
	jmp	d3
	ret
delays endp
;-------------------------------
	org	300h		;LED表格
	dc	0ebh,0fbh,0ebh,0fbh,0ebh,0fbh,0ebh,0dbh
	dc	0beh,0bfh,0beh,0bfh,0beh,0bfh,0beh,0bdh
end

⌨️ 快捷键说明

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