汇编语言实现串口通信(PC和单片机间)教学文案
PC与单片机之间串行通讯的可视化编程的实现
摘
要 : 文 中 主 要 介 绍 Vi a B s 在 实 现 P 与 单 片 机 8C 1之 间 串 行 通 讯 中 的应 用 。 s l ai u c C 95
关键 词 : 串行 通 讯 ;V B;面 向对 象 编 程 ;8 C 1单 片 机 95 中图 分 类号 :T 3 8 1 P 6 . 文 献 标i  ̄ :A .- R5
串行 通 信 口 ,直 接接 收 P C机传 送 下 来 的 串行 数 据 ,然 后 将 所 接 收 的各 组数 据 通 过 并 行 口输 出 , 经过 数 字光 隔 ,送 到数据 存 器 5 L 3 3 4 S 7 。最后 将 锁存 的数 据送到 D A 转换器 进 行数模 转换 ,并 通 / 过运放 将模 拟信 号输 出 ,同时显示 相应 的预 置数
片机 汇编语 言编 程两部 分 。
R c i (o m—me= s (o ee ec m t )A cC mm1n u) /将 接 收 数 v i .pt / I 据 放 在 R ciecmm—me数 组 中 ee (o v t ) i
维普资讯 http://www.cqvip.com
第 6卷 第 4期 20 7年 1 0 2月
广 东 交 通 职 业 技 术 学 院 学 报
JO U RNA L O F G UA NG DO NG CO M M UNI CATI NS PO L O YTECH NI C
RS-232实现单片机与PC间的串行通信
内容提要
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
单片机与pc机通信
单片机与pc机通信
单片机与PC机通信可以通过多种方式实现,常见的方法包括串口通信、USB通信和以太网通信。
1. 串口通信:串口是最常用的单片机与PC机通信方式之一。单片机通常具有UART模块,可以通过串口与PC机进行
通信。通过串口,可以实现数据的发送和接收。单片机通
过串口发送数据时,需要将数据转换为串口通信所需的格
式(如ASCII码),PC机在接收到数据后,也需要进行相应的解析和处理。
2. USB通信:USB是一种更快的通信方式,可以直接连接单片机和PC机,通过USB接口实现数据的传输。在这种
通信方式中,单片机需要支持USB接口,并通过USB协议与PC机进行通信。一般情况下,需要在单片机上实现
USB设备的功能,以及相应的USB驱动程序。
3. 以太网通信:以太网是一种常用的网络通信方式,可以通过以太网接口实现单片机与PC机之间的通信。单片机需要具备以太网接口,并通过以太网协议进行通信。在这种通信方式中,单片机可以作为TCP/IP客户端或服务器来连接PC机和网络,实现数据的传输。
无论使用何种通信方式,都需要在单片机和PC机上实现相应的软件和驱动程序,进行数据的传输和处理。具体的实现方法和细节,可以参考相关的开发文档和资料。
课程设计 利用RS-232实现单片机与PC间的串行通信
内容提要
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
PC机与单片机之间的串行通讯、数据的发送和接收
PC机与单片机之间的串行通讯、数据的发送和接收
【摘要】
本文以MCS-51单片机为例,详细介绍了PC机与单片机之间的串行通讯、数据的发送和接收。在Windows98下利用VB的串行通讯控件可实现PC机与单片机之间的通讯。其数据的发送和接收采用红外线通信方式,其优点是:省去了有线通信信号线的直接连接,使用简单,移动方便,微机与单片机无直接连接,属完全隔离状态,两者间不会因为电平的不同而造成数据传输的失误,抗干扰能力强。
本设计主要应用AT89C51作为控制核心,并与LED数码显示管、双向可控硅、红外发射与接收相结合的系统,充分发挥了单片机的性能。其优点硬件电路简单,软件功能完善,控制系统可靠,性价比较高等特点,具有一定的使用和参考价值。
【关键字】
MSC-51(单片机),红外,RS-232,电平转换器,串行通信半双工
【Abstract】
This text take one-chip computer MCS-51 for example , introduce a serial communication, data’s sending and receiving . Under the Windows98 we make use of a communication control of VB to achieve the communication of the machine of PC and one-chip computer. Its data’s sending and receiving adopts the method of the infrared ray communication, its advantage is that it exclude the direct link of signal line of with-wired communication ,and usage are simple, and move is convenience etc. The tiny machine have no direct conjunction with single a machine, belonging to the complete insulation appearance, can't result in the error that data deliver both because give or get an electric shock even and different, the antijam ability is strong.
基于LabVIEW的PC机与单片机串口通信
(4)添加一个串口资源检测控件:控件(Controls)→新式(Modern)→ I/O → VISA资源名称(VISA resource name);单击控件箭头,选择串口号,如ASRL1:或COM1。
(6)在条件结构中添加一个顺序结构:编程(Programming)→ 结构(Structures) →层叠式顺序结构(Stacked Sequence Structure)。
将其帧(Frame)设置为4个(序号0-3)。设置方法:选中Stacked Sequence Structures上边框,单击鼠标右键,执行在后面添加帧(Add Frame After)选项3次。
确定定时器1的工作方式——写TMOD寄存器。
计算定时器1的初值——装载TH1、TL1。
启动定时器1——写TCON中的TR1位。
确定串口的控制——写SCON。
使用串口中断方式时,开CPU和中断源——写IE寄存器。
本设计设定定时器T1工作在模式2,串行口工作于方式3。
3.2 PC机通信的设计
MSC0MM控件不需要用户对通讯底层进行操作。它有事件驱动通讯和查询通讯两种方式。本设计中采用事件驱动方式,即接收缓冲区每接受规定字符数产生一次MSCOMM—OnC0Mm事件,发送时设置不产生该事件。
单片机串口通信
为了保证通信的稳定性,还需要连接 电源线和地线。
信号线连接
通过TXD(发送数据)和RXD(接收 数据)两根信号线将两个单片机连接 在一起。
单片机串口通信的软件编程
初始化串口
在开始通信之前,需要对串口进行初始化设置, 包括波特率、数据位、停止位、校验位等。
数据发送与接收
通过编程实现数据的发送和接收功能,通常使用 中断或轮询方式实现。
单片机与移动设备的串口通信
实现方式
通过蓝牙、Wi-Fi或USB等无线或有线方式,实现单片机与移动 设备之间的数据传输。
应用场景
用于移动设备对单片机进行控制、监测或数据采集等操作。
注意事项
需要考虑移动设备的操作系统、通信协议和数据格式等因素,以 确保通信的兼容性和稳定性。
单片机与传感器的串口通信
实现方式
数据错误可能由多种原因引起,如信号干 扰、数据传输速率不匹配、电平不匹配等 。解决数据错误问题的方法包括使用错误 检测和纠正算法、确保数据传输速率的匹 配、优化硬件接口设计等。
串口通信连接不稳定问题
总结词
连接不稳定是单片机串口通信中常见的问题之一,可能导致通信中断或数据传输延迟。
详细描述
连接不稳定可能是由于多种原因引起的,如信号干扰、硬件故障、软件错误等。为了解决这个问题, 可以采取一系列措施,如增加连接稳定性检查、优化硬件设计和软件算法、使用更可靠的通信协议等 。
汇编语言与接口通讯实验指导书
汇编语言与接口通讯实验指导书
实验一系统认识实验
实验二 8255 并行接口实验
实验三中断控制实验
实验四 8254 定时/计数器应用实验
实验五键盘扫描及数码显示设计实验
实验六点阵LED显示设计实验
实验七电子发声设计实验
实验八电子时钟实验
实验九 A/D转换实验
实验十 D/A转换实验
附录1 Wmd86 联机软件使用说明
附录2 系统编程信息
实验一系统认识实验
实验目的
掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
实验设备
PC机一台,TD-PITE 实验装置一套。
实验内容
编写实验程序,将00H~0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。实验步骤
1. 运行Wmd86 软件,进入Wmd86 集成开发环境。
2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。
图1-1-1 语言环境选择界面
3. 语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-1-2所示。默认文件名为Wmd861。
图1-1-2 新建文件界面
4. 编写实验程序,如图1-1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。
图1-1-3 程序编辑界面
5. 点击,编译文件,若程序编译无误,则输出如图1-1-4所示的输出信息,然后再点击进行链接,链接无误输出如图1-1-5所示的输出信息。
图1-1-4 编译输出信息界面图1-1-5 链接输出信息界面
串口通讯方法的三种实现
串口基本信息
用一台电脑实验串口自发自收,实验前要将串口(以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口。同时,串口通信协议也可以用于获取远程采集设备的数据。
基于LabVIEW的PC机与单片机串口通信
课程设计任务书
学生姓名:李晓宁郁金华彭亚斌吴冰
专业班级 0882022 0882021
指导教师:杨谊华
工作单位:南昌航空大学
题目:基于LabVIEW的PC机与单片机串口通信
初始条件:要求对单片机课程知识有所了解,同时熟悉labview软件的运用,同时了解基本的串口通信原理。
指导教师签名:________________年月日
系主任(或责任教师)签名:______________ 年月日
摘要
介绍一种基于LabVIEW 7.0语言的A VR AT90系列单片机与PC 机的串口通信技术,在体温检测中得到应用,并取得良好效果。
关键词: LabVIEW 7.0语言;A VR AT90系列中一片机;PC机;串口通信技术
Abstract:We introduce the application of serial port communication technology based on PC machine with LabVIEW 7.0 language and A VR AT90 series SCM in body temperature examination.And it has good effect.
Key words:LabVIEw 7.0 language;A VR AT90 series SCM;PC machine;Serial port communication technology
目录
第一章绪论 (1)
第二章软件实现 (2)
2.1 LabVIEW应用软件概述 (2)
浅谈PC机与单片机间串行通信的实现
( )串行 通信 口数据缓冲 区 2
发送 端 的数据在传 输过 程 中 由于 外界 的干扰 可 能
在到达接收端后数据某一位或某些位会 发生变化 ,变 化
的数据有可能会产 生数据处理错误 ,甚至会导致机器 死
锁 。为了把这些变化能够辨识 出来 ,必须在接收端进行
三 、上 下 位 机 串行 通 信 协 议 的 设 计 基 本 思路
( 1)下位 机 工作 方 式
二 、软件 设 置
^
下位 机采用半 双工工作 方式 ,分三步骤 执行 : 先 首
接 收命令 ,此时不向上 位机发送数据 ;接收完命令后处 理该 命令 ,这期 间不接 收也 不发送 ;最 后给上 位机 回
串行 通 信 。
关键词 :P 机 与单片机 ;串行通信 ;实现 C
一
一
、
硬 件设 置
个字节 ,补零后 除以生成多项式G x ,产生的余数码 () 为 1字节 ,高位字节与发送的第二个字节 异或 ,得 出的 6
8 5字节为下 一次C C R 校验 三字节序列 的第 一个字节 ;
上位机为P 机 ,使用C M1 O 。下位机为Mc 一 C O 或C M2 S 5单 片机 ,使用 内置的U R 。mM.C 1 AT P 的串行 口采用R . S 22  ̄准 ,为+1 3C 2 v电平,MC -1 S 的串行 口是1 电平。 5 . Ⅱ 这里通信采用主从方式 ,由P 机确定与哪个单 片机进行 C 通信。其接 口电 ̄MC 48 18为发送电平转换电路 ,MC 49 18
单片机双机串行通信多数据传输汇编语言编程实现
• 178
•
串口是单片机与其他单片机或计算机系统进行异步串行通信的标准I/O 接口,在系统设计中应用非常广泛。以教学中使用的CPU 字长是8位的51单片机为例,实现双机间多数据串行传输,在多数据发送时为每个数据增加特征值,接收的时候通过特征值判断接收的数据,此方法最多可以实现双机间16个数据的传送,适用于5-8个通道的数据采集系统。将此设计思想应用在0-999s 的秒表系统设计中,系统运行稳定,实现预期效果。
单片机串口是异步串行通信,发送方发送数据并不考虑接收方什么时候接收,如果是传送1个数据比较好处理,串口无论工作在查询方式下还是中断方式下,接收方的CPU 只要检测RI =1,就可以接收数据。
如果发送方发送的是多个数据,接收方接收的是发送方发送的多个数据的哪一个?发送方发送的多个数据是动态变化的,尽管发送方发送多个数据的顺序在编程中是固定不变的,但是串口通信是异步的,接收方接收时,无法知道此次接收的数据是发送方发送的哪一个数据,所以接收方必须有能力判断接收到的是哪一个数据才能真正实现异步串行通信多数据的正确传送。
1 发送数据的加密原理及编程实现
要想让接收方有能力判断接收的数据是哪一个数据,可以对要发送的数据做加密处理,数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性。本设计借用数据加密的思想,对要发送的数据采用增加特征值的加密处理方法,乙机接收数据后,通过解密获取特征值,就可以知道接收的是哪一个数据了。特征值的选取要视发送数据的范围,本文以发送压缩BCD 码说明数据加密的原理及编程实现。1.1 发送数据的加密原理
用VC++6.0实现PC与单片机之间串口数据交换
用VC++6.0实现PC机与单片机之间的串口数据交换
参考连接:《串行通信》大全
工业控制领域(如DCS系统),经常涉及到串行通信问题。为了实现微机和单片机之间的数据交换,人们用各种不同方法实现串
行通信,如DOS下采用汇编语言或C语言,但在Windows 环境下却存在一些困难和不足。在Windows操作系统已经占据统治地位的情况
下(何况有些系统根本不支持DOS如Windows2000)开发Windows 环境下串行通信技术就显得日益重要。VC++6.0是微软公司于1998年
推出的一种开发环境,以其强大的功能,友好的界面,32位面向对象的程序设计及Active X 的灵活性而受广大软件开发者的青睐,
被广泛应用于各个领域。应用VC++开发串行通信目前通常有如下几种方法:一是利用Windows API通信函数;二是利用VC的标准通信
函数inp、inpw、inpd、outp、outpw、outpd等直接对串口进行操作;三是使用Microsoft Visual C++的通信控件(MSComm);
四是利用第三方编写的通信类。以上几种方法中第一种使用面较广,但由于比较复杂,专业化程度较高,使用较困难;第二种需要了
解硬件电路结构原理;第三种方法看来较简单,只需要对串口进行简单配置,但是由于使用令人费解的VARIANT 类,使用也不是很容
易;第四种方法是利用一种用于串行通信的CSerial类(这种类是由第三方提供),只要理解这种类的几个成员函数,就能方便的使
用。笔者利用CSerial类很方便地实现了在固定式EBM气溶胶灭火系统分区启动器(单片机系统)与上位机的通信。以下将结合实例,
用VB实现计算机与单片机的串行通信
用VB实现计算机与单片机的串行通信
周子琛,申振宁
(武警工程学院,陕西西安710086)
摘要:给出了使用VB控件,实现PC机与8031单片机之间串行通信的编程方法,并给出了一个用VB实现PC机同8031通信的应用实例。
1 概述
在工业应用中,常常需要进行串行通信,特别是在一些工业控制系统中尤其重要。早期,人们习惯使用汇编语言来编制通信程序,随着WINDOWS和可视化编程开发环境的出现,如微软的VB、VC等等,给传统的程序开发模式带来了深刻的变化。其中VISUAL BASIC 由于使用方便,一般工程人员容易掌握、设计软件方便、工作量较小,深受工程人员喜爱。适用于一些对实时性要求不高的情况下使用。以下就采用RS232串行接口和8031单片机进行通信为例设计一个由8031单片机采集外部数据,然后送入计算机进行数据处理的处理过程来说明VB在开发串行通信时的使用情况。
2 硬件组成
该系统中,由于计算机串行通信接口和8031单片机的驱动电平不一致,故应使用一个电平转换装置,而MAXIM3223就可以完成这一功能,最简单系统如图1所示。
在使用VB来完成串行通信时,可以使用两种方法:一种是VB调用Windows的API 函数法,另一种是使用VB自带的通信控件MsComm来完成。
3 MsComm控件
MsComm控件并未在常用的工具箱内出现,用户可以单击菜单中的“工程”菜单,并选择“部件”命令,在部件对话框中选择“Micosoft comm. Control”即可加入到工具箱内。MsComm控件提供了一系列标准通信命令使用的界面,可以建立与串行通信端口的连接,并通过串行通信端口完成对单片机,调制解调器等设备的数据采集和发送,以及监视串行通信线路的变化。MsComm控件有两种处理方式:(1)事件驱动方式,由MsComm控件中的OnComm事件捕获并处理通信事件及错误;(2)查询方式,检查ConEvent属性来处理通信事件及错误。
单片机串口通讯制作说明
* 该例程针对“TX-1C”型单片机实验板为例进行详解
我们举例采用比较传统的 51 系列单片机为例,芯片选用 STC89C52RC,首先我们需要明 确一点,目前高级语言没法编写单片机的驱动程序(即操作系统),易语言同样如此,但是高级 语言可以编写上位机系统(控制单片机及其交互),可以获得单片机发送来的数据并且分析后发 送指令,指导单片机完成一些控制工作,比如温度检测,发现温度过高可以通知单片机打开空调 的电源(单片机控制继电器去工作,或者控制电机),这个过程中的数据传输可以采用串口、无 线信号等都可以,下面我的举例主要是采用计算机和单片机之间串口通信,程序通过易语言编写 的程序向单片机发送数据,单片机收到数据后,按照易语言发送的数据控制单片机 P1 口分别点 亮 8 个发光二极管中的一部分,发送的二进制数据某位为 0,则对应的发光二极管点亮,某位为 1,则对应的发光二极管关闭。
8)之后我们再次运行程序,就可以看到数据接收的调试输出结果和模拟仿真的结果了,发 送 170 和 85 之后的结果显示分别在下图有所体现。
9)至此我们的程序和演示编写完毕,大家可以在此基础上继续利用单片机试验板上的资源 充分练习其他功能,但是计算机和单片机的通信过程也就不外乎上面的办法,只是需要自己制定 一些控制规则,可以控制单片机上的数码管、继电器、USB 芯片等。
2)然后选择你要保存的路径,输入工程文件的名字,比如保存到 C51 目录里,工程文件的名字为 C51,如下图所示,然后点击保存。
PC与单片机的串口通信
PC与单片机的串口通信设计与实现
摘要
单片机经历TSCM、MCU、SOC三大阶段,以其超小型化、电路简单、功耗低等特点广泛应用于各个领域,本文提出了基于STC89C51单片机与PC串口通信的设计方案,从PC机对单片机数据的采集、显示,与PC机对单片机设备控制的两个方面分别论述。在介绍PC机与单片机之间串行通信硬件组成的基础上,详细介绍了在Windows环境下用VisualC++6.0的ActiveX技术设计串行通信程序的方法,并给出了通信程序中的部分关键源头代码。通过测定系统满足实时采集、实时处理和实时控制对速度的要求。
关键字:串行通信;VisualC++6.0;控件;单片机
Abstract
The design has been verificated, and the results show that the design can achieve a variety of functions.
Keyword:
第一章绪论
1.1 单片机概述
单片机也被称为微控制器[1](Microcontroller),由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。它是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O 接口和中断系统集成于同一硅片的器件。单片机用于控制有利于实现系统控制的最小化和单片化[2],简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.用C语言或汇编语言实现串口通信(PC和单片机间)
上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示
1 硬件电路的设计
MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51
机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。
总体设计按照整体设计思路方案绘制原理图如下所示:
2 系统软件设计
软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信,
1上位PC机与下位单片机异步串行通信的通信协议
其中,单片机号代表现场第几台单片机,占用1个字节,发送两次的目的是为了防止干扰;命令码则代表上位机向下位机发布的工作命令,它也占用1个字节,发送两次的目的也是为了防止干扰。而停止标志则表明一次命令发送完毕。使用时可依据该标志判断上位机
该格式中,数据块为下位机上传到上位PC机的数据。校验位则用于PC机对收到的数据进行奇偶校验(占1个字节)。校验正确后,可将数据写入内存,否则发出数据传输错误信息,以要求单片机重新传输数据。
另外,作为一个完整的通信协议,只有上述约定还不够,还必须在发送和接收数据的时间间隔上加以限制。否则,很可能由于某些原因而造成无限制的等待对方应答,使整个系统处于工作不正常状态,或者延误其它动作的处理。具体时间限制可根据通信内容、CPU处理速度,再加上适当的余量来确定。
2 单片机通信程序设计
单片机的数据通信由串行口完成,定时器T1 作为波特率发生器,其波特率要与PC 机一致。数据的传送格式为1 位起始位、8 位数据位和1 位停止位。采用中断方式发送和接收数据,定时器T1 设置为工作工作模式2,串行口设置为工作方式3,由第9位判断停止。具体的程序流程图见下。
①单片机中断方式接收程序
当PC 机不发送任何数据的时候,从机单片机始终处于等待状态(P.),直到PC 机发送数据过来。由于PC 机在发送有效数据之前会加一个开始符(FFH),在有效数据之后会加一个开始符(7FH),所以单片机接收到主机发送来的FFH 之后,置RAM 存贮单元的初始地址30H 单元,用来放紧接着接收的数据,程序中还用了一个计数器COUNTER 来计接收到的数据位数,直到接收到7FH 为止。
单片机接收主程序MAIN 及中断服务程序STR 清单如下:
COUNTER EQU 40H
POINT EQU 41H
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP SRT
MAIN:MOV SP,#60H
MOV TMOD,#20H ;定时器T1 的方式2
MOV PCON,#00H ;串行口波特率控制位
MOV TH1,#0F4H ;2400Kb/s
MOV TL1,#0F4H
MOV 30H,#15
MOV COUNTER,#1
MOV R0,#30H ;接收数据存放区
MOV R1,#30H
SETB TR1 ;开始计数
CLR ET1 ;清定时中断
MOV SCON,#50H ;串行口控制寄存器给值
SETB EA ;开总中断
SETB ES ;开串行口中断
MOV IP,#10H
MAIN1: ACALL DISP
SJMP MAIN1
SRT: PUSH ACC
PUSH 01H
JBC RI,GET
SJMP EXIT
GET: MOV A,SBUF
CJNE A,#0FFH,GET1 ;判断是否为开始字符,不是跳GET1 放数据存贮
MOV R0,#30H ;是开始符就置存贮区首地址30H,计数器清0 并跳出中断
MOV COUNTER,#0
SJMP EXIT
GET1: CJNE A,#07FH,GET2 判断是否为结束符,不是跳GET2 放数据存贮区MOV R5,COUNTER ;是结束符,放发送缓存区开始字符
INC R5
MOV POINT,#30H
MOV SBUF,#255
SJMP EXIT
GET2: MOV @R0,A
INC R0
INC COUNTER
EXIT: POP 01H
POP ACC
RETI
②单片机中断方式发送程序
由于本次设计的系统要实现的功能是将PC 机送到单片机的数据回送到PC机,所以单片机要在接收完PC 机数据后立即将数据回送到PC 机。也就是说要将RAM 存贮单元的初始地址30H 单元内数据逐一发送出去。程序框图见下。