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

📄 freqen.lst

📁 基于高速51单片机的,带示波器功能的频率计原码,还能分析PWM红外编码.液晶显示.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   FREQEN                                                               08/21/2007 12:58:01 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE FREQEN
OBJECT MODULE PLACED IN freqen.OBJ
COMPILER INVOKED BY: C:\Keil\MCU\C51\BIN\C51.EXE freqen.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //模块:Freqen.C
   2          //功能:频率计模块
   3          //晶振:24.000MHz
   4          //芯片: STC12C5412AD
   5          //版本:V1.0.0
   6          //设计:魏广寅
   7          //日期:2007.4.10
   8          #include "stc12c5412ad.h"
   9          #define uchar unsigned char                       
  10          #define uint unsigned int
  11          extern uchar keyfuncindex;
  12          void dis_cls(void);
  13          extern void d0(void);
  14          extern void lcd_init(void);
  15          extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
  16          extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
  17          extern void delay(uint time);
  18          extern uchar bdata gate;
  19          extern void beep(uint time);
  20          void sel_x(uchar x);    //74HC390 分频系数选择1,10,100
  21          void delay_1(uchar time);
  22          extern uchar temp_l,temp_h;
  23          extern uchar i;
  24          extern unsigned char code x43[];// 量
  25          extern unsigned char code x44[];// 程
  26          extern unsigned char code x45[];// 切
  27          extern unsigned char code x46[];// 换
  28          extern unsigned char code x47[];// 请
  29          extern unsigned char code x48[];// 稍
  30          extern unsigned char code x49[];// 候
  31          extern unsigned char code x50[];// …
  32          extern unsigned char code x51[];// 周
  33          extern unsigned char code x52[];// 期
  34          extern unsigned char code x7[]; // 频
  35          extern unsigned char code x8[]; // 率
  36          extern uint temp0,temp1,temp2,temp3,temp4;
  37          uchar a1,a2;
  38          sbit sel_1=P1^6;
  39          sbit sel_10=P1^4;
  40          sbit sel_100=P3^4;
  41          sbit p3_5=P3^5;
  42          bit clr_flag0=0;
  43          bit clr_flag1=0;
  44          bit clr_flag2=0;
  45          bit clr_flag3=0;
  46          bit clr_flag4=0;
  47          sbit key0=P3^0;
  48          sbit key1=P3^1;
  49          //--------------------------------------------------------------------
  50          void timer_init()
  51          {
  52   1              TMOD=0xd1; //T1 做门控计数
  53   1              TH1=0;
  54   1              TL1=0;
  55   1              TH0=0x3c;
C51 COMPILER V8.05a   FREQEN                                                               08/21/2007 12:58:01 PAGE 2   

  56   1              TL0=0xb0;
  57   1              ET0=1;
  58   1              EA=1;
  59   1              TR0=1;
  60   1              TR1=1;
  61   1              p3_5=1;
  62   1      }
  63          //--------------------------------------------------------------------
  64          void time_up() interrupt 1 using 3
  65          {
  66   1              TH0=0x3c;
  67   1              TL0=0xb0;
  68   1              if(++i==gate)
  69   1              {
  70   2                      TR1=0;
  71   2                      temp_l=TL1;
  72   2                      temp_h=TH1;
  73   2                      TH1=0;
  74   2                      TL1=0;
  75   2                      i=0;
  76   2                      TR1=1;
  77   2              }
  78   1      }
  79          //--------------------------------------------------------------------
  80          void sel_x(uchar x)     //74HC390 分频系数选择1,10,100
  81          {
  82   1              switch(x)
  83   1              {
  84   2                      case 1:
  85   2                      {
  86   3                              sel_1=1;
  87   3                              sel_10=0;
  88   3                              sel_100=0;
  89   3                              break;
  90   3                      }
  91   2      
  92   2                      case 10:
  93   2                      {
  94   3                              sel_1=0;
  95   3                              sel_10=1;
  96   3                              sel_100=0;
  97   3                              break;
  98   3                      }
  99   2      
 100   2                      case 100:
 101   2                      {
 102   3                              sel_1=0;
 103   3                              sel_10=0;
 104   3                              sel_100=1;
 105   3                              break;
 106   3                      }
 107   2                      default:
 108   2                      break;
 109   2              }
 110   1      }
 111          //--------------------------------------------------------------------
 112          void temp_to_tempx(uint temp)
 113          {
 114   1              temp0=temp/10000;
 115   1              temp1=(temp-(temp0*10000))/1000;
 116   1              temp2=(temp-(temp0*10000)-(temp1*1000))/100;
 117   1              temp3=(temp-(temp0*10000)-(temp1*1000)-(temp2*100))/10;
C51 COMPILER V8.05a   FREQEN                                                               08/21/2007 12:58:01 PAGE 3   

 118   1              temp4=temp%10;
 119   1      }               
 120          //--------------------------------------------------------------------
 121          void dis_mod(unsigned long temp,uchar point,uchar danwei)
 122          {
 123   1              
 124   1              uchar danwei_t;
 125   1              
 126   1              temp_to_tempx(temp);
 127   1      
 128   1              dis_one_zi(0,0,x7,1,1);//频
 129   1              dis_one_zi(0,1,x8,1,1);//率
 130   1      
 131   1              dis_one_char(0,11,0x7f,0);
 132   1              dis_one_char(0,12,danwei,1);
 133   1              dis_one_char(0,13,'H',1);
 134   1              dis_one_char(0,14,'z',1);
 135   1              dis_one_char(0,15,0x7f,0);
 136   1              dis_one_char(0,4,0x7f,0);
 137   1              if(temp0!=0)
 138   1              {
 139   2                      dis_one_char(0,5,temp0+0x30,1);
 140   2                      clr_flag0=0;
 141   2              }
 142   1              else
 143   1              dis_one_char(0,5,0x7f,0);
 144   1              clr_flag0=1;
 145   1      
 146   1              dis_one_char(0,10,temp4+0x30,1);
 147   1              dis_one_char(0,9,temp3+0x30,1);
 148   1              switch (point)
 149   1              {
 150   2                      
 151   2                      case 0:
 152   2                      {
 153   3                              dis_one_char(0,5,temp0+0x30,1);
 154   3                              dis_one_char(0,6,'.',1);
 155   3                              dis_one_char(0,7,temp1+0x30,1);
 156   3                              dis_one_char(0,8,temp2+0x30,1);
 157   3                              break;
 158   3                      }
 159   2      
 160   2                      case 1:
 161   2                      {
 162   3                              if(temp1==0 && temp0==0)
 163   3                              dis_one_char(0,5,0x7f,0);
 164   3                              dis_one_char(0,6,temp1+0x30,1);
 165   3                              dis_one_char(0,7,'.',1);
 166   3                              dis_one_char(0,8,temp2+0x30,1);
 167   3                              break;
 168   3                      }
 169   2                      
 170   2                      case 2:
 171   2                      {
 172   3                              dis_one_char(0,6,temp1+0x30,1);
 173   3                              if(temp1==0 && temp0==0)
 174   3                              dis_one_char(0,6,0x7f,0);
 175   3                              dis_one_char(0,7,temp2+0x30,1);
 176   3                              dis_one_char(0,8,'.',1);
 177   3                              break;
 178   3                      }       
 179   2                      default:
C51 COMPILER V8.05a   FREQEN                                                               08/21/2007 12:58:01 PAGE 4   

 180   2                      break;
 181   2              }

⌨️ 快捷键说明

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