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

📄 dac_tlc5615.lis

📁 ATmega16-TLC5615
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 016C           ;               case 0xdd:return 9;                             //按键9
 016C 09E0              ldi R16,9
 016E 0DC0              xjmp L21
 0170           L35:
 0170                   .dbline 112
 0170           ;               case 0xbd:return 10;                    //按键A
 0170 0AE0              ldi R16,10
 0172 0BC0              xjmp L21
 0174           L36:
 0174                   .dbline 113
 0174           ;               case 0x7d:return 11;                    //按键B
 0174 0BE0              ldi R16,11
 0176 09C0              xjmp L21
 0178           L37:
 0178                   .dbline 114
 0178           ;               case 0xee:return 12;                    //按键C
 0178 0CE0              ldi R16,12
 017A 07C0              xjmp L21
 017C           L38:
 017C                   .dbline 115
 017C           ;               case 0xde:return 13;                    //按键D
 017C 0DE0              ldi R16,13
 017E 05C0              xjmp L21
 0180           L39:
 0180                   .dbline 116
 0180           ;               case 0xbe:return 14;                    //按键E
 0180 0EE0              ldi R16,14
 0182 03C0              xjmp L21
 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

⌨️ 快捷键说明

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