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

📄 freqen.lst

📁 此程序可以显示输入波形
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FREQEN
OBJECT MODULE PLACED IN Freqen.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Freqen.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //--------------------------------------------------------------------
   2          
   3          //模块:Freqen.C
   4          
   5          //功能:频率计模块
   6          
   7          //晶振:24.000MHz
   8          
   9          //芯片: STC12C5412AD
  10          #include "stc12c5412ad.h"
  11          //#ifndef  lcd12864_driver_new
  12          //#include "lcd12864_driver_new.h"
  13          //#endif
  14          
  15          #define uchar unsigned char                  
  16          
  17          #define uint unsigned int
  18          
  19          extern uchar keyfuncindex;
  20          
  21          void dis_cls(void);
  22          
  23          extern void d0(void);
  24          
  25          extern void lcd_init(void);
  26          
  27          extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
  28          
  29          extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
  30          
  31          extern void delay(uint time);
  32          
  33          extern uchar bdata gate;
  34          
  35          extern void beep(uint time);
  36          
  37          void sel_x(uchar x);      //74HC390 分频系数选择1,10,100
  38          
  39          void delay_1(uchar time);
  40          
  41          extern uchar temp_l,temp_h;
  42          
  43          extern uchar i;
  44          
  45          extern unsigned char code x43[];// 量
  46          
  47          extern unsigned char code x44[];// 程
  48          
  49          extern unsigned char code x45[];// 切
  50          
  51          extern unsigned char code x46[];// 换
  52          
  53          extern unsigned char code x47[];// 请
  54          
  55          extern unsigned char code x48[];// 稍
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 2   

  56          
  57          extern unsigned char code x49[];// 候
  58          
  59          extern unsigned char code x50[];// …
  60          
  61          extern unsigned char code x51[];// 周
  62          
  63          extern unsigned char code x52[];// 期
  64          
  65          extern unsigned char code x7[]; // 频
  66          
  67          extern unsigned char code x8[]; // 率
  68          
  69          extern uint temp0,temp1,temp2,temp3,temp4;
  70          
  71          uchar a1,a2;
  72          
  73          sbit sel_1=P1^6;
  74          
  75          sbit sel_10=P1^4;
  76          
  77          sbit sel_100=P3^4;
  78          
  79          sbit p3_5=P3^5;
  80          
  81          bit clr_flag0=0;
  82          
  83          bit clr_flag1=0;
  84          
  85          bit clr_flag2=0;
  86          
  87          bit clr_flag3=0;
  88          
  89          bit clr_flag4=0;
  90          
  91          sbit key0=P3^0;
  92          
  93          sbit key1=P3^1;
  94          
  95          //--------------------------------------------------------------------
  96          
  97          void timer_init()
  98          
  99          {
 100   1      
 101   1            TMOD=0xd1; //T1 做门控计数
 102   1      
 103   1            TH1=0;
 104   1      
 105   1            TL1=0;
 106   1      
 107   1            TH0=0x3c;
 108   1      
 109   1            TL0=0xb0;
 110   1      
 111   1            ET0=1;
 112   1      
 113   1            EA=1;
 114   1      
 115   1            TR0=1;
 116   1      
 117   1            TR1=1;
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 3   

 118   1      
 119   1            p3_5=1;
 120   1      
 121   1      }
 122          
 123          //--------------------------------------------------------------------
 124          
 125          void time_up() interrupt 1 using 3
 126          
 127          {
 128   1      
 129   1            TH0=0x3c;
 130   1      
 131   1            TL0=0xb0;
 132   1      
 133   1            if(++i==gate)
 134   1      
 135   1            {
 136   2      
 137   2                    TR1=0;
 138   2      
 139   2                    temp_l=TL1;
 140   2      
 141   2                    temp_h=TH1;
 142   2      
 143   2                    TH1=0;
 144   2      
 145   2                    TL1=0;
 146   2      
 147   2                    i=0;
 148   2      
 149   2                    TR1=1;
 150   2      
 151   2            }
 152   1      
 153   1      }
 154          
 155          //--------------------------------------------------------------------
 156          
 157          void sel_x(uchar x) //74HC390 分频系数选择1,10,100
 158          
 159          {
 160   1      
 161   1            switch(x)
 162   1      
 163   1            {
 164   2      
 165   2                    case 1:
 166   2      
 167   2                    {
 168   3      
 169   3                          sel_1=1;
 170   3      
 171   3                          sel_10=0;
 172   3      
 173   3                          sel_100=0;
 174   3      
 175   3                          break;
 176   3      
 177   3                    }
 178   2      
 179   2      
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 4   

 180   2      
 181   2                    case 10:
 182   2      
 183   2                    {
 184   3      
 185   3                          sel_1=0;
 186   3      
 187   3                          sel_10=1;
 188   3      
 189   3                          sel_100=0;
 190   3      
 191   3                          break;
 192   3      
 193   3                    }
 194   2      
 195   2      
 196   2      
 197   2                    case 100:
 198   2      
 199   2                    {
 200   3      
 201   3                          sel_1=0;
 202   3      
 203   3                          sel_10=0;
 204   3      
 205   3                          sel_100=1;
 206   3      
 207   3                          break;
 208   3      
 209   3                    }
 210   2      
 211   2                    default:
 212   2      
 213   2                    break;
 214   2      
 215   2            }
 216   1      
 217   1      }
 218          
 219          //--------------------------------------------------------------------
 220          
 221          void temp_to_tempx(uint temp)
 222          
 223          {
 224   1      
 225   1            temp0=temp/10000;
 226   1      
 227   1            temp1=(temp-(temp0*10000))/1000;
 228   1      
 229   1            temp2=(temp-(temp0*10000)-(temp1*1000))/100;
 230   1      
 231   1            temp3=(temp-(temp0*10000)-(temp1*1000)-(temp2*100))/10;
 232   1      
 233   1            temp4=temp%10;
 234   1      
 235   1      }            
 236          
 237          //--------------------------------------------------------------------
 238          
 239          void dis_mod(unsigned long temp,uchar point,uchar danwei)
 240          
 241          {
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 5   

 242   1      
 243   1            
 244   1      
 245   1            uchar danwei_t;
 246   1      
 247   1            
 248   1      
 249   1            temp_to_tempx(temp);
 250   1      
 251   1      
 252   1      
 253   1            dis_one_zi(0,0,x7,1,1);//频
 254   1      
 255   1            dis_one_zi(0,1,x8,1,1);//率
 256   1      
 257   1      
 258   1      
 259   1            dis_one_char(0,11,0x7f,0);
 260   1      
 261   1            dis_one_char(0,12,danwei,1);
 262   1      
 263   1            dis_one_char(0,13,'H',1);
 264   1      
 265   1            dis_one_char(0,14,'z',1);
 266   1      
 267   1            dis_one_char(0,15,0x7f,0);
 268   1      
 269   1            dis_one_char(0,4,0x7f,0);
 270   1      
 271   1            if(temp0!=0)
 272   1      
 273   1            {
 274   2      
 275   2                    dis_one_char(0,5,temp0+0x30,1);
 276   2      
 277   2                    clr_flag0=0;
 278   2      
 279   2            }
 280   1      
 281   1            else
 282   1      
 283   1            dis_one_char(0,5,0x7f,0);
 284   1      
 285   1            clr_flag0=1;
 286   1      
 287   1      
 288   1      
 289   1            dis_one_char(0,10,temp4+0x30,1);
 290   1      
 291   1            dis_one_char(0,9,temp3+0x30,1);
 292   1      
 293   1            switch (point)
 294   1      
 295   1            {
 296   2      
 297   2                    
 298   2      
 299   2                    case 0:
 300   2      
 301   2                    {
 302   3      
 303   3                          dis_one_char(0,5,temp0+0x30,1);
C51 COMPILER V7.50   FREQEN                                                                03/13/2008 13:49:22 PAGE 6   

 304   3      
 305   3                          dis_one_char(0,6,'.',1);
 306   3      
 307   3                          dis_one_char(0,7,temp1+0x30,1);
 308   3      
 309   3                          dis_one_char(0,8,temp2+0x30,1);
 310   3      
 311   3                          break;
 312   3      
 313   3                    }
 314   2      
 315   2      
 316   2      
 317   2                    case 1:
 318   2      
 319   2                    {
 320   3      
 321   3                          if(temp1==0 && temp0==0)
 322   3      
 323   3                          dis_one_char(0,5,0x7f,0);
 324   3      
 325   3                          dis_one_char(0,6,temp1+0x30,1);
 326   3      
 327   3                          dis_one_char(0,7,'.',1);
 328   3      
 329   3                          dis_one_char(0,8,temp2+0x30,1);
 330   3      
 331   3                          break;
 332   3      
 333   3                    }
 334   2      
 335   2                    
 336   2      
 337   2                    case 2:
 338   2      
 339   2                    {
 340   3      
 341   3                          dis_one_char(0,6,temp1+0x30,1);
 342   3      
 343   3                          if(temp1==0 && temp0==0)
 344   3      
 345   3                          dis_one_char(0,6,0x7f,0);
 346   3      
 347   3                          dis_one_char(0,7,temp2+0x30,1);
 348   3      
 349   3                          dis_one_char(0,8,'.',1);
 350   3      
 351   3                          break;
 352   3      
 353   3                    }    
 354   2      
 355   2                    default:
 356   2      
 357   2                    break;
 358   2      

⌨️ 快捷键说明

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