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

📄 main.lst

📁 智能计时计数器 有计两脉冲间隔时间、几脉冲间隔时间、30秒脉冲数等
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V6.20c  MAIN                                                                  07/15/2004 09:46:22 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #define uchar unsigned char
   4          #define null 44//NULL
   5          #define cheng 46 //成
   6          #define du1 47//都
   7          #define si 48//世
   8          #define ji1 49//纪
   9          #define zhong1 50//中
  10          #define ke 51//科
  11          #define ping 52//平
  12          #define jun 53//均
  13          #define su 54//速
  14          #define du2 55//度
  15          #define jia 56//加
  16          #define guang 57//光
  17          #define dian 58//电
  18          #define men 59//门
  19          #define zi 60//自
  20          #define jian 61//检
  21          #define dan 62//单
  22          #define shuang 63//双
  23          #define bai 64//摆
  24          #define zhou 65//周
  25          #define qi1 66//期
  26          #define zhong2 67//钟
  27          #define pen 68//碰
  28          #define zhuang 69//撞
  29          #define jiao 70//角
  30          #define zhuan 71//转
  31          #define xian 72//线
  32          #define miao 73//秒
  33          #define fen 74//分
  34          #define shou 75//手
  35          #define dong 76//动
  36          #define ce 77//测
  37          #define liang 78//量
  38          #define zhi 79//智
  39          #define neng 80//能
  40          #define ji2 81//计
  41          #define shu 82//数
  42          #define shi 83//时
  43          #define qi2 84//器
  44          #define tong 85//通
  45          #define dao 86//道
  46          #define gao 87//高
  47          #define di 88 //低
  48          #define duo 89 //多
  49          #define mai 90 //脉
  50          #define chong 91//冲
  51          #define ci 92//次
  52          #define xuan 93//选
  53          #define ram_xdata 0x0000
  54          unsigned long time_hh=0;
  55          unsigned long time1_hh=0;
