利用单片机的串行口向PC机发送数据
使用Keil软件模拟调试单片机串行口

使用Keil软件模拟调试单片机串行口单片机串行口是单片机中很常见的接口之一,常用于与外界通讯,如与PC机通讯,接收或发送数据等。
Keil软件可以帮助我们模拟及调试单片机串行口,下面是详细介绍。
一、Keil软件简介Keil是一款强大的单片机编程软件,具有模拟器和仿真器。
其可支持多种嵌入式系统和多种编译器。
同时Keil具有标准C 编译器,专门用于单片机编程,而且具有与某些模拟器和编译器的集成,可提供完整的嵌入式开发环境。
二、使用Keil软件模拟1. 连接软件与硬件在开始模拟之前,需要将单片机与电脑通过串口连接好。
打开“Options for Target”对话框,选择“Debug”选项卡,选择正确的COM 端口,设置存根速度,完成调试设置。
2. 添加串行口文件在Keil软件中打开设计文件,键入“#include <reg52.h>”来添加注册头文件,其中包含了需要使用串口的相关寄存器位。
利用如下代码,可以对串行口的各项参数进行设置,例如波特率、校验位等等。
void init(){SCON = 0X50; //使串口工作在方式1,即8位数据,可变波特率TMOD |= 0X20; //TMOD的高4位设为0010,使Timer1工作在方式2TH1 = 0XF3; //波特率设为2400bpsTL1 = 0XF3;TR1 = 1; //启动Timer1ES = 1; //开启串口中断EA = 1; //打开总中断}3. 编写数据收发代码在调用串口的过程中,我们往往需要使用到接收和发送两个函数。
在接收方面,我们需要设置好接收中断模式以及缓冲区的异步处理。
编写简单的数据接收收发代码如下:void send_data(unsigned char dat){SBUF = sdat; //将数据传输到SBUF当中while(!TI); //等待发送完成TI = 0; //完成发送}unsigned char receive_data(){while(!RI); //等待接收完成RI = 0; // 完成接收return SBUF; // 返回接收缓冲区}4. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
串行通信的基本原理

本文详细介绍了串行通信的基本原理,以及在Windows NT、Win98环境下用MFC 实现串口(COM)通信的方法:使用ActiveX控件或Win API.并给出用Visual C++6.0编写的相应MFC32位应用程序。
关键词:串行通信、VC++6.0、ActiveX控件、Win API、MFC32位应用程序、事件驱动、非阻塞通信、多线程.在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。
实际工作中利用串口完成通信任务的时候非常之多。
已有一些文章介绍串口编程的文章在计算机杂志上发表。
但总的感觉说来不太全面,特别是介绍32位下编程的更少,且很不详细。
笔者在实际工作中积累了较多经验,结合硬件、软件,重点提及比较新的技术,及需要注意的要点作一番探讨。
希望对各位需要编写串口通信程序的朋友有一些帮助。
一.串行通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。
当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。
在接收数据时,串行的位被转换为字节数据。
在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。
串口通信程序的流程如下图:二.串口信号线的接法一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。
25芯和9芯的主要信号线相同。
以下的介绍是以25芯的RS-232C为例。
①主要信号线定义:2脚:发送数据TXD; 3脚:接收数据RXD; 4脚:请求发送RTS; 5脚:清除发送CTS;6脚:数据设备就绪DSR;20脚:数据终端就绪DTR; 8脚:数据载波检测DCD;1脚:保护地; 7脚:信号地。
M68HC08单片机与PC机串行通信的实现

( . S h o fCo p tr & I f r ain,H ee i e st fTe h o o y 1 c o l m ue 0 n o m to fiUnv r iy o c n lg ,He e 2 0 0 ,Ch n ; fi 3 0 9 ia
2 Be g u Co lg ,B n b 3 0 0,Ch n ) . n b l e e e g u2 3 3 i a
近 距 离 的串行 通信 , C机 和单 片 机之 间是 通 过 R 一2 2接 1 直接 相连 。由 于单 片机 串 口采用 的是 P S 3 2 1 TTL电平 , P 而 C机 上 的 R 一 2 2接 口采 用 的是 R 一2 2 准的 E A 电平 , 此必 须外 接 电路实 现 电平 S 3 S 3标 I 因 转 换 , 可 以 实现 单 片机 和 P 才 C机 的 串行 通 信 。本 文 使用 MAX2 2芯 片 , 芯 片 使 用 单 一 + 5 电源 供 3 该 V
Ab ta t I hs p p r a meh d o e ilc m mu ia i n b t e 6 H C0 CU n C i ito sr c :n t i a e , t o fs r o a nc to ewe n M 8 8M a d P s nr — d e d H a d r e i ni r v d d a l a n v r a p o r m o e ,whc a ea pid t t e ue. r wa e d sg sp o i e swel s u ie s l r g a c d s ih c n b p l o o h r e
讨论 M6 HC 8系列 单 片机 串行通 信 的设计 和 编 程方 法具 有 重要 的实 际 意义 。本 文 以 M6 HC 8系 列 中 8 0 8 0
串口通讯方法的三种实现

串口基本信息用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。
三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。
其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。
即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。
七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。
其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。
其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。
在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。
目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。
一个串口通讯类在/network/serialport.shtml。
PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。
串口通讯方法的三种实现串口是计算机上一种非常通用的设备通信协议。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。
串口通信方便易行,应用广泛。
在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
51单片机实验2014

《单片机原理与应用实验》指导书厦门理工学院光电与通信工程学院目录目录 (I)第一章概述 (1)第二章实验系统组成和结构 (4)§2.1 系统主机的硬件组成 ................................................................ 错误!未定义书签。
2.1.1 逻辑电平开关电路...................................... 错误!未定义书签。
2.1.2 LED电平显示电路....................................... 错误!未定义书签。
2.1.3单脉冲电路........................................... 错误!未定义书签。
2.1.4 音频放大电路........................................... 错误!未定义书签。
2.1.5 继电器输出电路........................................ 错误!未定义书签。
2.1.6 逻辑门电路............................................. 错误!未定义书签。
2.1.7 逻辑测量(逻辑笔)电路................................. 错误!未定义书签。
2.1.8 4MHz脉冲信号源和多级分频电路......................... 错误!未定义书签。
2.1.9 可调模拟量输入电路..................................... 错误!未定义书签。
2.1.10 六位LED数码显示器................................... 错误!未定义书签。
2.1.11 4×6 键盘电路......................................... 错误!未定义书签。
PC机与单片机的串口通信系统设计

2 1 年 9月 00
软 件 导 刊
So t r ic fwae Gud
VO1 O9 . N . 9 Se 2O1 v. 0
P C机与单片机 的串 口通信 系统设计
孙 建 华 赵 晓典 高永 飞 , ,
( _ 家 庄 铁 道 大 学 四 方 学 院 , 北 石 家 庄 0 13 ;. 铁 十 六 局 , 京 10 1 ) 1成 电平转 换后 成 为 R D1 T D1 号 , 通过 串 口线 与 主机 X 、X 信 再
相 连
作者简 介 : 建华 (9 2 ) 女 , 孙 1 8 一 , 河北 沧 州人 , 家庄铁 道 大学 四方 学院教 师 , 究方 向为 计算 机教 学 与研 究 ; 晓典 ( 9 2 , , 石 研 赵 1 8 一) 女 河北石 家庄 人 , 石
据。
图 1 串 口 通信 系统 框 图
3 系统 电 路设 计
所设计 的基 于 P C机 与单 片机 的 串 口通 信 系统 电路如 图 2 所示 . 主要 包 括单 片 机 、 口通 信 电路 、 P程序 下 载接 口电路 串 I S 和 系统复 位 电路 。 本 电路 基 于 R 一 3 S 2 2接 口标准 ,使用 D 一 B 9连 接器 ,采 用
收端 , 因此 可 以同时进 行多 路通 信 。另 外 MA 3 X2 2芯 片 的传 输
速 率最 高可 以达 到 2 5 b s在所 设计 的 串 口通信 电路 系统 中 , 3kp。
单 片 机 的 数 据 通 过 R D、 XD 与 MA 2 2相 连 , MA 2 2 X T X3 3 经 X3 3
信 电路系统 的设 计 。U AR S T是一个 高度 灵活 的 串行 通讯设 备 , 具有 全双工 操作 、 步或 同步操 作 、 异 高精 度 的波特 率发 生器 、 数 据过 速 检测 、 帧错 误 检测 、 噪声 滤波 、 多处 理 器通 讯模 式 、 速 倍 异步通 讯模 式 、 三个 独立 的 中断等特 点 。 由于单 片机 输 出的 T L电平与 P T C机 的 R 一 3 S 2 2串 口电平
使用SPComm控件实现PC机与单片机AT89C51的串口通信
科技资讯科技资讯S I N &T NOLOGY I NFORM TI ON 2008N O.03SCI ENC E &TEC HNO LO GY I N FO RM A TI ON I T 技术使用S P Co mm 控件实现P C 机与单片机A T89C51的串口通信刘雪亭韩鹏(四川信息职业技术学院四川广元市628017)摘要:本文介绍一种基于C++b ui l de r 语言利用Sp c om m 控件实现PC 机与单片机串口通讯的软硬件实现方法。
关键词:C ++b ui l d er SPC o m m 控件串口通信单片机A T89C 51中图分类号:TP311文献标识码:A 文章编号:1672-3791(2008)01(c)-0097-021引言作为一种基本而又灵活方便的通信方式,串口通信被广泛应用于P C 与P C 或者P C 与单片机之间的数据交换以及其它工业控制与自动化控制中。
C++bui l de r 是Bo r l a nd 公司推出的一个功能强大的应用程序开发工具,它不仅具有De l p h i 的简单,功能强大和高效率等特点,而且还结合了C ++灵活性强,编译执行快速的优点。
通常要实现串口通信,可以采用的方法以及第三控件有很多。
例如C ++bui l de r 自身支持的W I N32API 函数,M i c r os of t vi s u a l 系列开发工具中的M SComm 控件,利用第三控件S P C o mm 串口通信控件等。
相比较而言,利用S P Co mm 控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及时间,提供对串口的各种操作,而且还支持多线程。
因此使用S P C o mm 控件实现P C 机与单片机的串口通信是一种高效,简便的方式。
2浅析SPC om m 控件S P Co mm 是台湾小猪工作室开发的第三方串口控件,是MS C o mm 的增强版本,功能强大,编程非常简单。
用PC机与单片机通信及点阵数据转换实现LED显示汉字
取点 的方 向旋 转 9 。) 0 .每个汉字 的 1 ×1 阵数 据为 3 6 6点 2字节 的 】 进 制点 阵数 据 , 于 P ooo0o0oooo00o0 6 对 C机 中 的取 点方
式( 见图 3 , 3 ’ 数据可 组成一个 l ) 这 2个 6行两 列 的矩
一 一 一 一 一 一
0 引 言
在用 P C机与 单片机 串行通 信使 L D 点阵 显示 屏 显示汉 字信息 的过 程中 ,首先要 用 P E C机 的串 口通 信
软件 ,从 电脑键 盘 中输 入汉字 后 ,能 从 电脑 串 口串行输 f 汉 字的机 内码 . 片机接 收 到 P I I 单 C机的机 内码后 , 从储 存有约 8 0 0多个 汉字 的点阵数 据 的 Fah R 0 ls OM 片 A 2 C 2 ( T 9 0 0 容世 2 6 K )l 5 B  ̄ 提取 汉字 的横 向点阵 t 数据 ,之后 ,送 到作 为 显示缓 冲 I R M 芯片 6 2 6中 ;再 由单 片机将 6 2 6巾的横 向点阵 数据按 一定 的 A 25 25 规律 取 I ,送 L D 点 阵 湿示 屏按需 要 的形式短 示.在 示一 行从有 向左 移动 的汉字 L D 显示 屏 中 ,当 f 后 E E 采H 列扫 描方 式时 ,在单 片机扫描 示 编程 时 ,处理横 向汉字 点阵 数据较 麻烦 ;而 如果用 纵 向取 点 的点阵 _ { 数据 ,将 使扫 描编程 变得很 简单 .南 丁现 在 电脑 巾的汉字 点阵 数据 文件 只有横 I 阵数据 ( 如 H K1 ) 旬点 例 Z 6, 因而 , 时将汉 字横 向点阵 数据转换 为纵 向点 阵数据 的 “ 此 旋转 9 。变换 ”是单 片机 编程要 解决 的关键 问题 . 0
上位机串口通信编程
上位机串⼝通信编程摘要本⽂主要描述了利⽤PC机与AT89C51单⽚机之间的通信程序设计实现温度显⽰。
并详述了在VC6.0环境下,上位机利⽤MSCOMM通信控件与单⽚机之间串⼝通信实现温度显⽰。
由单⽚机采集⼀个温度信号,将采集到的温度信号传送给PC机显⽰,PC机⽤VC6.0编写程序,单⽚机程序⽤C语⾔编写,最后⽤PROTUES软件进⾏仿真实现温度显⽰。
关键词:单⽚机MSCOMM控件VC6.0 AT89C51 温度显⽰⽬录摘要1 引⾔ (1)2 结构设计与⽅案选择 (2)2.1设计任务 (2)2.1.1单⽚机的选择 (2)2.1.2电平转换 (2)2.1.1单⽚机的选择 (2)2.1.3单⽚机与pc机通信原理 (2)2.2软件⽅案选择 (2)2.2.1 上位机编程⽅案选择 (3)2.2.2 单⽚机编程⽅案选择 (3)2.3 总体⽅案选择 (2)3 硬件设计 (8)3.1单⽚机主要特性 (5)3.2 MAX232电平芯⽚介绍10 (10)3.3 硬件电路设计图 (11)3.3.1 PC机与单⽚机通信接⼝电路设计框图 (11)3.3.2整体设计原理图 (11)4软件设计 (12)4.1上位机程序设计 (12)4.2下位机程序设计 (13)5 软硬件调试部分 (21)5.1 PROTEUS软件仿真 (21)5.1.1 Protues简介 (21)5.1.2 Protues仿真电路图 (22)5.2 VC软件仿真 (21)结束语 (27)致谢 (28)参考⽂献 (29)1引⾔随着⼈们⽣活⽔平的不断提⾼,单⽚机控制⽆疑是⼈们追求的⽬标之⼀,它所给⼈带来的⽅便也是不可否定的,要为现代⼈⼯作、科研、⽣活、提供更好的更⽅便的设施就需要从单⽚机技术⼊⼿,⼀切向着数字化控制,智能化控制⽅向发展。
现代化集中管理需要对现场数据进⾏统计、分析、制表、打印、绘图、报警等,同时,⼜要求对现场装置进⾏实时控制,完成各种规定操作,达到集中管理的⽬的。
单片机各种通信方式的特点和主要应用场合
单片机各种通信方式的特点和主要应用场合串口用的比较多:RS232,用于与标准的RS232设备通讯网卡,用于互联网或采用网卡端口的设备通讯I2C,用于单片机自己外设或多个单片机之间通讯CAN,工业标准,汽车中常用并口:并口就是直接将数据输入或输出,多少位数据就要用多少根线,此外还要加上控制线2根以上。
例如8位的数据通讯,至少用10根线。
由于单片机的引脚数目有限,这种方法很不实用。
并行口现在计算机都几乎不用了。
如果感兴趣,你就找以前的计算技术方面的书上还有介绍。
并口线路复杂,可靠性低,速度低,除了早期的打印机还用,也几乎没有这样的外设了。
大家好,通过前一期的学习,我们已经对ICD2 仿真烧写器和增强型PIC 实验板的使用方法及学习方式有所了解与熟悉,学会了如何用单片机来控制发光管、继电器、蜂鸣器、按键、数码管等资源,体会到了学习板的易用性与易学性,看了前几期实例,大部分都是基于单片机端口操作原理呢?大家是否觉得这样一个单片机系统似乎缺少点什么呢?不错,本期我们将介绍单片机与电脑通讯,使单片机与PC 机能够联机工作。
单片机除了需要控制外围器件完成特定的功能外,在很多应用中还要完成单片机和单片机之间、单片机和外围器件之间,以及单片机和微机之间的数据交换和指令的传输,这就是单片机的通信。
单片机的通信方式可以分为并行通信和串行通信。
并行方式传送一个字节的数据至少需要8 条数据线。
一般来讲单片机与打印机等外围设备连接时,除8条数据线外,还要状态、应答等控制线,当传送距离过远时电线要求过多,成本会增加很多。
单片机的串行通信方法较为多样,传统的串行通信方式是通过单片机自带的串行口进行RS232 方式的通信。
串行通信是以一位数据线传送数据的位信号,即使加上几条通信联络控制线,也比并行通信用的线少。
因此,串行通信适合远距离数据传送,如大型主机与其远程终端之间,处于两地的计算机之间,采用串行通信就非常经济。
串行通信又分为异步传送和同步传送两种基本方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/********************************************************************
小红帽工作室
skyzhongbo@163.com
*********************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delayms(uint xms); //延时函数声明
uchar a; //定义变量a
uchar code message[]="U";
void main()
{
TMOD = 0x20; //设置定时器1为方式2
TH1 = 0xFD; //装入计数初值,晶振11.0592M,波特率9600,所以计算出初值为0xFD,
误差为0
TL1 = 0XFD;
TR1 = 1; //启动定时器1
SM0 = 0; //设置串行口工作方式为方式1
SM1 = 1;
REN = 1; //接收使能
EA = 1; //打开总中断开关
ES = 1; //打开串口中断开关
while(1)
{
a=0;
while(message[a] != '\0')
{
SBUF = message[a]; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存
器)
while(!TI); // 等特数据传送 (TI发送中断标志)
TI = 0; // 清除数据传送标志
a++; // 下一个字符
}
delayms(100);
}
}
void delayms(uint xms) //i=xms即延时xms毫秒
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}