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

📄 avr_usb.lst

📁 D12固件程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
__text_start:
__start:
    0048 E5CF      LDI	R28,0x5F
    0049 E0D2      LDI	R29,2
    004A BFCD      OUT	0x3D,R28
    004B BFDE      OUT	0x3E,R29
    004C 51C0      SUBI	R28,0x10
    004D 40D0      SBCI	R29,0
    004E EA0A      LDI	R16,0xAA
    004F 8308      STD	Y+0,R16
    0050 2400      CLR	R0
    0051 E8E2      LDI	R30,0x82
    0052 E0F0      LDI	R31,0
    0053 E010      LDI	R17,0
    0054 3CE8      CPI	R30,0xC8
    0055 07F1      CPC	R31,R17
    0056 F011      BEQ	0x0059
    0057 9201      ST	R0,Z+
    0058 CFFB      RJMP	0x0054
    0059 8300      STD	Z+0,R16
    005A E6EE      LDI	R30,0x6E
    005B E0F0      LDI	R31,0
    005C E6A0      LDI	R26,0x60
    005D E0B0      LDI	R27,0
    005E E010      LDI	R17,0
    005F 39E0      CPI	R30,0x90
    0060 07F1      CPC	R31,R17
    0061 F021      BEQ	0x0066
    0062 95C8      LPM
    0063 9631      ADIW	R30,1
    0064 920D      ST	R0,X+
    0065 CFF9      RJMP	0x005F
    0066 D001      RCALL	_main
_exit:
    0067 CFFF      RJMP	_exit
