⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m64.lst

📁 avr的视频采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
__text_start:
__start:
    005D EFCF      LDI	R28,0xFF
    005E E1D0      LDI	R29,0x10
    005F BFCD      OUT	0x3D,R28
    0060 BFDE      OUT	0x3E,R29
    0061 51C0      SUBI	R28,0x10
    0062 40D0      SBCI	R29,0
    0063 EA0A      LDI	R16,0xAA
    0064 8308      STD	Y+0,R16
    0065 2400      CLR	R0
    0066 E2ED      LDI	R30,0x2D
    0067 E0F1      LDI	R31,1
    0068 E017      LDI	R17,7
    0069 32EF      CPI	R30,0x2F
    006A 07F1      CPC	R31,R17
    006B F011      BEQ	0x006E
    006C 9201      ST	R0,Z+
    006D CFFB      RJMP	0x0069
    006E 8300      STD	Z+0,R16
    006F E8EC      LDI	R30,0x8C
    0070 E0F0      LDI	R31,0
    0071 E0A0      LDI	R26,0
    0072 E0B1      LDI	R27,1
    0073 E010      LDI	R17,0
    0074 3BE9      CPI	R30,0xB9
    0075 07F1      CPC	R31,R17
    0076 F021      BEQ	0x007B
    0077 95C8      LPM
    0078 9631      ADIW	R30,1
    0079 920D      ST	R0,X+
    007A CFF9      RJMP	0x0074
    007B 940E04C4  CALL	_main
_exit:
    007D CFFF      RJMP	_exit
FILE: D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
(0001) //////////////////////////////
(0002) //////////////////////////////   22967为近似180度
(0003) 
(0004) #include <iom64v.h>
(0005) #include <macros.h>
(0006) 
(0007) #define PREVSONG   BIT(2)
(0008) #define NEXTSONG   BIT(3)
(0009) #define VOLDOWN    BIT(4)
(0010) #define VOLUP      BIT(5)
(0011) #define STOP       BIT(6)
(0012) 
(0013) #define R_pwm0       BIT(4)
(0014) #define R_pwm1       BIT(5)
(0015) #define L_pwm0       BIT(6)
(0016) #define L_pwm1       BIT(7)
(0017) 
(0018) 
(0019) long ADCjohu=0;
(0020) int ms=0;
(0021) long xx=0;
(0022) //int adc=0;
(0023) 
(0024) #define REF 483
(0025) unsigned char lvbo=0;
(0026) long lvbo_num=0;
(0027) 
(0028) unsigned char pwm_pingjun=254;//平均速度
(0029) unsigned char Rpwm0=0;
(0030) unsigned char Rpwm1=0;
(0031) unsigned char Lpwm0=0;
(0032) unsigned char Lpwm1=0;
(0033) unsigned char all=0, a=0,b=0,c=0,d=0,e=0,f=0;
(0034) #define CIR 1
(0035) #define LINE 2
(0036) #define CLS 3
(0037) long jiaodu=0,juli=0;
(0038) int time=0;
(0039) unsigned char sec=0;
(0040) 
(0041) #define video_x 32
(0042) #define video_y 48
(0043) unsigned int  v_num=0;
(0044) unsigned char v_temp[video_y][video_x],chang=0,hang=0,   adc1=0;;
(0045) 
(0046) unsigned char x_adc;
(0047) unsigned char  y_adc;
(0048) 
(0049) void port_init(void)
(0050) {
(0051)  PORTA = 0x00;
_port_init:
    007E 2422      CLR	R2
    007F BA2B      OUT	0x1B,R2
(0052)  DDRA  = 0x00;
    0080 BA2A      OUT	0x1A,R2
(0053)  PORTB = 0x00;
    0081 BA28      OUT	0x18,R2
(0054)  DDRB  = 0x00;
    0082 BA27      OUT	0x17,R2
(0055)  PORTC = 0x00; //m103 output only
    0083 BA25      OUT	0x15,R2
(0056)  DDRC  = 0x00;
    0084 BA24      OUT	0x14,R2
(0057)  PORTD = 0x00;
    0085 BA22      OUT	0x12,R2
(0058)  DDRD  = 0x00;
    0086 BA21      OUT	0x11,R2
(0059)  PORTE = 0x00;
    0087 B823      OUT	0x03,R2
(0060)  DDRE  = 0x00;
    0088 B822      OUT	0x02,R2
(0061)  PORTF = 0x00;
    0089 92200062  STS	0x62,R2
(0062)  DDRF  = 0x00;
    008B 92200061  STS	0x61,R2
(0063)  PORTG = 0x00;
    008D 92200065  STS	0x65,R2
(0064)  DDRG  = 0x00;
    008F 92200064  STS	0x64,R2
    0091 9508      RET
(0065) }
(0066) 
(0067) 
(0068) //call this routine to initialize all peripherals
(0069) void init_devices(void)
(0070) {
(0071)  //stop errant interrupts until set up
(0072)  CLI(); //disable all interrupts
_init_devices:
    0092 94F8      BCLR	7
(0073)  XDIV  = 0x00; //xtal divider
    0093 2422      CLR	R2
    0094 BE2C      OUT	0x3C,R2
(0074)  XMCRA = 0x00; //external memory
    0095 9220006D  STS	0x6D,R2
(0075)  port_init();
    0097 DFE6      RCALL	_port_init
(0076) //adc_init();
(0077) uart1_init();
    0098 D00D      RCALL	_uart1_init
(0078) 
(0079)  MCUCR = 0x00;
    0099 2422      CLR	R2
    009A BE25      OUT	0x35,R2
(0080)  EICRA = 0x0A; //extended ext ints
    009B E08A      LDI	R24,0xA
    009C 9380006A  STS	0x6A,R24
(0081)  EICRB = 0x00; //extended ext ints
    009E BE2A      OUT	0x3A,R2
(0082)  EIMSK = 0x03;
    009F E083      LDI	R24,3
    00A0 BF89      OUT	0x39,R24
(0083)  //TIMSK = 0x40; //timer interrupt sources
(0084)  TIMSK = 0x00;
    00A1 BE27      OUT	0x37,R2
(0085)  ETIMSK = 0x00; //extended timer interrupt sources
    00A2 9220007D  STS	0x7D,R2
(0086)  SEI(); //re-enable interrupts
    00A4 9478      BSET	7
    00A5 9508      RET
(0087)  //all peripherals are now initialized
(0088) }
(0089) //UART1 initialize
(0090) // desired baud rate:19200
(0091) // actual baud rate:19231 (0.2%)
(0092) void uart1_init(void)
(0093) {
(0094)  UCSR1B = 0x00; //disable while setting baud rate
_uart1_init:
    00A6 2422      CLR	R2
    00A7 9220009A  STS	0x9A,R2
(0095)  UCSR1A = 0x00;
    00A9 9220009B  STS	0x9B,R2
(0096)  UCSR1C = 0x06;
    00AB E086      LDI	R24,6
    00AC 9380009D  STS	0x9D,R24
(0097)  UBRR1L = 0x40; //set baud rate lo
    00AE E480      LDI	R24,0x40
    00AF 93800099  STS	0x99,R24
(0098)  UBRR1H = 0x00; //set baud rate hi
    00B1 92200098  STS	0x98,R2
(0099)  UCSR1B = 0x98;
    00B3 E988      LDI	R24,0x98
    00B4 9380009A  STS	0x9A,R24
    00B6 9508      RET
_uart1_rx_isr:
    00B7 920A      ST	R0,-Y
    00B8 921A      ST	R1,-Y
    00B9 922A      ST	R2,-Y
    00BA 923A      ST	R3,-Y
    00BB 924A      ST	R4,-Y
    00BC 925A      ST	R5,-Y
    00BD 930A      ST	R16,-Y
    00BE 931A      ST	R17,-Y
    00BF 932A      ST	R18,-Y
    00C0 933A      ST	R19,-Y
    00C1 938A      ST	R24,-Y
    00C2 939A      ST	R25,-Y
    00C3 93EA      ST	R30,-Y
    00C4 93FA      ST	R31,-Y
    00C5 B60F      IN	R0,0x3F
    00C6 920A      ST	R0,-Y
    00C7 940E06BC  CALL	push_gset2
(0100) }
(0101) 
(0102) #pragma interrupt_handler uart1_rx_isr:31
(0103) //cir+00100
(0104) void uart1_rx_isr(void)
(0105) {
(0106)  //uart has received a character in UDR
(0107)  if (all==CIR)
    00C9 91800114  LDS	R24,all
    00CB 3081      CPI	R24,1
    00CC F009      BEQ	0x00CE
    00CD C0B8      RJMP	0x0186
(0108)  	{
(0109) 	   a=b;
    00CE 90200116  LDS	R2,b
    00D0 92200115  STS	a,R2
(0110) 	   b=c;
    00D2 90200117  LDS	R2,c
    00D4 92200116  STS	b,R2
(0111) 	   c=d;
    00D6 90200118  LDS	R2,d
    00D8 92200117  STS	c,R2
(0112) 	   d=e;
    00DA 90200119  LDS	R2,e
    00DC 92200118  STS	d,R2
(0113) 	   e=f;
    00DE 9020011A  LDS	R2,f
    00E0 92200119  STS	e,R2
(0114) 	   f=UDR1;
    00E2 9020009C  LDS	R2,0x9C
    00E4 9220011A  STS	f,R2
(0115) 	   if ((f<'0')||(f>'9'))return;
    00E6 2D82      MOV	R24,R2
    00E7 3380      CPI	R24,0x30
    00E8 F018      BCS	0x00EC
    00E9 E389      LDI	R24,0x39
    00EA 1582      CP	R24,R2
    00EB F408      BCC	0x00ED
    00EC C1D9      RJMP	0x02C6
(0116) 	   if (a=='+')//0x2b
    00ED 91800115  LDS	R24,a
    00EF 328B      CPI	R24,0x2B
    00F0 F009      BEQ	0x00F2
    00F1 C041      RJMP	0x0133
(0117) 	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
    00F2 91200117  LDS	R18,c
    00F4 2733      CLR	R19
    00F5 EE08      LDI	R16,0xE8
    00F6 E013      LDI	R17,3
    00F7 940E06A0  CALL	empy16s
    00F9 01C8      MOVW	R24,R16
    00FA 5880      SUBI	R24,0x80
    00FB 4B9B      SBCI	R25,0xBB
    00FC 91200116  LDS	R18,b
    00FE 2733      CLR	R19
    00FF E100      LDI	R16,0x10
    0100 E217      LDI	R17,0x27
    0101 940E06A0  CALL	empy16s
    0103 01F8      MOVW	R30,R16
    0104 50E0      SUBI	R30,0
    0105 45F3      SBCI	R31,0x53
    0106 0FE8      ADD	R30,R24
    0107 1FF9      ADC	R31,R25
    0108 90200118  LDS	R2,d
    010A E684      LDI	R24,0x64
    010B 9D82      MUL	R24,R2
    010C 01C0      MOVW	R24,R0
    010D 5C80      SUBI	R24,0xC0
    010E 4192      SBCI	R25,0x12
    010F 0FE8      ADD	R30,R24
    0110 1FF9      ADC	R31,R25
    0111 90200119  LDS	R2,e
    0113 E08A      LDI	R24,0xA
    0114 9D82      MUL	R24,R2
    0115 01C0      MOVW	R24,R0
    0116 5E80      SUBI	R24,0xE0
    0117 4091      SBCI	R25,1
    0118 0FE8      ADD	R30,R24
    0119 1FF9      ADC	R31,R25
    011A 9180011A  LDS	R24,f
    011C 2799      CLR	R25
    011D 97C0      SBIW	R24,0x30
    011E 0FE8      ADD	R30,R24
    011F 1FF9      ADC	R31,R25
    0120 011F      MOVW	R2,R30
    0121 2444      CLR	R4
    0122 FC37      SBRC	R3,7
    0123 9440      COM	R4
    0124 2455      CLR	R5
    0125 FC47      SBRC	R4,7
    0126 9450      COM	R5
    0127 9230011C  STS	jiaodu+1,R3
    0129 9220011B  STS	jiaodu,R2
    012B 9250011E  STS	jiaodu+3,R5
    012D 9240011D  STS	jiaodu+2,R4
(0118) 		   all=0;return;}
    012F 2422      CLR	R2
    0130 92200114  STS	all,R2
    0132 C193      RJMP	0x02C6
(0119) 	   else if (a=='-')//0x2d
    0133 91800115  LDS	R24,a
    0135 328D      CPI	R24,0x2D
    0136 F009      BEQ	0x0138
    0137 C045      RJMP	0x017D
(0120) 	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
    0138 91200117  LDS	R18,c
    013A 2733      CLR	R19
    013B EE08      LDI	R16,0xE8
    013C E013      LDI	R17,3
    013D 940E06A0  CALL	empy16s
    013F 01C8      MOVW	R24,R16
    0140 5880      SUBI	R24,0x80
    0141 4B9B      SBCI	R25,0xBB
    0142 91200116  LDS	R18,b
    0144 2733      CLR	R19
    0145 E100      LDI	R16,0x10
    0146 E217      LDI	R17,0x27
    0147 940E06A0  CALL	empy16s
    0149 01F8      MOVW	R30,R16
    014A 50E0      SUBI	R30,0
    014B 45F3      SBCI	R31,0x53
    014C 0FE8      ADD	R30,R24
    014D 1FF9      ADC	R31,R25
    014E 90200118  LDS	R2,d
    0150 E684      LDI	R24,0x64
    0151 9D82      MUL	R24,R2
    0152 01C0      MOVW	R24,R0
    0153 5C80      SUBI	R24,0xC0
    0154 4192      SBCI	R25,0x12
    0155 0FE8      ADD	R30,R24
    0156 1FF9      ADC	R31,R25
    0157 90200119  LDS	R2,e
    0159 E08A      LDI	R24,0xA
    015A 9D82      MUL	R24,R2
    015B 01C0      MOVW	R24,R0
    015C 5E80      SUBI	R24,0xE0
    015D 4091      SBCI	R25,1
    015E 0FE8      ADD	R30,R24
    015F 1FF9      ADC	R31,R25
    0160 9180011A  LDS	R24,f
    0162 2799      CLR	R25
    0163 97C0      SBIW	R24,0x30
    0164 0FE8      ADD	R30,R24
    0165 1FF9      ADC	R31,R25
    0166 95E0      COM	R30
    0167 95F0      COM	R31
    0168 5FEF      SUBI	R30,0xFF
    0169 4FFF      SBCI	R31,0xFF
    016A 011F      MOVW	R2,R30
    016B 2444      CLR	R4
    016C FC37      SBRC	R3,7
    016D 9440      COM	R4
    016E 2455      CLR	R5
    016F FC47      SBRC	R4,7
    0170 9450      COM	R5
    0171 9230011C  STS	jiaodu+1,R3
    0173 9220011B  STS	jiaodu,R2
    0175 9250011E  STS	jiaodu+3,R5
    0177 9240011D  STS	jiaodu+2,R4
(0121) 		   all=0;return;}
    0179 2422      CLR	R2
    017A 92200114  STS	all,R2
    017C C149      RJMP	0x02C6
