📄 m16.s
字号:
.module m16.c
.area text(rom, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\调试成功\M16-ISP串口通讯/..\includeH\Init.h
.dbfunc e Port_init _Port_init fV
.even
_Port_init::
.dbline -1
.dbline 88
; // Target : M16
; #include <iom16v.h>
; #include <macros.h>
; //#include "avrinit.h"
; #include "..\includeH\Init.h"
; //const unsigned char buffer[]="http://www.avrvi.com";
; const unsigned char buffer[]={0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};
; void main(void)
; {
; unsigned char n=0,tmp=0;
; USART_InitM1681(9600);
; // USART_Init_M1681(3686400,9600);
; for(;n<20;n++){USART_Transmit8(buffer[n]);};
; // USART_Transmit8(0x0d); //发送一个回车
; // USART_Transmit8(0x0a); //发送一个换行
; while(1)
; {
; if(UCSRA&(1<<RXC)) //如果接收缓存区有数据
; {
; tmp=USART_Receive8(); //接收数据
; USART_Transmit8(tmp); //发送数据
; USART_Transmit8(0x0d); //发送一个回车
; USART_Transmit8(0x0a); //发送一个换行
; if(tmp=='a') //对接收到的数据进行,如果是a,再发一个OK回来
; {
; USART_Transmit8('O');
; USART_Transmit8('K');
; USART_Transmit8(0x0d);
; USART_Transmit8(0x0a); //发送一个换行
; }
; if(tmp=='A') //对接收到的数据进行,如果是A,再发一个Hello回来
; {
; USART_Transmit_2();
; USART_Transmit8(0x0d);
; USART_Transmit8(0x0a); //发送一个换行
; }
;
;
; }
; }
; }
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 88
clr R2
out 0x1b,R2
.dbline 88
out 0x1a,R2
.dbline 88
ldi R24,255
out 0x18,R24
.dbline 88
out 0x17,R24
.dbline 89
;
out 0x15,R2
.dbline 89
out 0x14,R24
.dbline 89
out 0x12,R2
.dbline 89
out 0x11,R2
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e WDT_ON _WDT_ON fV
.even
_WDT_ON::
.dbline -1
.dbline 104
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 105
;
wdr
.dbline 106
;
in R24,0x21
ori R24,31
out 0x21,R24
.dbline 107
;
in R24,0x21
andi R24,239
out 0x21,R24
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
.dbfunc e WDT_OFF _WDT_OFF fV
.even
_WDT_OFF::
.dbline -1
.dbline 123
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 124
;
wdr
.dbline 125
;
in R24,0x21
ori R24,24
out 0x21,R24
.dbline 126
;
clr R2
out 0x21,R2
.dbline -2
L3:
.dbline 0 ; func end
ret
.dbend
.dbfunc e DelayWDR _DelayWDR fV
; i -> R16
; j -> R18
.even
_DelayWDR::
.dbline -1
.dbline 142
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 144
ldi R16,250
xjmp L8
L5:
.dbline 144
.dbline 144
ldi R18,250
xjmp L12
L9:
.dbline 144
nop
L10:
.dbline 144
dec R18
L12:
.dbline 144
clr R2
cp R2,R18
brlo L9
.dbline 145
wdr
.dbline 146
L6:
.dbline 144
dec R16
L8:
.dbline 144
;
;
clr R2
cp R2,R16
brlo L5
.dbline -2
L4:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbsym r j 18 c
.dbend
.dbfunc e Delay _Delay fV
; i -> R16
; j -> R18
.even
_Delay::
.dbline -1
.dbline 161
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 162
ldi R16,250
xjmp L17
L14:
.dbline 162
.dbline 162
ldi R18,250
xjmp L21
L18:
.dbline 162
nop
L19:
.dbline 162
dec R18
L21:
.dbline 162
clr R2
cp R2,R18
brlo L18
.dbline 163
wdr
.dbline 164
L15:
.dbline 162
dec R16
L17:
.dbline 162
;
clr R2
cp R2,R16
brlo L14
.dbline -2
L13:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbsym r j 18 c
.dbend
.dbfunc e ADC_Init _ADC_Init fV
.even
_ADC_Init::
.dbline -1
.dbline 179
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 179
cli
.dbline 180
;
clr R2
out 0x6,R2
.dbline 181
;
ldi R24,195
out 0x7,R24
.dbline 182
;
ldi R24,206
out 0x6,R24
.dbline 183
;
sei
.dbline -2
L22:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 221
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 223
;
;
clr R16
clr R17
xjmp L27
L24:
.dbline 224
wdr
L25:
.dbline 223
subi R16,255 ; offset = 1
sbci R17,255
L27:
.dbline 223
cpi R16,150
ldi R30,0
cpc R17,R30
brlo L24
.dbline -2
L23:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nms::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 238
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 240
;
;
clr R20
clr R21
xjmp L32
L29:
.dbline 241
.dbline 242
xcall _delay_1ms
.dbline 243
L30:
.dbline 240
subi R20,255 ; offset = 1
sbci R21,255
L32:
.dbline 240
cp R20,R22
cpc R21,R23
brlo L29
.dbline 244
;
;
;
;
wdr
.dbline -2
L28:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e send_byte _send_byte fV
; i -> R20
; x -> R22
.even
_send_byte::
xcall push_gset2
mov R22,R16
.dbline -1
.dbline 259
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 261
;
;
clr R20
xjmp L37
L34:
.dbline 262
;
.dbline 263
;
clr R2
out 0x15,R2
.dbline 264
;
ldi R17,7
sub R17,R20
ldi R16,1
xcall lsl8
mov R2,R22
and R2,R16
breq L38
.dbline 265
;
ldi R24,16
out 0x15,R24
xjmp L39
L38:
.dbline 267
;
;
clr R2
out 0x15,R2
L39:
.dbline 268
ldi R24,32
out 0x15,R24
.dbline 269
L35:
.dbline 261
inc R20
L37:
.dbline 261
cpi R20,8
brlo L34
.dbline -2
L33:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r x 22 c
.dbend
.dbfunc e ADCConvert_3 _ADCConvert_3 fi
; temp1 -> R18,R19
; Voltage -> R16,R17
.even
_ADCConvert_3::
.dbline -1
.dbline 282
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 285
;
;
;
in R18,0x4
clr R19
.dbline 286
;
in R16,0x5
clr R17
.dbline 287
;
movw R2,R16
mov R3,R2
clr R2
add R2,R18
adc R3,R19
movw R16,R2
.dbline 288
;
.dbline -2
L40:
.dbline 0 ; func end
ret
.dbsym r temp1 18 i
.dbsym r Voltage 16 i
.dbend
.dbfunc e LED_Wait _LED_Wait fV
.even
_LED_Wait::
.dbline -1
.dbline 312
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 313
;
cbi 0x18,2
.dbline 313
sbi 0x18,3
.dbline 313
sbi 0x18,1
.dbline 313
sbi 0x18,0
.dbline 313
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 313
.dbline 313
sbi 0x18,3
.dbline 313
sbi 0x18,2
.dbline 313
sbi 0x18,1
.dbline 313
sbi 0x18,0
.dbline 313
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 313
.dbline -2
L41:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_Wait_ISP _LED_Wait_ISP fV
.even
_LED_Wait_ISP::
.dbline -1
.dbline 330
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 331
;
cbi 0x1b,5
.dbline 331
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 331
sbi 0x1b,5
.dbline 331
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 332
;
cbi 0x1b,4
.dbline 332
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 332
sbi 0x1b,4
.dbline 332
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 333
;
cbi 0x1b,5
.dbline 333
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 333
sbi 0x1b,5
.dbline 333
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 334
;
cbi 0x1b,4
.dbline 334
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 334
sbi 0x1b,4
.dbline 334
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 335
;
cbi 0x1b,5
.dbline 335
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 335
sbi 0x1b,5
.dbline 335
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 336
;
cbi 0x1b,4
.dbline 336
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 336
sbi 0x1b,5
.dbline 336
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline -2
L42:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_Texting_ISP _LED_Texting_ISP fV
.even
_LED_Texting_ISP::
.dbline -1
.dbline 340
;
;
;
;
.dbline 341
;
cbi 0x1b,4
.dbline 342
;
cbi 0x1b,5
.dbline 342
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 342
sbi 0x1b,5
.dbline 342
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 343
;
cbi 0x1b,5
.dbline 343
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 343
sbi 0x1b,5
.dbline 343
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 344
;
cbi 0x1b,5
.dbline 344
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline 344
sbi 0x1b,5
.dbline 344
ldi R16,200
ldi R17,0
xcall _delay_nms
.dbline -2
L43:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LED_Run _LED_Run fV
; i -> R20,R21
.even
_LED_Run::
xcall push_gset1
.dbline -1
.dbline 357
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 359
ldi R20,5
ldi R21,0
xjmp L48
L45:
.dbline 359
.dbline 359
cbi 0x18,3
.dbline 359
sbi 0x18,2
.dbline 359
sbi 0x18,1
.dbline 359
sbi 0x18,0
.dbline 359
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 359
.dbline 359
cbi 0x18,3
.dbline 359
cbi 0x18,2
.dbline 359
sbi 0x18,1
.dbline 359
sbi 0x18,0
.dbline 359
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 359
.dbline 359
cbi 0x18,2
.dbline 359
sbi 0x18,3
.dbline 359
sbi 0x18,1
.dbline 359
cbi 0x18,0
.dbline 359
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 359
.dbline 359
cbi 0x18,0
.dbline 359
sbi 0x18,2
.dbline 359
cbi 0x18,1
.dbline 359
sbi 0x18,3
.dbline 359
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 359
.dbline 359
cbi 0x18,1
.dbline 359
sbi 0x18,2
.dbline 359
cbi 0x18,3
.dbline 359
sbi 0x18,0
.dbline 359
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 359
.dbline 359
L46:
.dbline 359
subi R20,1
sbci R21,0
L48:
.dbline 359
;
;
cpi R20,0
cpc R20,R21
brne L45
X0:
.dbline 360
ldi R20,5
ldi R21,0
xjmp L52
L49:
.dbline 360
.dbline 360
cbi 0x18,3
.dbline 360
sbi 0x18,2
.dbline 360
sbi 0x18,1
.dbline 360
sbi 0x18,0
.dbline 360
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 360
.dbline 360
cbi 0x18,3
.dbline 360
sbi 0x18,2
.dbline 360
cbi 0x18,1
.dbline 360
sbi 0x18,0
.dbline 360
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 360
.dbline 360
cbi 0x18,1
.dbline 360
sbi 0x18,2
.dbline 360
sbi 0x18,3
.dbline 360
cbi 0x18,0
.dbline 360
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 360
.dbline 360
cbi 0x18,0
.dbline 360
cbi 0x18,2
.dbline 360
sbi 0x18,1
.dbline 360
sbi 0x18,3
.dbline 360
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 360
.dbline 360
cbi 0x18,2
.dbline 360
cbi 0x18,3
.dbline 360
sbi 0x18,1
.dbline 360
sbi 0x18,0
.dbline 360
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 360
.dbline 360
L50:
.dbline 360
subi R20,1
sbci R21,0
L52:
.dbline 360
;
cpi R20,0
cpc R20,R21
brne L49
X1:
.dbline 361
ldi R20,4
ldi R21,0
xjmp L56
L53:
.dbline 361
.dbline 361
cbi 0x18,3
.dbline 361
sbi 0x18,2
.dbline 361
sbi 0x18,1
.dbline 361
sbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,3
.dbline 361
sbi 0x18,2
.dbline 361
cbi 0x18,1
.dbline 361
sbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,2
.dbline 361
sbi 0x18,3
.dbline 361
sbi 0x18,1
.dbline 361
sbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,2
.dbline 361
sbi 0x18,3
.dbline 361
sbi 0x18,1
.dbline 361
cbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,0
.dbline 361
sbi 0x18,2
.dbline 361
sbi 0x18,1
.dbline 361
sbi 0x18,3
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,0
.dbline 361
cbi 0x18,2
.dbline 361
sbi 0x18,1
.dbline 361
sbi 0x18,3
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,1
.dbline 361
sbi 0x18,2
.dbline 361
sbi 0x18,3
.dbline 361
sbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
cbi 0x18,1
.dbline 361
sbi 0x18,2
.dbline 361
cbi 0x18,3
.dbline 361
sbi 0x18,0
.dbline 361
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 361
.dbline 361
L54:
.dbline 361
subi R20,1
sbci R21,0
L56:
.dbline 361
;
cpi R20,0
cpc R20,R21
breq X6
xjmp L53
X6:
X2:
.dbline 362
ldi R20,4
ldi R21,0
xjmp L60
L57:
.dbline 362
.dbline 362
cbi 0x18,3
.dbline 362
sbi 0x18,2
.dbline 362
sbi 0x18,1
.dbline 362
sbi 0x18,0
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,3
.dbline 362
sbi 0x18,2
.dbline 362
sbi 0x18,1
.dbline 362
cbi 0x18,0
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,2
.dbline 362
sbi 0x18,3
.dbline 362
sbi 0x18,1
.dbline 362
sbi 0x18,0
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,2
.dbline 362
sbi 0x18,3
.dbline 362
cbi 0x18,1
.dbline 362
sbi 0x18,0
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,0
.dbline 362
sbi 0x18,2
.dbline 362
sbi 0x18,1
.dbline 362
sbi 0x18,3
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,0
.dbline 362
sbi 0x18,2
.dbline 362
sbi 0x18,1
.dbline 362
cbi 0x18,3
.dbline 362
ldi R16,100
ldi R17,0
xcall _delay_nms
.dbline 362
.dbline 362
cbi 0x18,1
.dbline 362
sbi 0x18,2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -