?? tu1610.asm
字號:
; 測脈沖寬度,測周期,脈寬信號從AT90S8515的ICP引腳輸入,最大值為為999999μS
.include"8535def.inc"
rjmp reset
.def temp = r19 ;暫存器
.def cnt1d = r6
.def cnt2d = r7 ;cnt1、dcnt2d存放結(jié)果的十進制
.def count = r8
.def res1 = r4
.def res2 = r5 ;res1、res2存放結(jié)果的十六進制
.def aa = r24
reset: ldi R16,low(RAMEND) ;設(shè)置堆棧
out SPL,R16
ldi R16,high(RAMEND)
out SPH,R16
htd3: ;16轉(zhuǎn)10子程序
ldi temp,16
mov count,temp
clr temp
clr cnt1d
clr cnt2d
clc
loopd:
rol res1
rol res2
rol cnt1d
rol cnt2d
dec count
brne c
rjmp loop
c: rcall adjn
rjmp loopd
adjn:
push count
mov count,cnt1d
rcall adjd1
mov cnt1d,count
mov count,cnt2d
rcall adjd1
mov cnt2d,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
a:
ldi zh,high(zk*2)
ldi zl,low(zk*2)
add zl,aa
lpm
out portb,r0
ret
loop: ;在數(shù)碼管顯出十進制數(shù)
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
ret
rjmp loop
.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 + -