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

📄 pp.lis

📁 ICC刷卡C语言程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00D8           ;              Y -> R12
 00D8           ;              X -> R14
                        .even
 00D8           _DisplayListChar1::
 00D8 00D0              rcall push_gset5
 00DA C22E              mov R12,R18
 00DC E02E              mov R14,R16
 00DE 2197              sbiw R28,1
 00E0 AB84              ldd R10,y+11
 00E2 BC84              ldd R11,y+12
 00E4 6D85              ldd R22,y+13
 00E6                   .dbline -1
 00E6                   .dbline 56
 00E6           ;   }
 00E6           ; }
 00E6           ; //************************************************************显示RAM字符串16//
 00E6           ; void DisplayListChar1(unsigned char X, unsigned char Y, unsigned char *DData,unsigned char Leng)
 00E6           ; {
 00E6                   .dbline 58
 00E6           ;  unsigned char j;
 00E6           ;  Y &= 0x01;X &= 0x0F;
 00E6 8C2D              mov R24,R12
 00E8 8170              andi R24,1
 00EA C82E              mov R12,R24
 00EC                   .dbline 58
 00EC 8E2D              mov R24,R14
 00EE 8F70              andi R24,15
 00F0 E82E              mov R14,R24
 00F2                   .dbline 59
 00F2           ;  for(j=0;j<Leng;X++,j++)
 00F2 4427              clr R20
 00F4 0EC0              rjmp L23
 00F6           L20:
 00F6                   .dbline 60
 00F6           ;   {
 00F6                   .dbline 61
 00F6           ;   if(X<=0xf)DisplayOneChar(X,Y,DData[j]);
 00F6 8FE0              ldi R24,15
 00F8 8E15              cp R24,R14
 00FA 48F0              brlo L24
 00FC                   .dbline 61
 00FC E42F              mov R30,R20
 00FE FF27              clr R31
 0100 EA0D              add R30,R10
 0102 FB1D              adc R31,R11
 0104 2080              ldd R2,z+0
 0106 2882              std y+0,R2
 0108 2C2D              mov R18,R12
 010A 0E2D              mov R16,R14
 010C B0DF              rcall _DisplayOneChar
 010E           L24:
 010E                   .dbline 62
 010E           L21:
 010E                   .dbline 59
 010E E394              inc R14
 0110 4395              inc R20
 0112           L23:
 0112                   .dbline 59
 0112 4617              cp R20,R22
 0114 80F3              brlo L20
 0116                   .dbline -2
 0116           L19:
 0116 2196              adiw R28,1
 0118 00D0              rcall pop_gset5
 011A                   .dbline 0 ; func end
 011A 0895              ret
 011C                   .dbsym r j 20 c
 011C                   .dbsym r Leng 22 c
 011C                   .dbsym r DData 10 pc
 011C                   .dbsym r Y 12 c
 011C                   .dbsym r X 14 c
 011C                   .dbend
 011C                   .dbfunc e LCMInit _LCMInit fV
                        .even
 011C           _LCMInit::
 011C                   .dbline -1
 011C                   .dbline 66
 011C           ;   }
 011C           ; }             
 011C           ; //****************************************************************LCM初始化17//
 011C           ; void LCMInit(void) 
 011C           ; {
 011C                   .dbline 67
 011C           ;  PORTB = 0;
 011C 2224              clr R2
 011E 28BA              out 0x18,R2
 0120                   .dbline 68
 0120           ;  WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号
 0120 2227              clr R18
 0122 08E3              ldi R16,56
 0124 7FDF              rcall _WriteCommandLCM
 0126                   .dbline 69
 0126           ;  delay_ms(5); 
 0126 05E0              ldi R16,5
 0128 10E0              ldi R17,0
 012A C6D1              rcall _delay_ms
 012C                   .dbline 70
 012C           ;  WriteCommandLCM(0x38,0);
 012C 2227              clr R18
 012E 08E3              ldi R16,56
 0130 79DF              rcall _WriteCommandLCM
 0132                   .dbline 71
 0132           ;  delay_ms(5); 
 0132 05E0              ldi R16,5
 0134 10E0              ldi R17,0
 0136 C0D1              rcall _delay_ms
 0138                   .dbline 72
 0138           ;  WriteCommandLCM(0x38,0);
 0138 2227              clr R18
 013A 08E3              ldi R16,56
 013C 73DF              rcall _WriteCommandLCM
 013E                   .dbline 73
 013E           ;  delay_ms(5); 
 013E 05E0              ldi R16,5
 0140 10E0              ldi R17,0
 0142 BAD1              rcall _delay_ms
 0144                   .dbline 74
 0144           ;  WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号
 0144 21E0              ldi R18,1
 0146 08E3              ldi R16,56
 0148 6DDF              rcall _WriteCommandLCM
 014A                   .dbline 75
 014A           ;  WriteCommandLCM(0x08,1); //关闭显示
 014A 21E0              ldi R18,1
 014C 08E0              ldi R16,8
 014E 6ADF              rcall _WriteCommandLCM
 0150                   .dbline 76
 0150           ;  WriteCommandLCM(0x01,1); //显示清屏
 0150 21E0              ldi R18,1
 0152 01E0              ldi R16,1
 0154 67DF              rcall _WriteCommandLCM
 0156                   .dbline 77
 0156           ;  WriteCommandLCM(0x06,1); // 显示光标移动设置
 0156 21E0              ldi R18,1
 0158 06E0              ldi R16,6
 015A 64DF              rcall _WriteCommandLCM
 015C                   .dbline 78
 015C           ;  WriteCommandLCM(0x0C,1); // 显示开及光标设置
 015C 21E0              ldi R18,1
 015E 0CE0              ldi R16,12
 0160 61DF              rcall _WriteCommandLCM
 0162                   .dbline -2
 0162           L26:
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbend
 0164                   .dbfunc e RxUart _RxUart fV
                        .even
 0164           _RxUart::
 0164                   .dbline -1
 0164                   .dbline 84
 0164           ; }
 0164           ; 
 0164           ; //***************************************************中断任务//
 0164           ; //*************************************************************接收串口数据21//
 0164           ; void RxUart(void)
 0164           ;     {
 0164                   .dbline 85
 0164           ;       switch(RxUartAddr)
 0164 00911200          lds R16,_RxUartAddr
 0168 1127              clr R17
 016A 0030              cpi R16,0
 016C 0107              cpc R16,R17
 016E 49F0              breq L31
 0170           X0:
 0170 0130              cpi R16,1
 0172 E0E0              ldi R30,0
 0174 1E07              cpc R17,R30
 0176 61F0              breq L32
 0178 0230              cpi R16,2
 017A E0E0              ldi R30,0
 017C 1E07              cpc R17,R30
 017E C1F0              breq L33
 0180 6FC0              rjmp L28
 0182           X1:
 0182                   .dbline 86
 0182           ;       {
 0182           L31:
 0182                   .dbline 88
 0182           ;       case(0)://接收关闭
 0182           ;         {
 0182                   .dbline 89
 0182           ;         RxUartTemp=UDR;RxUartAddr=0;return;
 0182 2CB0              in R2,0xc
 0184 20921100          sts _RxUartTemp,R2
 0188                   .dbline 89
 0188 2224              clr R2
 018A 20921200          sts _RxUartAddr,R2
 018E                   .dbline 89
 018E 68C0              rjmp L27
 0190           L32:
 0190                   .dbline 92
 0190           ;         }
 0190           ;       case(1)://接收初始
 0190           ;         {
 0190                   .dbline 93
 0190           ;         RxUartLeng=0;RxUartDely=200;RxUartAddr=2;return;
 0190 2224              clr R2
 0192 3324              clr R3
 0194 30921000          sts _RxUartLeng+1,R3
 0198 20920F00          sts _RxUartLeng,R2
 019C                   .dbline 93
 019C 88EC              ldi R24,200
 019E 90E0              ldi R25,0
 01A0 90930C00          sts _RxUartDely+1,R25
 01A4 80930B00          sts _RxUartDely,R24
 01A8                   .dbline 93
 01A8 82E0              ldi R24,2
 01AA 80931200          sts _RxUartAddr,R24
 01AE                   .dbline 93
 01AE 58C0              rjmp L27
 01B0           L33:
 01B0                   .dbline 96
 01B0           ;         }
 01B0           ;       case(2)://接收处理
 01B0           ;         {
 01B0                   .dbline 97
 01B0           ;         if((UCSRA)&(1<<RXC))
 01B0 5F9B              sbis 0xb,7
 01B2 2AC0              rjmp L34
 01B4                   .dbline 98
 01B4           ;           {
 01B4                   .dbline 99
 01B4           ;               RxUartTemp=UDR;RxUartWait=2;RxUartDely=100;
 01B4 2CB0              in R2,0xc
 01B6 20921100          sts _RxUartTemp,R2
 01BA                   .dbline 99
 01BA 82E0              ldi R24,2
 01BC 90E0              ldi R25,0
 01BE 90930E00          sts _RxUartWait+1,R25
 01C2 80930D00          sts _RxUartWait,R24
 01C6                   .dbline 99
 01C6 84E6              ldi R24,100
 01C8 90930C00          sts _RxUartDely+1,R25
 01CC 80930B00          sts _RxUartDely,R24
 01D0                   .dbline 100
 01D0           ;               if(RxUartLeng>=250) return;
 01D0 80910F00          lds R24,_RxUartLeng
 01D4 90911000          lds R25,_RxUartLeng+1
 01D8 8A3F              cpi R24,250
 01DA E0E0              ldi R30,0
 01DC 9E07              cpc R25,R30
 01DE 08F0              brlo L36
 01E0                   .dbline 100
 01E0 3FC0              rjmp L27
 01E2           L36:
 01E2                   .dbline 101
 01E2           ;               RxUartDbuf[RxUartLeng++]=RxUartTemp;            
 01E2 20900F00          lds R2,_RxUartLeng
 01E6 30901000          lds R3,_RxUartLeng+1
 01EA C101              movw R24,R2
 01EC 0196              adiw R24,1
 01EE 90931000          sts _RxUartLeng+1,R25
 01F2 80930F00          sts _RxUartLeng,R24
 01F6 80E0              ldi R24,<_RxUartDbuf
 01F8 90E0              ldi R25,>_RxUartDbuf
 01FA F101              movw R30,R2
 01FC E80F              add R30,R24
 01FE F91F              adc R31,R25
 0200 20901100          lds R2,_RxUartTemp
 0204 2082              std z+0,R2
 0206                   .dbline 102
 0206           ;           return;
 0206 2CC0              rjmp L27
 0208           L34:
 0208                   .dbline 105
 0208           ;               }
 0208           ;         else
 0208           ;           {
 0208                   .dbline 106
 0208           ;               if(!RxUartWait) return;         
 0208 20900D00          lds R2,_RxUartWait
 020C 30900E00          lds R3,_RxUartWait+1
 0210 2220              tst R2
 0212 19F4              brne L38
 0214 3320              tst R3
 0216 09F4              brne L38
 0218           X2:
 0218                   .dbline 106
 0218 23C0              rjmp L27
 021A           L38:
 021A                   .dbline 107
 021A           ;               if(--RxUartDely) return;
 021A 80910B00          lds R24,_RxUartDely
 021E 90910C00          lds R25,_RxUartDely+1
 0222 0197              sbiw R24,1
 0224 90930C00          sts _RxUartDely+1,R25
 0228 80930B00          sts _RxUartDely,R24
 022C 8030              cpi R24,0
 022E 8907              cpc R24,R25
 0230 09F0              breq L40
 0232           X3:
 0232                   .dbline 107
 0232 16C0              rjmp L27
 0234           L40:
 0234                   .dbline 108
 0234           ;               RxUartDely=200;
 0234 88EC              ldi R24,200
 0236 90E0              ldi R25,0
 0238 90930C00          sts _RxUartDely+1,R25
 023C 80930B00          sts _RxUartDely,R24
 0240                   .dbline 109
 0240           ;               if(--RxUartWait) return;
 0240 80910D00          lds R24,_RxUartWait
 0244 90910E00          lds R25,_RxUartWait+1
 0248 0197              sbiw R24,1
 024A 90930E00          sts _RxUartWait+1,R25
 024E 80930D00          sts _RxUartWait,R24
 0252 8030              cpi R24,0
 0254 8907              cpc R24,R25
 0256 09F0              breq L42
 0258           X4:
 0258                   .dbline 109
 0258 03C0              rjmp L27
 025A           L42:
 025A                   .dbline 110
 025A 2224              clr R2
 025C 20921200          sts _RxUartAddr,R2
 0260                   .dbline 110
 0260           L28:
 0260                   .dbline -2
 0260           L27:
 0260                   .dbline 0 ; func end
 0260 0895              ret
 0262                   .dbend
 0262                   .dbfunc e OutLed _OutLed fV
                        .even
 0262           _OutLed::
 0262                   .dbline -1
 0262                   .dbline 117
 0262           ;               RxUartAddr=0;return;
 0262           ;               }
 0262           ;         }
 0262           ;     }         
 0262           ;       }
 0262           ; //***************************************************************输出三色灯22//

⌨️ 快捷键说明

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