1.lst

来自「1602显示程序(51版)」· LST 代码 · 共 396 行 · 第 1/2 页

LST
396
字号
C51 COMPILER V9.00   1                                                                     09/15/2010 14:51:47 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN .\1.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\Users\liwei\Desktop\1.c BROWSE DEBUG OBJECTEXTEND PRINT(.\1.lst) OBJECT(
                    -.\1.obj)

line level    source

   1          
   2          
   3          #include<reg52.h>
   4          #include<intrins.h>
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          sbit  date=P1^3;
   9          sbit  clk=P1^4; 
  10          unsigned long int freq=1000;
  11          unsigned char zhan=20,xiang1=30,xiang2=30;
  12          sbit rs =  P1^2;            //寄存器选择输入 
  13          sbit rw =  P1^1;            //液晶读/写控制
  14          sbit en =  P1^0;            //液晶使能控制
  15          sbit psb=  P3^6;            //串/并方式控制
  16          
  17          uchar  table0[]="桂林电子科技大学";
  18          uchar  table1[]="占空比:    %";
  19          uchar  table2[]="频率:         HZ";
  20          uchar  table3[]="幅度值:   V";
  21          uchar shu[];
  22          uchar m=0,a=0,i=0;
  23          uchar b1,b2,b3,c1,c2;
  24          unsigned long int   b,c,d,e;
  25          //*********************************************
  26          //延时函数,在12MHz的晶振频率下
  27          //大约50us的延时
  28          //*********************************************
  29          void delay_50us(uint t)
  30          {
  31   1              uchar j;
  32   1              for(;t>0;t--)
  33   1                      for(j=19;j>0;j--);
  34   1      }
  35          
  36          //*********************************************
  37          //延时函数,在12MHz的晶振频率下
  38          //大约50ms的延时
  39          //*********************************************
  40          void delay_50ms(uint t)
  41          {
  42   1              uchar j;
  43   1              for(;t>0;t--)
  44   1                      for(j=6245;j>0;j--);
  45   1      }
  46          void debouncer(void)
  47          {
  48   1              int i;
  49   1              for(i=0;i<2400;i++);
  50   1      }
  51          void write_12864com(uchar com)
  52          {
  53   1              rw=0;
  54   1              rs=0;
C51 COMPILER V9.00   1                                                                     09/15/2010 14:51:47 PAGE 2   

  55   1            delay_50us(1);
  56   1              P0=com;
  57   1            en=1;
  58   1            delay_50us(10);
  59   1            en=0;
  60   1              delay_50us(10); 
  61   1      }
  62          
  63          void write_12864data(uchar date)
  64          {
  65   1              rw=0;
  66   1              rs=1;
  67   1            delay_50us(1);
  68   1              P0=date;
  69   1            en=1;
  70   1            delay_50us(10);
  71   1            en=0;
  72   1              delay_50us(2);
  73   1              
  74   1      }
  75          
  76          void intitnal(void)
  77          {
  78   1              delay_50ms(2);
  79   1            write_12864com(0x30);
  80   1            delay_50us(4);
  81   1            write_12864com(0x30);
  82   1            delay_50us(4);
  83   1            write_12864com(0x0e);
  84   1              delay_50us(4);
  85   1              write_12864com(0x01);
  86   1            delay_50ms(1);
  87   1              write_12864com(0x06);
  88   1            delay_50us(10);
  89   1      
  90   1      }
  91          
  92          void display1(void)
  93          {
  94   1         uchar i,j=11;
  95   1         write_12864com(0x80);
  96   1              delay_50us(10);
  97   1         for(i=0;i<16;i++)
  98   1              {
  99   2                write_12864data(table0[i]);
 100   2               delay_50us(1);
 101   2              } 
 102   1         write_12864com(0x90);
 103   1         for(i=0;i<12;i++)
 104   1              {
 105   2                write_12864data(table1[i]);
 106   2              delay_50us(1);
 107   2              }
 108   1              
 109   1         write_12864com(0x88);
 110   1         for(i=0;i<16;i++)
 111   1              {
 112   2                write_12864data(table2[i]);
 113   2              delay_50us(1);
 114   2              }
 115   1         write_12864com(0x98);
 116   1         for(i=0;i<13;i++)
C51 COMPILER V9.00   1                                                                     09/15/2010 14:51:47 PAGE 3   

 117   1              {
 118   2                write_12864data(table3[i]);
 119   2              delay_50us(1);
 120   2              }
 121   1      
 122   1      }
 123           uchar scanner(void)
 124          {
 125   1              uchar key,keydata;
 126   1                      debouncer();
 127   1                      if(P3!=0xf0)
 128   1                      {
 129   2                              P3=0xfe;
 130   2                              keydata=(P3&0xf0);
 131   2                              switch(keydata)
 132   2                              {
 133   3                                      case 0xe0: key=0x30;break;
 134   3                                      case 0xd0: key=0x31;break;
 135   3                                      case 0xb0: key=0x32;break;
 136   3                                      case 0x70: key=0x33;break;
 137   3                              }
 138   2                              P3=0xfd;
 139   2                              keydata=(P3&0xf0);
 140   2                              switch(keydata)
 141   2                              {
 142   3                                      case 0xe0: key=0x34;break;
 143   3                                      case 0xd0: key=0x35;break;
 144   3                                      case 0xb0: key=0x36;break;
 145   3                                      case 0x70: key=0x37;break;
 146   3                              }
 147   2                              P3=0xfb;
 148   2                              keydata=(P3&0xf0);
 149   2                              switch(keydata)
 150   2                              {
 151   3                                      case 0xe0: key=0x38;break;
 152   3                                      case 0xd0: key=0x39;break;
 153   3                                      case 0xb0: key=0x41;break;
 154   3                                      case 0x70: key=0x2e;break;
 155   3                              }
 156   2                              P3=0xf7;
 157   2                              keydata=(P3&0xf0);
 158   2                              switch(keydata)
 159   2                              {
 160   3                                      case 0xe0: key=0x43;break;
 161   3                                      case 0xd0: key=0x44;break;
 162   3                                      case 0xb0: key=0x45;break;
 163   3                                      case 0x70: key=0x46;break;
 164   3                              }
 165   2                              while(1)
 166   2                              {
 167   3                                      P3=0xf0;
 168   3                                      if(P3==0xf0) break;     
 169   3                              }
 170   2                              return key;
 171   2                      }
 172   1                      else return 20; 
 173   1      }
 174          void sent(int n,unsigned long int x)
 175          {       
 176   1              int i;  
 177   1              for(i=0;i<n;i++)
 178   1              {
C51 COMPILER V9.00   1                                                                     09/15/2010 14:51:47 PAGE 4   

 179   2                      date=x&0x01;
 180   2                      clk=1;
 181   2                      delay_50ms(20);
 182   2                      x=x>>1;

⌨️ 快捷键说明

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