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

📄 dac_tlc5615.lis

📁 ATmega16-TLC5615
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module DAC_TLC5615.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\8_DAC_TLC5615\DAC_TLC5615.c
 0000                   .dbfile D:\8_DAC_TLC5615\delay.h
 0000                   .dbfunc e delay_nus _delay_nus fV
 0000           ;           time -> R16,R17
                        .even
 0000           _delay_nus::
 0000                   .dbline -1
 0000                   .dbline 33
 0000           ; //#define     F_CPU           12000000
 0000           ; #define       F_CPU           11059200
 0000           ; //#define     F_CPU                   8000000
 0000           ; //#define     F_CPU                   7372800
 0000           ; //#define     F_CPU                   4000000
 0000           ; /*************************************************************************
 0000           ; 通用延时头文件:
 0000           ;                          delay_nus(n)延时n微秒
 0000           ;                          delay_nms(n)延时n毫秒
 0000           ; *************************************************************************/
 0000           ; #if F_CPU == 12000000
 0000           ;       void delay_nus(unsigned int time)
 0000           ;       {
 0000           ;               while (time!=0)
 0000           ;               {
 0000           ;                       NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
 0000           ;                       time--;
 0000           ;               }
 0000           ;       }
 0000           ;       void delay_nms(unsigned int time)
 0000           ;       {
 0000           ;               unsigned int i;
 0000           ;               while (time!=0)
 0000           ;               {
 0000           ;                       for(i=0;i<1740;i++);
 0000           ;                       time--;
 0000           ;               }
 0000           ;       }
 0000           ; #endif
 0000           ; 
 0000           ; #if F_CPU == 11059200
 0000           ;       void delay_nus(unsigned int time)
 0000           ;       {
 0000 09C0              xjmp L3
 0002           L2:
 0002                   .dbline 35
 0002           ;               while (time!=0)
 0002           ;               {
 0002                   .dbline 36
 0002           ;                       NOP();NOP();NOP();NOP();NOP();NOP();NOP();
 0002 0000              nop
 0004                   .dbline 36
 0004 0000              nop
 0006                   .dbline 36
 0006 0000              nop
 0008                   .dbline 36
 0008 0000              nop
 000A                   .dbline 36
 000A 0000              nop
 000C                   .dbline 36
 000C 0000              nop
 000E                   .dbline 36
 000E 0000              nop
 0010                   .dbline 37
 0010           ;                       time--;
 0010 0150              subi R16,1
 0012 1040              sbci R17,0
 0014                   .dbline 38
 0014           ;               }
 0014           L3:
 0014                   .dbline 34
 0014 0030              cpi R16,0
 0016 0107              cpc R16,R17
 0018 A1F7              brne L2
 001A           X0:
 001A                   .dbline -2
 001A           L1:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r time 16 i
 001C                   .dbend
 001C                   .dbfunc e delay_nms _delay_nms fV
 001C           ;              i -> R20,R21
 001C           ;           time -> R16,R17
                        .even
 001C           _delay_nms::
 001C 4A93              st -y,R20
 001E 5A93              st -y,R21
 0020                   .dbline -1
 0020                   .dbline 41
 0020           ;       }
 0020           ;       void delay_nms(unsigned int time)
 0020           ;       {
 0020 0BC0              xjmp L7
 0022           L6:
 0022                   .dbline 44
 0022           ;               unsigned int i;
 0022           ;               while (time!=0)
 0022           ;               {
 0022                   .dbline 45
 0022           ;                       for(i=0;i<1580;i++);    
 0022 4427              clr R20
 0024 5527              clr R21
 0026 02C0              xjmp L12
 0028           L9:
 0028                   .dbline 45
 0028           L10:
 0028                   .dbline 45
 0028 4F5F              subi R20,255  ; offset = 1
 002A 5F4F              sbci R21,255
 002C           L12:
 002C                   .dbline 45
 002C 4C32              cpi R20,44
 002E E6E0              ldi R30,6
 0030 5E07              cpc R21,R30
 0032 D0F3              brlo L9
 0034           X1:
 0034                   .dbline 46
 0034           ;                       time--;
 0034 0150              subi R16,1
 0036 1040              sbci R17,0
 0038                   .dbline 47
 0038           ;               }
 0038           L7:
 0038                   .dbline 43
 0038 0030              cpi R16,0
 003A 0107              cpc R16,R17
 003C 91F7              brne L6
 003E           X2:
 003E                   .dbline -2
 003E           L5:
 003E                   .dbline 0 ; func end
 003E 5991              ld R21,y+
 0040 4991              ld R20,y+
 0042 0895              ret
 0044                   .dbsym r i 20 i
 0044                   .dbsym r time 16 i
 0044                   .dbend
                        .area code(ram, con, rel)
 0000                   .dbfile D:\8_DAC_TLC5615\delay.h
                        .area lit(rom, con, rel)
 0000           _SMG_Conver::
 0000 3F06              .byte 63,6
 0002 5B4F              .byte 91,'O
 0004 666D              .byte 'f,'m
 0006 7D07              .byte 125,7
 0008 7F6F              .byte 127,'o
 000A 777C              .byte 'w,124
 000C 395E              .byte 57,94
 000E 7971              .byte 'y,'q
 0010 0040              .byte 0,64
 0012                   .dbfile D:\8_DAC_TLC5615\AVR_XQV12.h
 0012                   .dbsym e SMG_Conver _SMG_Conver A[18:18]kc
                        .area data(ram, con, rel)
 0000                   .dbfile D:\8_DAC_TLC5615\AVR_XQV12.h
                        .area text(rom, con, rel)
 0044                   .dbfile D:\8_DAC_TLC5615\AVR_XQV12.h
 0044                   .dbfunc e Scan_Key _Scan_Key fc
 0044           ;              i -> R20
                        .even
 0044           _Scan_Key::
 0044 4A93              st -y,R20
 0046 5A93              st -y,R21
 0048                   .dbline -1
 0048                   .dbline 69
 0048           ; 
 0048           ; #define               TRUE                    0xff                                    //真
 0048           ; #define               FALSE                   0x00                                    //假
 0048           ; #define               null                    0x00                                    //空
 0048           ; #define       Open_LED                PORTA|=0x10                             //使能LED
 0048           ; #define       Close_LED               PORTA&=~0x10                    //关闭LED
 0048           ; #define               LED                             PORTB                                   //LED端口
 0048           ; #define               SMG                             PORTB                                   //数码管端口
 0048           ; #define       Open_SMG_DATA   PORTA|=0x08                             //使能数码管数据
 0048           ; #define       Close_SMG_DATA  PORTA&=~0x08                    //关闭数码管数据
 0048           ; #define       Open_SMG_BIT    PORTA|=0x04                             //使能数码管位选择
 0048           ; #define       Close_SMG_BIT   PORTA&=~0x04                    //关闭数码管位选择
 0048           ; #define               KEY0                    (PIND&0x04)                             //INT0
 0048           ; #define               KEY1                    (PIND&0x08)                             //INT1
 0048           ; #define       SetSclk                 (PORTC|=0x80)                   //LCD12864 CLK
 0048           ; #define       ClrSclk                 (PORTC&=~0x80)
 0048           ; #define       SetRs                   (PORTD|=0x40)                   //LCD12864 CS
 0048           ; #define       ClrRs                   (PORTD&=~0x40)
 0048           ; #define       SetSid                  (PORTC|=0x40)                   //LCD12864 DATA
 0048           ; #define       ClrSid                  (PORTC&=~0x40)
 0048           ; #define       D0                              0x20                                    //18B20 DATA
 0048           ; #define       port                    PORTA
 0048           ; #define       ddrt                    DDRA
 0048           ; #define       pin                     PINA
 0048           ; #define       Set_CS5615              (PORTA|=0x80)                   //片选5615
 0048           ; #define       Clr_CS5615              (PORTA&=~0x80)                  //释放
 0048           ; #define       Period                  0x6bfe                                  //PWM脉冲周期20ms
 0048           ; #define       rd_device_add   0xa3                                    //定义器件读地址
 0048           ; #define       wr_device_add   0xa2                                    //定义器件写地址
 0048           ; #define       START                   0x08                                    //起始信号
 0048           ; #define       MT_SLA_ACK              0x18
 0048           ; #define       MT_DATA_ACK     0x28
 0048           ; #define       RE_START                0x10
 0048           ; #define       MR_SLA_ACK              0x40
 0048           ; #define       MR_DATA_NOACK   0x58
 0048           ; #define       START                   0x08
 0048           ; #define       MT_SLA_ACK              0x18
 0048           ; #define       MT_DATA_ACK     0x28
 0048           ; #define       RE_START                0x10
 0048           ; #define       MR_SLA_ACK              0x40
 0048           ; #define       MR_DATA_NOACK   0x58
 0048           ; #define       MR_DATA_ACK     0x50
 0048           ; 
 0048           ; #if AD==TRUE                                  //条件编译指令
 0048           ; unsigned char Adc_Mux=0;
 0048           ; unsigned int Adc0_Rel=0;
 0048           ; unsigned int Adc1_Rel=0;
 0048           ; unsigned int Adc0_Catch=0;
 0048           ; unsigned int Adc1_Catch=0;
 0048           ; unsigned int Adc0_Conver[20];
 0048           ; unsigned int Adc1_Conver[20];
 0048           ; unsigned char Adc0_F;
 0048           ; unsigned char Adc1_F;
 0048           ; #endif                                                        //条件编译结束
 0048           ; unsigned char Key_Number;                                     //全局变量:按键标志
 0048           ; unsigned int temprter;
 0048           ; #pragma data:code 
 0048           ; const unsigned char SMG_Conver[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
 0048           ;                                       0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};
 0048           ;                                                                                       //数码管译码数组
 0048           ; #pragma data:data
 0048           ; /*******************************************************/
 0048           ; /******   函数名称: Scan_Key()                    ******/
 0048           ; /******   功    能: 键盘扫描                      ******/
 0048           ; /******   参    数: 无                            ******/
 0048           ; /******   返回值  : 按键的键值,无按键时返回null  ******/
 0048           ; /*******************************************************/
 0048           ; unsigned char Scan_Key(void)
 0048           ; {
 0048                   .dbline 71
 0048           ;       unsigned char i;
 0048           ;       PORTC=0x00;
 0048 2224              clr R2
 004A 25BA              out 0x15,R2
 004C                   .dbline 72
 004C           ;       DDRC =0xf0;                                                     //设置端口高4位输出,低四位输入
 004C 80EF              ldi R24,240
 004E 84BB              out 0x14,R24
 0050                   .dbline 73
 0050           ;       PORTC=0x0f;                                                     //低四位内部上拉
 0050 8FE0              ldi R24,15
 0052 85BB              out 0x15,R24
 0054                   .dbline 74
 0054           ;       delay_nus(1);                                           //短暂延时
 0054 01E0              ldi R16,1
 0056 10E0              ldi R17,0
 0058 D3DF              xcall _delay_nus
 005A                   .dbline 75
 005A           ;       i=PINC&0x0f;                                            //读取端口电平
 005A 43B3              in R20,0x13
 005C 4F70              andi R20,15
 005E                   .dbline 76
 005E           ;       if(i!=0x0f)                                                     //判断是否有键按下
 005E 4F30              cpi R20,15
 0060 B1F0              breq L14
 0062           X3:
 0062                   .dbline 77
 0062           ;       {
 0062                   .dbline 78
 0062           ;               PORTC=0x00;
 0062 2224              clr R2
 0064 25BA              out 0x15,R2
 0066                   .dbline 79
 0066           ;               DDRC =0x0f;                                             //设置端口低4位输出,高四位输入

⌨️ 快捷键说明

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