文档详情

51单片机串口通信程序。。含详细例子.pdf

发布:2017-05-18约1.98万字共20页下载文档
文本预览下载声明
51单片机串口通信 1./* 9600 11.0592MHz 1./* 9600 11.0592MHz 11..//**打开串口调试程序,将波特率设置无奇偶校验晶振1111.MHHzz,发送和接收使用的格式相同,如都使 hello I LoveMCU */ hello I LoveMCU */ 用字符型格式,在发送框输入 hheelllloo,IILLoovveeMMCCUU ,在接收框中同样可以看到相同字符,说明设置和通信正确**// #include REG52.H /*主程序*/ 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 reg51.h #include string.h 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) { SBUF=ch;
显示全部
相似文档