(0122) 	   if (a!=0) {all=0;return;}
    017D 90200115  LDS	R2,a
    017F 2022      TST	R2
    0180 F409      BNE	0x0182
    0181 C144      RJMP	0x02C6
    0182 2422      CLR	R2
    0183 92200114  STS	all,R2
    0185 C140      RJMP	0x02C6
(0123) 	     //PORTF=jiaodu;//while(1);
(0124) 	}
(0125)  else if (all==LINE)
    0186 91800114  LDS	R24,all
    0188 3082      CPI	R24,2
    0189 F009      BEQ	0x018B
    018A C0B8      RJMP	0x0243
(0126)  	{
(0127) 	   a=b;
    018B 90200116  LDS	R2,b
    018D 92200115  STS	a,R2
(0128) 	   b=c;
    018F 90200117  LDS	R2,c
    0191 92200116  STS	b,R2
(0129) 	   c=d;
    0193 90200118  LDS	R2,d
    0195 92200117  STS	c,R2
(0130) 	   d=e;
    0197 90200119  LDS	R2,e
    0199 92200118  STS	d,R2
(0131) 	   e=f;
    019B 9020011A  LDS	R2,f
    019D 92200119  STS	e,R2
(0132) 	   f=UDR1;
    019F 9020009C  LDS	R2,0x9C
    01A1 9220011A  STS	f,R2
(0133) 	   if ((f<'0')||(f>'9'))return;
    01A3 2D82      MOV	R24,R2
    01A4 3380      CPI	R24,0x30
    01A5 F018      BCS	0x01A9
    01A6 E389      LDI	R24,0x39
    01A7 1582      CP	R24,R2
    01A8 F408      BCC	0x01AA
    01A9 C11C      RJMP	0x02C6
(0134) 	   if (a=='+')
    01AA 91800115  LDS	R24,a
    01AC 328B      CPI	R24,0x2B
    01AD F009      BEQ	0x01AF
    01AE C041      RJMP	0x01F0
(0135) 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
    01AF 91200117  LDS	R18,c
    01B1 2733      CLR	R19
    01B2 EE08      LDI	R16,0xE8
    01B3 E013      LDI	R17,3
    01B4 940E06A0  CALL	empy16s
    01B6 01C8      MOVW	R24,R16
    01B7 5880      SUBI	R24,0x80
    01B8 4B9B      SBCI	R25,0xBB
    01B9 91200116  LDS	R18,b
    01BB 2733      CLR	R19
    01BC E100      LDI	R16,0x10
    01BD E217      LDI	R17,0x27
    01BE 940E06A0  CALL	empy16s
    01C0 01F8      MOVW	R30,R16
    01C1 50E0      SUBI	R30,0
    01C2 45F3      SBCI	R31,0x53
    01C3 0FE8      ADD	R30,R24
    01C4 1FF9      ADC	R31,R25
    01C5 90200118  LDS	R2,d
    01C7 E684      LDI	R24,0x64
    01C8 9D82      MUL	R24,R2
    01C9 01C0      MOVW	R24,R0
    01CA 5C80      SUBI	R24,0xC0
    01CB 4192      SBCI	R25,0x12
    01CC 0FE8      ADD	R30,R24
    01CD 1FF9      ADC	R31,R25
    01CE 90200119  LDS	R2,e
    01D0 E08A      LDI	R24,0xA
    01D1 9D82      MUL	R24,R2
    01D2 01C0      MOVW	R24,R0
    01D3 5E80      SUBI	R24,0xE0
    01D4 4091      SBCI	R25,1
    01D5 0FE8      ADD	R30,R24
    01D6 1FF9      ADC	R31,R25
    01D7 9180011A  LDS	R24,f
    01D9 2799      CLR	R25
    01DA 97C0      SBIW	R24,0x30
    01DB 0FE8      ADD	R30,R24
    01DC 1FF9      ADC	R31,R25
    01DD 011F      MOVW	R2,R30
    01DE 2444      CLR	R4
    01DF FC37      SBRC	R3,7
    01E0 9440      COM	R4
    01E1 2455      CLR	R5
    01E2 FC47      SBRC	R4,7
    01E3 9450      COM	R5
    01E4 92300120  STS	juli+1,R3
    01E6 9220011F  STS	juli,R2
    01E8 92500122  STS	juli+3,R5
    01EA 92400121  STS	juli+2,R4
(0136) 		   all=0;return;}
    01EC 2422      CLR	R2
    01ED 92200114  STS	all,R2
    01EF C0D6      RJMP	0x02C6
(0137) 	   else if (a=='-')
    01F0 91800115  LDS	R24,a
    01F2 328D      CPI	R24,0x2D
    01F3 F009      BEQ	0x01F5
    01F4 C045      RJMP	0x023A
(0138) 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
    01F5 91200117  LDS	R18,c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -