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

📄 pm01.lst

📁 本代码为一个相位控制器的源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  PM01                                                                   08/26/2005 22:27:06 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE PM01
OBJECT MODULE PLACED IN E:\DRAGON~1\SOUREC~1\PHASEM~2\PHASEM~1\PM01.OBJ
COMPILER INVOKED BY: C:\wave6000\COMP51\C51.EXE E:\DRAGON~1\SOUREC~1\PHASEM~2\PHASEM~1\PM01.C DB SB OE

stmt level    source

   1          #include <reg52.h>
   2          #include <source7279.h>
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          
   7          void dis_phase();
   8          void dis_fre();
   9          void transdata();
  10          void key_process();
  11          
  12          uint Afre;
  13          
  14          uchar count_time2,count_phase,count_p,key_number;
  15          
  16          bit readdata_flag,starttime_flag,cycle_flag,disp_flag,disfre_flag;
  17          
  18          bit cycle_signal;
  19          sbit test=P2^1;
  20          sbit trans=P3^0;
  21          sbit control=P3^1;
  22          sbit P00=P3^7;
  23          
  24          
  25          
  26          void Time2_initial()
  27          {
  28   1      
  29   1      	T2CON=0x00;
  30   1              RCAP2H=0x4c;
  31   1      	RCAP2L=0x00;
  32   1              TR2=1;
  33   1              TR0=1;
  34   1      }
  35          
  36          
  37          main()
  38          {
  39   1      	TMOD=0x15;
  40   1      	TF1=0;
  41   1              IE=0X00;
  42   1              EA=1;
  43   1      	ET2=1;
  44   1      	EX0=0;
  45   1              trans=0;
  46   1      
  47   1              Time2_initial();
  48   1      	trans=0;
  49   1      	starttime_flag=0;
  50   1              cycle_signal=0;
  51   1      	initial_7279();
  52   1      
  53   1      	while(1)
  54   1      	{
  55   2      		if(starttime_flag)
C51 COMPILER V6.02  PM01                                                                   08/26/2005 22:27:06 PAGE 2   

  56   2                      {
  57   3      		              Time2_initial();
  58   3                                    starttime_flag=0;
  59   3                                    EX0=1;
  60   3                      }
  61   2      		if(readdata_flag)
  62   2                      {
  63   3      			transdata();
  64   3                              readdata_flag=0;
  65   3                              //P20=~P20;
  66   3                      }
  67   2      		if(cycle_signal)
  68   2                      {
  69   3                              if(disp_flag)
  70   3      			dis_phase();
  71   3                              cycle_signal=0;
  72   3                      }
  73   2      		if(disfre_flag)
  74   2                      {
  75   3                              if(!disp_flag)
  76   3      			dis_fre();
  77   3                              disfre_flag=0;
  78   3                              starttime_flag=1;
  79   3                              Afre=0;
  80   3                              //EX0=1;
  81   3                      }
  82   2                      if(control)
  83   2                                 EX0=1;
  84   2      
  85   2                      if (!key) //如果有键按下
  86   2                      {
  87   3                      key_number=read7279(CMD_READ);
  88   3                      key_process();
  89   3                      while (!key); //等待按键放开
  90   3                      }
  91   2      
  92   2      	}
  93   1      }
  94          
  95          void keyprocess()
  96          {
  97   1       switch(key_number)
  98   1       {
  99   2        case 0x20:{disp_flag=1;};break;
 100   2        case 0x22:{disp_flag=0;};break;
 101   2        default:break;
 102   2       }
 103   1      }
 104          
 105          void dis_phase()
 106          {
 107   1      
 108   1      	uchar phase,data0,data1,data2,data3;
 109   1              send_byte(CMD_RESET);
 110   1      	phase=count_p;
 111   1      	data0=phase%10;
 112   1      	phase=phase/10;
 113   1      	data1=phase%10;
 114   1      	phase=phase/10;
 115   1      	data2=phase%10;
 116   1      	data3=phase/10;
 117   1      	write7279(DECODE1,data0);
C51 COMPILER V6.02  PM01                                                                   08/26/2005 22:27:06 PAGE 3   

 118   1      	write7279(DECODE1+1,data1);
 119   1      	write7279(DECODE1+2,data2);
 120   1      	write7279(DECODE1+3,data3);
 121   1      	count_phase=0;
 122   1      
 123   1      }
 124          
 125          void dis_fre()
 126          {
 127   1      	uchar data_fre0,data_fre1,data_fre2,data_fre3,data_fre4;
 128   1      	uint data_fre;
 129   1              send_byte(CMD_RESET);
 130   1      	data_fre=Afre;
 131   1      	data_fre0=data_fre%10;
 132   1      	data_fre=data_fre/10;
 133   1      	data_fre1=data_fre%10;
 134   1      	data_fre=data_fre/10;
 135   1      	data_fre2=data_fre%10;
 136   1      	data_fre=data_fre/10;
 137   1      	data_fre3=data_fre%10;
 138   1      	data_fre4=data_fre/10;
 139   1      	write7279(DECODE1,data_fre0);
 140   1      	write7279(DECODE1+1,data_fre1);
 141   1      	write7279(DECODE1+2,data_fre2);
 142   1      	write7279(DECODE1+3,data_fre3);
 143   1      	write7279(DECODE1+4,data_fre4);
 144   1      }
 145          
 146          
 147          void transdata()
 148          {
 149   1      	P2=TH0;
 150   1              short_delay();
 151   1      	trans=1;
 152   1      	short_delay();
 153   1      	trans=0;
 154   1      	P2=TL0;
 155   1              short_delay();
 156   1      	trans=1;
 157   1      	short_delay();
 158   1      	trans=0;
 159   1      	//T0=0;
 160   1              P00=~P00;
 161   1      }
 162          
 163          
 164          void Time2() interrupt 5 using 0
 165          {
 166   1      	TF2=0;
 167   1      	count_time2++;
 168   1      	if(count_time2==20)
 169   1      	{
 170   2      		TR0=0;
 171   2                      TR2=0;
 172   2      		Afre=TH0*256;//TH0;
 173   2                      //Afre=Afre<<8;//TL0;
 174   2                      Afre=Afre+TL0;
 175   2                      //Afre=Afre|14;     */

⌨️ 快捷键说明

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