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

📄 zhuanhuan3.asm

📁 AVR-AT90S8535,HD8279,等开发的洁净空调专用DDC系统,包括AD/DA,PID计算等.
💻 ASM
字号:
; 测脉冲宽度,测周期,脉宽信号从AT90S8515的ICP引脚输入,最大值为为999999μS

.include"8515def.inc"
	rjmp   reset
.def    temp   = r16                   ;暂存器

.def    cnt1d  = r17
.def    cnt2d  = r18                   ;cnt1、dcnt2d和cnt3d存放结果的十进制
.def    cnt3d  = r19

.def    count  = r20

.def    res1   = r21
.def    res2   = r22                   ;res1、res2和res3存放结果的十六进制
.def    res3   = r23

.def    aa     = r24

	
reset:
	ldi   temp,  low(ramend)
	out   spl,   temp
	ldi   temp,  high(ramend)      ;设置堆栈
	out   spl+1, temp

	rcall clrm

	rcall htd3
loop:	                               ;在数码管显出十进制数
	mov   aa,   cnt1d
	andi  aa,   $0f                ;显示个位
	rcall a
	cbi   portd, 00
	nop
	sbi   portd, 00
	mov   aa,  cnt1d
	andi  aa,  $f0                 ;显示十位
	swap  aa
	rcall a
	cbi   portd, 01
	nop
	sbi   portd, 01
	mov   aa,  cnt2d
	andi  aa,  $0f                 ;显示百位
	rcall a
	cbi   portd, 02
	nop
	sbi   portd, 02
	mov   aa,  cnt2d
	andi  aa,  $f0                 ;显示千位
	swap  aa
	rcall a
	cbi   portd, 03
	nop
	sbi   portd, 03
	mov   aa,  cnt3d
	andi  aa,  $0f                 ;显示万位
	rcall a
	cbi   portd, 04
	nop
	sbi   portd, 04
	mov   aa,  cnt3d
	andi  aa,  $f0                 ;显示十万位
	swap  aa
	rcall a
	cbi   portd, 05
	nop
	sbi   portd, 05

	ret
	rjmp  loop

htd3:                                  ;16转10子程序
	ldi   count, 24
	clr   cnt1d
	clr   cnt2d
	clr   cnt3d
	clc
loopd:
	rol   res1
	rol   res2
	rol   res3

	rol   cnt1d
	rol   cnt2d
	rol   cnt3d
	dec   count
	brne  c	
	rjmp  loop
c:	rcall adjn
	rjmp  loopd
a:
	ldi   zh,    high(zk*2)
	ldi   zl,    low(zk*2)
	add   zl,    aa
	lpm
	out   portb, r0	
	ret
adjn:
	push  count
	mov   count,  cnt1d
	rcall adjd1
	mov   cnt1d,  count
	mov   count,  cnt2d
	rcall adjd1
	mov   cnt2d,  count
	mov   count,  cnt3d
	rcall adjd1
	mov   cnt3d,  count
	pop   count
	ret
adjd1:
	ldi   temp,  3
	add   temp,  count
	sbrc  temp,  3
	mov   count, temp
	ldi   temp,  $30
	add   temp,  count
	sbrc  temp,  7
	mov   count, temp
	ret
clrm:
	clr   cnt1d
	clr   cnt2d
	clr   cnt3d
clrm1:
	clr   res1
	clr   res2
	clr   res3
	ret




.equ   zk=0x0200
.org   zk                       ;字形表
.db    0x03f,0x006,0x05b,0x04f
.db    0x066,0x06d,0x07d,0x007
.db    0x07f,0x06f,0x077,0x07c
.db    0x039,0x05e,0x071,0x0ff                        


		

⌨️ 快捷键说明

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