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

📄 tlc5615.s

📁 ATmega16-TLC5615
💻 S
字号:
	.module TLC5615.C
	.area text(rom, con, rel)
	.dbfile D:\TLC5615调试\TLC5615S\TLC5615.C
	.dbfunc e PutSPIchar _PutSPIchar fV
;           data -> R16
	.even
_PutSPIchar::
	.dbline -1
	.dbline 9
; #include<iom16v.h>
; #include<macros.h>
; //#include"TLC5615.h"
; #define set5615 PORTA|=BIT(4)
; #define clr5615 PORTA&=~BIT(4)
; #define out5615 DDRA|=BIT(4)
; #define in5615 DDRA&=~BIT(4)
; void PutSPIchar(unsigned char data)
; {
	.dbline 10
;   SPDR=data; //数据输出
	out 0xf,R16
L2:
	.dbline 11
;   while(!(SPSR&(1<<SPIF)));//SPIF为1跳出
L3:
	.dbline 11
	sbis 0xe,7
	rjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e SPI_Init _SPI_Init fV
	.even
_SPI_Init::
	.dbline -1
	.dbline 14
; }
; void SPI_Init(void)
; {
	.dbline 15
;  out5615;    //DDRA4=1,输出
	sbi 0x1a,4
	.dbline 16
;  DDRB|=0xb0; //SCK,MOSI,SS输出,MISO输入
	in R24,0x17
	ori R24,176
	out 0x17,R24
	.dbline 18
;  //SPSR|=0x00;  //振荡器频率fosc/2
;  SPCR|=0X50; //使能SPI,MSB先发,主模式,CPOL为0 
	in R24,0xd
	ori R24,80
	out 0xd,R24
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;              i -> R20,R21
;              j -> R22,R23
	.even
_main::
	.dbline -1
	.dbline 21
;  }
; void main()
; {
	.dbline 27
;  unsigned int i,j;
;  /*out5615;
;  DDRB|=0xb0;
;  SPCR|=0X50;
;  SPSR=0x01;*/
;  SPI_Init(); //初始化SPI和5615设置
	xcall _SPI_Init
	xjmp L8
L7:
	.dbline 35
;    /* 
;      clr5615;           //PA4=0,选中5615
;      PutSPIchar(800>>6);//发送数据前4位,输出某个值的电压
;      PutSPIchar(800<<2);//后6位
;      set5615;           //PA4=1,释放TLC5615*/
;  ///////小灯慢慢亮起来,最后有灭了,然后有渐渐亮起来
;  while(1)
;  {
	.dbline 36
;  		for(i=80;i<1024;i++)				  //电压逐渐变高
	ldi R20,80
	ldi R21,0
	xjmp L13
L10:
	.dbline 37
; 		{
	.dbline 38
; 			clr5615;						  //片选TLC5615
	cbi 0x1b,4
	.dbline 39
; 			PutSPIchar((unsigned char)(i>>6));//发送数
	ldi R18,6
	ldi R19,0
	movw R16,R20
	xcall lsr16
	xcall _PutSPIchar
	.dbline 40
; 			PutSPIchar((unsigned char)(i<<2));//
	mov R16,R20
	lsl R16
	rol R17
	lsl R16
	rol R17
	xcall _PutSPIchar
	.dbline 41
; 			set5615;  		 			      //释放TLC5615
	sbi 0x1b,4
	.dbline 42
;             for(j=0;j<5000;j++)
	clr R22
	clr R23
	xjmp L17
L14:
	.dbline 43
; 			{
	.dbline 44
; 			asm("nop");asm("nop");asm("nop");asm("nop");
	nop
	.dbline 44
	nop
	.dbline 44
	nop
	.dbline 44
	nop
	.dbline 45
; 			}
L15:
	.dbline 42
	subi R22,255  ; offset = 1
	sbci R23,255
L17:
	.dbline 42
	cpi R22,136
	ldi R30,19
	cpc R23,R30
	brlo L14
X1:
	.dbline 46
; 		}
L11:
	.dbline 36
	subi R20,255  ; offset = 1
	sbci R21,255
L13:
	.dbline 36
	cpi R20,0
	ldi R30,4
	cpc R21,R30
	brlo L10
X2:
	.dbline 47
;    }
L8:
	.dbline 34
	xjmp L7
X3:
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r j 22 i
	.dbend
; }

⌨️ 快捷键说明

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