f8.asm
来自「串口通信 频率测量 EEPROM读写程序」· 汇编 代码 · 共 1,282 行 · 第 1/2 页
ASM
1,282 行
rcall delay
rcall turn_off
ret
turn_off: ser r16
out DDRC,r16
ldi r17,0b0000000
out PORTC,r17
ret
;----------------------------------------------------
;
;This subroutine is used to contorll PWM output time
;
define_time: wdr
wdr
ldi r18,-3
ldi r19,1
cp_time: cp r26,r18
breq equ
inc r18
inc r19
cpi r18,13
breq define_time
rjmp cp_time
equ: mov r24,r19
ret
;------------------------------------------------------
m_leddisp: wdr
; rcall flash_ram
rcall turn_off
ldi r17,$05
add r27,r17
mov r20,r27 ;rcall flash_ram
ldi YL,$60
ldi YH,$00
add YL,r20 ; r20 is content of display word
ld r20,Y ;PC.0 display magnetic field trength
out SPDR , r20
ldi r17,0b00000001 ; display byte PC.0
out PORTC,r17 ;PC.0 output 1 ,
rcall delay
rcall turn_off
ldi r20,$3f ; PC.1 display "0"
out SPDR , r20
ldi r17,0b00000010
out PORTC,r17
rcall delay
rcall turn_off
subi r27,$05
ret
flash_ram: ldi YL,$60
ldi YH,$00 ;RAM begin address
ldi ZL ,low(seg_code*2) ; load Z register low byte
ldi ZH ,high(seg_code*2); load Z register high byte
ldi r18,$10 ;flash data block size
load_flash:lpm
st Y+,r0
adiw ZL,1
dec r18
brne load_flash
ret
ret
ret
.org $0700
seg_code:.db $3f,$06,$5b,$4f,$66,$6d,$7d,$07
.db $7f,$6f,$77,$7c,$39,$5e,$79,$71
pwm_output: sbi DDRB,1 ;set PB.1 output mode
ldi r17,0b10000001
out TCCR1A,r17 ; COM11=1,COM10=0,PWM11=0,PWM10=1 in TCCR1A
; PWM frequency is ftck1/510 ,8 byte PWM
ldi r17,$00
out OCR1H,r17
out OCR1L,r8
out TCNT1H,r17
out TCNT1L,r17
ldi r17,0b00000001
out TCCR1B,r17 ;Timer/Count 1 start to work ,ftck1=fosc=8MHz
mov r25,r27
ldi r17,$05
add r25,r17
mov r17,r8
push r17
pwm_width:wdr
rcall delay2
dec r25
brne pwm_width
pop r17
brts down
cpi r17,250 ;controll high low level ratio<30/1023(<3%)
; copare value/top value 8 byte
; PWM PWM frenquency is ftck1/510=8MHZ/510=4*3.91KHz
brlo go_on
down: set ;set down_count flag
dec r8
mov r17,r8
cpi r17,120
breq go_on
rjmp back
go_on: clt ;set up_count flag
inc r8
back: clr r14
out TCCR1B,r14 ;Timer/Counter 1 stop working
ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?