【精选】51单片机串口通信程序。。含详细例子51单片机串口通信程序。。含详细例子
51单片机串口通信
1./* 9600 11.0592MHz
1./* 9600 11.0592MHz
11..//**打开串口调试程序,将波特率设置无奇偶校验晶振1111.MHHzz,发送和接收使用的格式相同,如都使
hello I LoveMCU */
hello I LoveMCU */
用字符型格式,在发送框输入 hheelllloo,IILLoovveeMMCCUU ,在接收框中同样可以看到相同字符,说明设置和通信正确**//
#include
/*主程序*/
void main (void)
{
SCON = 0x50; /* SCON: 模式1, 8-bit UART, 使能接收*/
TMOD = 0x20; /* TMOD: timer 1, mode 2,
8-bit reload*/
TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */
TL1=0XFD;
TR1 = 1; /* TR1: timer 1 run */
EA = 1; /*打开总中断*/
ES = 1; /*打开串口中断*/
while (1) /*主循环不做任何动作*/
{
}
}
void UART_SER (void) interrupt 4 //串行中断服务程序
{
unsigned char Temp; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
Temp=SBUF; //读入缓冲区的值
P1=Temp; //把值输出到P1 口,用于观察
SBUF=Temp; //把接收到的值再发回电脑端
}
if(TI) //如果是发送标志位,清零
TI=0;
}
2.51 C ,
2.51 C ,
22..5511单片机与电脑串口通信的CC程序,,最好是中断方式的
#include
#include
unsigned char ch;
bit read_flag= 0 ;
void init_serialcom( void ) //串口通信初始设定
{
SCON = 0x50 ; //UART 为模式1,8 位数据,
允许接收
TMOD = 0x20 ; //定时器1为模式2,8 位自动重装
PCON = 0x80 ; //SMOD=1;
TH1 = 0xFD ; //Baud:19200 fosc="11".0592MHz
TL1=0XFD;
IE = 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TI=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
S