FILE: G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\Mainloop.c
(0001) #include "io8515v.h"
(0002) #include <macros.h>
(0003) 
(0004) #include "d12head.h"
(0005) 
(0006) #pragma interrupt_handler D12_int:2
(0007) 
(0008) int shu[3];
(0009) int o=1;
(0010) int u;
(0011) 
(0012) /*薛注释,how to use interrupt in iccavr:
(0013) #pragma interrupt_handler timer:4 timer:5
(0014) 中断向量4 和5 都指向中断处理函数timer( )
(0015) */
(0016) 
(0017) void main(void)
(0018) {
(0019) 	unsigned char i=0,j,xue;
_main:
  xue                  --> Y+1
  j                    --> Y+1
  i                    --> R16
  m                    --> R16
    0068 2700      CLR	R16
(0020) 	int m=0;
    0069 2711      CLR	R17
(0021) 	
(0022) 	SPL = 0x5f;
    006A E58F      LDI	R24,0x5F
    006B BF8D      OUT	0x3D,R24
(0023) 	SPH = 0x02;
    006C E082      LDI	R24,2
    006D BF8E      OUT	0x3E,R24
(0024) 	
(0025) 	PORTC = 0xff;
    006E EF8F      LDI	R24,0xFF
    006F BB85      OUT	0x15,R24
(0026) 	DDRC  = 0xff;//保持状态
    0070 BB84      OUT	0x14,R24
(0027) 	
(0028) 	//先CPLD复位(PD.4),然后FIFO复位(PB.6),接着使能时钟(PB.7),
(0029) 	//最后开始积分命令(PB.2)!
(0030) 	////DDRB = 0xfc;   //11111100
(0031) 	////PORTB = 0xbc;     //10111100//FIFO复位//不使能时钟
(0032) 	
(0033)     DDRA  = 0xff; //关闭上拉电阻,使正确读写外部SRAM
    0071 BB8A      OUT	0x1A,R24
(0034) 	GIMSK = 0x00;
    0072 2422      CLR	R2
    0073 BE2B      OUT	0x3B,R2
(0035) 	MCUCR = 0xc4;//asm("OUT 0x35,R20"); 1100 0100 中断0设置为低电平触发
    0074 EC84      LDI	R24,0xC4
    0075 BF85      OUT	0x35,R24
(0036) 	
(0037) 	UCR  = 0x00;    //设置fifoPD1
    0076 B82A      OUT	0x0A,R2
(0038) 	DDRD=0xfb;
    0077 EF8B      LDI	R24,0xFB
    0078 BB81      OUT	0x11,R24
(0039) 	PORTD=0xdd;
    0079 ED8D      LDI	R24,0xDD
    007A BB82      OUT	0x12,R24
(0040) 	for(m=0;m<6;m++)
(0041) 	cwait1;
    007B 0000      NOP
    007C 5F0F      SUBI	R16,0xFF
    007D 4F1F      SBCI	R17,0xFF
    007E 3006      CPI	R16,6
    007F E0E0      LDI	R30,0
    0080 071E      CPC	R17,R30
    0081 F3CC      BLT	0x007B
    0082 0000      NOP
(0042) 	PORTD=0xdf;
    0083 ED8F      LDI	R24,0xDF
    0084 BB82      OUT	0x12,R24
(0043) 	
(0044) 	DDRB=0x00;
    0085 2422      CLR	R2
    0086 BA27      OUT	0x17,R2
(0045) 	DDRC  = 0x00;
    0087 BA24      OUT	0x14,R2
(0046) 	D12_COMMAND = 0xf3;
    0088 EF83      LDI	R24,0xF3
    0089 93807F01  STS	0x7F01,R24
(0047) 	cwait;
    008B 0000      NOP
(0048) 	D12_DATA = 0x06;//设置模式0
    008C E086      LDI	R24,6
    008D 93807F00  STS	0x7F00,R24
(0049) 	cwait;
    008F 0000      NOP
(0050) 	///D12_COMMAND = 0xd0;
(0051) 	///cwait;
(0052) 	///D12_DATA = 0x80;//设置地址 0 使能
(0053) 	///cwait;
(0054) 	D12_COMMAND = 0xf3;//连接主机
    0090 EF83      LDI	R24,0xF3
    0091 93807F01  STS	0x7F01,R24
(0055) 	cwait;
    0093 0000      NOP
(0056) 	D12_DATA = 0x16;//16
    0094 E186      LDI	R24,0x16
    0095 93807F00  STS	0x7F00,R24
(0057) 	cwait;
    0097 0000      NOP
(0058) 	D12_DATA = 0x05;//初始化频率 8MHz
    0098 E085      LDI	R24,5
    0099 93807F00  STS	0x7F00,R24
(0059) 	csram;
    009B 9360FC01  STS	0xFC01,R22
(0060) 	
(0061) 	SREG = 0x80;//全局中断使能
    009D E880      LDI	R24,0x80
    009E BF8F      OUT	0x3F,R24
(0062) 	GIMSK = 0x40;
    009F E480      LDI	R24,0x40
    00A0 BF8B      OUT	0x3B,R24
(0063) 	//TCNT0 = 0x85;
(0064) 	//TIMSK = 0x02; //启动计时器0中断
(0065) 	
(0066) 	TCCR1B = 0xc0;//启动ICP上升沿出入捕获
    00A1 EC80      LDI	R24,0xC0
    00A2 BD8E      OUT	0x2E,R24
(0067) 	
(0068) 	//UCR  = 0x00; //disable while setting baud rate
(0069) 	//UBRR = 25; //set baud rate 19.2K 波特率
(0070) 	//UCR  = 0x1d; //enable 0001 1101
(0071) 	
(0072) 	
(0073) 	
(0074) 		
(0075) 	
(0076) 	while(1)
    00A3 CFFF      RJMP	0x00A3
(0077) 	{
(0078) /*		if(bconfig==1)
(0079) 		{
(0080) 			
(0081) 			if(o==1)
(0082) 			{
(0083) 				o=0;
(0084) 				D12_COMMAND=0x05;
(0085) 				D12_COMMAND=0xf0;
(0086) 				D12_DATA=0;
(0087) 				D12_DATA=64;
(0088) 				D12_DATA=0xaa;
(0089) 				D12_DATA=0xcc;
(0090) 				D12_DATA=0xee;
(0091) 				D12_DATA=0xff;
(0092) 				for( u=0;u<60;u++)
(0093) 					D12_DATA=u;
(0094) 				D12_COMMAND=0xfa;
(0095) 			}
(0096) 		}
(0097) 		
(0098) */		
(0099) 		
(0100) 		
(0101) 	}	
(0102) 	
(0103) 	
(0104) 	
(0105) 	
(0106) }
    00A4 9508      RET
FILE: G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\18B20.C
(0001) #include <io8515v.h>
(0002) #include <macros.h>
(0003) #include "d12head.h"
(0004) 
(0005) #define TEMPTPORT  PORTB
(0006) #define TEMPTDDR   DDRB
(0007) #define TEMPTPIN   PINB   
(0008) #define TEMPTNUM   0     //定义B0口为18b20 
(0009) 
(0010) 
(0011) void wendu (void)
(0012) {
(0013) ///	converT_command();
(0014) ///	readT_command();
(0015) }
_wendu:
    00A5 9508      RET
FILE: G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
(0001) #include "io8515v.h"
(0002) #include "d12head.h"
(0003) 
(0004) FLASH_STRUCT Mflash;
(0005) 
(0006) unsigned char Fifo1_Flag = 0x00;
(0007) unsigned char Fifo2_Flag = 0x00;
(0008) unsigned int  Pixel_Count = 0x00;
(0009) 
(0010) void flashRead(void)
(0011) {
(0012)     unsigned char ch;
(0013) 	unsigned char i,j;
(0014) 	ch=PINB;
_flashRead:
  j                    --> Y+1
  ch                   --> R18
  i                    --> R16
    00A6 B326      IN	R18,0x16
(0015) 	D12_DATA = 64;
    00A7 E480      LDI	R24,0x40
    00A8 93807F00  STS	0x7F00,R24
(0016) 	
(0017) 	if(ch&0x01)//fifo1
    00AA FF20      SBRS	R18,0
    00AB C069      RJMP	0x0115
(0018) 	{
(0019) 		if(Fifo1_Flag==0x00)
    00AC 90200062  LDS	R2,0x62
    00AE 2022      TST	R2
    00AF F551      BNE	0x00DA
(0020) 		{
(0021) 			D12_DATA=FIRST_CMD;
    00B0 EA8A      LDI	R24,0xAA
    00B1 93807F00  STS	0x7F00,R24
(0022) 			D12_DATA=SECOND_CMD;
    00B3 E585      LDI	R24,0x55
    00B4 93807F00  STS	0x7F00,R24
(0023) 			D12_DATA=THIRD_CMD;
    00B6 EE8B      LDI	R24,0xEB
    00B7 93807F00  STS	0x7F00,R24
(0024) 			D12_DATA=FOURTH_CMD;
    00B9 E980      LDI	R24,0x90
    00BA 93807F00  STS	0x7F00,R24
(0025) 			Fifo1_Flag=0x01;
    00BC E081      LDI	R24,1
    00BD 93800062  STS	0x62,R24
(0026) 			Fifo2_Flag=0x00;
    00BF 2422      CLR	R2
    00C0 92200063  STS	0x63,R2
(0027) 			Pixel_Count=0x00;
    00C2 2433      CLR	R3
    00C3 92300065  STS	0x65,R3
    00C5 92200064  STS	0x64,R2
(0028) 			for(i=0;i<60;i++)
    00C7 2700      CLR	R16
    00C8 C00E      RJMP	0x00D7
(0029) 			{
(0030) 				D12_DATA=fifo1;
    00C9 9020BF00  LDS	R2,0xBF00
    00CB 92207F00  STS	0x7F00,R2
(0031) 				Pixel_Count++;
    00CD 91800064  LDS	R24,0x64
    00CF 91900065  LDS	R25,0x65
    00D1 9601      ADIW	R24,1
    00D2 93900065  STS	0x65,R25
    00D4 93800064  STS	0x64,R24
    00D6 9503      INC	R16
    00D7 330C      CPI	R16,0x3C
    00D8 F380      BCS	0x00C9
(0032) 			}	
(0033) 			
(0034) 		}
    00D9 C0B2      RJMP	0x018C
(0035) 		else if (Fifo1_Flag==0x01)
    00DA 91800062  LDS	R24,0x62
    00DC 3081      CPI	R24,1
    00DD F549      BNE	0x0107
(0036) 		{
(0037) 			for(i=0;i<64;i++)
    00DE 2700      CLR	R16
    00DF C024      RJMP	0x0104
(0038) 			{
(0039) 				D12_DATA=fifo1;
    00E0 9020BF00  LDS	R2,0xBF00
    00E2 92207F00  STS	0x7F00,R2
(0040) 				Pixel_Count++;
    00E4 91800064  LDS	R24,0x64
    00E6 91900065  LDS	R25,0x65
    00E8 9601      ADIW	R24,1
    00E9 93900065  STS	0x65,R25
    00EB 93800064  STS	0x64,R24
(0041) 				if(Pixel_Count==2048)
    00ED 3080      CPI	R24,0
    00EE E0E8      LDI	R30,0x8
    00EF 079E      CPC	R25,R30
    00F0 F491      BNE	0x0103
(0042) 				{
(0043) 					Fifo1_Flag=0x02;
    00F1 E082      LDI	R24,2
    00F2 93800062  STS	0x62,R24
(0044) 					Pixel_Count=0x00;				
    00F4 2422      CLR	R2
    00F5 2433      CLR	R3
    00F6 92300065  STS	0x65,R3
    00F8 92200064  STS	0x64,R2
(0045) 					for(i=0;i<60;i++)
    00FA 2700      CLR	R16
    00FB C004      RJMP	0x0100
(0046) 					{
(0047) 						D12_DATA=0x00;
    00FC 2422      CLR	R2
    00FD 92207F00  STS	0x7F00,R2
    00FF 9503      INC	R16
    0100 330C      CPI	R16,0x3C
    0101 F3D0      BCS	0x00FC
(0048) 					}
(0049) 					break;
    0102 C089      RJMP	0x018C
    0103 9503      INC	R16
    0104 3400      CPI	R16,0x40
    0105 F2D0      BCS	0x00E0
(0050) 				}
(0051) 			}			
(0052) 		}
    0106 C085      RJMP	0x018C
(0053) 		else if (Fifo1_Flag==0x02)
    0107 91800062  LDS	R24,0x62
    0109 3082      CPI	R24,2
    010A F009      BEQ	0x010C
    010B C080      RJMP	0x018C
(0054) 		{			
(0055) 			for(i=0;i<64;i++)
    010C 2700      CLR	R16
    010D C004      RJMP	0x0112
(0056) 			{
(0057) 				D12_DATA=0x00;	
    010E 2422      CLR	R2
    010F 92207F00  STS	0x7F00,R2
    0111 9503      INC	R16
    0112 3400      CPI	R16,0x40
    0113 F3D0      BCS	0x010E
(0058) 			}				
(0059) 		}		
(0060) 	}
    0114 C077      RJMP	0x018C
(0061) 	else if(ch&0x02)//fifo2
    0115 FF21      SBRS	R18,1
    0116 C068      RJMP	0x017F
(0062) 	{
(0063) 		if(Fifo2_Flag==0x00)
    0117 90200063  LDS	R2,0x63
    0119 2022      TST	R2
    011A F551      BNE	0x0145
(0064) 		{
(0065) 			D12_DATA=FIRST_CMD;
    011B EA8A      LDI	R24,0xAA
    011C 93807F00  STS	0x7F00,R24
(0066) 			D12_DATA=SECOND_CMD;
    011E E585      LDI	R24,0x55
    011F 93807F00  STS	0x7F00,R24
(0067) 			D12_DATA=THIRD_CMD;
    0121 EE8B      LDI	R24,0xEB
    0122 93807F00  STS	0x7F00,R24
(0068) 			D12_DATA=FOURTH_CMD;
    0124 E980      LDI	R24,0x90
    0125 93807F00  STS	0x7F00,R24
(0069) 			Fifo1_Flag=0x00;
    0127 2422      CLR	R2
    0128 92200062  STS	0x62,R2
(0070) 			Fifo2_Flag=0x01;
    012A E081      LDI	R24,1
    012B 93800063  STS	0x63,R24
(0071) 			Pixel_Count=0x00;				
    012D 2433      CLR	R3
    012E 92300065  STS	0x65,R3
    0130 92200064  STS	0x64,R2
(0072) 			for(i=0;i<60;i++)
    0132 2700      CLR	R16
    0133 C00E      RJMP	0x0142
(0073) 			{
(0074) 				D12_DATA=fifo2;
    0134 9020DF00  LDS	R2,0xDF00
    0136 92207F00  STS	0x7F00,R2
(0075) 				Pixel_Count++;
    0138 91800064  LDS	R24,0x64
    013A 91900065  LDS	R25,0x65
    013C 9601      ADIW	R24,1
    013D 93900065  STS	0x65,R25
    013F 93800064  STS	0x64,R24
    0141 9503      INC	R16
    0142 330C      CPI	R16,0x3C
    0143 F380      BCS	0x0134
(0076) 			}			
(0077) 		}
    0144 C047      RJMP	0x018C
(0078) 		else if(Fifo2_Flag==0x01)
    0145 91800063  LDS	R24,0x63
    0147 3081      CPI	R24,1
    0148 F549      BNE	0x0172
(0079) 		{
(0080) 			for(i=0;i<64;i++)
    0149 2700      CLR	R16
    014A C024      RJMP	0x016F
(0081) 			{
(0082) 				D12_DATA=fifo2;
    014B 9020DF00  LDS	R2,0xDF00
    014D 92207F00  STS	0x7F00,R2
(0083) 				Pixel_Count++;
    014F 91800064  LDS	R24,0x64
    0151 91900065  LDS	R25,0x65
    0153 9601      ADIW	R24,1
    0154 93900065  STS	0x65,R25
    0156 93800064  STS	0x64,R24
(0084) 				if(Pixel_Count==2048)
    0158 3080      CPI	R24,0
    0159 E0E8      LDI	R30,0x8
    015A 079E      CPC	R25,R30
    015B F491      BNE	0x016E
(0085) 				{
(0086) 					Fifo2_Flag=0x02;

⌨️ 快捷键说明

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