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

📄 main.lst

📁 1个检测波形的小程序。可以测量波形的长度
💻 LST
字号:
C51 COMPILER V6.12  MAIN                                                                   04/02/2005 20:10:09 PAGE 1   


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

stmt level    source

   1          #include <stdio.h>
   2          #include <reg51.h>
   3          
   4          sbit LED = P1^0;
   5          sbit INT0_PIN = P3^2;
   6          unsigned short Tlow,Thigh;
   7          unsigned short Tlow1,Thigh1;
   8          char Tactive=0;
   9          
  10          unsigned short timer0_value(void)
  11          {
  12   1      	if(TF0)return 0xFFFF;
  13   1      	return TH0*256+TL0;
  14   1      }
  15          
  16          void timer0_reset(void)
  17          {
  18   1      	TF0 = TH0 = TL0 = 0x00;
  19   1      }
  20          
  21          void int0_irq(void) interrupt 0 // 0:INT0 1:TIMER0 2:INT1 3:TIMER1 4:SERIAL
  22          {
  23   1      	EX0 = 0;		// disable int0 interrupt
  24   1      	TR0 = 0;		// stop timer0
  25   1      	Thigh = timer0_value();
  26   1      	Tlow1 = Tlow;
  27   1      	Thigh1 = Thigh;
  28   1      	Tactive = 1;
  29   1      	timer0_reset();
  30   1      	TR0 = 1;		// start timer0
  31   1      	while(1)
  32   1      	{
  33   2      		if(INT0_PIN)break;
  34   2      		if(TF0)break;
  35   2      	}
  36   1      	TR0 = 0;		// stop timer0
  37   1      	Tlow = timer0_value();
  38   1      	timer0_reset();
  39   1      	TR0 = 1;		// start timer0
  40   1      	EX0 = 1;		// enable int0 interrupt
  41   1      }
  42          
  43          void int0_init(void)
  44          {
  45   1      	IT0 =1;		// mode: high to low interrupt
  46   1      	EX0 =1;		// enable int0 interrupt
  47   1      }
  48          
  49          void timer0_init(void)
  50          {
  51   1      	TMOD = (TMOD&0xF0)|0x01;
  52   1      	TF0  = 0;
  53   1      	TR0  = 1;
  54   1      }
  55          
C51 COMPILER V6.12  MAIN                                                                   04/02/2005 20:10:09 PAGE 2   

  56          void uart_init(void)
  57          {
  58   1      	ES = 0;			// Disable Serial Interrupt
  59   1      	SCON = 0x50;	// Mode2,N,8,1
  60   1      	PCON = 0x80;	// double baurdate
  61   1      	TH1 = 0xFF;		// baudrate:57600@11.0592M
  62   1      	TL1 = 0xFF;
  63   1      	TMOD= (TMOD&0x0F)|0x20;
  64   1      	TR1 = 1;		// Timer1 Start
  65   1      	TI = 0;
  66   1      }
  67          
  68          void uart_write(unsigned char ch)
  69          {
  70   1      	SBUF=ch;
  71   1      	while(!TI);
  72   1      	TI=0;
  73   1      }
  74          
  75          void main(void)
  76          {
  77   1      	int0_init();
  78   1      	timer0_init();
  79   1      	uart_init();
  80   1      	EA =1;
  81   1      	while(1)
  82   1      	{
  83   2      		if(Tactive)
  84   2      		{
  85   3      			Tactive=0;
  86   3      			uart_write(Tlow1/256);
  87   3      			uart_write(Tlow1%256);
  88   3      			uart_write(Thigh1/256);
  89   3      			uart_write(Thigh1%256);
  90   3      		}
  91   2      	}
  92   1      }
  93          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    207    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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