C51 COMPILER V6.20c  MAIN                                                                  07/15/2004 09:46:22 PAGE 2   

  56          unsigned int temp=0;
  57          unsigned char select_id=0;
  58          unsigned char time_tl0=0;
  59          unsigned char time_tl1=0;
  60          unsigned int n=0;
  61          unsigned int n1=0;
  62          sbit music=P1^2;
  63          sbit lcd_e1=P2^7;
  64          sbit key1=P1^3;//Select Measurement key
  65          sbit key2=P1^4;//Select Mode key
  66          sbit key3=P1^2;//Start/Stop key
  67          sbit intp_1=P3^3;
  68          sbit intp_0=P3^2;
  69          bit acce_id=0;
  70          bit acce_chose=0;
  71          bit time1_new=0;
  72          bit time2_new=0;
  73          bit over=0;
  74          bit star1_flat=0;
  75          bit star0_flat=0;
  76          bit over0_flat=0;
  77          extern void line_lcd(unsigned char lin,unsigned char linehead[]);//显示一行
  78          extern void char_byte(unsigned char lin,unsigned char byte,unsigned char linehead );//显示一个字节8*16
  79          void black_show(unsigned char lin,unsigned char byte,unsigned char linehead );
  80          extern void clear_up(void);//清除上行
  81          extern void clear_down(void);//清除下行
  82          extern void menu(char id);//显示菜单
  83          extern void INT(void);//LCD初始化
  84          extern void DELAY();//延时0。5秒
  85          extern void celiang();
  86          extern void START_00(void);
  87          extern void START_11(void);
  88          extern void delay01(void);
  89          float long_float(unsigned long time_dat1)
  90          	{
  91   1       	unsigned char i;
  92   1              unsigned long time_dat;
  93   1       	float time_float;
  94   1              time_dat=time_dat1;
  95   1      	 time_dat=time_dat%10000000;
  96   1       	i=time_dat/1000000;
  97   1       	time_dat=time_dat%1000000;
  98   1       	time_float=i*10.0;
  99   1       	i=time_dat/100000;
 100   1       	time_dat=time_dat%100000;
 101   1       	time_float=i*1.0+time_float;
 102   1       	i=time_dat/10000;
 103   1       	time_dat=time_dat%10000;
 104   1       	time_float=i*0.1+time_float;
 105   1       	i=time_dat/1000;
 106   1       	time_dat=time_dat%1000;
 107   1       	time_float=i*0.01+time_float;
 108   1       	i=time_dat/100;
 109   1       	time_dat=time_dat%100;
 110   1       	time_float=i*0.001+time_float;
 111   1       	i=time_dat/10;
 112   1       	time_float=i*0.0001+time_float;
 113   1       	return(time_float);
 114   1      	}
 115          	void save_ram(int ramadd,long tempp)
 116          {    long time_tt;
 117   1      time_tt=tempp;
C51 COMPILER V6.20c  MAIN                                                                  07/15/2004 09:46:22 PAGE 3   

 118   1      XBYTE[ramadd]=29;
 119   1      XBYTE[ramadd+1]=37;
 120   1           time_tt=time_tt%10000000;
 121   1      XBYTE[ramadd+2]=time_tt/1000000;
 122   1           time_tt=time_tt%1000000;
 123   1      XBYTE[ramadd+3]=time_tt/100000;
 124   1           time_tt=time_tt%100000;
 125   1      XBYTE[ramadd+4]=38;
 126   1      XBYTE[ramadd+5]=time_tt/10000;
 127   1           time_tt=time_tt%10000;
 128   1      XBYTE[ramadd+6]=time_tt/1000;
 129   1           time_tt=time_tt%1000;
 130   1      XBYTE[ramadd+7]=time_tt/100;
 131   1           time_tt=time_tt%100;
 132   1      XBYTE[ramadd+8]=time_tt/10;
 133   1      }
 134          	void save_ram2(unsigned char ijk,long tempp)
 135          {    long time_tt;
 136   1           unsigned char tti;
 137   1           tti=ijk;
 138   1      time_tt=tempp;
 139   1      XBYTE[0x200+(tti-1)*0x10]=29;
 140   1      XBYTE[0x200+(tti-1)*0x10+1]=ijk+10;
 141   1      XBYTE[0x200+(tti-1)*0x10+2]=37;
 142   1           time_tt=time_tt%10000000;
 143   1      XBYTE[0x200+(tti-1)*0x10+3]=time_tt/1000000;
 144   1           time_tt=time_tt%1000000;
 145   1      XBYTE[0x200+(tti-1)*0x10+4]=time_tt/100000;
 146   1           time_tt=time_tt%100000;
 147   1      XBYTE[0x200+(tti-1)*0x10+5]=38;
 148   1      XBYTE[0x200+(tti-1)*0x10+6]=time_tt/10000;
 149   1           time_tt=time_tt%10000;
 150   1      XBYTE[0x200+(tti-1)*0x10+7]=time_tt/1000;
 151   1           time_tt=time_tt%1000;
 152   1      XBYTE[0x200+(tti-1)*0x10+8]=time_tt/100;
 153   1           time_tt=time_tt%100;
 154   1      XBYTE[0x200+(tti-1)*0x10+9]=time_tt/10;
 155   1      }
 156          void show_time1(int add_show){
 157   1      unsigned char  i;
 158   1      unsigned  char idata show[16];
 159   1      for(i=0;i<16;i++)
 160   1      {show[i]=null;}
 161   1      for(i=0;i<9;i++)
 162   1      {show[i]=XBYTE[add_show+i];}
 163   1      show[0]=29;
 164   1      show[1]=37;
 165   1      show[4]=38;
 166   1      show[9]=26;
 167   1      show[10]=null;
 168   1      show[11]=null;
 169   1      show[12]=null;
 170   1      show[13]=null;
 171   1      show[14]=0xff;
 172   1      line_lcd(0,show);
 173   1      }
 174          void show_time2(uchar ij )
 175                                             {  unsigned  char  j;
 176   1                                         unsigned  char  yy;
 177   1                                         
 178   1      									unsigned   char  show[16];
 179   1                                                                              yy=ij;
C51 COMPILER V6.20c  MAIN                                                                  07/15/2004 09:46:22 PAGE 4   

 180   1      				 					for(j=0;j<10;j++)
 181   1      									{show[j]=XBYTE[0x200+(yy-1)*0x10+j];}
 182   1      									show[0]=29;
 183   1      									show[1]=yy+10;
 184   1      									show[2]=37;
 185   1      									show[5]=38;
 186   1      									show[10]=26;
 187   1      									show[11]=null;
 188   1      									show[12]=null;
 189   1      									show[13]=null;
 190   1      									show[14]=0xff;
 191   1      									line_lcd(0,show);}
 192          void time2_int() interrupt 5 using 1
 193          	{
 194   1      	TF2=0;
 195   1      	time2_new=1;
 196   1      	temp+=1;
 197   1      	switch(select_id)
 198   1      		{
 199   2      		case 0x30:
 200   2              	if(temp>=6000)
 201   2       				{TR2=0;over=1;EA=0;}
 202   2       			else ;
 203   2             		 break;
 204   2      		case 0x31:
 205   2               	if(temp>=12000)
 206   2       				{TR2=0;over=1;EA=0;}
 207   2       			else ;
 208   2              	break;
 209   2      		case 0x32:
 210   2               	if(temp>=36000)
 211   2       				{TR2=0;over=1;EA=0;}
 212   2       			else ;
 213   2             		 break;
 214   2      		default:
 215   2              	break;
 216   2      		}
 217   1      
 218   1      	}
 219          void show_3(void)
 220          {
 221   1      unsigned char show[16];
 222   1      unsigned int test_tem;
 223   1      unsigned long time_tem;
 224   1      time2_new=0;
 225   1      temp=0;
 226   1      test_tem=0;
 227   1      n=0;
 228   1      over=0;
 229   1      ET2=1;
 230   1      IE0=0;
 231   1      IE1=0;
 232   1      TF2=0;
 233   1      IT1=1;
 234   1      IT0=1;
 235   1      if(acce_id)
 236   1      {EX1=1;
 237   2      EX0=0;}
 238   1      else
 239   1      {
 240   2      EX1=0;
 241   2      EX0=1;
C51 COMPILER V6.20c  MAIN                                                                  07/15/2004 09:46:22 PAGE 5   

 242   2      }
 243   1      EA=1;
 244   1      PT2=1;
 245   1      T2CON=0x00;
 246   1      show[0]=0;
 247   1      show[1]=0;
 248   1      show[2]=0;
 249   1      show[3]=ci;
 250   1      show[4]=0;
 251   1      show[5]=0;
 252   1      show[6]=0;
 253   1      show[7]=38;
 254   1      show[8]=0;
 255   1      show[9]=0;
 256   1      show[10]=0;
 257   1      show[11]=0;
 258   1      show[12]=26;
 259   1      show[13]=0xff;
 260   1      line_lcd(2,show);
 261   1      RCAP2L=0x78; //5000US
 262   1      RCAP2H=0xEC;
 263   1      TH2=0xEC;
 264   1      TL2=0x78;
 265   1      while(key1&&(!over))
 266   1           {
 267   2            if(time2_new)
 268   2                {
 269   3                 time2_new=0;
 270   3                 n=n%1000;
 271   3                 show[0]=n/100;
 272   3                 show[1]=n%100/10;
 273   3                 show[2]=n%10;
 274   3                 show[3]=ci;
 275   3                 time_tem=temp;
 276   3                 time_tem=time_tem*50;
 277   3                 time_tem=time_tem%10000000;
 278   3                 show[4]=time_tem/ 1000000;
 279   3                 time_tem=time_tem%1000000;
 280   3                 show[5]=time_tem/ 100000;
 281   3                 time_tem=time_tem%100000;
 282   3                 show[6]=time_tem/ 10000;
 283   3                 time_tem=time_tem%10000;
 284   3                 show[8]=time_tem/ 1000;
 285   3                 time_tem=time_tem%1000;
 286   3                 show[9]=time_tem/ 100;
 287   3                 time_tem=time_tem%100;
 288   3                 show[10]=time_tem/ 10;
 289   3                 show[11]=time_tem%10;
 290   3                 show[12]=0xff;

⌨️ 快捷键说明

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