标题: 单片机串行通信实验 [打印本页]
作者: gejiapeng 时间: 2018-7-16 13:54
标题: 单片机串行通信实验
用单片机串行口,实现本机串行接口的自通讯。连接起本机的TXD和RXD。将本机数据通过异步方式从本机的TXD引脚发送,再从本机的RXD引脚接收。单片机从P2口读入的按键数值并向TXD引脚上发送,之后从RXD引脚接收该数据,并通过P1口显示在 LED发光二极管上。
#include <reg52.h>
void system_init();
void main()
{
system_init();//系统初始化
SBUF=P2;//首次读入P2口的数据并发送到串行口
while(1);
}
/*系统初始化函数*/
void system_init()
{
SCON = 0x50;//REN=1允许串行接受状态,串口工作模式1 (全双工方式) 、数据位8、停止位1、校验位无。
PCON = 0x80;//SMOD=1,波特率加倍
TMOD = 0x20;//定时器T1设置为工作方式2(自动装载初值的8位定时器)0010,T0任意(不使用T0)0000
TH1 = 0xf9;//设置波特率9600。T1=256-2*12*10^6/(384*2400)=249.489583=0xf9(四舍五入)
TL1 = 0xf9;
TR1 =1;
ES =1;
EA =1;
}
/*串行口中断服务程序*/
void serial_interrupt() interrupt 4
{
if(RI) //串行口如果接收到数据,则清除中断标志,并将数据显示到LED
{
RI=0;
P1=SBUF;
}
if(TI) //串行口如果发送完一次数据,则清除中断标志,并传送下一组按键数据
{
TI=0;
SBUF=P2;
}
}
汇编语言版见附件
-
-
新建文本文档.zip
1.05 KB, 下载次数: 21, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |