#includereg51.h>#includestdio.h>#defineucharunsignedchar#defineuintunsignedint//sbitBEEP=P1;//
#include
#include
#define uchar unsigned char
#define uint unsigned int
//sbit BEEP = P1; // P1接8个LED
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只需接纳中止标志位RI没有被置“1” 当接纳结束时,中止标志RI被置1
; //等候,直至接纳结束(RI=1)
RI=0; //为了接纳下一帧数据,需将RI清0
dat=SBUF; //将接纳缓冲器中的数据存于dat
return dat;
}
void main (void)
{
int i =0;
SCON = 0x50; //REN=1答应串行承受状况,串口作业形式2
TMOD|= 0x20; //定时器1作业方法2
// PCON|= 0x80; //波特率进步一倍
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、中止位1。效验位无(11.0592)
TH1 = 0xFD;// //baud /* 波特率9600、数据位8、中止位1。效验位无 (11.0592M)
TL1 = 0xFD;
TR1 = 1; //敞开定时器1
//ES = 1; //开串口中止 是否开串口中止和开总中止不影响。
//EA = 1; // 开总中止
// IE = 0x0;
REN=1; //答应接纳
while(1)
{
P1=Receive(); //将接纳到的数据送P2口显现
}
}
c51串口接纳并发送数据程序
2007年11月02日 下午 10:00
#include #defineBUFFERLEGTH 10 //—————————————————————– void UART_init();//串口初始化函数 void COM_send(void);//串口发送函数 char str[20]=”hello\r\n”;
//——————————————————————- void main(void) { unsigned char i; UART_init();//初始化串口 for(i = 0;i < 10 ;i++) { COM_send();//首要发送一次数据作为测试用
};
while(1); }
//————————————————————- //————————————————————————————————– // 函数称号: UART_init()串口初始化函数 // 函数功用: 在体系时钟为11.059MHZ时,设定串口波特率为9600bit/s //串口接纳中止答应,发送中止制止 //————————————————————————————————– void UART_init() { //初始化串行口和波特率发生器 SCON =0x50;//挑选串口作业方法1,翻开接纳答应 TMOD =0x20;//定时器1作业在方法2,定时器0作业在方法1 TH1 =0xfA;//完成波特率9600(体系时钟11.0592MHZ) PCON = 0x80; TR1 =1;//发动定时器T1 ET1 =0; ES=1;//答应串行口中止 PS=1;//规划串行口中止优先级 EA =1;//单片机中止答应 } //———————————————————— void COM_send(void) { unsigned char point = 0; for(point=0;point< 20;point++)//接连发送二十位数据//把缓存区的数据都发送到串口 { SBUF=str[point]; while(!TI); TI=0; } } //————————————————————– //————————————————————————————————– // 函数称号: com_interrup()串口接纳中止处理函数 // 函数功用: 接纳包含开始位S在内的十位数据到数据缓冲区 //————————————————————————————————– void com_interrupt(void) interrupt 4 using 3 { unsigned char RECEIVR_buffer; if(RI)//处理接纳中止 { RI=0;//铲除中止标志位 RECEIVR_buffer=SBUF;//接纳串口数据
if (RECEIVR_buffer == s) { SCON =0x40;//接纳不答应 COM_send();//发送数据 SCON =0x50;//接纳答应 } }
|
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/268129.html