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

📄 avrstudy.lis

📁 AVR学习开发 板
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 009A                   .dbsym r Cbyte 20 c
 009A                   .dbend
 009A                   .dbfunc e WriteData _WriteData fV
 009A           ;          Dbyte -> R20
                        .even
 009A           _WriteData::
 009A 00D0              rcall push_gset1
 009C 402F              mov R20,R16
 009E                   .dbline -1
 009E                   .dbline 86
 009E           ;       spi_init();
 009E           ;     Init_int();  //中断初始化
 009E           ;       LcmInit();                                      //液晶初始化                                                                              
 009E           ;     Delay(10);
 009E                   .dbline 87
 009E           ;     twi_init();                                                //TWI初始化
 009E E8DF              rcall _CheckBusy
 00A0                   .dbline 88
 00A0           ;       PORTB=0xff;                                     //背光口开                                                                                        
 00A0 0AEF              ldi R16,250
 00A2 AEDF              rcall _SendByte
 00A4                   .dbline 89
 00A4           ;     LCD_ON;                     //开液晶背光显示 
 00A4 042F              mov R16,R20
 00A6 007F              andi R16,240
 00A8 ABDF              rcall _SendByte
 00AA                   .dbline 90
 00AA           ;       DS1302_portinit();                      //初始化DS1302的三根数据线
 00AA 042F              mov R16,R20
 00AC 0F70              andi R16,#0x0F
 00AE 0295              swap R16
 00B0 007F              andi R16,240
 00B2 A6DF              rcall _SendByte
 00B4                   .dbline -2
 00B4           L26:
 00B4 00D0              rcall pop_gset1
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbsym r Dbyte 20 c
 00B8                   .dbend
 00B8                   .dbfunc e ReadData _ReadData fc
                        .even
 00B8           _ReadData::
 00B8                   .dbline -1
 00B8                   .dbline 94
 00B8           ;       //DS1302_init();                        //启动振荡器,DS1302开始工作 
 00B8           ;       //DS1302_setT(settime);         //设置初始时间
 00B8           ;       while(1)
 00B8           ;       {
 00B8                   .dbline 95
 00B8           ;           PutStr(0,0,"DS1302时钟显示");
 00B8 DBDF              rcall _CheckBusy
 00BA                   .dbline 96
 00BA           ;               PutStr(0,0,str1);
 00BA 0EEF              ldi R16,254
 00BC A1DF              rcall _SendByte
 00BE                   .dbline 97
 00BE           ;               Delay(10); 
 00BE B0DF              rcall _ReceiveByte
 00C0                   .dbline -2
 00C0           L27:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbend
 00C2                   .dbfunc e Delay _Delay fV
 00C2           ;            usn -> R20
 00C2           ;             us -> R22
 00C2           ;             MS -> R16,R17
                        .even
 00C2           _Delay::
 00C2 00D0              rcall push_gset2
 00C4                   .dbline -1
 00C4                   .dbline 101
 00C4           ;               PutStr(3,0,str2);
 00C4           ;               Delay(10);
 00C4           ;               while(exit1==0)                                 //以下程序完成显示和设置时间 
 00C4           ;               {
 00C4 0CC0              rjmp L30
 00C6           L29:
 00C6                   .dbline 104
 00C6           ;             DS1302_getT(gettime);     //获得当前时间
 00C6           ;                   Disp_time(gettime);         //显示当前时间
 00C6           ;                       delay(100);
 00C6                   .dbline 105
 00C6           ;               }
 00C6 42E0              ldi R20,2
 00C8 06C0              rjmp L33
 00CA           L32:
 00CA                   .dbline 107
 00CA           ;               exit1=0;
 00CA           ;               exit2=0;
 00CA                   .dbline 108
 00CA           ;               enter1=0;
 00CA 65EF              ldi R22,245
 00CC 01C0              rjmp L36
 00CE           L35:
 00CE                   .dbline 109
 00CE                   .dbline 109
 00CE 6A95              dec R22
 00D0                   .dbline 109
 00D0           L36:
 00D0                   .dbline 109
 00D0 6623              tst R22
 00D2 E9F7              brne L35
 00D4                   .dbline 109
 00D4                   .dbline 110
 00D4 4A95              dec R20
 00D6                   .dbline 111
 00D6           L33:
 00D6                   .dbline 106
 00D6 4423              tst R20
 00D8 C1F7              brne L32
 00DA                   .dbline 112
 00DA 0150              subi R16,1
 00DC 1040              sbci R17,0
 00DE                   .dbline 113
 00DE           L30:
 00DE                   .dbline 103
 00DE 0030              cpi R16,0
 00E0 0107              cpc R16,R17
 00E2 89F7              brne L29
 00E4           X0:
 00E4                   .dbline -2
 00E4           L28:
 00E4 00D0              rcall pop_gset2
 00E6                   .dbline 0 ; func end
 00E6 0895              ret
 00E8                   .dbsym r usn 20 c
 00E8                   .dbsym r us 22 c
 00E8                   .dbsym r MS 16 i
 00E8                   .dbend
 00E8                   .dbfunc e LcmInit _LcmInit fV
                        .even
 00E8           _LcmInit::
 00E8                   .dbline -1
 00E8                   .dbline 117
 00E8           ;               number1=1;
 00E8           ;               LcmInit();                                      //液晶初始化    
 00E8           ;               delay(10);                                                                        
 00E8           ;               while(exit2==0)
 00E8           ;               {
 00E8           ;                   switch(number1)
 00E8           ;                       {
 00E8           ;                           case 1:{PutStr(0,0,str3);}break;
 00E8           ;                               case 2:{PutStr(0,0,str4);}break;
 00E8                   .dbline 118
 00E8           ;                               case 3:{PutStr(0,0,str5);}break;
 00E8 00E3              ldi R16,48
 00EA C8DF              rcall _WriteCommand
 00EC                   .dbline 119
 00EC           ;                               case 4:{PutStr(0,0,str6);}break;
 00EC 03E0              ldi R16,3
 00EE C6DF              rcall _WriteCommand
 00F0                   .dbline 120
 00F0           ;                               case 5:{PutStr(0,0,str7);}break;
 00F0 0CE0              ldi R16,12
 00F2 C4DF              rcall _WriteCommand
 00F4                   .dbline 121
 00F4           ;                               case 6:{PutStr(0,0,str8);}break;
 00F4 01E0              ldi R16,1
 00F6 C2DF              rcall _WriteCommand
 00F8                   .dbline 122
 00F8           ;                               case 7:{PutStr(0,0,str9);}break;
 00F8 06E0              ldi R16,6
 00FA C0DF              rcall _WriteCommand
 00FC                   .dbline -2
 00FC           L38:
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbend
 00FE                   .dbfunc e LcmClearTXT _LcmClearTXT fV
                        .even
 00FE           _LcmClearTXT::
 00FE                   .dbline -1
 00FE                   .dbline 126
 00FE           ;                               
 00FE           ;                       }
 00FE           ;                       delay(100); 
 00FE           ;                       if(enter1==1)
 00FE                   .dbline 127
 00FE           ;                       {   
 00FE F4DF              rcall _LcmInit
 0100                   .dbline -2
 0100           L39:
 0100                   .dbline 0 ; func end
 0100 0895              ret
 0102                   .dbend
 0102                   .dbfunc e LcmClearBMP _LcmClearBMP fV
 0102           ;              i -> R20
 0102           ;              j -> R22
                        .even
 0102           _LcmClearBMP::
 0102 00D0              rcall push_gset2
 0104                   .dbline -1
 0104                   .dbline 131
 0104           ;                               exit1=0;
 0104           ;                           LcmInit();                                  //液晶初始化    
 0104           ;                               delay(10);                                                                        
 0104           ;                               while(exit1==0)
 0104                   .dbline 133
 0104           ;                               {
 0104           ;                                       switch(number1)
 0104 04E3              ldi R16,52
 0106 BADF              rcall _WriteCommand
 0108                   .dbline 134
 0108           ;                                       {
 0108 4427              clr R20
 010A 0DC0              rjmp L44
 010C           L41:
 010C                   .dbline 135
 010C           ;                                   case 1:
 010C                   .dbline 136
 010C           ;                                               {
 010C 042F              mov R16,R20
 010E 0068              ori R16,128
 0110 B5DF              rcall _WriteCommand
 0112                   .dbline 137
 0112           ;                                                       PutStr(1,0,str10);
 0112 00E8              ldi R16,128
 0114 B3DF              rcall _WriteCommand
 0116                   .dbline 138
 0116           ;                                                   for(i=0;i<256;i++)
 0116 6627              clr R22
 0118 03C0              rjmp L48
 011A           L45:
 011A                   .dbline 139
 011A 0027              clr R16
 011C BEDF              rcall _WriteData
 011E           L46:
 011E                   .dbline 138
 011E 6395              inc R22
 0120           L48:
 0120                   .dbline 138
 0120 6032              cpi R22,32
 0122 D8F3              brlo L45
 0124                   .dbline 140
 0124           L42:
 0124                   .dbline 134
 0124 4395              inc R20
 0126           L44:
 0126                   .dbline 134
 0126 4032              cpi R20,32
 0128 88F3              brlo L41
 012A                   .dbline -2
 012A           L40:
 012A 00D0              rcall pop_gset2
 012C                   .dbline 0 ; func end
 012C 0895              ret
 012E                   .dbsym r i 20 c
 012E                   .dbsym r j 22 c
 012E                   .dbend
 012E                   .dbfunc e PutStr _PutStr fV
 012E           ;           puts -> R20,R21
 012E           ;            col -> R22
 012E           ;            row -> R10
                        .even
 012E           _PutStr::
 012E 00D0              rcall push_gset3
 0130 622F              mov R22,R18
 0132 A02E              mov R10,R16
 0134 4E81              ldd R20,y+6
 0136 5F81              ldd R21,y+7
 0138                   .dbline -1
 0138                   .dbline 145
 0138           ;                                                       {
 0138           ;                                                       senddat(i);
 0138           ;                                                       delay(100);
 0138           ;                                                       }
 0138           ;                                                       
 0138           ;                                               }break;
 0138           ;                                               case 2:
 0138                   .dbline 146
 0138           ;                                               {
 0138 00E3              ldi R16,48
 013A A0DF              rcall _WriteCommand
 013C                   .dbline 147
 013C           ;                                                   for(i=0;i<7;i++)
 013C 88E0              ldi R24,8
 013E 8A9D              mul R24,R10
 0140 F001              movw R30,R0
 0142 262E              mov R2,R22
 0144 3324              clr R3
 0146 E20D              add R30,R2
 0148 F31D              adc R31,R3
 014A 80E0              ldi R24,<_AC_TABLE
 014C 90E0              ldi R25,>_AC_TABLE
 014E E80F              add R30,R24
 0150 F91F              adc R31,R25
 0152 0081              ldd R16,z+0
 0154 93DF              rcall _WriteCommand
 0156 20C0              rjmp L51
 0158           L50:
 0158                   .dbline 149
 0158           ;                                                       {
 0158           ;                                                   Put24c256BMP(i*1024);
 0158                   .dbline 150
 0158           ;                                                       delay(500);
 0158 6830              cpi R22,8
 015A 11F4              brne L53
 015C                   .dbline 151
 015C           ;                                                               if(exit1==1)i=7;
 015C                   .dbline 152
 015C           ;                                                       }
 015C 6627              clr R22
 015E                   .dbline 153
 015E           ;                                               LcmInit();                                      //液晶初始化    
 015E A394              inc R10
 0160                   .dbline 154
 0160           ;                                               delay(10);                                                                        
 0160           L53:
 0160                   .dbline 155
 0160           ;                                               }break;
 0160 8A2D              mov R24,R10
 0162 8430              cpi R24,4
 0164 09F4              brne L55
 0166                   .dbline 155
 0166 AA24              clr R10
 0168           L55:
 0168                   .dbline 156
 0168 88E0              ldi R24,8
 016A 8A9D              mul R24,R10
 016C F001              movw R30,R0
 016E 262E              mov R2,R22
 0170 3324              clr R3
 0172 E20D              add R30,R2
 0174 F31D              adc R31,R3
 0176 80E0              ldi R24,<_AC_TABLE
 0178 90E0              ldi R25,>_AC_TABLE
 017A E80F              add R30,R24
 017C F91F              adc R31,R25
 017E 0081              ldd R16,z+0
 0180 7DDF              rcall _WriteCommand
 0182                   .dbline 157
 0182 FA01              movw R30,R20
 0184 0081              ldd R16,z+0
 0186 89DF              rcall _WriteData
 0188                   .dbline 158
 0188 4F5F              subi R20,255  ; offset = 1

⌨️ 快捷键说明

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