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

📄 lcd.lst

📁 单片机结合简单外围计数电路设计的频率计
💻 LST
字号:
C51 COMPILER V7.20   LCD                                                                   07/28/2007 00:09:49 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.H> 
   2          #include"LCD1602.h"
   3          //--------------------------
   4          //5位lcd显示频率计设计
   5          //Designed by BoBo
   6          //--------------------------
   7          //--------------------------------------------------
   8          //固定函数声明
   9          void int_0();       //外部中断0
  10          
  11          void int_1();       //外部中断1
  12          
  13          void t0();              //定时器中断1
  14          
  15          void t1();              //定时器中断2
  16          
  17          void serial_1();    //串行中断1
  18          
  19          void serial_2();    //串行中断2
  20          //---------------------------------------------------
  21          //用户函数声明
  22          void initial();     //初始化
  23          
  24          void IntToStr(unsigned long t, unsigned char *str);//数据转换模式 
  25          
  26          void Delay1ms(unsigned int num);                //延时模块
  27          //---------------------------------------------------
  28          //-------------------------------------------------------------------------------------------------------
  29          //信号和数据声明
  30          unsigned char timecount=0;      //闸门计数值
  31          
  32          unsigned char T0count;          //计数器溢出计数值
  33           
  34          sbit Gate=P3^1;                         //闸门输出口
  35          
  36          sbit Clr=P3^7;                          //清零信号
  37          
  38          unsigned long x;                        //频率计数容器1
  39          
  40          bit flag=0;                                     //闸门结束标志
  41          
  42          unsigned char TempBuffer[10];//数据缓冲区
  43          
  44          //--------------------------------------------------------------------------------------------------------
             --
  45          void main(void) 
  46          { 
  47   1        initial();
  48   1      
  49   1        Gate=1;                                       //闸门开
  50   1      
  51   1        Clr=1;                                        //先清零74LS393
  52   1      
  53   1        LCD_Initial();                        //lcd初始化
  54   1      
C51 COMPILER V7.20   LCD                                                                   07/28/2007 00:09:49 PAGE 2   

  55   1        GotoXY(0,0);                          //指向0行0列
  56   1      
  57   1        Print("   The Frequent ");
  58   1      
  59   1        GotoXY(0,1);
  60   1      
  61   1        Print("      Hz by BoBo");
  62   1      
  63   1        while(1)      
  64   1      
  65   1         { 
  66   2           Clr=0; 
  67   2               if(flag)
  68   2               {
  69   3                      flag=0;                                         
  70   3      
  71   3                      IntToStr(x,TempBuffer);       //数值转换
  72   3      
  73   3                      GotoXY(0,1);                                            //定位
  74   3      
  75   3                      Print(TempBuffer);                              //打印数据
  76   3      
  77   3              TR0=1;
  78   3               }      
  79   2      
  80   2          }
  81   1          
  82   1      
  83   1      } 
  84          void initial()                          //初始化
  85          {
  86   1      
  87   1        TMOD=0x15;                            
  88   1      
  89   1        TH0=0;                                        //计数器付初值
  90   1      
  91   1        TL0=0;                                        //计数器付初值
  92   1      
  93   1        TH1=0x3b;     //定时器付初值
  94   1      
  95   1        TL1=0xb0;     //定时器付初值
  96   1      
  97   1        TR1=1;                                        //定时器启动
  98   1      
  99   1        TR0=1;                                        //计数器启动
 100   1      
 101   1        ET0=1;                                        //计数器开中断
 102   1      
 103   1        ET1=1;                                        //定时器开中断
 104   1      
 105   1        EX1=1;                        // INT1中断开
 106   1      
 107   1        IT1=0;                        // INT1低电平触发(为1则为下降沿触发)
 108   1      
 109   1        EA=1;                                         //开中断
 110   1      
 111   1              return;
 112   1      }
 113          
 114          void IntToStr(unsigned long t, unsigned char *str) 
 115          {
 116   1      unsigned char a[10]; char i,length;                                     
C51 COMPILER V7.20   LCD                                                                   07/28/2007 00:09:49 PAGE 3   

 117   1      while(t/10)                     //将计数值转换为数码管段码值
 118   1              { 
 119   2                  a[i]=t%10; 
 120   2                  t=t/10; 
 121   2                  i++; 
 122   2                 } 
 123   1              a[i]=t; 
 124   1      length=i+1;                                                     
 125   1              for(i=0; i<length; i++)         //转成ASCII码                   
 126   1                      a[i]=a[i]+'0';                                          
 127   1      //for(i=0; a[i]=='0' && i<=6; i++);                             
 128   1      //for(j=8-n; j<i; j++)       //填充空格                         
 129   1      //              { *str=' ';  str++; }                                   
 130   1              for(i=length-1; i>=0; i--)                                              
 131   1                      { *str=a[i]; str++; }  //加入有效的数字                 
 132   1              *str='\0'; 
 133   1      } 
 134          
 135          void int_1() interrupt 2 using 1                        //INT1中断  由P3.1引脚产生
 136          
 137          {
 138   1                      
 139   1              T0count=0;                                                              //计数高位清零
 140   1      
 141   1              flag=1;
 142   1      
 143   1      
 144   1              TH0=0;                                                                  //计数器清零
 145   1      
 146   1              TL0=0;                                                                  
 147   1      
 148   1      }
 149          
 150          void t0(void) interrupt 1 using 0                       //计数器中断服务程序
 151          
 152          { 
 153   1      
 154   1              T0count++;
 155   1      
 156   1      } 
 157          
 158          void t1(void) interrupt 3 using 0                       //定时器溢出中断程序
 159          
 160          { 
 161   1      
 162   1        TH1=0x3b;                                     //重置初值
 163   1      
 164   1        TL1=0xb0; 
 165   1        
 166   1        timecount++; 
 167   1        
 168   1        if(timecount==20) 
 169   1      
 170   1          {   
 171   2              TR0=0;                                                                  //停止计数器
 172   2      
 173   2                      x=(T0count*65536+TH0*256+TL0)*255+P1;//取计数值
 174   2              Clr=1;                                                                  //产生清零信号
 175   2      
 176   2                      timecount=0;                                             //定时计数清零 
 177   2      
 178   2                      Gate=!Gate;                                                      //闸门取反
C51 COMPILER V7.20   LCD                                                                   07/28/2007 00:09:49 PAGE 4   

 179   2      
 180   2          } 
 181   1      
 182   1      } 
 183          
 184          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    599    ----
   CONSTANT SIZE    =     34    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16      19
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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