单片机与PC机通信
来源:互联网 发布:网络写作大神 编辑:程序博客网 时间:2024/05/01 19:23
单片机获取和管理传感器的数据,然后通过串口通信将数据发送给PC。
利用proteus仿真单片机和PC口通信时,需要用到串口调试助手和虚拟串口配置软件。
串口助手用于PC进行数据发送和接收,虚拟串口用于将PC的串口虚拟连接。
P3.0口RXD
P3.1口TXD
对应接上compim的接口
传值给PC
程序中先设定工作方式
//设定工作方式void port(){ TMOD=0x20; //((T1工作方式2、软启动,设置串口波特率) //串口初始化 TH1=0xfd; //波特率9600 TL1=0xfd; TR1=1; PCON=0x00; SCON=0X40;//串口工作方式1,不允许接收}
主程序中
SBUF=key[keynum];while(!TI);//检测发送标志位TI, TI=0,未发送完TI=0;//一个字节发送完,TI清0
串口传值到单片机
//设定工作方式void serial(){ SCON=0x50;//串行口方式1 SM0=0;SM1=1;REN=1;(允许接收) PCON=0x00;//T1初始化, TMOD=0x20;//T1设为方式2 TH1=0xFD;//选9600波特,fosc=11.0592MHz TL1=0xfd; TR1=1;//启动T1 }
主程序中
if(RI)//如果接收到数据,就把接收到的数回发给PC { RI=0;//清接收标志 a=SBUF;//读串行口数据 a=a-'a'+'A';//接小收大 SBUF=a;//把从PC机发送过来的数据返回给PC机 while(!TI);//没有发送完等待 TI=0;//清发送完中断标志 }
void uart_init(unsigned int bps){ unsigned char t; SCON=0x80;//工作方式一:8位异步收发,波特率可变,允许接收数据 PCON=0x90;//SMOD=0 TI=0;//软件清零,表示未发送完成 EA=1;//开总中断 ET1=1;//开T1中断 ES=1; //开串口中断 TMOD=0x20;//8位自动装载模式 switch(bps) { case 1200:t=0xe8;break; case 2400:t=0xf4;break; case 4800:t=0xfa;break; case 9600:t=0xfd;break; } TH1=t; TL1=t; TR1=1;//开启T1}/********************循环发送数据 ch为数据口**********************************/void uart_send(unsigned char ch){ ES=0; //关串口中断 SBUF=ch; while(TI==0);//等待发送完成 TI=0; //清除中断标记 ES=1; //开串口中断}
阅读全文
0 0
- 单片机与PC机通信
- PC 机与单片机通信(RS232 协议)
- 单片机与PC机通信USB2COM
- 单片机与PC机之间的通信
- 单片机-串口与PC通信
- PC机与下位单片机异步串行通信
- PC机与下位单片机异步串行通信[摘]
- PC机与下位单片机异步串行通信
- PC机与单片机串行通信的硬件设计
- PC机如何实现与单片机间串行通信
- PC机与多个单片机间的通信
- PC机串口调试助手与单片机通信字符问题
- PC与单片机串通(串口通信)
- 51单片机与PC进行串口通信
- 51单片机与PC串口通信
- 单片机与PC机多机通讯 串口通信
- 基于Arduino的GPS与单片机通信 GPS与PC机的通信
- 关于PC机单片机串口通信
- Hdoj 1092 A+B for Input-Output Practice (IV)
- 在 Visual Studio 中使用 Q# 进行量子编程
- 人工智能里的数学修炼 | 模型参数求解:极大似然估计
- Mysql 的关键字(保留字)做个标记
- 关于大数据运维小知识
- 单片机与PC机通信
- [AHK]从time.tianqi.com获取时间
- Windows10 anaconda tensorflow 安装手册
- Python模拟登录东北大学校园卡主页
- C#并发编程实例讲解-概述(01)
- 从零开始学android编程之线性布局管理器(2-2)
- Tomcat7优化配置方案(windows平台)
- 万树IT:优化代码有哪些好处
- 技巧专题~~字符串末尾的判断