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

📄 8255.lst

📁 这是一款基于AVR单片机的直流稳压电源的设计项目
💻 LST
📖 第 1 页 / 共 5 页
字号:
     26C 9AA9      SBI	0x15,1
(0342)  A11;
     26D 9AAE      SBI	0x15,6
(0343)  delay(1);
     26E E001      LDI	R16,1
     26F E010      LDI	R17,0
     270 DFD3      RCALL	_delay
(0344)  shuju=d;
     271 BAA8      OUT	0x18,R10
(0345)   WRON ; 
     272 98A8      CBI	0x15,0
(0346)  delay(5);
     273 E005      LDI	R16,5
     274 E010      LDI	R17,0
     275 DFCE      RCALL	_delay
(0347)  WROFF;
     276 9AA8      SBI	0x15,0
     277 90A9      LD	R10,Y+
     278 9508      RET
_write_command:
  cmdcode              --> R10
     279 92AA      ST	R10,-Y
     27A 2EA0      MOV	R10,R16
(0348) }
(0349) 
(0350) 
(0351) //LCD
(0352) void write_command(unsigned char cmdcode)
(0353)  {
(0354)   RS0;
     27B 981B      CBI	0x03,3
(0355)   RW0;
     27C 981D      CBI	0x03,5
(0356)   writePA(cmdcode);
     27D 2D0A      MOV	R16,R10
     27E DFDA      RCALL	_writePA
(0357)   delay(1);
     27F E001      LDI	R16,1
     280 E010      LDI	R17,0
     281 DFC2      RCALL	_delay
(0358)   E1;
     282 9A1E      SBI	0x03,6
(0359)   delay(1);
     283 E001      LDI	R16,1
     284 E010      LDI	R17,0
     285 DFBE      RCALL	_delay
(0360)   E0;
     286 981E      CBI	0x03,6
     287 90A9      LD	R10,Y+
     288 9508      RET
_write_data:
  Dispdata             --> R10
     289 92AA      ST	R10,-Y
     28A 2EA0      MOV	R10,R16
(0361)  }
(0362) 
(0363) 
(0364) 
(0365) void write_data(unsigned char Dispdata)
(0366)  {
(0367)   RS1;
     28B 9A1B      SBI	0x03,3
(0368)   RW0;
     28C 981D      CBI	0x03,5
(0369)   writePA(Dispdata);
     28D 2D0A      MOV	R16,R10
     28E DFCA      RCALL	_writePA
(0370)   delay(1);
     28F E001      LDI	R16,1
     290 E010      LDI	R17,0
     291 DFB2      RCALL	_delay
(0371)   E1;
     292 9A1E      SBI	0x03,6
(0372)   delay(1);
     293 E001      LDI	R16,1
     294 E010      LDI	R17,0
     295 DFAE      RCALL	_delay
(0373)   E0;
     296 981E      CBI	0x03,6
     297 90A9      LD	R10,Y+
     298 9508      RET
(0374)      }      
(0375) //通道
(0376) void tongdao(unsigned char i)
(0377) {if(i==1) {PORTC&=~(1<<4);PORTC&=~(1<<3); PORTC|=(1<<2);}
_tongdao:
  i                    --> R16
     299 3001      CPI	R16,1
     29A F419      BNE	0x029E
     29B 98AC      CBI	0x15,4
     29C 98AB      CBI	0x15,3
     29D 9AAA      SBI	0x15,2
(0378)  if(i==2) {PORTC|=(1<<4);;PORTC&=~(1<<3); PORTC|=(1<<2);}
     29E 3002      CPI	R16,2
     29F F419      BNE	0x02A3
     2A0 9AAC      SBI	0x15,4
     2A1 98AB      CBI	0x15,3
     2A2 9AAA      SBI	0x15,2
(0379)  if(i==0) {PORTC&=~(1<<4);PORTC&=~(1<<3); PORTC&=~(1<<2);}
     2A3 2300      TST	R16
     2A4 F419      BNE	0x02A8
     2A5 98AC      CBI	0x15,4
     2A6 98AB      CBI	0x15,3
     2A7 98AA      CBI	0x15,2
     2A8 9508      RET
_Clr_Scr:
  k                    --> R20
  j                    --> R22
     2A9 934A      ST	R20,-Y
     2AA 936A      ST	R22,-Y
(0380) }	                                                                                                            
(0381) 															
(0382)  
(0383) void Clr_Scr()    //清屏
(0384)  {
(0385)   unsigned char j,k;
(0386)   for(k=0;k<8;k++)
     2AB 2744      CLR	R20
     2AC C023      RJMP	0x02D0
(0387)    {
(0388)     LCDCS21;
     2AD 9A1A      SBI	0x03,2
(0389) 	LCDCS10;
     2AE 9819      CBI	0x03,1
(0390) 	delay(10);
     2AF E00A      LDI	R16,0xA
     2B0 E010      LDI	R17,0
     2B1 DF92      RCALL	_delay
(0391)     write_command((Page_Add+k));
     2B2 2F04      MOV	R16,R20
     2B3 5408      SUBI	R16,0x48
     2B4 DFC4      RCALL	_write_command
(0392)     write_command((Col_Add+0));
     2B5 E400      LDI	R16,0x40
     2B6 DFC2      RCALL	_write_command
(0393)     for(j=0;j<64;j++) 
     2B7 2766      CLR	R22
     2B8 C003      RJMP	0x02BC
(0394) 	 write_data(0x00);
     2B9 2700      CLR	R16
     2BA DFCE      RCALL	_write_data
     2BB 9563      INC	R22
     2BC 3460      CPI	R22,0x40
     2BD F3D8      BCS	0x02B9
(0395)     LCDCS20;
     2BE 981A      CBI	0x03,2
(0396) 	LCDCS11;
     2BF 9A19      SBI	0x03,1
(0397)     delay(10);
     2C0 E00A      LDI	R16,0xA
     2C1 E010      LDI	R17,0
     2C2 DF81      RCALL	_delay
(0398)     write_command((Page_Add+k));
     2C3 2F04      MOV	R16,R20
     2C4 5408      SUBI	R16,0x48
     2C5 DFB3      RCALL	_write_command
(0399)     write_command((Col_Add+0));
     2C6 E400      LDI	R16,0x40
     2C7 DFB1      RCALL	_write_command
(0400)     for(j=64;j<128;j++) 
     2C8 E460      LDI	R22,0x40
     2C9 C003      RJMP	0x02CD
(0401) 	 write_data(0x00);
     2CA 2700      CLR	R16
     2CB DFBD      RCALL	_write_data
     2CC 9563      INC	R22
     2CD 3860      CPI	R22,0x80
     2CE F3D8      BCS	0x02CA
     2CF 9543      INC	R20
     2D0 3048      CPI	R20,0x8
     2D1 F2D8      BCS	0x02AD
     2D2 9169      LD	R22,Y+
     2D3 9149      LD	R20,Y+
     2D4 9508      RET
_disp_zf:
  j                    --> R20
  i                    --> R12
  sz                   --> Y,+8
  X                    --> R10
  Y                    --> R22
     2D5 940E 21F5 CALL	push_xgsetF03C
     2D7 2EA2      MOV	R10,R18
     2D8 2F60      MOV	R22,R16
(0402)    }
(0403)  }
(0404) 
(0405) 
(0406) void disp_zf(unsigned char Y,unsigned char X, const unsigned char  *sz)
(0407)  {
(0408)   unsigned char j=0,i=0;
     2D9 2744      CLR	R20
     2DA 24CC      CLR	R12
(0409)   for(j=0;j<2;j++)
     2DB C01B      RJMP	0x02F7
(0410)    {
(0411)     write_command((Page_Add+Y+j));
     2DC 2F06      MOV	R16,R22
     2DD 5408      SUBI	R16,0x48
     2DE 0F04      ADD	R16,R20
     2DF DF99      RCALL	_write_command
(0412)     write_command((Col_Add+X));
     2E0 2D0A      MOV	R16,R10
     2E1 5C00      SUBI	R16,0xC0
     2E2 DF96      RCALL	_write_command
(0413)     for(i=0;i<6;i++) 
     2E3 24CC      CLR	R12
     2E4 C00E      RJMP	0x02F3
(0414) 	 write_data(sz[6*j+i]);
     2E5 E086      LDI	R24,6
     2E6 9F84      MUL	R24,R20
     2E7 01F0      MOVW	R30,R0
     2E8 2C2C      MOV	R2,R12
     2E9 2433      CLR	R3
     2EA 0DE2      ADD	R30,R2
     2EB 1DF3      ADC	R31,R3
     2EC 8408      LDD	R0,Y+8
     2ED 8419      LDD	R1,Y+9
     2EE 0DE0      ADD	R30,R0
     2EF 1DF1      ADC	R31,R1
     2F0 9106      ELPM	R16,9(Z)
     2F1 DF97      RCALL	_write_data
     2F2 94C3      INC	R12
     2F3 2D8C      MOV	R24,R12
     2F4 3086      CPI	R24,6
     2F5 F378      BCS	0x02E5
     2F6 9543      INC	R20
     2F7 3042      CPI	R20,2
     2F8 F318      BCS	0x02DC
     2F9 940C 21FE JMP	pop_xgsetF03C
_disp_hz:
  j                    --> R20
  i                    --> R12
  hz                   --> Y,+8
  X                    --> R10
  Y                    --> R22
     2FB 940E 21F5 CALL	push_xgsetF03C
     2FD 2EA2      MOV	R10,R18
     2FE 2F60      MOV	R22,R16
(0415)    }
(0416)  }
(0417) 
(0418) /*---------------------指定位置显示汉字16*16-----------------------*/
(0419) 
(0420) void disp_hz(unsigned char Y,unsigned char X, const unsigned char  *hz)
(0421)  {
(0422)   unsigned char j=0,i=0;
     2FF 2744      CLR	R20
     300 24CC      CLR	R12
(0423)   for(j=0;j<2;j++)
     301 C01B      RJMP	0x031D
(0424)    {
(0425)     write_command((Page_Add+Y+j));         //列在前行在后
     302 2F06      MOV	R16,R22
     303 5408      SUBI	R16,0x48
     304 0F04      ADD	R16,R20
     305 DF73      RCALL	_write_command
(0426)     write_command((Col_Add+X));
     306 2D0A      MOV	R16,R10
     307 5C00      SUBI	R16,0xC0
     308 DF70      RCALL	_write_command
(0427)     for(i=0;i<12;i++) 
     309 24CC      CLR	R12
     30A C00E      RJMP	0x0319
(0428) 	 write_data(hz[12*j+i]);
     30B E08C      LDI	R24,0xC
     30C 9F84      MUL	R24,R20
     30D 01F0      MOVW	R30,R0
     30E 2C2C      MOV	R2,R12
     30F 2433      CLR	R3
     310 0DE2      ADD	R30,R2
     311 1DF3      ADC	R31,R3
     312 8408      LDD	R0,Y+8
     313 8419      LDD	R1,Y+9
     314 0DE0      ADD	R30,R0
     315 1DF1      ADC	R31,R1
     316 9106      ELPM	R16,9(Z)
     317 DF71      RCALL	_write_data
     318 94C3      INC	R12
     319 2D8C      MOV	R24,R12
     31A 308C      CPI	R24,0xC
     31B F378      BCS	0x030B
     31C 9543      INC	R20
     31D 3042      CPI	R20,2
     31E F318      BCS	0x0302
     31F 940C 21FE JMP	pop_xgsetF03C
(0429)    }
(0430)  }
(0431) 
(0432) /*------------------初始化LCD屏--------------------------*/
(0433) void init_lcd()
(0434)  {
(0435)   RST0;
_init_lcd:
     321 981F      CBI	0x03,7
(0436)   delay(1);
     322 E001      LDI	R16,1
     323 E010      LDI	R17,0
     324 DF1F      RCALL	_delay
(0437)   RST1;
     325 9A1F      SBI	0x03,7
(0438)   delay(1);
     326 E001      LDI	R16,1
     327 E010      LDI	R17,0
     328 DF1B      RCALL	_delay
(0439) 
(0440)   LCDCS21;
     329 9A1A      SBI	0x03,2
(0441)   LCDCS11;
     32A 9A19      SBI	0x03,1
(0442) 
(0443)   delay(100);
     32B E604      LDI	R16,0x64
     32C E010      LDI	R17,0
     32D DF16      RCALL	_delay
(0444)   write_command(Disp_Off);
     32E E30E      LDI	R16,0x3E
     32F DF49      RCALL	_write_command
(0445)   write_command((Page_Add+0));
     330 EB08      LDI	R16,0xB8
     331 DF47      RCALL	_write_command
(0446)   write_command((Start_Line+0));
     332 EC00      LDI	R16,0xC0
     333 DF45      RCALL	_write_command
(0447)   write_command((Col_Add+0));
     334 E400      LDI	R16,0x40
     335 DF43      RCALL	_write_command
(0448)   write_command((Disp_On));
     336 E30F      LDI	R16,0x3F
     337 DF41      RCALL	_write_command
     338 9508      RET
(0449)  }
(0450) 
(0451) void init_IO()
(0452) {
(0453)  DDRE=0xEF;
_init_IO:
     339 EE8F      LDI	R24,0xEF
     33A B982      OUT	0x02,R24
(0454)  PORTE=0xff;
     33B EF8F      LDI	R24,0xFF
     33C B983      OUT	0x03,R24
(0455)  DDRB=0xff;
     33D BB87      OUT	0x17,R24
(0456)  PORTB=0xff;
     33E BB88      OUT	0x18,R24
(0457)  DDRD=0xf0;
     33F EF80      LDI	R24,0xF0
     340 BB81      OUT	0x11,R24
(0458)  PORTD=0xf0;
     341 BB82      OUT	0x12,R24
(0459)  DDRF=0xfb;
     342 EF8B      LDI	R24,0xFB
     343 9380 0061 STS	0x0061,R24
(0460)  PORTF=0xfb;
     345 9380 0062 STS	0x0062,R24
(0461)  DDRG=0xff;
     347 EF8F      LDI	R24,0xFF
     348 9380 0064 STS	0x0064,R24
(0462)  PORTG=0xff;
     34A 9380 0065 STS	0x0065,R24
(0463)  DDRA=0XFF;
     34C BB8A      OUT	0x1A,R24
(0464)  PORTA=0XFF;
     34D BB8B      OUT	0x1B,R24
(0465)  DDRC=0XFF;
     34E BB84      OUT	0x14,R24
(0466)  PORTC=0XFF;
     34F BB85      OUT	0x15,R24
     350 9508      RET
_startDA:
  i                    --> R20
  da                   --> R22
     351 940E 21CF CALL	push_xgsetF000
     353 01B8      MOVW	R22,R16
(0467)  
(0468) }
(0469) 
(0470) //TLC5615
(0471) void startDA(unsigned int da)
(0472) {  
(0473)  unsigned char i;
(0474) da<<=6;
     354 E026      LDI	R18,6
     355 E030      LDI	R19,0
     356 018B      MOVW	R16,R22
     357 940E 2235 CALL	lsl16
     359 01B8      MOVW	R22,R16
(0475) CS_DA0;asm("nop");
     35A 9897      CBI	0x12,7
     35B 0000      NOP
(0476) SPI_CLK0;
     35C 9896      CBI	0x12,6
(0477) for (i=0;i<11;i++)
     35D 2744      CLR	R20
     35E C01D      RJMP	0x037C
(0478) {								  
(0479) if((da&0x8000)==0x8000) 
     35F 01CB      MOVW	R24,R22
     360 7080      ANDI	R24,0
     361 7890      ANDI	R25,0x80
     362 3080      CPI	R24,0
     363 E8E0      LDI	R30,0x80
     364 079E      CPC	R25,R30
     365 F429      BNE	0x036B
(0480) SPI_DATA1;
     366 9180 0062 LDS	R24,0x0062
     368 6081      ORI	R24,1
     369 9380 0062 STS	0x0062,R24
(0481) if((da&0x8000)!=0x8000) 
     36B 01CB      MOVW	R24,R22
     36C 7080      ANDI	R24,0
     36D 7890      ANDI	R25,0x80
     36E 3080      CPI	R24,0
     36F E8E0      LDI	R30,0x80
     370 079E      CPC	R25,R30
     371 F029      BEQ	0x0377
(0482) SPI_DATA0;
     372 9180 0062 LDS	R24,0x0062
     374 7F8E      ANDI	R24,0xFE
     375 9380 0062 STS	0x0062,R24
(0483) SPI_CLK1;						
     377 9A96      SBI	0x12,6
(0484) da<<=1;
     378 0F66      LSL	R22
     379 1F77      ROL	R23

⌨️ 快捷键说明

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