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

📄 dac_tlc5615.lis

📁 ATmega16-TLC5615
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0184           L40:
 0184                   .dbline 117
 0184           ;               case 0x7e:return 15;                    //按键F
 0184 0FE0              ldi R16,15
 0186 01C0              xjmp L21
 0188           L22:
 0188                   .dbline 118
 0188           ;               default: return 16;                             //无按键按下
 0188 00E1              ldi R16,16
 018A                   .dbline -2
 018A           L21:
 018A                   .dbline 0 ; func end
 018A 5991              ld R21,y+
 018C 4991              ld R20,y+
 018E 0895              ret
 0190                   .dbsym r key 16 c
 0190                   .dbend
 0190                   .dbfunc e Display_One_SMG _Display_One_SMG fV
 0190           ;           data -> R12
 0190           ;            bit -> R10
                        .even
 0190           _Display_One_SMG::
 0190 0E940000          xcall push_xgset003C
 0194 C22E              mov R12,R18
 0196 A02E              mov R10,R16
 0198                   .dbline -1
 0198                   .dbline 129
 0198           ;       }
 0198           ; }             
 0198           ; /*******************************************************/
 0198           ; /******   函数名称: Display_One_SMG()             ******/
 0198           ; /******   功    能: 显示指定内容在指定位          ******/
 0198           ; /******   参    数: bit--位(1-8),              ******/
 0198           ; /******             data--显示内容(0-15,16为全灭)****/
 0198           ; /******   返回值  : 无                            ******/
 0198           ; /*******************************************************/
 0198           ; void Display_One_SMG(unsigned char bit,unsigned char data)
 0198           ; {
 0198                   .dbline 130
 0198           ;       SMG=SMG_Conver[data];                           //送显示数据
 0198 80E0              ldi R24,<_SMG_Conver
 019A 90E0              ldi R25,>_SMG_Conver
 019C EC2D              mov R30,R12
 019E FF27              clr R31
 01A0 E80F              add R30,R24
 01A2 F91F              adc R31,R25
 01A4 2490              lpm R2,Z
 01A6 28BA              out 0x18,R2
 01A8                   .dbline 131
 01A8           ;       Open_SMG_DATA;                                          //锁存数据
 01A8 DB9A              sbi 0x1b,3
 01AA                   .dbline 132
 01AA           ;       Close_SMG_DATA;                                 
 01AA DB98              cbi 0x1b,3
 01AC                   .dbline 133
 01AC           ;       SMG=~BIT(bit);                                          //送位数据
 01AC 01E0              ldi R16,1
 01AE 1A2D              mov R17,R10
 01B0 0E940000          xcall lsl8
 01B4 202E              mov R2,R16
 01B6 2094              com R2
 01B8 28BA              out 0x18,R2
 01BA                   .dbline 134
 01BA           ;       Open_SMG_BIT;                                           //锁存数据
 01BA DA9A              sbi 0x1b,2
 01BC                   .dbline 135
 01BC           ;       Close_SMG_BIT;
 01BC DA98              cbi 0x1b,2
 01BE                   .dbline 136
 01BE           ;       delay_nms(2);
 01BE 02E0              ldi R16,2
 01C0 10E0              ldi R17,0
 01C2 2CDF              xcall _delay_nms
 01C4                   .dbline -2
 01C4           L44:
 01C4                   .dbline 0 ; func end
 01C4 0C940000          xjmp pop_xgset003C
 01C8                   .dbsym r data 12 c
 01C8                   .dbsym r bit 10 c
 01C8                   .dbend
 01C8                   .dbfunc e Display_One_SMG_Point _Display_One_SMG_Point fV
 01C8           ;            bit -> R10
                        .even
 01C8           _Display_One_SMG_Point::
 01C8 AA92              st -y,R10
 01CA BA92              st -y,R11
 01CC A02E              mov R10,R16
 01CE                   .dbline -1
 01CE                   .dbline 144
 01CE           ; }
 01CE           ; /*******************************************************/
 01CE           ; /******   函数名称: Display_One_SMG_Point()       ******/
 01CE           ; /******   功    能: 显示小数点在指定位            ******/
 01CE           ; /******   返回值  : 无                            ******/
 01CE           ; /*******************************************************/
 01CE           ; void Display_One_SMG_Point(unsigned char bit)
 01CE           ; {
 01CE                   .dbline 145
 01CE           ;       SMG=0x80;                                                       //送显示数据
 01CE 80E8              ldi R24,128
 01D0 88BB              out 0x18,R24
 01D2                   .dbline 146
 01D2           ;       Open_SMG_DATA;                                          //锁存数据
 01D2 DB9A              sbi 0x1b,3
 01D4                   .dbline 147
 01D4           ;       Close_SMG_DATA;                                 
 01D4 DB98              cbi 0x1b,3
 01D6                   .dbline 148
 01D6           ;       SMG=~BIT(bit);                                          //送位数据
 01D6 01E0              ldi R16,1
 01D8 1A2D              mov R17,R10
 01DA 0E940000          xcall lsl8
 01DE 202E              mov R2,R16
 01E0 2094              com R2
 01E2 28BA              out 0x18,R2
 01E4                   .dbline 149
 01E4           ;       Open_SMG_BIT;                                           //锁存数据
 01E4 DA9A              sbi 0x1b,2
 01E6                   .dbline 150
 01E6           ;       Close_SMG_BIT;
 01E6 DA98              cbi 0x1b,2
 01E8                   .dbline 151
 01E8           ;       delay_nms(2);
 01E8 02E0              ldi R16,2
 01EA 10E0              ldi R17,0
 01EC 17DF              xcall _delay_nms
 01EE                   .dbline -2
 01EE           L45:
 01EE                   .dbline 0 ; func end
 01EE B990              ld R11,y+
 01F0 A990              ld R10,y+
 01F2 0895              ret
 01F4                   .dbsym r bit 10 c
 01F4                   .dbend
 01F4                   .dbfunc e En_Led _En_Led fV
                        .even
 01F4           _En_Led::
 01F4                   .dbline -1
 01F4                   .dbline 160
 01F4           ; }
 01F4           ; /*******************************************************/
 01F4           ; /******   函数名称: En_Led()                      ******/
 01F4           ; /******   功    能: 使能LED功能                   ******/
 01F4           ; /******   参    数: 无                            ******/
 01F4           ; /******   返回值  : 无                            ******/
 01F4           ; /*******************************************************/
 01F4           ; void En_Led(void)
 01F4           ; {
 01F4                   .dbline 161
 01F4           ;       DDRB=0xff;                                      //设置输出
 01F4 8FEF              ldi R24,255
 01F6 87BB              out 0x17,R24
 01F8                   .dbline 162
 01F8           ;       PORTB=0xff;                                     //输出高电平
 01F8 88BB              out 0x18,R24
 01FA                   .dbline 163
 01FA           ;       Open_LED;                                       //打开LED功能
 01FA DC9A              sbi 0x1b,4
 01FC                   .dbline -2
 01FC           L46:
 01FC                   .dbline 0 ; func end
 01FC 0895              ret
 01FE                   .dbend
 01FE                   .dbfunc e Un_Led _Un_Led fV
                        .even
 01FE           _Un_Led::
 01FE                   .dbline -1
 01FE                   .dbline 172
 01FE           ; }
 01FE           ; /*******************************************************/
 01FE           ; /******   函数名称: Un_Led()                      ******/
 01FE           ; /******   功    能: 关闭LED功能                   ******/
 01FE           ; /******   参    数: 无                            ******/
 01FE           ; /******   返回值  : 无                            ******/
 01FE           ; /*******************************************************/
 01FE           ; void Un_Led(void)
 01FE           ; {
 01FE                   .dbline 173
 01FE           ;       DDRB=0xff;                                      //设置输出
 01FE 8FEF              ldi R24,255
 0200 87BB              out 0x17,R24
 0202                   .dbline 174
 0202           ;       PORTB=0xff;                                     //输出高电平
 0202 88BB              out 0x18,R24
 0204                   .dbline 175
 0204           ;       Open_LED;                                       //打开LED功能
 0204 DC9A              sbi 0x1b,4
 0206                   .dbline 176
 0206           ;       Close_LED;                                      //关闭LED功能
 0206 DC98              cbi 0x1b,4
 0208                   .dbline -2
 0208           L47:
 0208                   .dbline 0 ; func end
 0208 0895              ret
 020A                   .dbend
 020A                   .dbfunc e Clear_SMG _Clear_SMG fV
                        .even
 020A           _Clear_SMG::
 020A                   .dbline -1
 020A                   .dbline 185
 020A           ; }
 020A           ; /*******************************************************/
 020A           ; /******   函数名称: Clear_SMG()                   ******/
 020A           ; /******   功    能: 关闭数码管功能                ******/
 020A           ; /******   参    数: 无                            ******/
 020A           ; /******   返回值  : 无                            ******/
 020A           ; /*******************************************************/
 020A           ; void Clear_SMG(void)
 020A           ; {
 020A                   .dbline 186
 020A           ;       DDRB=0xff;                                      //设置输出
 020A 8FEF              ldi R24,255
 020C 87BB              out 0x17,R24
 020E                   .dbline 187
 020E           ;       PORTB=0x00;                                     //输出高电平
 020E 2224              clr R2
 0210 28BA              out 0x18,R2
 0212                   .dbline 188
 0212           ;       Open_SMG_DATA;                          //锁存数据
 0212 DB9A              sbi 0x1b,3
 0214                   .dbline 189
 0214           ;       Close_SMG_DATA;
 0214 DB98              cbi 0x1b,3
 0216                   .dbline 190
 0216           ;       Open_SMG_BIT;
 0216 DA9A              sbi 0x1b,2
 0218                   .dbline 191
 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

⌨️ 快捷键说明

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