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

📄 uart.c

📁 一个可以同时用串口显示字符和数字地C程序。我毕业设计中的一段。好使的。
💻 C
字号:
//#include "reg52.h"
#include "reg51.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
#include "stdio.h"

#define uchar unsigned char
#define uint unsigned int

unsigned int Vnum=0x11;
unsigned char recive;
unsigned char start[8]={'b'};
unsigned char end[15]={"me"};
unsigned char *ptr;
sbit led=P1^1;

void COM_int(void)		// 串口初始化
     {
       SCON=0x50;   //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收
	   PCON=0x00;	//波特率不倍增
	   ES=1;        //允许串口中断
	   TMOD=0x21;   //定时器T1工作于方式2,自动装载方式
       //TH0=(65536-1000)%256;
       //TL0=(65536-1000)/256;
       TL1=0xfd;
       TH1=0xfd;
	   ET1=1;       //允许T1溢出中断
       TR1=1;		//启动定时器工作
       EA=1; 		//允许全部中断
	  }

void send_char(uchar txd)  // 发送一个字符
     { 
	  SBUF = txd;
	  while(!TI);				// 等特数据传送
	  TI = 0;					// 清除数据传送标志
	  }


void send_str(uchar *pstr)			// 发送字符串
     {
	  //uchar dataa[8];
	  //dataa = pstr;

	  while(*pstr!= '\0')
	  {
	    SBUF = *pstr;
		while(!TI);				// 等特数据传送
		TI = 0;					// 清除数据传送标志					
		pstr++;					// 下一个字符
	   }	
	  }

void delayms(uchar ms)  	//延时
     {
       uint i,j;
       for(i=0;i<ms;i++)
	  {
	   for(j=0;j<124;j++);
       }
	  }
/*********************************************
unsigned char DataToASCII(unsigned char di)
{
  if(di<0x0A) 
    return(di|=0x30);
  else 
    return(di+=0x37);
}
********************************************/
void main()
     {
	  COM_int();       //初始化串口
	  led=1;
          sprintf(ptr,"%d",Vnum);
	  //delayms(100);
	  send_str(start);	   //发送起始信号
	  led=0;
	  //delayms(100);
	  send_str(ptr);          //发送数据
	  led=1;
	  //delayms(100);
	  send_str(end);	   //发送结束信号
	  led=0;
	  //delayms(100);
	  send_str(ptr);
	  }
/************串行中断接收*******************/ 
void rev() interrupt 4 using 2 
     {
	  if(RI)
	   { 
        RI=0; 
        recive=SBUF;
		TI=1;              //置1接受中断标志位
		/*中间可以加程序*/
		TI=0;              //清除接受中断标志位
		}
	  }

⌨️ 快捷键说明

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