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

📄 dac_tlc5615.lis

📁 ATmega16-TLC5615
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0218           ;       Close_SMG_BIT;
 0218 DA98              cbi 0x1b,2
 021A                   .dbline -2
 021A           L48:
 021A                   .dbline 0 ; func end
 021A 0895              ret
 021C                   .dbend
 021C                   .dbfunc e Spi_Init _Spi_Init fV
 021C           ;              i -> R16
                        .even
 021C           _Spi_Init::
 021C                   .dbline -1
 021C                   .dbline 200
 021C           ; }
 021C           ; /*******************************************************/
 021C           ; /******   函数名称: Spi_Init()                    ******/
 021C           ; /******   功    能: 初始化SPI接口                 ******/
 021C           ; /******   参    数: 无                            ******/
 021C           ; /******   返回值  : 无                            ******/
 021C           ; /*******************************************************/
 021C           ; void Spi_Init(void)
 021C           ; {
 021C                   .dbline 202
 021C           ;       unsigned char i;
 021C           ;       DDRB|=0xb0;                                     //MISO输入MOSI,SCK,SS输出
 021C 87B3              in R24,0x17
 021E 806B              ori R24,176
 0220 87BB              out 0x17,R24
 0222                   .dbline 203
 0222           ;       DDRB&=~0x40;                            
 0222 BE98              cbi 0x17,6
 0224                   .dbline 204
 0224           ;       PORTB|=0x40;                            //MISO上拉有效
 0224 C69A              sbi 0x18,6
 0226                   .dbline 205
 0226           ;       SPSR=0x01;                                      //SPI允许,主机模式,高位在先,极性00,1/2系统时钟速率
 0226 81E0              ldi R24,1
 0228 8EB9              out 0xe,R24
 022A                   .dbline 206
 022A           ;       SPCR=0x50;
 022A 80E5              ldi R24,80
 022C 8DB9              out 0xd,R24
 022E                   .dbline 207
 022E           ;       i=SPSR;
 022E 0EB1              in R16,0xe
 0230                   .dbline 208
 0230           ;       i=SPDR;                                         //清空SPI,和中断标志,使SPI空闲
 0230 0FB1              in R16,0xf
 0232                   .dbline -2
 0232           L49:
 0232                   .dbline 0 ; func end
 0232 0895              ret
 0234                   .dbsym r i 16 c
 0234                   .dbend
 0234                   .dbfunc e PutSPIchar _PutSPIchar fV
 0234           ;           data -> R16
                        .even
 0234           _PutSPIchar::
 0234                   .dbline -1
 0234                   .dbline 217
 0234           ; }
 0234           ; /*******************************************************/
 0234           ; /******   函数名称: PutSPIchar()                  ******/
 0234           ; /******   功    能: 用SPI发送数据                 ******/
 0234           ; /******   参    数: data--待发的数据              ******/
 0234           ; /******   返回值  : 无                            ******/
 0234           ; /*******************************************************/
 0234           ; void PutSPIchar(char data)
 0234           ; {
 0234                   .dbline 218
 0234           ;       SPDR=data;
 0234 0FB9              out 0xf,R16
 0236           L51:
 0236                   .dbline 219
 0236           ;       while(!(SPSR&(1<<SPIF)));       //等待发送完毕
 0236           L52:
 0236                   .dbline 219
 0236 779B              sbis 0xe,7
 0238 FECF              rjmp L51
 023A           X34:
 023A                   .dbline -2
 023A           L50:
 023A                   .dbline 0 ; func end
 023A 0895              ret
 023C                   .dbsym r data 16 c
 023C                   .dbend
 023C                   .dbfunc e CPU_Init _CPU_Init fV
                        .even
 023C           _CPU_Init::
 023C                   .dbline -1
 023C                   .dbline 228
 023C           ; }
 023C           ; /*******************************************************/
 023C           ; /******   函数名称: CPU_Init()                    ******/
 023C           ; /******   功    能: 初始化CPU端口                 ******/
 023C           ; /******   参    数: 无                            ******/
 023C           ; /******   返回值  : 无                            ******/
 023C           ; /*******************************************************/
 023C           ; void CPU_Init(void)
 023C           ; {
 023C                   .dbline 229
 023C           ;       PORTB=0xff;
 023C 8FEF              ldi R24,255
 023E 88BB              out 0x18,R24
 0240                   .dbline 230
 0240           ;       DDRB=0xff;
 0240 87BB              out 0x17,R24
 0242                   .dbline 231
 0242           ;       PORTA=0x80;                                             
 0242 80E8              ldi R24,128
 0244 8BBB              out 0x1b,R24
 0246                   .dbline 232
 0246           ;       DDRA=0xdc;
 0246 8CED              ldi R24,220
 0248 8ABB              out 0x1a,R24
 024A                   .dbline 233
 024A           ;       DDRB=0x00;
 024A 2224              clr R2
 024C 27BA              out 0x17,R2
 024E                   .dbline 234
 024E           ;       PORTC=0xff;
 024E 8FEF              ldi R24,255
 0250 85BB              out 0x15,R24
 0252                   .dbline 235
 0252           ;       DDRC=0x00;
 0252 24BA              out 0x14,R2
 0254                   .dbline 236
 0254           ;       PORTD=0xff;
 0254 82BB              out 0x12,R24
 0256                   .dbline 237
 0256           ;       DDRD=0x00;
 0256 21BA              out 0x11,R2
 0258                   .dbline 238
 0258           ;       Un_Led();
 0258 D2DF              xcall _Un_Led
 025A                   .dbline 239
 025A           ;       Clear_SMG();    
 025A D7DF              xcall _Clear_SMG
 025C                   .dbline -2
 025C           L54:
 025C                   .dbline 0 ; func end
 025C 0895              ret
 025E                   .dbend
 025E                   .dbfile D:\垃圾站\5615\DAC_TLC5615.c
 025E                   .dbfunc e main _main fV
 025E           ;              i -> R20,R21
                        .even
 025E           _main::
 025E                   .dbline -1
 025E                   .dbline 21
 025E           ; /////////////////////////////////////////////////////////////
 025E           ; //  文件:DAC_TLC5615.C                                    //
 025E           ; //  环境:编译为ICC AVR6.31A,仿真为AVR Studio4.12sp4      //
 025E           ; //  硬件:ATMEGA16芯片                                     //
 025E           ; //  日期:2007年5月28日                                    //
 025E           ; //  功能:DA输出模拟电压控制LED亮度渐变                    //
 025E           ; //  备注:                                                 //
 025E           ; /////////////////////////////////////////////////////////////
 025E           ; #include <iom16v.h>                           //包含单片机型号头文件
 025E           ; #include <macros.h>                           //包含"位"操作头文件
 025E           ; #include "delay.h"                            //包含延时头文件
 025E           ; #include "AVR_XQV12.h"                        //包含通用函数及宏定义头文件
 025E           ; 
 025E           ; /*******************************************************/
 025E           ; /******   函数名称: main()                        ******/
 025E           ; /******   功    能: DA输出模拟电压控制LED亮度渐变 ******/
 025E           ; /******   参    数: 无                            ******/
 025E           ; /******   返回值  : 无                            ******/
 025E           ; /*******************************************************/
 025E           ; void main(void)
 025E           ; {
 025E                   .dbline 23
 025E           ;       unsigned int i;
 025E           ;       CPU_Init();                                                             //初始化单片机
 025E EEDF              xcall _CPU_Init
 0260                   .dbline 24
 0260           ;       Spi_Init();                                                             //初始化SPI接口
 0260 DDDF              xcall _Spi_Init
 0262 14C0              xjmp L57
 0264           L56:
 0264                   .dbline 26
 0264           ;       while(1)                                                                //无限循环
 0264           ;       {
 0264                   .dbline 28
 0264           ;                                       
 0264           ;                   i=256;
 0264                   .dbline 29
 0264           ;                       Clr_CS5615;                                             //片选TLC5615 ((i&0x03c0)>>6)
 0264 DC98              cbi 0x1b,4
 0266                   .dbline 30
 0266           ;                       PutSPIchar((unsigned char) 0x00);//发送数据)((i&0x003f)<<2)
 0266 0027              clr R16
 0268 E5DF              xcall _PutSPIchar
 026A                   .dbline 31
 026A           ;                       PutSPIchar((unsigned char) 0x00);
 026A 0027              clr R16
 026C E3DF              xcall _PutSPIchar
 026E                   .dbline 32
 026E           ;                       Set_CS5615;                                     //释放TLC5615
 026E DC9A              sbi 0x1b,4
 0270                   .dbline 33
 0270           ;                       delay_nms(5);                                   //延时
 0270 05E0              ldi R16,5
 0272 10E0              ldi R17,0
 0274 D3DE              xcall _delay_nms
 0276                   .dbline 36
 0276           ;               
 0276           ;                               
 0276           ;                   i=1023;     
 0276 4FEF              ldi R20,1023
 0278 53E0              ldi R21,3
 027A                   .dbline 37
 027A           ;                       Clr_CS5615;                                             //片选TLC5615
 027A DC98              cbi 0x1b,4
 027C                   .dbline 38
 027C           ;                       PutSPIchar((unsigned char) 0xff);//发送数据((i&0x03c0)>>6)
 027C 0FEF              ldi R16,255
 027E DADF              xcall _PutSPIchar
 0280                   .dbline 39
 0280           ;                       PutSPIchar((unsigned char) 0xff);
 0280 0FEF              ldi R16,255
 0282 D8DF              xcall _PutSPIchar
 0284                   .dbline 40
 0284           ;                       Set_CS5615;                                     //释放TLC5615)((i&0x003f)<<2)
 0284 DC9A              sbi 0x1b,4
 0286                   .dbline 41
 0286           ;                       delay_nms(5);                                   //延时
 0286 05E0              ldi R16,5
 0288 10E0              ldi R17,0
 028A C8DE              xcall _delay_nms
 028C                   .dbline 43
 028C           ;               
 028C           ;       }
 028C           L57:
 028C                   .dbline 25
 028C EBCF              xjmp L56
 028E           X35:
 028E                   .dbline -2
 028E           L55:
 028E                   .dbline 0 ; func end
 028E 0895              ret
 0290                   .dbsym r i 20 i
 0290                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\垃圾站\5615\DAC_TLC5615.c
 0000           _temprter::
 0000                   .blkb 2
 0002                   .dbfile D:\垃圾站\5615\AVR_XQV12.h
 0002                   .dbsym e temprter _temprter i
 0002           _Key_Number::
 0002                   .blkb 1
 0003                   .dbsym e Key_Number _Key_Number c
 0003           ; }

⌨️ 快捷键说明

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