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

📄 显示模块2.lst

📁 一个LED特效显示程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    0412 92200066  STS	0x66,R2
(0391) 	 Disp_Buff[7] =FileEnd;
    0414 90200085  LDS	R2,FileEnd
    0416 92200067  STS	0x67,R2
    0418 9508      RET
(0392) }
(0393) 
(0394) 
(0395) /******************* 结束 ***********************************/
(0396) /**********     主函数区  *****************************/
(0397) void main(void)
(0398) {
(0399)     device_int();
_main:
    0419 DE84      RCALL	_device_int
(0400) 	while(1)
    041A CFFF      RJMP	0x041A
    041B 9508      RET
_exi_int0:
  adress               --> R20
  i                    --> R22
    041C D09C      RCALL	push_lset
    041D D082      RCALL	push_gset2
(0401) 	{
(0402) 	     ;
(0403) 	}      
(0404) }
(0405) 
(0406) 
(0407)          
(0408) /************  中断函数区   *************************/
(0409) 
(0410) /************************************
(0411)              外中断
(0412) 		   数电机脉冲
(0413) *************************************/
(0414) 
(0415) void exi_int0(void)   
(0416) {    
(0417) 	char i =0;
    041E 2766      CLR	R22
(0418) 	int adress;
(0419) 	adress =PDataY<<3;
    041F 9140007F  LDS	R20,PDataY
    0421 91500080  LDS	R21,PDataY+1
    0423 0F44      LSL	R20
    0424 1F55      ROL	R21
    0425 0F44      LSL	R20
    0426 1F55      ROL	R21
    0427 0F44      LSL	R20
    0428 1F55      ROL	R21
(0420) 	for(;i <8;i++)              
    0429 C00D      RJMP	0x0437
(0421) 	{
(0422)  	   DispTemp[i] =RAM_Read(adress++);//地址偏移,取数到显示缓冲区
    042A 011A      MOVW	R2,R20
    042B 5F4F      SUBI	R20,0xFF
    042C 4F5F      SBCI	R21,0xFF
    042D 0181      MOVW	R16,R2
    042E DEA9      RCALL	_RAM_Read
    042F EF8B      LDI	R24,0xFB
    0430 E092      LDI	R25,2
    0431 2FE6      MOV	R30,R22
    0432 27FF      CLR	R31
    0433 0FE8      ADD	R30,R24
    0434 1FF9      ADC	R31,R25
    0435 8300      STD	Z+0,R16
    0436 9563      INC	R22
    0437 3068      CPI	R22,0x8
    0438 F388      BCS	0x042A
(0423) 	}
(0424) 	Screen_send();              //送显示屏幕数据
    0439 DE86      RCALL	_Screen_send
    043A 940E0508  CALL	0x508
    043C 940E052A  CALL	0x52A
(0425) 	PDataY++;
(0426) 	if(PDataY == PDataYMax)      //数据定位
    043E 1582      CP	R24,R2
    043F 0593      CPC	R25,R3
    0440 F441      BNE	0x0449
(0427) 		PDataY =PDataYMin;	    
    0441 90200083  LDS	R2,PDataYMin
    0443 90300084  LDS	R3,PDataYMin+1
    0445 92300080  STS	PDataY+1,R3
    0447 9220007F  STS	PDataY,R2
    0449 D04E      RCALL	pop_gset2
    044A D085      RCALL	pop_lset
    044B 9518      RETI
_timer1_vof:
    044C D06C      RCALL	push_lset
(0428) }
(0429) 
(0430) /*******************************************
(0431)               定时器中断
(0432) 			系统主要时钟基准
(0433) ********************************************/
(0434) void timer1_vof(void)
(0435) {    
(0436)      SEI();
    044D 9478      BSET	7
    044E 940E053F  CALL	0x53F
(0437)      TCNT1H = 0xd4; //setup
(0438)  	 TCNT1L = 0xce;
(0439) 	 
(0440) 	 sys_cont++;             //系统调用时间变量
    0450 9180007D  LDS	R24,sys_cont
    0452 9190007E  LDS	R25,sys_cont+1
    0454 9601      ADIW	R24,1
    0455 9390007E  STS	sys_cont+1,R25
    0457 9380007D  STS	sys_cont,R24
(0441) 	 if(sys_cont ==1000)
    0459 3E88      CPI	R24,0xE8
    045A E0E3      LDI	R30,3
    045B 079E      CPC	R25,R30
    045C F431      BNE	0x0463
(0442) 	     sys_cont =0;
    045D 2422      CLR	R2
    045E 2433      CLR	R3
    045F 9230007E  STS	sys_cont+1,R3
    0461 9220007D  STS	sys_cont,R2
(0443) 	 
(0444) 	 if(delay_time_count >0)
    0463 940E0534  CALL	0x534
    0465 F411      BNE	0x0468
    0466 2033      TST	R3
    0467 F049      BEQ	0x0471
(0445)          delay_time_count--; //ms延时用变量
    0468 9180007B  LDS	R24,delay_time_count
    046A 9190007C  LDS	R25,delay_time_count+1
    046C 9701      SBIW	R24,1
    046D 9390007C  STS	delay_time_count+1,R25
    046F 9380007B  STS	delay_time_count,R24
(0446) 	 
(0447) 	 if(ModelDelayTime >0)   //模式切换时间
    0471 2422      CLR	R2
    0472 2433      CLR	R3
    0473 9040008D  LDS	R4,ModelDelayTime
    0475 9050008E  LDS	R5,ModelDelayTime+1
    0477 1424      CP	R2,R4
    0478 0435      CPC	R3,R5
    0479 F434      BGE	0x0480
(0448) 	     ModelDelayTime--;
    047A 01C2      MOVW	R24,R4
    047B 9701      SBIW	R24,1
    047C 9390008E  STS	ModelDelayTime+1,R25
    047E 9380008D  STS	ModelDelayTime,R24
(0449) 	 
(0450) 	 Disp_key_group();       //显示刷新,取键值到缓冲区
    0480 DD56      RCALL	_Disp_key_group
(0451)      Key_num();              //键值后期处理以及去抖函数
    0481 DD95      RCALL	_Key_num
(0452) 	 Disp_Model();           //屏幕显示特效模式
    0482 DED0      RCALL	_Disp_Model
(0453) 	 KEY_event();            //按键事件处理
    0483 DF6B      RCALL	_KEY_event
(0454) 	 Display_event();        //显示事件
    0484 DF8B      RCALL	_Display_event
    0485 D04A      RCALL	pop_lset
    0486 9518      RETI
_usart_rcx:
  uart_data            --> R20
    0487 D031      RCALL	push_lset
    0488 D019      RCALL	push_gset1
(0455) 	 
(0456) }
(0457) 
(0458) /*************************************
(0459)        USART 接受中断   
(0460)  ******************************/
(0461) void usart_rcx(void)
(0462) {
(0463)    char uart_data;
(0464)    uart_data =UDR;
    0489 B14C      IN	R20,0x0C
(0465)    uart_TX(0xAA);
    048A EA0A      LDI	R16,0xAA
    048B DE19      RCALL	_uart_TX
(0466)    data_store(uart_data);
FILE: <library>
    048C 2F04      MOV	R16,R20
    048D DE52      RCALL	_data_store
    048E D016      RCALL	pop_gset1
    048F D040      RCALL	pop_lset
    0490 9518      RETI
asr16:
    0491 2322      TST	R18
    0492 F021      BEQ	0x0497
    0493 9515      ASR	R17
    0494 9507      ROR	R16
    0495 952A      DEC	R18
    0496 CFFA      RJMP	asr16
    0497 9508      RET
pop_gset2:
    0498 E0E2      LDI	R30,2
    0499 C00C      RJMP	pop
push_gset5:
    049A 92FA      ST	R15,-Y
    049B 92EA      ST	R14,-Y
push_gset4:
    049C 92DA      ST	R13,-Y
    049D 92CA      ST	R12,-Y
push_gset3:
    049E 92BA      ST	R11,-Y
    049F 92AA      ST	R10,-Y
push_gset2:
    04A0 937A      ST	R23,-Y
    04A1 936A      ST	R22,-Y
push_gset1:
    04A2 935A      ST	R21,-Y
    04A3 934A      ST	R20,-Y
    04A4 9508      RET
pop_gset1:
    04A5 E0E1      LDI	R30,1
pop:
    04A6 9149      LD	R20,Y+
    04A7 9159      LD	R21,Y+
    04A8 FDE0      SBRC	R30,0
    04A9 9508      RET
    04AA 9169      LD	R22,Y+
    04AB 9179      LD	R23,Y+
    04AC FDE1      SBRC	R30,1
    04AD 9508      RET
    04AE 90A9      LD	R10,Y+
    04AF 90B9      LD	R11,Y+
    04B0 FDE2      SBRC	R30,2
    04B1 9508      RET
    04B2 90C9      LD	R12,Y+
    04B3 90D9      LD	R13,Y+
    04B4 FDE3      SBRC	R30,3
    04B5 9508      RET
    04B6 90E9      LD	R14,Y+
    04B7 90F9      LD	R15,Y+
    04B8 9508      RET
push_lset:
    04B9 93FA      ST	R31,-Y
    04BA 93EA      ST	R30,-Y
    04BB 93BA      ST	R27,-Y
    04BC 93AA      ST	R26,-Y
    04BD 939A      ST	R25,-Y
    04BE 938A      ST	R24,-Y
    04BF 933A      ST	R19,-Y
    04C0 932A      ST	R18,-Y
    04C1 931A      ST	R17,-Y
    04C2 930A      ST	R16,-Y
    04C3 929A      ST	R9,-Y
    04C4 928A      ST	R8,-Y
    04C5 927A      ST	R7,-Y
    04C6 926A      ST	R6,-Y
    04C7 925A      ST	R5,-Y
    04C8 924A      ST	R4,-Y
    04C9 923A      ST	R3,-Y
    04CA 922A      ST	R2,-Y
    04CB 921A      ST	R1,-Y
    04CC 920A      ST	R0,-Y
    04CD B60F      IN	R0,0x3F
    04CE 920A      ST	R0,-Y
    04CF 9508      RET
pop_lset:
    04D0 9009      LD	R0,Y+
    04D1 BE0F      OUT	0x3F,R0
    04D2 9009      LD	R0,Y+
    04D3 9019      LD	R1,Y+
    04D4 9029      LD	R2,Y+
    04D5 9039      LD	R3,Y+
    04D6 9049      LD	R4,Y+
    04D7 9059      LD	R5,Y+
    04D8 9069      LD	R6,Y+
    04D9 9079      LD	R7,Y+
    04DA 9089      LD	R8,Y+
    04DB 9099      LD	R9,Y+
    04DC 9109      LD	R16,Y+
    04DD 9119      LD	R17,Y+
    04DE 9129      LD	R18,Y+
    04DF 9139      LD	R19,Y+
    04E0 9189      LD	R24,Y+
    04E1 9199      LD	R25,Y+
    04E2 91A9      LD	R26,Y+
    04E3 91B9      LD	R27,Y+
    04E4 91E9      LD	R30,Y+
    04E5 91F9      LD	R31,Y+
    04E6 9508      RET
lsl16:
    04E7 2322      TST	R18
    04E8 F021      BEQ	0x04ED
    04E9 0F00      LSL	R16
    04EA 1F11      ROL	R17
    04EB 952A      DEC	R18
    04EC CFFA      RJMP	lsl16
    04ED 9508      RET
lsl8:
    04EE 2311      TST	R17
    04EF F019      BEQ	0x04F3
    04F0 0F00      LSL	R16
    04F1 951A      DEC	R17
    04F2 CFFB      RJMP	lsl8
    04F3 9508      RET
<created procedures>:
    04F4 B382      IN	R24,0x12
    04F5 6E80      ORI	R24,0xE0
    04F6 BB82      OUT	0x12,R24
    04F7 EF8F      LDI	R24,0xFF
    04F8 BB8A      OUT	0x1A,R24
    04F9 01C8      MOVW	R24,R16
    04FA 7090      ANDI	R25,0
    04FB BB8B      OUT	0x1B,R24
    04FC 01C8      MOVW	R24,R16
    04FD 2F89      MOV	R24,R25
    04FE 2799      CLR	R25
    04FF FD87      SBRC	R24,7
    0500 9590      COM	R25
    0501 7090      ANDI	R25,0
    0502 BB85      OUT	0x15,R24
    0503 B382      IN	R24,0x12
    0504 778F      ANDI	R24,0x7F
    0505 BB82      OUT	0x12,R24
    0506 B382      IN	R24,0x12
    0507 9508      RET
    0508 9180007F  LDS	R24,PDataY
    050A 91900080  LDS	R25,PDataY+1
    050C 9601      ADIW	R24,1
    050D 93900080  STS	PDataY+1,R25
    050F 9380007F  STS	PDataY,R24
    0511 9508      RET
    0512 E090      LDI	R25,0
    0513 91E00068  LDS	R30,disp_key_count
    0515 27FF      CLR	R31
    0516 0FE8      ADD	R30,R24
    0517 1FF9      ADC	R31,R25
    0518 9508      RET
    0519 93900082  STS	PDataYMax+1,R25
    051B 93800081  STS	PDataYMax,R24
    051D 91800083  LDS	R24,PDataYMin
    051F 91900084  LDS	R25,PDataYMin+1
    0521 9508      RET
    0522 2E40      MOV	R4,R16
    0523 2455      CLR	R5
    0524 2C54      MOV	R5,R4
    0525 2444      CLR	R4
    0526 2433      CLR	R3
    0527 2024      AND	R2,R4
    0528 2035      AND	R3,R5
    0529 9508      RET
    052A 90200081  LDS	R2,PDataYMax
    052C 90300082  LDS	R3,PDataYMax+1
    052E 9508      RET
    052F 93900084  STS	PDataYMin+1,R25
    0531 93800083  STS	PDataYMin,R24
    0533 9508      RET
    0534 9020007B  LDS	R2,delay_time_count
    0536 9030007C  LDS	R3,delay_time_count+1
    0538 2022      TST	R2
    0539 9508      RET
    053A 2FE4      MOV	R30,R20
    053B 27FF      CLR	R31
    053C 0FE8      ADD	R30,R24
    053D 1FF9      ADC	R31,R25
    053E 9508      RET
    053F ED84      LDI	R24,0xD4
    0540 BD8D      OUT	0x2D,R24
    0541 EC8E      LDI	R24,0xCE
    0542 BD8C      OUT	0x2C,R24
    0543 9508      RET
    0544 9020008A  LDS	R2,FileLength
    0546 9030008B  LDS	R3,FileLength+1
    0548 9508      RET
    0549 91800081  LDS	R24,PDataYMax
    054B 91900082  LDS	R25,PDataYMax+1
    054D 9508      RET

⌨️ 快捷键说明

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