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

📄 panel.lst

📁 采用1621控制段式液晶的显示,单片机控制乱序显示及实现银行系统的加密功能
💻 LST
字号:
C51 COMPILER V6.12  PANEL                                                                  05/22/2007 20:27:55 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE PANEL
OBJECT MODULE PLACED IN .\panel.OBJ
COMPILER INVOKED BY: D:\Program Files\keil51\C51\BIN\C51.EXE .\panel.c LARGE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <panel.h>
   2          #include <1621.h>
   3          #include<stdlib.h>
   4          // extern unsigned char kkk[10];
   5          void InitSystem ()
   6          {
   7   1      VOICE3=0;
   8   1      VOICE4=0;
   9   1      
  10   1       WDT_CONTR = 0x00;//关掉看门狗电路        
  11   1       ES = 0;//禁止串口中断 	
  12   1      //配置串口
  13   1       SCON = 0x50; //8位数据位,无奇偶校验
  14   1      T2CON = 0x34;//由T2作为波特率发生器
  15   1      
  16   1      if(SW1 == 1)
  17   1      {
  18   2       RCAP2H = 0xfe; //时钟11.0592M 1200波特率 
  19   2      RCAP2L = 0xe0;
  20   2      } 
  21   1      if(SW1==0)
  22   1      {
  23   2      RCAP2H = 0xff; //时钟11.0592M 9600波特率 
  24   2      RCAP2L = 0xdb;
  25   2      }
  26   1       
  27   1      //配置T1,count=909090,TI:16位工作模式
  28   1      
  29   1      //
  30   1       
  31   1      ES = 1;//允许串口中断
  32   1      }
  33          unsigned char Receive_Byte(void)
  34          {
  35   1      unsigned char DReceive;
  36   1      RI = 0;
  37   1      while(RI == 0);
  38   1      DReceive = SBUF;
  39   1      
  40   1      RI = 0;
  41   1      return DReceive;
  42   1      }
  43          
  44          void Send_Byte(unsigned char DSend)
  45          {
  46   1      TI = 0;
  47   1      SBUF = DSend;
  48   1      while(TI == 0);
  49   1      TI = 0;
  50   1      }
  51           
  52          /*
  53          unsigned char down_package(void)
  54          {
  55          int i;
C51 COMPILER V6.12  PANEL                                                                  05/22/2007 20:27:55 PAGE 2   

  56          //unsigned char   down[10];
  57          unsigned char down;
  58          //for(i=0;i<6;i++)
  59          //down[i] =  Receive_Byte();
  60          down = Receive_Byte();
  61          if( down==0x1b)
  62          {
  63          
  64          return 1;
  65          }
  66          return 0;
  67          
  68          }
  69          */
  70          /*
  71          void up_package(void)
  72          {
  73          int i;
  74          unsigned char    up[15];
  75          unsigned char temp1,temp2;
  76          unsigned char temp;
  77          up[0]= 0x02;
  78            up[1]= 0x06;
  79            up[14]= 0x03;
  80           for(i=2;i<13; )
  81          {
  82            temp1=sbuf[i];
  83            temp2=temp1;
  84            temp1 &=0xf0;
  85            temp1 >>=4;
  86            temp1 |=0x30;
  87            temp2 &=0x0f;
  88            temp2 |=0x30;
  89            up[i++] = temp1;
  90            up[i++] = temp2;
  91          }
  92          for(i=0;i<15;i++)
  93          Send_Byte(up[i]);
  94          }
  95          */
  96          void ReadSwStatus()
  97          {
  98   1        unsigned char sw,sw_copy;
  99   1        sw = P2;
 100   1        sw_copy = sw;
 101   1        if( sw && 0x01)
 102   1        {
 103   2          #define baurate_1200;
 104   2        }
 105   1        else {
 106   2          #define baurate_9600;
 107   2      	}
 108   1      
 109   1        sw = sw_copy;
 110   1        if(sw && 0x02)
 111   1        {
 112   2          #define command2;
 113   2        }
 114   1        else{
 115   2          #define command1; 
 116   2      	}
 117   1      }
