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

📄 app.lst

📁 用于单白色144颗LED8段追光
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    00D3 EDCF      LDI	R28,0xDF
    00D4 E0D0      LDI	R29,0
    00D5 BFCD      OUT	0x3D,R28
    00D6 BFDE      OUT	0x3E,R29
    00D7 51C0      SUBI	R28,0x10
    00D8 40D0      SBCI	R29,0
    00D9 EA0A      LDI	R16,0xAA
    00DA 8308      STD	Y+0,R16
    00DB 2400      CLR	R0
    00DC E9E0      LDI	R30,0x90
    00DD E0F0      LDI	R31,0
    00DE E010      LDI	R17,0
    00DF 39E1      CPI	R30,0x91
    00E0 07F1      CPC	R31,R17
    00E1 F011      BEQ	0x00E4
    00E2 9201      ST	R0,Z+
    00E3 CFFB      RJMP	0x00DF
    00E4 8300      STD	Z+0,R16
    00E5 E7E6      LDI	R30,0x76
    00E6 E0F1      LDI	R31,1
    00E7 E6A0      LDI	R26,0x60
    00E8 E0B0      LDI	R27,0
    00E9 E011      LDI	R17,1
    00EA 3AE6      CPI	R30,0xA6
    00EB 07F1      CPC	R31,R17
    00EC F021      BEQ	0x00F1
    00ED 95C8      LPM
    00EE 9631      ADIW	R30,1
    00EF 920D      ST	R0,X+
    00F0 CFF9      RJMP	0x00EA
    00F1 D001      RCALL	_main
_exit:
    00F2 CFFF      RJMP	_exit
FILE: D:\单片机程序\AVR\LSAVR~1\LBT-FC8B暴光管TEST\APP.c
(0001) 
(0002) //ICC-AVR application builder : 2006-1-5 
(0003) //Target : ATtiny2313
(0004) // Crystal: 7.3728Mhz
(0005) #include <iot2313v.h>
(0006) #include <macros.h>
(0007) typedef unsigned char uchar;
(0008) typedef unsigned int  uint;
(0009) #define CLK  PORTD3
(0010) #define DA   PORTD4
(0011) #define RCK  PORTD5
(0012) #define EN   PORTD6
(0013) static uchar  fg_rin;
(0014) static uchar  redata[48]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
(0015) //********************************
(0016) const uchar  table[16]=
(0017) {
(0018) //0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
(0019) 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0020) };
(0021) //**********************************
(0022) const uchar  table1[24][8]=
(0023) {
(0024) //**********************************
(0025) 0x44,0x44,0x44,0x41,0x14,0x44,0x44,0x44,
(0026) 0x44,0x44,0x44,0x11,0x11,0x44,0x44,0x44,
(0027) 0x44,0x44,0x41,0x11,0x11,0x14,0x44,0x44,
(0028) 0x44,0x44,0x11,0x11,0x11,0x11,0x44,0x44,
(0029) 0x44,0x41,0x11,0x11,0x11,0x11,0x14,0x44,
(0030) 0x44,0x11,0x11,0x11,0x11,0x11,0x11,0x44,
(0031) 0x41,0x11,0x11,0x11,0x11,0x11,0x11,0x14,
(0032) 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
(0033) //**************************************
(0034) 0x11,0x11,0x11,0x12,0x21,0x11,0x11,0x11,
(0035) 0x11,0x11,0x11,0x22,0x22,0x11,0x11,0x11,
(0036) 0x11,0x11,0x12,0x22,0x22,0x21,0x11,0x11,
(0037) 0x11,0x11,0x22,0x22,0x22,0x22,0x11,0x11,
(0038) 0x11,0x12,0x22,0x22,0x22,0x22,0x21,0x11,
(0039) 0x11,0x22,0x22,0x22,0x22,0x22,0x22,0x11,
(0040) 0x12,0x22,0x22,0x22,0x22,0x22,0x22,0x21,
(0041) 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
(0042) //************************************
(0043) 0x22,0x22,0x22,0x24,0x42,0x22,0x22,0x22,
(0044) 0x22,0x22,0x22,0x44,0x44,0x22,0x22,0x22,
(0045) 0x22,0x22,0x24,0x44,0x44,0x42,0x22,0x22,
(0046) 0x22,0x22,0x44,0x44,0x44,0x44,0x22,0x22,
(0047) 0x22,0x24,0x44,0x44,0x44,0x44,0x42,0x22,
(0048) 0x22,0x44,0x44,0x44,0x44,0x44,0x44,0x22,
(0049) 0x24,0x44,0x44,0x44,0x44,0x44,0x44,0x42,
(0050) 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
(0051) //***********************************
(0052) 
(0053) };
(0054) //***************************
(0055) const uchar  table2[16][8]=
(0056) {
(0057) 0x11,0x11,0x22,0x22,0x55,0x55,0x44,0x44,
(0058) 0x11,0x12,0x22,0x25,0x55,0x54,0x44,0x41,
(0059) 0x11,0x22,0x22,0x55,0x55,0x44,0x44,0x11,
(0060) 0x12,0x22,0x25,0x55,0x54,0x44,0x41,0x11,
(0061) 0x22,0x22,0x55,0x55,0x44,0x44,0x11,0x11,
(0062) 0x22,0x25,0x55,0x54,0x44,0x41,0x11,0x12,
(0063) 0x22,0x55,0x55,0x44,0x44,0x11,0x11,0x22,
(0064) 0x25,0x55,0x54,0x44,0x41,0x11,0x12,0x22,
(0065) 0x55,0x55,0x44,0x44,0x11,0x11,0x22,0x22,
(0066) 0x55,0x54,0x44,0x41,0x11,0x12,0x22,0x25,
(0067) 0x55,0x44,0x44,0x11,0x11,0x22,0x22,0x55,
(0068) 0x54,0x44,0x41,0x11,0x12,0x22,0x25,0x55,
(0069) 0x44,0x44,0x11,0x11,0x22,0x22,0x55,0x55,
(0070) 0x44,0x41,0x11,0x12,0x22,0x25,0x55,0x54,
(0071) 0x44,0x11,0x11,0x22,0x22,0x55,0x55,0x44,
(0072) 0x41,0x11,0x12,0x22,0x25,0x55,0x54,0x44,
(0073) };
(0074) //========函数定义
(0075) void port_init(void);
(0076) void watchdog_init(void);
(0077) void uart0_init(void);
(0078) void delay(uchar count );
(0079) void init_devices(void);
(0080) void send(void);
(0081) /************************
(0082) **Main  Program
(0083) **************************/
(0084) void main(void)
(0085) {
(0086)  signed n;
(0087)  uchar i,j,word,temp;
(0088)  uchar *redata_addr;
(0089)  const uchar *paddr;
(0090)  //****************
(0091)  init_devices(); 
_main:
  paddr                --> Y+1
  redata_addr          --> Y+1
  temp                 --> Y+1
  word                 --> Y+1
  j                    --> Y+1
  i                    --> R20
  n                    --> R22
    00F3 D09A      RCALL	_init_devices
(0092)  delay(5);
    00F4 E005      LDI	R16,5
    00F5 D0A0      RCALL	_delay
(0093)  fg_rin=0;
    00F6 2422      CLR	R2
    00F7 92200090  STS	0x90,R2
    00F9 C044      RJMP	0x013E
(0094) //********************************
(0095) 
(0096) while(1)
(0097) {
(0098) //*********************
(0099) for(i=0;i<16;i++)
    00FA 2744      CLR	R20
    00FB C03F      RJMP	0x013B
(0100) {
(0101)  for(n=47;n>0;n--)        
    00FC E26F      LDI	R22,0x2F
    00FD E070      LDI	R23,0
(0102)    redata[n]=(redata[n]<<4)|(redata[n-1]>>4); 
    00FE E680      LDI	R24,0x60
    00FF E090      LDI	R25,0
    0100 2E26      MOV	R2,R22
    0101 2E37      MOV	R3,R23
    0102 0E28      ADD	R2,R24
    0103 1E39      ADC	R3,R25
    0104 E58F      LDI	R24,0x5F
    0105 E090      LDI	R25,0
    0106 2FE6      MOV	R30,R22
    0107 2FF7      MOV	R31,R23
    0108 0FE8      ADD	R30,R24
    0109 1FF9      ADC	R31,R25
    010A 8180      LDD	R24,Z+0
    010B 9582      SWAP	R24
    010C 708F      ANDI	R24,0xF
    010D 2DE2      MOV	R30,R2
    010E 2DF3      MOV	R31,R3
    010F 8190      LDD	R25,Z+0
    0110 709F      ANDI	R25,0xF
    0111 9592      SWAP	R25
    0112 2B98      OR	R25,R24
    0113 8390      STD	Z+0,R25
    0114 5061      SUBI	R22,1
    0115 4070      SBCI	R23,0
    0116 2422      CLR	R2
    0117 2433      CLR	R3
    0118 1626      CP	R2,R22
    0119 0637      CPC	R3,R23
    011A F31C      BLT	0x00FE
(0103)  redata[n]<<=4;
    011B E680      LDI	R24,0x60
    011C E090      LDI	R25,0
    011D 2E26      MOV	R2,R22
    011E 2E37      MOV	R3,R23
    011F 0E28      ADD	R2,R24
    0120 1E39      ADC	R3,R25
    0121 2DE2      MOV	R30,R2
    0122 2DF3      MOV	R31,R3
    0123 8180      LDD	R24,Z+0
    0124 708F      ANDI	R24,0xF
    0125 9582      SWAP	R24
    0126 8380      STD	Z+0,R24
(0104)  redata[0]|=table[i]&0x0f;	      
    0127 E286      LDI	R24,0x26
    0128 E090      LDI	R25,0
    0129 2E24      MOV	R2,R20
    012A 2433      CLR	R3
    012B 0E28      ADD	R2,R24
    012C 1E39      ADC	R3,R25
    012D 2DE2      MOV	R30,R2
    012E 2DF3      MOV	R31,R3
    012F 95C8      LPM
    0130 2D80      MOV	R24,R0
    0131 708F      ANDI	R24,0xF
    0132 90200060  LDS	R2,0x60
    0134 2A28      OR	R2,R24
    0135 92200060  STS	0x60,R2
(0105)  //*******************************transmit data 
(0106)  send();
    0137 D072      RCALL	_send
(0107)  delay(2);
    0138 E002      LDI	R16,2
    0139 D05C      RCALL	_delay
    013A 9543      INC	R20
    013B 3140      CPI	R20,0x10
    013C F408      BCC	0x013E
    013D CFBE      RJMP	0x00FC
    013E CFBB      RJMP	0x00FA
(0108)  }
(0109)  //while(1)
(0110)  //WDR();
(0111) }
(0112) //**************************Three Color Test
(0113) //*********************
(0114) 
(0115) //******************************
(0116) }//MAIN PROGRAM
    013F 9508      RET
_uart0_rx_isr:
  addr                 --> R18
  temp                 --> R16
  i                    --> R16
    0140 922A      ST	R2,-Y
    0141 923A      ST	R3,-Y
    0142 930A      ST	R16,-Y
    0143 932A      ST	R18,-Y
    0144 938A      ST	R24,-Y
    0145 939A      ST	R25,-Y
    0146 93EA      ST	R30,-Y
    0147 93FA      ST	R31,-Y
    0148 B62F      IN	R2,0x3F
    0149 922A      ST	R2,-Y
(0117) /*********************************
(0118) **接收数据
(0119) **********************************/
(0120) #pragma interrupt_handler uart0_rx_isr:8
(0121) void uart0_rx_isr(void)
(0122) {
(0123) 	    uchar i,temp;
(0124) 	    uchar addr=40;
    014A E228      LDI	R18,0x28
(0125) 	    temp=UDR;		 			 
    014B B10C      IN	R16,0x0C
(0126) 		if(temp==addr||temp==100||temp==255)//地址判断
    014C 1702      CP	R16,R18
    014D F021      BEQ	0x0152
    014E 3604      CPI	R16,0x64
    014F F011      BEQ	0x0152
    0150 3F0F      CPI	R16,0xFF
    0151 F4C9      BNE	0x016B
(0127) 		   {		
(0128) 		    UCSRA&=~BIT(MPCM);//取消地址接收	                  
    0152 9858      CBI	0x0B,0
(0129)             for(i=0;i<8;i++)
    0153 2700      CLR	R16
    0154 C010      RJMP	0x0165
(0130)                {
(0131)                 while(!(UCSRA&0x80))WDR();				;			
    0155 95A8      WDR
    0156 9B5F      SBIS	0x0B,7
    0157 CFFD      RJMP	0x0155
(0132)                 redata[7-i]=UDR;//读UDR时RXC将自动清除
    0158 2E20      MOV	R2,R16
    0159 2433      CLR	R3
    015A E0E7      LDI	R30,7
    015B E0F0      LDI	R31,0
    015C 19E2      SUB	R30,R2
    015D 09F3      SBC	R31,R3
    015E E680      LDI	R24,0x60
    015F E090      LDI	R25,0
    0160 0FE8      ADD	R30,R24
    0161 1FF9      ADC	R31,R25
    0162 B02C      IN	R2,0x0C
    0163 8220      STD	Z+0,R2
    0164 9503      INC	R16
    0165 3008      CPI	R16,0x8
    0166 F378      BCS	0x0156
(0133)                }
(0134) 			UCSRA|=BIT(MPCM);//允许地址接收
    0167 9A58      SBI	0x0B,0
(0135) 			fg_rin=0x01;//设置接收数据标志
    0168 E081      LDI	R24,1
    0169 93800090  STS	0x90,R24
(0136) 		  }
(0137) }
    016B 9029      LD	R2,Y+
    016C BE2F      OUT	0x3F,R2
    016D 91F9      LD	R31,Y+
    016E 91E9      LD	R30,Y+
    016F 9199      LD	R25,Y+
    0170 9189      LD	R24,Y+
    0171 9129      LD	R18,Y+
    0172 9109      LD	R16,Y+
    0173 9039      LD	R3,Y+
    0174 9029      LD	R2,Y+
    0175 9518      RETI
(0138) void port_init(void)
(0139) {
(0140)  PORTB = 0xff;
_port_init:
    0176 EF8F      LDI	R24,0xFF
    0177 BB88      OUT	0x18,R24
(0141)  DDRB  = 0x00; 
    0178 2422      CLR	R2
    0179 BA27      OUT	0x17,R2
(0142)  PORTD = 0x00;
    017A BA22      OUT	0x12,R2

⌨️ 快捷键说明

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