?? main.s
字號:
.module main.c
.area data(ram, con, rel)
_ADCjohu::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e ADCjohu _ADCjohu L
_ms::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e ms _ms I
_xx::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e xx _xx L
_lvbo::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e lvbo _lvbo c
_lvbo_num::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e lvbo_num _lvbo_num L
_pwm_pingjun::
.blkb 1
.area idata
.byte 254
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e pwm_pingjun _pwm_pingjun c
_Rpwm0::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e Rpwm0 _Rpwm0 c
_Rpwm1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e Rpwm1 _Rpwm1 c
_Lpwm0::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e Lpwm0 _Lpwm0 c
_Lpwm1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e Lpwm1 _Lpwm1 c
_all::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e all _all c
_a::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e a _a c
_b::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e b _b c
_c::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e c _c c
_d::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e d _d c
_e::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e e _e c
_f::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e f _f c
_jiaodu::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e jiaodu _jiaodu L
_juli::
.blkb 4
.area idata
.word 0,0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e juli _juli L
_time::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e time _time I
_sec::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e sec _sec c
_v_num::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e v_num _v_num i
_chang::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e chang _chang c
_hang::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e hang _hang c
_adc1::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbsym e adc1 _adc1 c
.area text(rom, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 50
; //////////////////////////////
; ////////////////////////////// 22967為近似180度
;
; #include <iom64v.h>
; #include <macros.h>
;
; #define PREVSONG BIT(2)
; #define NEXTSONG BIT(3)
; #define VOLDOWN BIT(4)
; #define VOLUP BIT(5)
; #define STOP BIT(6)
;
; #define R_pwm0 BIT(4)
; #define R_pwm1 BIT(5)
; #define L_pwm0 BIT(6)
; #define L_pwm1 BIT(7)
;
;
; long ADCjohu=0;
; int ms=0;
; long xx=0;
; //int adc=0;
;
; #define REF 483
; unsigned char lvbo=0;
; long lvbo_num=0;
;
; unsigned char pwm_pingjun=254;//平均速度
; unsigned char Rpwm0=0;
; unsigned char Rpwm1=0;
; unsigned char Lpwm0=0;
; unsigned char Lpwm1=0;
; unsigned char all=0, a=0,b=0,c=0,d=0,e=0,f=0;
; #define CIR 1
; #define LINE 2
; #define CLS 3
; long jiaodu=0,juli=0;
; int time=0;
; unsigned char sec=0;
;
; #define video_x 32
; #define video_y 48
; unsigned int v_num=0;
; unsigned char v_temp[video_y][video_x],chang=0,hang=0, adc1=0;;
;
; unsigned char x_adc;
; unsigned char y_adc;
;
; void port_init(void)
; {
.dbline 51
; PORTA = 0x00;
clr R2
out 0x1b,R2
.dbline 52
; DDRA = 0x00;
out 0x1a,R2
.dbline 53
; PORTB = 0x00;
out 0x18,R2
.dbline 54
; DDRB = 0x00;
out 0x17,R2
.dbline 55
; PORTC = 0x00; //m103 output only
out 0x15,R2
.dbline 56
; DDRC = 0x00;
out 0x14,R2
.dbline 57
; PORTD = 0x00;
out 0x12,R2
.dbline 58
; DDRD = 0x00;
out 0x11,R2
.dbline 59
; PORTE = 0x00;
out 0x3,R2
.dbline 60
; DDRE = 0x00;
out 0x2,R2
.dbline 61
; PORTF = 0x00;
sts 98,R2
.dbline 62
; DDRF = 0x00;
sts 97,R2
.dbline 63
; PORTG = 0x00;
sts 101,R2
.dbline 64
; DDRG = 0x00;
sts 100,R2
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 70
; }
;
;
; //call this routine to initialize all peripherals
; void init_devices(void)
; {
.dbline 72
; //stop errant interrupts until set up
; CLI(); //disable all interrupts
cli
.dbline 73
; XDIV = 0x00; //xtal divider
clr R2
out 0x3c,R2
.dbline 74
; XMCRA = 0x00; //external memory
sts 109,R2
.dbline 75
; port_init();
xcall _port_init
.dbline 77
; //adc_init();
; uart1_init();
xcall _uart1_init
.dbline 79
;
; MCUCR = 0x00;
clr R2
out 0x35,R2
.dbline 80
; EICRA = 0x0A; //extended ext ints
ldi R24,10
sts 106,R24
.dbline 81
; EICRB = 0x00; //extended ext ints
out 0x3a,R2
.dbline 82
; EIMSK = 0x03;
ldi R24,3
out 0x39,R24
.dbline 84
; //TIMSK = 0x40; //timer interrupt sources
; TIMSK = 0x00;
out 0x37,R2
.dbline 85
; ETIMSK = 0x00; //extended timer interrupt sources
sts 125,R2
.dbline 86
; SEI(); //re-enable interrupts
sei
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
.dbfunc e uart1_init _uart1_init fV
.even
_uart1_init::
.dbline -1
.dbline 93
; //all peripherals are now initialized
; }
; //UART1 initialize
; // desired baud rate:19200
; // actual baud rate:19231 (0.2%)
; void uart1_init(void)
; {
.dbline 94
; UCSR1B = 0x00; //disable while setting baud rate
clr R2
sts 154,R2
.dbline 95
; UCSR1A = 0x00;
sts 155,R2
.dbline 96
; UCSR1C = 0x06;
ldi R24,6
sts 157,R24
.dbline 97
; UBRR1L = 0x40; //set baud rate lo
ldi R24,64
sts 153,R24
.dbline 98
; UBRR1H = 0x00; //set baud rate hi
sts 152,R2
.dbline 99
; UCSR1B = 0x98;
ldi R24,152
sts 154,R24
.dbline -2
L3:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 120
jmp _uart1_rx_isr
.area text(rom, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1視頻處理\fang__2\main.c
.dbfunc e uart1_rx_isr _uart1_rx_isr fV
.even
_uart1_rx_isr::
st -y,R0
st -y,R1
st -y,R2
st -y,R3
st -y,R4
st -y,R5
st -y,R16
st -y,R17
st -y,R18
st -y,R19
st -y,R24
st -y,R25
st -y,R30
st -y,R31
in R0,0x3f
st -y,R0
xcall push_gset2
.dbline -1
.dbline 105
; }
;
; #pragma interrupt_handler uart1_rx_isr:31
; //cir+00100
; void uart1_rx_isr(void)
; {
.dbline 107
; //uart has received a character in UDR
; if (all==CIR)
lds R24,_all
cpi R24,1
breq X2
xjmp L5
X2:
.dbline 108
; {
.dbline 109
; a=b;
lds R2,_b
sts _a,R2
.dbline 110
; b=c;
lds R2,_c
sts _b,R2
.dbline 111
; c=d;
lds R2,_d
sts _c,R2
.dbline 112
; d=e;
lds R2,_e
sts _d,R2
.dbline 113
; e=f;
lds R2,_f
sts _e,R2
.dbline 114
; f=UDR1;
lds R2,156
sts _f,R2
.dbline 115
mov R24,R2
cpi R24,48
brlo L9
ldi R24,57
cp R24,R2
brsh L7
L9:
.dbline 115
; if ((f<'0')||(f>'9'))return;
xjmp L4
L7:
.dbline 116
; if (a=='+')//0x2b
lds R24,_a
cpi R24,43
breq X3
xjmp L10
X3:
.dbline 117
; {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
.dbline 117
lds R18,_c
clr R19
ldi R16,1000
ldi R17,3
xcall empy16s
movw R24,R16
subi R24,128
sbci R25,187
lds R18,_b
clr R19
ldi R16,10000
ldi R17,39
xcall empy16s
movw R30,R16
subi R30,0
sbci R31,83
add R30,R24
adc R31,R25
lds R2,_d
ldi R24,100
mul R24,R2
movw R24,R0
subi R24,192
sbci R25,18
add R30,R24
adc R31,R25
lds R2,_e
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
add R30,R24
adc R31,R25
lds R24,_f
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
movw R2,R30
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _jiaodu+1,R3
sts _jiaodu,R2
sts _jiaodu+2+1,R5
sts _jiaodu+2,R4
.dbline 118
; all=0;return;}
clr R2
sts _all,R2
.dbline 118
xjmp L4
L10:
.dbline 119
; else if (a=='-')//0x2d
lds R24,_a
cpi R24,45
breq X4
xjmp L12
X4:
.dbline 120
; {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
.dbline 120
lds R18,_c
clr R19
ldi R16,1000
ldi R17,3
xcall empy16s
movw R24,R16
subi R24,128
sbci R25,187
lds R18,_b
clr R19
ldi R16,10000
ldi R17,39
xcall empy16s
movw R30,R16
subi R30,0
sbci R31,83
add R30,R24
adc R31,R25
lds R2,_d
ldi R24,100
mul R24,R2
movw R24,R0
subi R24,192
sbci R25,18
add R30,R24
adc R31,R25
lds R2,_e
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
add R30,R24
adc R31,R25
lds R24,_f
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
com R30
com R31
subi R30,0xFF
sbci R31,0xFF
movw R2,R30
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _jiaodu+1,R3
sts _jiaodu,R2
sts _jiaodu+2+1,R5
sts _jiaodu+2,R4
.dbline 121
; all=0;return;}
clr R2
sts _all,R2
.dbline 121
xjmp L4
L12:
.dbline 122
; if (a!=0) {all=0;return;}
lds R2,_a
tst R2
brne X5
xjmp L6
X5:
.dbline 122
.dbline 122
clr R2
sts _all,R2
.dbline 122
xjmp L4
X0:
.dbline 124
; //PORTF=jiaodu;//while(1);
; }
L5:
.dbline 125
; else if (all==LINE)
lds R24,_all
cpi R24,2
breq X6
xjmp L16
X6:
.dbline 126
; {
.dbline 127
; a=b;
lds R2,_b
sts _a,R2
.dbline 128
; b=c;
lds R2,_c
sts _b,R2
.dbline 129
; c=d;
lds R2,_d
sts _c,R2
.dbline 130
; d=e;
lds R2,_e
sts _d,R2
.dbline 131
; e=f;
lds R2,_f
sts _e,R2
.dbline 132
; f=UDR1;
lds R2,156
sts _f,R2
.dbline 133
mov R24,R2
cpi R24,48
brlo L20
ldi R24,57
cp R24,R2
brsh L18
L20:
.dbline 133
; if ((f<'0')||(f>'9'))return;
xjmp L4
L18:
.dbline 134
; if (a=='+')
lds R24,_a
cpi R24,43
breq X7
xjmp L21
X7:
.dbline 135
; {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
.dbline 135
lds R18,_c
clr R19
ldi R16,1000
ldi R17,3
xcall empy16s
movw R24,R16
subi R24,128
sbci R25,187
lds R18,_b
clr R19
ldi R16,10000
ldi R17,39
xcall empy16s
movw R30,R16
subi R30,0
sbci R31,83
add R30,R24
adc R31,R25
lds R2,_d
ldi R24,100
mul R24,R2
movw R24,R0
subi R24,192
sbci R25,18
add R30,R24
adc R31,R25
lds R2,_e
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
add R30,R24
adc R31,R25
lds R24,_f
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
movw R2,R30
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _juli+1,R3
sts _juli,R2
sts _juli+2+1,R5
sts _juli+2,R4
.dbline 136
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -