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

📄 tlc5615s.lst

📁 ATmega16-TLC5615
💻 LST
字号:
__start:
__text_start:
      2A E5CF      LDI	R28,0x5F
      2B E0D4      LDI	R29,4
      2C BFCD      OUT	0x3D,R28
      2D BFDE      OUT	0x3E,R29
      2E 51C0      SUBI	R28,0x10
      2F 40D0      SBCI	R29,0
      30 EA0A      LDI	R16,0xAA
      31 8308      STD	Y+0,R16
      32 2400      CLR	R0
      33 E6E0      LDI	R30,0x60
      34 E0F0      LDI	R31,0
      35 E010      LDI	R17,0
      36 36E0      CPI	R30,0x60
      37 07F1      CPC	R31,R17
      38 F011      BEQ	0x003B
      39 9201      ST	R0,Z+
      3A CFFB      RJMP	0x0036
      3B 8300      STD	Z+0,R16
      3C E5E4      LDI	R30,0x54
      3D E0F0      LDI	R31,0
      3E E6A0      LDI	R26,0x60
      3F E0B0      LDI	R27,0
      40 E010      LDI	R17,0
      41 35E4      CPI	R30,0x54
      42 07F1      CPC	R31,R17
      43 F021      BEQ	0x0048
      44 95C8      LPM
      45 9631      ADIW	R30,1
      46 920D      ST	R0,X+
      47 CFF9      RJMP	0x0041
      48 940E 0057 CALL	_main
_exit:
      4A CFFF      RJMP	_exit
FILE: D:\TLC5615调试\TLC5615S\TLC5615.C
(0001) #include<iom16v.h>
(0002) #include<macros.h>
(0003) //#include"TLC5615.h"
(0004) #define set5615 PORTA|=BIT(4)
(0005) #define clr5615 PORTA&=~BIT(4)
(0006) #define out5615 DDRA|=BIT(4)
(0007) #define in5615 DDRA&=~BIT(4)
(0008) void PutSPIchar(unsigned char data)
(0009) {
(0010)   SPDR=data; //数据输出
_PutSPIchar:
  data                 --> R16
      4B B90F      OUT	0x0F,R16
(0011)   while(!(SPSR&(1<<SPIF)));//SPIF为1跳出
      4C 9B77      SBIS	0x0E,7
      4D CFFE      RJMP	0x004C
      4E 9508      RET
(0012) }
(0013) void SPI_Init(void)
(0014) {
(0015)  out5615;    //DDRA4=1,输出
_SPI_Init:
      4F 9AD4      SBI	0x1A,4
(0016)  DDRB|=0xb0; //SCK,MOSI,SS输出,MISO输入
      50 B387      IN	R24,0x17
      51 6B80      ORI	R24,0xB0
      52 BB87      OUT	0x17,R24
(0017)  //SPSR|=0x00;  //振荡器频率fosc/2
(0018)  SPCR|=0X50; //使能SPI,MSB先发,主模式,CPOL为0 
      53 B18D      IN	R24,0x0D
      54 6580      ORI	R24,0x50
      55 B98D      OUT	0x0D,R24
      56 9508      RET
(0019)  }
(0020) void main()
(0021) {
(0022)  unsigned int i,j;
(0023)  /*out5615;
(0024)  DDRB|=0xb0;
(0025)  SPCR|=0X50;
(0026)  SPSR=0x01;*/
(0027)  SPI_Init(); //初始化SPI和5615设置
_main:
  i                    --> R20
  j                    --> R22
      57 DFF7      RCALL	_SPI_Init
      58 C024      RJMP	0x007D
(0028)    /* 
(0029)      clr5615;           //PA4=0,选中5615
(0030)      PutSPIchar(800>>6);//发送数据前4位,输出某个值的电压
(0031)      PutSPIchar(800<<2);//后6位
(0032)      set5615;           //PA4=1,释放TLC5615*/
(0033)  ///////小灯慢慢亮起来,最后有灭了,然后有渐渐亮起来
(0034)  while(1)
(0035)  {
(0036)  		for(i=80;i<1024;i++)				  //电压逐渐变高
      59 E540      LDI	R20,0x50
      5A E050      LDI	R21,0
      5B C01D      RJMP	0x0079
(0037) 		{
(0038) 			clr5615;						  //片选TLC5615
      5C 98DC      CBI	0x1B,4
(0039) 			PutSPIchar((unsigned char)(i>>6));//发送数
      5D E026      LDI	R18,6
      5E E030      LDI	R19,0
      5F 018A      MOVW	R16,R20
      60 940E 007F CALL	lsr16
      62 DFE8      RCALL	_PutSPIchar
(0040) 			PutSPIchar((unsigned char)(i<<2));//
      63 2F04      MOV	R16,R20
      64 0F00      LSL	R16
      65 1F11      ROL	R17
      66 0F00      LSL	R16
      67 1F11      ROL	R17
      68 DFE2      RCALL	_PutSPIchar
(0041) 			set5615;  		 			      //释放TLC5615
      69 9ADC      SBI	0x1B,4
(0042)             for(j=0;j<5000;j++)
      6A 2766      CLR	R22
      6B 2777      CLR	R23
      6C C006      RJMP	0x0073
(0043) 			{
(0044) 			asm("nop");asm("nop");asm("nop");asm("nop");
FILE: <library>
      6D 0000      NOP
      6E 0000      NOP
      6F 0000      NOP
      70 0000      NOP
      71 5F6F      SUBI	R22,0xFF
      72 4F7F      SBCI	R23,0xFF
      73 3868      CPI	R22,0x88
      74 E1E3      LDI	R30,0x13
      75 077E      CPC	R23,R30
      76 F3B0      BCS	0x006D
      77 5F4F      SUBI	R20,0xFF
      78 4F5F      SBCI	R21,0xFF
      79 3040      CPI	R20,0
      7A E0E4      LDI	R30,4
      7B 075E      CPC	R21,R30
      7C F2F8      BCS	0x005C
      7D CFDB      RJMP	0x0059
      7E 9508      RET
lsr16:
      7F 2322      TST	R18
      80 F021      BEQ	0x0085
      81 9516      LSR	R17
      82 9507      ROR	R16
      83 952A      DEC	R18
      84 CFFA      RJMP	lsr16
      85 9508      RET

⌨️ 快捷键说明

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