📄 min30.asm
字号:
.include "c:\appnotes\2333def.inc"
.org $000
rjmp main
.org $006
rjmp timer0
.org $008
rjmp SPI_TXC
.org $00d
MAIN: ser r16
out DDRC,r16 ;portc is output mode and turn off all LEDS
ldi r17,$df ;setup STACK pointerin internal SRAM so that
out SPL,r17 ;RCALL and interruptsubroutine can use it for return
ldi r25,$80
out SREG,r25 ;enable globle interrupt
ldi r17,$08 6
out WDTCR,r17;enable watchdog
wdr ;reset wachdog
ldi r17,$02
out TIMSK,r17;enable timer0 overflow
sbi DDRB,3 ;set MOSI(PB.3) output mode whwn SPI is master.
sbi DDRB,5 ;set SCK (PB.5) output mode when SPI is master
sbi DDRB,2 ;set SS output mode so that this byte cann't
;influence SPI master work mode .
ldi r17,0b11111100
out SPCR,r17 ;set SPIE,SPE,MSTR,CPOL,CPHA ,reset the others
ldi r21,$73 ;display "P"
out SPDR , r21
ldi r17,$01
out PORTC,r17 ;PC.0 output 1 ,the rightest LED display "P"
rcall one_minute
ldi r21,$00
out SPDR,r21 ; turn off "P" at the rightest LED;
ldi r17,$01
out PORTC,r17 ;PC.0 output 1 ,the rightest LED display "P"
rcall thirty_minute
rjmp main
SPI_TXC:sbi SPCR,4
reti
timer0: inc r20
reti
thirty_minute:ldi r17,$00
out TCNT0,r17;timer0 up count FF
ldi r17,$05
out TCCR0,r17;CK/1024 and star counting
clr r20
clr r21
disp: wdr
cpi r20,255 ; if timer0 overflow shut down "P" display
breq again
rjmp disp
again: inc r21
cpi r21,215
breq return
clr r20
rjmp disp
return: ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -