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

📄 app.lst

📁 用于单白色144颗LED8段追光
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0143)  DDRD  = 0xff; 
    017B BB81      OUT	0x11,R24
(0144) }
    017C 9508      RET
(0145) 
(0146) void watchdog_init(void)
(0147) {
(0148)  WDR(); //this prevents a timout on enabling
_watchdog_init:
    017D 95A8      WDR
(0149)  WDTCR|=(1<<WDCE)|(1<<WDE); 
    017E B581      IN	R24,0x21
    017F 6188      ORI	R24,0x18
    0180 BD81      OUT	0x21,R24
(0150)  WDTCR = (1<<WDE)|(1<<WDP2)|(1<<WDP0); //WATCHDOG ENABLED - dont forget WDR
    0181 E08D      LDI	R24,0xD
    0182 BD81      OUT	0x21,R24
(0151) }
    0183 9508      RET
(0152) void uart0_init(void)
(0153) {
(0154)  UBRRH = 0x00; //set baud rate
_uart0_init:
    0184 2422      CLR	R2
    0185 B822      OUT	0x02,R2
(0155)  UBRRL = 0x01; //set baud rate
    0186 E081      LDI	R24,1
    0187 B989      OUT	0x09,R24
(0156)  UCSRA|=BIT(MPCM);
    0188 9A58      SBI	0x0B,0
(0157)  UCSRB = 0X94;
    0189 E984      LDI	R24,0x94
    018A B98A      OUT	0x0A,R24
(0158)  UCSRC = 0x06; //enable
    018B E086      LDI	R24,6
    018C B983      OUT	0x03,R24
(0159) }
    018D 9508      RET
(0160) void init_devices(void)
(0161) {
(0162)  CLI(); //disable all interrupts
_init_devices:
    018E 94F8      BCLR	7
(0163)  port_init();
    018F DFE6      RCALL	_port_init
(0164)  watchdog_init();
    0190 DFEC      RCALL	_watchdog_init
(0165)  MCUCR = 0x00;//禁止休眠(disable sleep)//
    0191 2422      CLR	R2
    0192 BE25      OUT	0x35,R2
(0166)  GIMSK = 0x00;//屏蔽两个外部中断disable exit interrupts//
    0193 BE2B      OUT	0x3B,R2
(0167)  TIMSK = 0x00;//屏蔽定时器中断 disable timer interrupts//
    0194 BE29      OUT	0x39,R2
(0168) }
    0195 9508      RET
_delay:
  dd1                  --> R20
  dd2                  --> R22
  dd3                  --> R10
  count                --> R16
    0196 D0A5      RCALL	push_gset3
(0169) /*******************************
(0170) **delay
(0171) ********************************/
(0172) void delay(uchar count )
(0173) {
(0174) uchar dd1,dd2,dd3;
(0175) for(dd1=0;dd1<count;dd1++)
    0197 2744      CLR	R20
    0198 C00D      RJMP	0x01A6
(0176)    for(dd2=0;dd2<30;dd2++)
    0199 2766      CLR	R22
    019A C008      RJMP	0x01A3
(0177)       for(dd3=0;dd3<250;dd3++)
    019B 24AA      CLR	R10
    019C C002      RJMP	0x019F
(0178)         WDR();
    019D 95A8      WDR
    019E 94A3      INC	R10
    019F 2D8A      MOV	R24,R10
    01A0 3F8A      CPI	R24,0xFA
    01A1 F3D8      BCS	0x019D
    01A2 9563      INC	R22
    01A3 316E      CPI	R22,0x1E
    01A4 F3B0      BCS	0x019B
    01A5 9543      INC	R20
    01A6 1740      CP	R20,R16
    01A7 F388      BCS	0x0199
(0179) }
    01A8 D077      RCALL	pop_gset3
    01A9 9508      RET
(0180) /*******************************
(0181) **发送数据
(0182) ********************************/
(0183) void send(void)
(0184) {
(0185)  signed char i;
(0186)  
(0187)  PORTD&=~BIT(RCK);
_send:
  i                    --> R16
    01AA 9895      CBI	0x12,5
(0188)  PORTD&=~BIT(CLK);
    01AB 9893      CBI	0x12,3
(0189)  
(0190)  for(i=48;i>=0;i--)
    01AC E300      LDI	R16,0x30
    01AD C067      RJMP	0x0215
(0191)  {
(0192)  //****************
(0193)  if(redata[i]&0x40)//
    01AE E680      LDI	R24,0x60
    01AF E090      LDI	R25,0
    01B0 2FE0      MOV	R30,R16
    01B1 27FF      CLR	R31
    01B2 FDE7      SBRC	R30,7
    01B3 95F0      COM	R31
    01B4 0FE8      ADD	R30,R24
    01B5 1FF9      ADC	R31,R25
    01B6 8020      LDD	R2,Z+0
    01B7 FE26      SBRS	R2,6
    01B8 C002      RJMP	0x01BB
(0194)     PORTD|=BIT(DA);
    01B9 9A94      SBI	0x12,4
    01BA C001      RJMP	0x01BC
(0195)  else
(0196)     PORTD&=~BIT(DA);	
    01BB 9894      CBI	0x12,4
(0197)  PORTD|=BIT(CLK);
    01BC 9A93      SBI	0x12,3
(0198) 		 NOP();
    01BD 0000      NOP
(0199)  PORTD&=~BIT(CLK);
    01BE 9893      CBI	0x12,3
(0200)  //==============
(0201)  if(redata[i]&0x20)//
    01BF E680      LDI	R24,0x60
    01C0 E090      LDI	R25,0
    01C1 2FE0      MOV	R30,R16
    01C2 27FF      CLR	R31
    01C3 FDE7      SBRC	R30,7
    01C4 95F0      COM	R31
    01C5 0FE8      ADD	R30,R24
    01C6 1FF9      ADC	R31,R25
    01C7 8020      LDD	R2,Z+0
    01C8 FE25      SBRS	R2,5
    01C9 C002      RJMP	0x01CC
(0202)     PORTD|=BIT(DA);
    01CA 9A94      SBI	0x12,4
    01CB C001      RJMP	0x01CD
(0203)  else
(0204)     PORTD&=~BIT(DA);
    01CC 9894      CBI	0x12,4
(0205)  PORTD|=BIT(CLK);		
    01CD 9A93      SBI	0x12,3
(0206) 		 NOP();
    01CE 0000      NOP
(0207)  PORTD&=~BIT(CLK);
    01CF 9893      CBI	0x12,3
(0208)  //===============
(0209)  if(redata[i]&0x10)//
    01D0 E680      LDI	R24,0x60
    01D1 E090      LDI	R25,0
    01D2 2FE0      MOV	R30,R16
    01D3 27FF      CLR	R31
    01D4 FDE7      SBRC	R30,7
    01D5 95F0      COM	R31
    01D6 0FE8      ADD	R30,R24
    01D7 1FF9      ADC	R31,R25
    01D8 8020      LDD	R2,Z+0
    01D9 FE24      SBRS	R2,4
    01DA C002      RJMP	0x01DD
(0210)     PORTD|=BIT(DA);
    01DB 9A94      SBI	0x12,4
    01DC C001      RJMP	0x01DE
(0211)  else
(0212)     PORTD&=~BIT(DA);
    01DD 9894      CBI	0x12,4
(0213)  PORTD|=BIT(CLK);		
    01DE 9A93      SBI	0x12,3
(0214) 		 NOP();
    01DF 0000      NOP
(0215)  PORTD&=~BIT(CLK);
    01E0 9893      CBI	0x12,3
(0216)  //===============
(0217)  if(redata[i]&0x04)//
    01E1 E680      LDI	R24,0x60
    01E2 E090      LDI	R25,0
    01E3 2FE0      MOV	R30,R16
    01E4 27FF      CLR	R31
    01E5 FDE7      SBRC	R30,7
    01E6 95F0      COM	R31
    01E7 0FE8      ADD	R30,R24
    01E8 1FF9      ADC	R31,R25
    01E9 8020      LDD	R2,Z+0
    01EA FE22      SBRS	R2,2
    01EB C002      RJMP	0x01EE
(0218)     PORTD|=BIT(DA);
    01EC 9A94      SBI	0x12,4
    01ED C001      RJMP	0x01EF
(0219)  else
(0220)     PORTD&=~BIT(DA);
    01EE 9894      CBI	0x12,4
(0221)  PORTD|=BIT(CLK);		
    01EF 9A93      SBI	0x12,3
(0222) 		 NOP();
    01F0 0000      NOP
(0223)  PORTD&=~BIT(CLK);
    01F1 9893      CBI	0x12,3
(0224)  //===============
(0225)  if(redata[i]&0x02)//
    01F2 E680      LDI	R24,0x60
    01F3 E090      LDI	R25,0
    01F4 2FE0      MOV	R30,R16
    01F5 27FF      CLR	R31
    01F6 FDE7      SBRC	R30,7
    01F7 95F0      COM	R31
    01F8 0FE8      ADD	R30,R24
    01F9 1FF9      ADC	R31,R25
    01FA 8020      LDD	R2,Z+0
    01FB FE21      SBRS	R2,1
    01FC C002      RJMP	0x01FF
(0226)     PORTD|=BIT(DA);
    01FD 9A94      SBI	0x12,4
    01FE C001      RJMP	0x0200
(0227)  else
(0228)     PORTD&=~BIT(DA);
    01FF 9894      CBI	0x12,4
(0229)  PORTD|=BIT(CLK);		
    0200 9A93      SBI	0x12,3
(0230) 		 NOP();
    0201 0000      NOP
(0231)  PORTD&=~BIT(CLK);
    0202 9893      CBI	0x12,3
(0232)  //===============
(0233)  if(redata[i]&0x01)//
    0203 E680      LDI	R24,0x60
    0204 E090      LDI	R25,0
    0205 2FE0      MOV	R30,R16
    0206 27FF      CLR	R31
    0207 FDE7      SBRC	R30,7
    0208 95F0      COM	R31
    0209 0FE8      ADD	R30,R24
    020A 1FF9      ADC	R31,R25
    020B 8020      LDD	R2,Z+0
    020C FE20      SBRS	R2,0
    020D C002      RJMP	0x0210
(0234)     PORTD|=BIT(DA);
    020E 9A94      SBI	0x12,4
    020F C001      RJMP	0x0211
(0235)  else
(0236)     PORTD&=~BIT(DA);
    0210 9894      CBI	0x12,4
(0237)  PORTD|=BIT(CLK);		
    0211 9A93      SBI	0x12,3
(0238) 		 NOP();
    0212 0000      NOP
(0239)  PORTD&=~BIT(CLK);
    0213 9893      CBI	0x12,3
    0214 950A      DEC	R16
    0215 3000      CPI	R16,0
    0216 F00C      BLT	0x0218
    0217 CF96      RJMP	0x01AE
(0240)  //===============
(0241)  }
(0242) PORTD|=BIT(EN);//OFF DISPLAY
    0218 9A96      SBI	0x12,6
(0243) NOP();
    0219 0000      NOP
(0244) PORTD|=BIT(RCK);
    021A 9A95      SBI	0x12,5
(0245) NOP();
    021B 0000      NOP
(0246) PORTD&=~BIT(RCK);//LATCH DATA
    021C 9895      CBI	0x12,5
(0247) NOP();
    021D 0000      NOP
(0248) PORTD&=~BIT(EN);//ON DISPLAY
    021E 9896      CBI	0x12,6
(0249) 
(0250) }
FILE: <library>
    021F 9508      RET
pop_gset3:
    0220 E0E4      LDI	R30,4
    0221 C004      RJMP	pop
push_gset1:
    0222 935A      ST	R21,-Y
    0223 934A      ST	R20,-Y
    0224 9508      RET
pop_gset1:
    0225 E0E1      LDI	R30,1
pop:
    0226 9149      LD	R20,Y+
    0227 9159      LD	R21,Y+
    0228 FDE0      SBRC	R30,0
    0229 9508      RET
    022A 9169      LD	R22,Y+
    022B 9179      LD	R23,Y+
    022C FDE1      SBRC	R30,1
    022D 9508      RET
    022E 90A9      LD	R10,Y+
    022F 90B9      LD	R11,Y+
    0230 FDE2      SBRC	R30,2
    0231 9508      RET
    0232 90C9      LD	R12,Y+
    0233 90D9      LD	R13,Y+
    0234 FDE3      SBRC	R30,3
    0235 9508      RET
    0236 90E9      LD	R14,Y+
    0237 90F9      LD	R15,Y+
    0238 9508      RET
push_gset2:
    0239 937A      ST	R23,-Y
    023A 936A      ST	R22,-Y
    023B CFE6      RJMP	push_gset1
push_gset3:
    023C 92BA      ST	R11,-Y
    023D 92AA      ST	R10,-Y
    023E CFFA      RJMP	push_gset2

⌨️ 快捷键说明

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