PC与51单片机串口通信
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
PC与51单片机串口通信
串行通信是计算机和外设进行通讯、对外设进行监控并获取由外设采集到的监测数据的一个非常重要的手段。由于其所用的传输线少,成本低,实现起来方便易行,因而得到广泛的应用。STC89C52RC有一个可编程的全双工串行通信接口,可以方便的实现PC机与其之间的串行通信。
一、总体方案
系统中采用STC89C52RC/STC89C54RD+单片机作为下位机,PC机为上位机,二者通过CH340将PC的USB口转成RS232的串行口接收或上传数据。单片机部分的程序采用C语言编程,用Keil uVision4编译后产生HEX文件下载到单片机内,从而实现数据收发。PC端采用一个串口调试助手(sscom4.2)或MATLAB GUI实现数据的收发。
二、具体方案
1、简单通信测试程序
本程序为了测试通信方式是否合适,以便于下一步增加程序的内容。
(1)利用STC提供STC-ISP-V4.83软件检查MCU选项
MCU Type is: STC89C54RD+ MCU Firmware Version: 3.2C Chinese:MCU 固件版本号: 3.2C
Double speed / 双倍速: 12T/单倍速 振荡放大器增益: full gain 下次下载时 P1.0/P1.1 与下载无关
内部扩展AUX-RAM: 允许访问(强烈推荐) 下次下载用户应用程序时将数据Flash区擦除: NO 用户软件启动内部看门狗后: 复位关看门狗 ALE pin 仍为 ALE
内部时钟频率:11.061806M 外部时钟频率:11.061806M
(2)串行口初始参数设定
串行口工作方式为方式1(10位异步收发),波特率为9600bps,用定时器1作波特率发生器,选用定时器模式2,其它详见程序及说明。
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
(3)程序功能说明
通过串口调试助手,向单片机发送字符,发送字符的末尾需加“!”,让单片机识别数据接收完毕,返回“Wait command!”字符串。当单片机接收一个字符时,发光二极管端引脚取反一次,所以其亮、灭的状态改变一次。
例如:初始状态为灭。当发送“12!”时,取反三次,发光二极管变亮,返回“Wait command!”字符串(如图(1)所示);当发送“123!”时,取反四次,发光二极管状态不变,但返回“Wait command!”字符串(如图(2)所示)。
图(1)a 图(1)b
图(2)a 图(2)
b
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
(4)单片机内运行的程序
#include <reg51.h>
sbit P1_2=P1^2; //接发光二极管
bit flag; //单片机数据发送标志位 bit flag_inter; //单片机数据接收完标志位 unsigned char a;
void SendData(char dat);//发送字符 void SendString(char *s);//发送字符串
void main() {
SCON=0x50; //串行通信方式1,接收允许 PCON=0x00; //单倍频
TMOD = 0x20; //设置定时器T1为模式2,定时方式 TH1=TL1=0xFD; //波特率为9600,晶振11.0594MHz TR1=1; //定时器T1开始计数 EA=1; //中断允许
ES=1; //串行口中断开放
while(1) { if(flag_inter==1) { flag_inter=0; //标志位清0 SendString("Wait command!\n"); } } }
//串口接收发送中断
void Uart_Isr() interrupt 4 using 1 {
if (RI) {
RI=0; //接收中断标志 a=SBUF;
P1_2=!P1_2; //数据送到P0口 if(a=='!') {
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
flag_inter=1; //数据接收完毕,置1 } } if(TI) {
TI=0; //发送中断标志 flag=0; //标志位清0 } }
//向串口发送字符
void SendData(char dat) {
while(flag); ACC=dat;
flag=1; SBUF=ACC; }
//向串口发送字符串 void SendString(char *s) {
while(*s) {
SendData(*s++); } } //等待数据发送 //标志位置1 //数据装入SBUF //字符串发送完否 //发送字符,并指针指向下一字符
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
2、利用串口调试助手实现串行口数据收发
本程序可以实现PC机与单片机之间数据双向传输、互发
(注:由CH37X451电路板原理图可知CH452数码管驱动及键盘控制芯片为四线接口,CH452_DCLK=P1^7,CH452_DIN=P1^6,CH452_LOAD=P1^5,CH452_DOUT=P3^3。)
(1)利用STC提供STC-ISP-V4.83软件检查MCU选项
MCU Type is: STC89C52RC
MCU Firmware Version: 3.2C Chinese:MCU 固件版本号: 3.2C
Double speed / 双倍速: 12T/单倍速 振荡放大器增益: full gain 下次下载时 P1.0/P1.1 与下载无关
内部扩展AUX-RAM: 允许访问(强烈推荐) 下次下载用户应用程序时将数据Flash区擦除: NO 用户软件启动内部看门狗后: 复位关看门狗 ALE pin 仍为 ALE
内部时钟频率:24.011256M. 外部时钟频率:24.011256M.
(2)串行口初始参数设定
串行口工作方式为方式1(10位异步收发),波特率为4800bps,用定时器1作波特率发生器,选用定时器模式2,其它详见程序及说明。
(3)程序功能说明
通过串口调试助手,向单片机发送字符,发送字符的末尾需加“!”,让单片机识别数据接收完毕。当单片机接收到PC机发来的数据时,先存入数组,当检测到结束标志“!”时,调用显示函数,从左至右,两个LED数码管表示一位字符的ASCII码(注:为了显示出特殊字符,所以用ASCII码表示)。一次最多只能表示四个字符,当超过四个时,延时一段时间,再显示下面的字符。数码管显示结束后,返回“Wait command!”字符串。当按下按键时,将按键对应的键值返回给PC机。
例如:当在串口调试助手中发送“a=1,b=3,b>a!”时,数码管将依次显示对应的十六进制ASCII码如下:61H(a)、3dH(=)、31H(1)、2cH(,)、62H(b)、3dH(=)、33H(3)、2cH(,)、62H(b)、3EH(>)、61H(a)、21H(!),具体见图(3)。当从左至右,从上到下依次按下键盘上的三行按键时,返回键值到PC机,具体见图(4)。
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
图(3)a 图(3)b
图(3)c 图(3)d
图(4)a 图(4)b
PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
(4)单片机内运行的程序
主程序如下:
#include <reg51.h> #include <intrins.h>
#include <CH452CMD.h> #include <pin.h>
bit flag; //标志位
bit flag_inter; //P …… 此处隐藏:3138字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