C51 COMPILER V6.12  PANEL                                                                  05/22/2007 20:27:55 PAGE 3   

 118          
 119          
 120          void delay_ms(unsigned int i)//delay_ms(200)=1s
 121          {
 122   1        unsigned int j;
 123   1        unsigned int n;
 124   1        for(j=0;j<i;j++)
 125   1        {
 126   2         for(n=0;n<255;n++);
 127   2        }
 128   1      }
 129          
 130          /*
 131          unsigned char  JudgeKey(void)//comment by liuyuan@07.04.02.14.09
 132          {
 133           P2 =0x1f;//初始化行列控制端口
 134           delay_ms(150);
 135           //if any key is pressed ,key will pull low
 136           while(PIN1 && PIN2 && PIN3 && PIN4 && PIN5);
 137             delay_ms(150);
 138             if(!(PIN1 && PIN2 && PIN3 && PIN4 && PIN5))
 139          		   return 1;
 140             	        else
 141          		   return 0;	 
 142          }
 143          */
 144          
 145          unsigned char  JudgeKey(void)//comment by liuyuan@07.04.02.14.09
 146          {
 147   1      
 148   1       P2 =0xf8;//初始化行列控制端口
 149   1       delay_ms(20);
 150   1      
 151   1       //if any key is pressed ,key will pull low
 152   1       //while((PIN1 && PIN2 && PIN3 && PIN4 && PIN5));
 153   1         //delay_ms(10);
 154   1         if(!(PIN1 && PIN2 && PIN3 && PIN4 && PIN5))
 155   1      		   return 1;
 156   1         	        else
 157   1      		   return 0;	 
 158   1      }
 159          void LightPanel_on(void)
 160           {
 161   1          LIGHT_PANEL=1;
 162   1          SendCmd_1621(LCD_on);
 163   1       }
 164          void LightPanel_off(void)
 165           {
 166   1          LIGHT_PANEL=0;
 167   1          SendCmd_1621(LCD_off);
 168   1      	
 169   1       }
 170          
 171          void Tone()
 172          {
 173   1        SendCmd_1621(TUNE_on); 
 174   1        delay_ms(100);
 175   1        SendCmd_1621(TUNE_off);
 176   1        delay_ms(100);
 177   1        SendCmd_1621(TUNE_on);
 178   1        delay_ms(100);
 179   1        SendCmd_1621(TUNE_off);
C51 COMPILER V6.12  PANEL                                                                  05/22/2007 20:27:55 PAGE 4   

 180   1      }
 181          /*
 182          void random()
 183          {
 184          int i,j;
 185          int num[]={0,1,2,3,4,5,6,7,8,9};
 186                   //SMG10  SMG1 SMG2 SMG3 SMG4 SMG5 SMG6 SMG7 SMG8 SMG9  
 187          int rn[10];
 188          
 189          srand((unsigned)t++);//time(&t));
 190          for(i=0;i<10;i++)
 191          {
 192            rn[i]=rand()%10;
 193            for(j=0;j<i;j++)
 194            {
 195               if(rn[i]==rn[j]){i--;j=i;}
 196            }
 197          }
 198           for(i=0;i<10;i++)
 199           {key_num[i] = num[rn[i]];}
 200           
 201           } 
 202          */
 203          /*
 204          unsigned char * DisplayNum(void)
 205          {
 206             unsigned char ADDr[]={0x06,0x04,0x02,0x00,0x0e,
 207                                   0x10,0x12,0x08,0x0a,0x0c};
 208             unsigned char  seg[]={0xdf,0x86,0xbd,0xaf,0xe6,0xeb,0xfb,0x8e,0xff,0xee};//数码管1,2,3,4,5,6,7,8,9,10对
             -应数字显示
 209                                   //0    1    2    3    4    5     6   7    8     9 
 210             unsigned char i,j;
 211          unsigned char key_num[10];
 212             //Init_1621();
 213             //LCDon();
 214             //random();
 215             
 216          int num[]={0,1,2,3,4,5,6,7,8,9};
 217                   //SMG10  SMG1 SMG2 SMG3 SMG4 SMG5 SMG6 SMG7 SMG8 SMG9  
 218          int rn[10];
 219          
 220          srand((unsigned)t++);//time(&t));
 221          for(i=0;i<10;i++)
 222          {
 223            rn[i]=rand()%10;
 224            for(j=0;j<i;j++)
 225            {
 226               if(rn[i]==rn[j]){i--;j=i;}
 227            }
 228          }
 229           for(i=0;i<10;i++)
 230           {key_num[i] = num[rn[i]];}
 231             
 232             //for(i=0;i<10;i++)
 233             //key_num[i] = i;
 234            
 235            //Write_1621(ADDr[0],0X06);
 236             //Write_1621(ADDr[2],0X06);
 237             //for(i=0;i<10;i++)//for debug
 238            // Send_Byte(key_num[i]);//for debug
 239             for(i=0;i<10;i++)
 240               {
C51 COMPILER V6.12  PANEL                                                                  05/22/2007 20:27:55 PAGE 5   

 241               Write_1621(ADDr[i],seg[key_num[i]]);
 242               }
 243          	 //if(key_num[4]==9);
 244                  //  SendCmd_1621(TUNE_on); 
 245          		for(i=0;i<10;i++)
 246          		kkk[i] = key_num[i];
 247          	
 248          	 
 249           return key_num;
 250          }
 251          */
 252          /*
 253          unsigned char * DisplayNum_sequence(void)
 254          {
 255          
 256          int i;
 257          unsigned char key_num[10];
 258          unsigned char ADDr[]={0x06,0x04,0x02,0x00,0x0e,
 259                                   0x10,0x12,0x08,0x0a,0x0c};
 260          unsigned char  seg[]={0xdf,0x86,0xbd,0xaf,0xe6,0xeb,0xfb,0x8e,0xff,0xee};//数码管1,2,3,4,5,6,7,8,9,10对应

⌨️ 快捷键说明

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