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

📄 01-串口测试程式(接收).lst

📁 CAN现场总线.rar
💻 LST
字号:
C51 COMPILER V6.12  01_確_诓___砡________                                                  10/01/2009 12:12:47 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 01_確_诓___砡________
OBJECT MODULE PLACED IN .\01-串口测试程式(接收).OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\01-串口测试程式(接收).c DEBUG OBJECTEXTEND

stmt level    source

   1          //	01-串口测试程式(接收).c
   2          //	接收来至串口的数据,对应每一个ASCII码,然后显示相对应的数字
   3          //	29-09-09 akuei2	
   4          
   5          #include "stdio.h"
   6          #include "reg52.h"
   7          #define uchar unsigned char
   8          
   9          //定义数码管码
  10          uchar code Led_Code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  11          
  12          //定义位选码
  13          //0b111011111,0b11011111,0b10111111,0b01111111
  14          uchar code Led_Select[]={0xEF,0xDF,0xBF,0x7F};  
  15          
  16          uchar Buffer_RXD,Number,N,Temp;
  17          
  18          //50微秒延迟函数
  19          void Delay_50us(int t)
  20          {
  21   1      	uchar j; 
  22   1          t--;
  23   1      	for(;t>0;t--)  
  24   1         		for(j=19;j>0;j--);   
  25   1      }
  26          
  27          //数码管显示函数
  28          void Display(void)
  29          {
  30   1      	P0=Led_Code[Number];			// 送数码管码
  31   1      	P2=Led_Select[3];				// 送位选码
  32   1      	Delay_50us(20);					// 延迟1微秒
  33   1      	P0=P2=0xff;						// 消影
  34   1      }
  35          
  36          //接收数据对应数字函数
  37          void Edit_Number(void)
  38          {
  39   1      	if(Temp!=Buffer_RXD)				// 如果接受的数据与前一个数据不一样...
  40   1      	{
  41   2      		switch(Buffer_RXD)
  42   2      		{
  43   3      			case '0': Number=0; break;
  44   3      			case '1': Number=1; break;
  45   3      			case '2': Number=2; break;
  46   3      			case '3': Number=3; break;
  47   3      			case '4': Number=4; break;
  48   3      			case '5': Number=5; break;
  49   3      			case '6': Number=6; break;
  50   3      			case '7': Number=7; break;
  51   3      			case '8': Number=8; break;
  52   3      			case '9': Number=9; break;
  53   3      		}
  54   2      	}
  55   1      }
C51 COMPILER V6.12  01_確_诓___砡________                                                  10/01/2009 12:12:47 PAGE 2   

  56          
  57          //初始化函数
  58          void Init(void)
  59          {
  60   1      	TMOD=0x20;					// T1工作模式2,T0工作模式1
  61   1      	SM0=0;SM1=1;				// 设置串口的工作模式
  62   1      	TH1=0xfd;					// 给TH1赋值,决定赋给TL1的值
  63   1      	TL1=0xfd;					// 给TL1赋值决定波特率9600kb/s
  64   1      
  65   1      	TR0=1;		// 定时器0启动
  66   1      	ET0=1;
  67   1      	TR1=1;		// 定时器1启动
  68   1      	  
  69   1      	IT0 = 1;	// 外部中断0负边沿触发
  70   1      	EX0 = 1;	// 打开外部中断0
  71   1      
  72   1      	REN=1;		// 不应许串口接收数据	
  73   1      	EA=1;		// 开启中断
  74   1      	ES=1;		// 串口中断应许
  75   1      	
  76   1      	Number=0;
  77   1      	Buffer_RXD=0;			
  78   1      	
  79   1      }
  80          
  81          //主函数
  82          void main(void)
  83          {
  84   1      	Init();			// 调用初始化函数
  85   1      	while(1)	
  86   1      	{
  87   2      		Display();	// 数码管不停的显示
  88   2      	}
  89   1      }
  90          
  91          //串口接收中断
  92          void Ir_RXD(void) interrupt 4
  93          {
  94   1          ES = 0;					// 关闭串口
  95   1          if(RI==1)
  96   1          {
  97   2              RI = 0;
  98   2              Buffer_RXD = SBUF;	
  99   2      		Temp=Buffer_RXD;
 100   2      
 101   2          }
 102   1          ES = 1;					// 打开串口
 103   1      	Edit_Number();			// 调用函数
 104   1      
 105   1      }
 106          
 107          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    234    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V6.12  01_確_诓___砡________                                                  10/01/2009 12:12:47 PAGE 3   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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