📄 wave.asm
字号:
; ---display LCD------------- ------display DAC----------------
;PIN: 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
; Vcc |--------porta---OUT-------| icp ace oc |--------portc--------------------|
;
; |------portb--------------| |-I--O----O----O--pOrtd---O-----------| XTAL GND
;PIN: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
; RESET RxD TxD RS WR E_LCD E_ADC LRxD LTxD
; 0 1 2 3 4 5 6 7
;PACKAGE: startB;DataCntB;
;-----LCD Controlled------
.INCLUDE "4414DEF.INC"
.DEF TEMP = R16
.DEF TEMP1 = R17
.DEF FLAG1 = R18
.DEF DataCntB= R19
.DEF UDRDATA = R20
.DEF TimeDotH= R21
.DEF TimeDotL= R22
.DEF Times = R23
;-------Constant----------
;package
.EQU startB = $53 ;Asc("S")
.EQU LCDData = 0
.EQU RomData = $60
.EQU RomTimeDot=RomData+5
;-------PORTD pin define--
.EQU RxD = 0
.EQU TxD = 1
.EQU RS = 2 ;READ LCD
.EQU WR = 3
.EQU E_LCD = 4 ;enable LCD
.EQU E_ADC = 5 ;enable ADC
.EQU L_RxD = 6 ;light led RxD
.EQU L_TxD = 7 ;light led TxD
;-------SET FLAG1-------
.EQU stStart = $01 ;is start packet
.EQU stDebug = $02 ;FLAG1
.EQU stCnt = $04 ;FLAG1
.EQU stLoad = $08 ;FLAG1
.EQU XFG5 = $10 ;FLAG1
.EQU XFG6 = $20 ;FLAG1
.EQU XFG7 = $40 ;FLAG1
.EQU XFG8 = $80
;-------Judge FLAG1-----
.EQU isStart = 0 ;FLAG1
.EQU isDebug = 1 ;FLAG1
.EQU isCnt = 2 ;FLAG1
.EQU isLoad = 3 ;FLAG1
.EQU XCHK5 = 4 ;FLAG1
.EQU XCHK6 = 5 ;FLAG1
.EQU XCHK7 = 6 ;FLAG1
.EQU XCHK8 = 7 ;FLAG1
;-----------------------------
.org 0
RJMP RESET
RJMP RESET
RJMP RESET
RJMP RESET
RJMP RESET
RJMP RESET
RJMP TIM1_OVF
;RJMP TIM0_OVF
;----Timer0 Service Routine------
TIM1_OVF:
;PUSH TEMP
IN TEMP,SREG
PUSH TEMP
OUT TCNT1H,TimeDotH
OUT TCNT1L,TimeDotL
ld temp,z
out portc,temp
adiw zl,1
dec times
;-----------------
POP TEMP
OUT SREG,TEMP
;POP TEMP
RETI
;------------ RESET ---------------------
RESET:
;STACK ==>for 4414 or 8515
LDI TEMP,$5F ;init. stack
OUT SPL,TEMP
ldi temp,1
out sph,temp
;PORTA
LDI TEMP,$FF ;seting PA output
OUT DDRA,TEMP
;PORTB
LDI TEMP,$FF ;seting Pb output
OUT DDRb,TEMP
;PORTC
ldi temp,$ff
out ddrc,temp
;PORTD
LDI TEMP,0B11111110 ;PD0=IN ;PD1~7=OUT
OUT DDRD,TEMP
ldi TEMP,0b00000001
OUT PORTD,TEMP
;砞﹚纉瞯
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -