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

📄 display.lst

📁 用单片机实现的频率计,使用的是STC12系列的单片机,兼容51系列,可以测试频率到2M左右,液晶显示出频率,这里使用的晶振是24M的.用户可以自行修改并修正延时值
💻 LST
字号:
C51 COMPILER V8.02   DISPLAY                                                               03/17/2008 18:36:34 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2           *  程序功能 :  中央运算单元测试 LCD 现实单元
   3           *                                                                         
   4           *  应用软件 :  KEIL C                                               
   5           *                                                                      
   6           *  版    本 :  KEIL 8.02 
   7           *                                                         
   8           *  硬    件 :  STC89C58RD+   
   9           *                                                               
  10           *  创建时间 :  2007-09-28
  11           *              
  12           *  创 建 人 :   吕坤    
  13           *                        
  14           ********************************************************************/  
  15          /*  说    明 :
  16          
  17              这里已经定义好了lcd的数据输出针脚,现在默认是使用P0口,如果需要修改,请打开diaplay.h文件自行修改
  18                  外部调用时可以使用以下方法:
  19                  例:
  20                  charadds(123);                                  LCD显示 123
  21                  WriteDataLCD('-')                               LCD现实  -
  22                  WriteCommandLCD(0XC0);                  将光标指定到第二行第一个字符处开始显示
  23              WriteCommandLCD(0X06);                      将光标指定到第一行第一个字符处开始显示
  24              WriteCommandLCD(0x01);                      显示清屏
  25          */
  26          #include<reg52.h>
  27          #include<math.h>
  28          
  29          #define LCD_Data P1             //LCD数据与控制线
  30          
  31          sbit LCD_RS=P2^2;               //液晶控制  
  32          sbit LCD_RW=P2^1;               //液晶写入
  33          sbit LCD_E=P2^0;                //液晶使能
  34          
  35          unsigned int place[6];
  36          
  37          
  38          
  39          
  40          void Delay5Ms(void);                                            //命令延时程序
  41          void LCDInit(void);                                             //LCD初始化程序
  42          void charadds(unsigned int a) ;         //将整形数据拆解成char数组并送显
  43          void WriteDataLCD(unsigned char WDLCD);     //想LCD发送数据
  44          void WriteCommandLCD(unsigned char WCLCD);      //向LCD发送命令
  45          /********************LCD初始化**********************/
  46                                   
  47          void LCDInit(void) 
  48          {
  49   1              LCD_Data = 0x00;
  50   1              WriteCommandLCD(0x38);  
  51   1              Delay5Ms();                                                                                                                
  52   1              WriteCommandLCD(0x38); //显示模式设置,开始要求每次检测忙信号               
  53   1              WriteCommandLCD(0x08); //关闭显示                                        
  54   1              WriteCommandLCD(0x06); // 显示光标移动设置                               
  55   1              WriteCommandLCD(0x01); //显示清屏        
C51 COMPILER V8.02   DISPLAY                                                               03/17/2008 18:36:34 PAGE 2   

  56   1              WriteCommandLCD(0x0C); // 显示开及光标设置                 
  57   1      }
  58          
  59          /********************LCD命令执行********************/
  60          
  61          void WriteCommandLCD(unsigned char WCLCD)                 
  62          {
  63   1              Delay5Ms();
  64   1              LCD_Data = WCLCD;
  65   1              LCD_RS = 0;
  66   1              LCD_RW = 0; 
  67   1              LCD_E = 1; 
  68   1              Delay5Ms();   
  69   1              LCD_E = 0; 
  70   1      }
  71          
  72          /********************LCD数据发送********************/
  73          
  74          void WriteDataLCD(unsigned char WDLCD)
  75          {
  76   1              Delay5Ms();
  77   1              LCD_Data = WDLCD;
  78   1              LCD_RS = 1;
  79   1              LCD_RW = 0;
  80   1              LCD_E = 1;   
  81   1              Delay5Ms();
  82   1              LCD_E = 0; 
  83   1      }
  84          
  85          /********************延时***************************/
  86          
  87          void Delay5Ms(void)
  88          {
  89   1              unsigned int TempCyc = 3000;
  90   1              for(;TempCyc>0;TempCyc--);
  91   1      }
  92          
  93          /********************整形转char型并送显**************/
  94          
  95          void charadds(unsigned int a) 
  96          {
  97   1         unsigned long c,p=0;
  98   1         if(a==0) 
  99   1         {
 100   2                      WriteDataLCD('0');
 101   2                      return ;        
 102   2         }
 103   1         c=a/1000000000;
 104   1         if(c!=0)
 105   1         {
 106   2                      WriteDataLCD(c+0x30);                     //将转换后的数字送入LCD显示
 107   2              p=1;
 108   2          }
 109   1          c=(a%1000000000)/100000000;
 110   1          if(c!=0 || p==1)
 111   1          {                                                                      //将转换后的数字送入LCD显示
 112   2                      WriteDataLCD(c+0x30);                      //c+30 是为了使LCD现实字符型的数字符号,这里将个位数字转换成了asc码
 113   2                  p=1;
 114   2          }
 115   1          c=(a%100000000)/10000000;
 116   1          if(c!=0 || p==1)
 117   1          {
C51 COMPILER V8.02   DISPLAY                                                               03/17/2008 18:36:34 PAGE 3   

 118   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 119   2                  p=1;
 120   2          }
 121   1          c=(a%10000000)/1000000;
 122   1          if(c!=0 || p==1)
 123   1          {                                                                           //将转换后的数字送入LCD显示
 124   2                      WriteDataLCD(c+0x30);
 125   2                  p=1;
 126   2          }
 127   1          c=(a%1000000)/100000;
 128   1          if(c!=0 || p==1)
 129   1          {
 130   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 131   2                  p=1;
 132   2          }
 133   1          c=(a%100000)/10000;
 134   1          if(c!=0 || p==1)
 135   1          {
 136   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 137   2                  p=1;
 138   2          }               
 139   1          c=(a%10000)/1000;
 140   1          if(c!=0 || p==1)
 141   1          {
 142   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 143   2                  p=1;
 144   2          }                
 145   1          c=(a%1000)/100;
 146   1          if(c!=0 || p==1)
 147   1          {
 148   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 149   2                  p=1;
 150   2          }
 151   1          c=(a%100)/10;
 152   1          if(c!=0 || p==1)
 153   1          {
 154   2                      WriteDataLCD(c+0x30);                           //将转换后的数字送入LCD显示
 155   2          }            
 156   1          c=a%10+0x30;
 157   1          WriteDataLCD(c);                                            //将转换后的数字送入LCD显示    
 158   1      }
 159          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    920    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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