欢迎来到天天文库
浏览记录
ID:40573165
大小:2.00 MB
页数:21页
时间:2019-08-04
《PC与51单片机串口通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PC与51单片机串口通信串行通信是计算机和外设进行通讯、对外设进行监控并获取由外设采集到的监测数据的一个非常重要的手段。由于其所用的传输线少,成本低,实现起来方便易行,因而得到广泛的应用。STC89C52RC有一个可编程的全双工串行通信接口,可以方便的实现PC机与其之间的串行通信。一、总体方案系统中采用STC89C52RC/STC89C54RD+单片机作为下位机,PC机为上位机,二者通过CH340将PC的USB口转成RS232的串行口接收或上传数据。单片机部分的程序采用C语言编程,用KeiluVision4编译后产生HEX文
2、件下载到单片机内,从而实现数据收发。PC端采用一个串口调试助手(sscom4.2)或MATLABGUI实现数据的收发。二、具体方案1、简单通信测试程序本程序为了测试通信方式是否合适,以便于下一步增加程序的内容。(1)利用STC提供STC-ISP-V4.83软件检查MCU选项MCUTypeis:STC89C54RD+MCUFirmwareVersion:3.2CChinese:MCU固件版本号:3.2CDoublespeed/双倍速:12T/单倍速振荡放大器增益:fullgain下次下载时P1.0/P1.1与下载无关内部扩展A
3、UX-RAM:允许访问(强烈推荐)下次下载用户应用程序时将数据Flash区擦除:NO用户软件启动内部看门狗后:复位关看门狗ALEpin仍为ALE内部时钟频率:11.061806M外部时钟频率:11.061806M(2)串行口初始参数设定串行口工作方式为方式1(10位异步收发),波特率为9600bps,用定时器1作波特率发生器,选用定时器模式2,其它详见程序及说明。21(3)程序功能说明通过串口调试助手,向单片机发送字符,发送字符的末尾需加“!”,让单片机识别数据接收完毕,返回“Waitcommand!”字符串。当单片机接收一
4、个字符时,发光二极管端引脚取反一次,所以其亮、灭的状态改变一次。例如:初始状态为灭。当发送“12!”时,取反三次,发光二极管变亮,返回“Waitcommand!”字符串(如图(1)所示);当发送“123!”时,取反四次,发光二极管状态不变,但返回“Waitcommand!”字符串(如图(2)所示)。图(1)a图(1)b图(2)a图(2)b21(4)单片机内运行的程序#includesbitP1_2=P1^2;//接发光二极管bitflag;//单片机数据发送标志位bitflag_inter;//单片机数据接
5、收完标志位unsignedchara;voidSendData(chardat);//发送字符voidSendString(char*s);//发送字符串voidmain(){SCON=0x50;//串行通信方式1,接收允许PCON=0x00;//单倍频TMOD=0x20;//设置定时器T1为模式2,定时方式TH1=TL1=0xFD;//波特率为9600,晶振11.0594MHzTR1=1;//定时器T1开始计数EA=1;//中断允许ES=1;//串行口中断开放while(1){if(flag_inter==1){flag_
6、inter=0;//标志位清0SendString("Waitcommand!");}}}//串口接收发送中断voidUart_Isr()interrupt4using1{if(RI){RI=0;//接收中断标志a=SBUF;P1_2=!P1_2;//数据送到P0口if(a=='!'){21flag_inter=1;//数据接收完毕,置1}}if(TI){TI=0;//发送中断标志flag=0;//标志位清0}}//向串口发送字符voidSendData(chardat){while(flag);//等待数据发送ACC=
7、dat;flag=1;//标志位置1SBUF=ACC;//数据装入SBUF}//向串口发送字符串voidSendString(char*s){while(*s)//字符串发送完否{SendData(*s++);//发送字符,并指针指向下一字符}}212、利用串口调试助手实现串行口数据收发本程序可以实现PC机与单片机之间数据双向传输、互发(注:由CH37X451电路板原理图可知CH452数码管驱动及键盘控制芯片为四线接口,CH452_DCLK=P1^7,CH452_DIN=P1^6,CH452_LOAD=P1^5,CH452_
8、DOUT=P3^3。)(1)利用STC提供STC-ISP-V4.83软件检查MCU选项MCUTypeis:STC89C52RCMCUFirmwareVersion:3.2CChinese:MCU固件版本号:3.2CDoublespeed/双倍速:12T/单倍速振荡放大器增益:fullgai
此文档下载收益归作者所有