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

📄 main.lis

📁 户外显示屏源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00A4                   .dbline 76
 00A4                   .dbline 77
 00A4           ;       default:                      break ;
 00A4                   .dbline 79
 00A4           ;       }
 00A4           ;       }
 00A4 18C0              xjmp L8
 00A6           L7:
 00A6                   .dbline 80
 00A6           ;  else if (string[i]==fend) {end=i-1;start=1;}
 00A6 80E0              ldi R24,<_string
 00A8 90E0              ldi R25,>_string
 00AA E0910000          lds R30,_i
 00AE FF27              clr R31
 00B0 E80F              add R30,R24
 00B2 F91F              adc R31,R25
 00B4 8081              ldd R24,z+0
 00B6 8C33              cpi R24,60
 00B8 49F4              brne L15
 00BA                   .dbline 80
 00BA                   .dbline 80
 00BA 80910000          lds R24,_i
 00BE 8150              subi R24,1
 00C0 80930300          sts _end,R24
 00C4                   .dbline 80
 00C4 81E0              ldi R24,1
 00C6 80930400          sts _start,R24
 00CA                   .dbline 80
 00CA 05C0              xjmp L16
 00CC           L15:
 00CC                   .dbline 82
 00CC           ;  
 00CC           ;  else i++;
 00CC 80910000          lds R24,_i
 00D0 8F5F              subi R24,255    ; addi 1
 00D2 80930000          sts _i,R24
 00D6           L16:
 00D6           L8:
 00D6                   .dbline -2
 00D6           L6:
 00D6 2990              ld R2,y+
 00D8 2FBE              out 0x3f,R2
 00DA F991              ld R31,y+
 00DC E991              ld R30,y+
 00DE 9991              ld R25,y+
 00E0 8991              ld R24,y+
 00E2 1991              ld R17,y+
 00E4 0991              ld R16,y+
 00E6 2990              ld R2,y+
 00E8                   .dbline 0 ; func end
 00E8 1895              reti
 00EA                   .dbend
 00EA                   .dbfunc e ad_1 _ad_1 fi
 00EA           ;          value -> R16,R17
                        .even
 00EA           _ad_1::
 00EA                   .dbline -1
 00EA                   .dbline 95
 00EA           ; 
 00EA           ; }
 00EA           ; 
 00EA           ; /******************************************************************************
 00EA           ; 函数名称:1号通道采集函数
 00EA           ; 函数功能:返回采集一次的模拟量
 00EA           ; 函数参数:无
 00EA           ; 返回值 : 16 位型 ,变量
 00EA           ; 
 00EA           ; ******************************************************************************/
 00EA           ; 
 00EA           ; unsigned int ad_1(void)       //ad0采集函数,返回ad0的值
 00EA           ;  {
 00EA                   .dbline 97
 00EA           ;   unsigned int value;
 00EA           ;   ADMUX=0xc1;
 00EA 81EC              ldi R24,193
 00EC 87B9              out 0x7,R24
 00EE                   .dbline 98
 00EE           ;   ADCSR=0x86;
 00EE 86E8              ldi R24,134
 00F0 86B9              out 0x6,R24
 00F2                   .dbline 99
 00F2           ;   BIT_SET(ADCSR,ADSC);
 00F2 369A              sbi 0x6,6
 00F4           L18:
 00F4                   .dbline 100
 00F4           L19:
 00F4                   .dbline 100
 00F4           ;   while(ADCSR & (1<<ADSC));   //waitting ADC complete 
 00F4 3699              sbic 0x6,6
 00F6 FECF              rjmp L18
 00F8                   .dbline 101
 00F8           ;   value=ADCL;                 //Read 8 low bits first (important) 
 00F8 04B1              in R16,0x4
 00FA 1127              clr R17
 00FC                   .dbline 102
 00FC           ;   value|=( int)ADCH << 8;      //read 2 high bits and shift into top byte 
 00FC 25B0              in R2,0x5
 00FE 3324              clr R3
 0100 322C              mov R3,R2
 0102 2224              clr R2
 0104 0229              or R16,R2
 0106 1329              or R17,R3
 0108                   .dbline 103
 0108           ;   return(value);
 0108                   .dbline -2
 0108           L17:
 0108                   .dbline 0 ; func end
 0108 0895              ret
 010A                   .dbsym r value 16 i
 010A                   .dbend
 010A                   .dbfunc e main _main fV
 010A           ;           temp -> <dead>
 010A           ;          vdata -> R10,R11
 010A           ;           data -> R12,R13
 010A           ;              m -> y+0
                        .even
 010A           _main::
 010A 2497              sbiw R28,4
 010C                   .dbline -1
 010C                   .dbline 109
 010C           ;   }
 010C           ; 
 010C           ;   
 010C           ;  
 010C           ; void main(void)
 010C           ; {    
 010C                   .dbline 113
 010C           ; /*****************************************************************************
 010C           ;                                变量定义
 010C           ; *******************************************************************************/     
 010C           ;        unsigned long int  m=0         ;             //温度采集后的值
 010C 40E0              ldi R20,0
 010E 50E0              ldi R21,0
 0110 60E0              ldi R22,0
 0112 70E0              ldi R23,0
 0114 FE01              movw R30,R28
 0116 4083              std z+0,R20
 0118 5183              std z+1,R21
 011A 6283              std z+2,R22
 011C 7383              std z+3,R23
 011E                   .dbline 121
 011E           ;        char temp                      ;                       //循环变量
 011E           ;        unsigned int data,vdata        ;          //温度和电压的值
 011E           ; /******************************************************************************
 011E           ;                                 端口初始化和晶体频率校正
 011E           ; ******************************************************************************/
 011E           ;        
 011E           ;        
 011E           ;        port_init()                     ;            //端口初始话~~~!
 011E 70DF              xcall _port_init
 0120                   .dbline 122
 0120           ;        OSCCAL=0xb0                                     ;
 0120 80EB              ldi R24,176
 0122 81BF              out 0x31,R24
 0124                   .dbline 128
 0124           ;        
 0124           ; /*------------------------------------------------------------------
 0124           ;  初始化完成,初始化温度计,初始化液晶
 0124           ; --------------------------------------------------------------------*/
 0124           ; 
 0124           ;      resetDS18B20()                  ;          //初始化温度计
 0124 0E940000          xcall _resetDS18B20
 0128                   .dbline 129
 0128           ;      DDRA|=LCD_DATA                  ;            // 数据为输出
 0128 8AB3              in R24,0x1a
 012A 806F              ori R24,240
 012C 8ABB              out 0x1a,R24
 012E                   .dbline 130
 012E           ;        DDRC|=LCD_RS|LCD_EN             ;                //置位RS.EN
 012E 84B3              in R24,0x14
 0130 806C              ori R24,192
 0132 84BB              out 0x14,R24
 0134                   .dbline 131
 0134           ;      LCD_init()                      ;                  //液晶初始化 
 0134 0E940000          xcall _LCD_init
 0138                   .dbline 138
 0138           ;        
 0138           ; /*****************************************************************************
 0138           ;                                        初始化串口
 0138           ; ******************************************************************************/
 0138           ;       // UBRR=0x33;                                            ;                   //波特率9600
 0138           ;       // UCR=0x18                                              ;                       //设置串口接收发送有效
 0138           ;  UCSRB = 0x00; //disable while setting baud rate
 0138 2224              clr R2
 013A 2AB8              out 0xa,R2
 013C                   .dbline 139
 013C           ;  UCSRA = 0x00;
 013C 2BB8              out 0xb,R2
 013E                   .dbline 140
 013E           ;  UCSRC = BIT(URSEL) | 0x06;
 013E 86E8              ldi R24,134
 0140 80BD              out 0x20,R24
 0142                   .dbline 141
 0142           ;  UBRRL = baud; //set baud rate lo
 0142 83E3              ldi R24,51
 0144 89B9              out 0x9,R24
 0146                   .dbline 142
 0146           ;  UBRRH = 0x00; //set baud rate hi
 0146 20BC              out 0x20,R2
 0148                   .dbline 143
 0148           ;  UCSRB = 0x98;
 0148 88E9              ldi R24,152
 014A 8AB9              out 0xa,R24
 014C                   .dbline 149
 014C           ;  
 014C           ; /****************************************************************************
 014C           ;                                       初始化ad口
 014C           ; 使用内部基准2.56 v , 使用 pa1(ad1)口采集电压,并发送到串口                                                                                                               
 014C           ; *****************************************************************************/
 014C           ;     BIT_CLR(DDRA,1);
 014C D198              cbi 0x1a,1
 014E                   .dbline 150
 014E           ;       BIT_CLR(PORTA,1);//设置采集端口为高祖状态
 014E D998              cbi 0x1b,1
 0150                   .dbline 151
 0150           ;       SEI();
 0150 7894              sei
 0152 35C0              xjmp L23
 0154           L22:
 0154                   .dbline 159
 0154           ; 
 0154           ; /******************************************************************************
 0154           ;  主循环体,循环测温,电压,并发送到上位机
 0154           ; ******************************************************************************/       
 0154           ; 
 0154           ;      while(1)
 0154           ;        
 0154           ;        {
 0154                   .dbline 160
 0154           ;            resetDS18B20()                       ;
 0154 0E940000          xcall _resetDS18B20
 0158                   .dbline 161
 0158           ;            m=readTempDS18B20()                      ;       //测试终端温度
 0158 0E940000          xcall _readTempDS18B20
 015C 1801              movw R2,R16
 015E 4424              clr R4
 0160 5524              clr R5
 0162 FE01              movw R30,R28
 0164 2082              std z+0,R2
 0166 3182              std z+1,R3
 0168 4282              std z+2,R4
 016A 5382              std z+3,R5
 016C                   .dbline 163
 016C           ;                
 016C           ;                data=m;
 016C FE01              movw R30,R28
 016E C080              ldd R12,z+0
 0170 D180              ldd R13,z+1
 0172                   .dbline 164
 0172           ;                 vdata = ad_1()                     ;     //测试终端工作电压
 0172 BBDF              xcall _ad_1
 0174 5801              movw R10,R16
 0176                   .dbline 165
 0176           ;                 puts(data)                         ;
 0176 8601              movw R16,R12
 0178 25D0              xcall _puts
 017A                   .dbline 166
 017A           ;                 puts(vdata)                        ;     //发送电压和温度到上位机
 017A 8501              movw R16,R10
 017C 23D0              xcall _puts
 017E                   .dbline 167
 017E           ;                 if(start==1)      display()            ;     // 普通模式
 017E 80910400          lds R24,_start

⌨️ 快捷键说明

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