汇编语言实现串口通信(PC和单片机间)

8.用C语言或?汇编语言实?现串口通信?(PC和单片?机间)

上位机和下?位机的主从?工作方式为?工业控制及?自动控制系?统所采用。由于PC机?分析能力强?、处理速度更?快及单片机?使用灵活方?便等特点,所以一般都?将PC

机作为上位?机,单片机作为?下位机,二者通过R?S-232或者?RS-485接收?、发送数据和?传送指令。单片机可单?独处理数据?和控制任务?,同时也将数?据传送给P?C机,由PC机对?这些数据进?行处理或显?示

1 硬件电路的?设计

MCS-51单片机?有一个全双?工的串行通?讯口UAR?T,利用其RX?D和TXD?与外界进行?通信,其内部有2?个物理上完?全独立的接?收、发送缓冲器?SBUF,可同时发送?和接收数据?。所以单片机?和PC机之?间可以方便?地进行串口?通讯。单片机串口?有3条引线?:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信?距离较短时?可采用零M?ODEM方?式,简单三连线?结构。IBM-PC机有两?个标准的R?S-232串行?口,其电平采用?的是EIA?电平,而MCS-51单片机?的串行通信?是由TXD?(发送数据)和RXD(接收数据)来进行全双?工通信的,它们的电平?是TTL电?平;为了PC机?与MCS-51机之间?能可靠地进?行串行通信?,需要用电平?转换芯片,可以采用M?AXIM公?司生产的专?用芯片MA?X232进?行转换。电路如图1?所示。硬件连接时?,可从MAX?232中的?2路发送器?和接收器中?任选一路,只要注意发?送与接收的?引脚对应关?系即可。接口电路如?图3.5所示。

总体设计按?照整体设计?思路方案绘?制原理图如?下所示:

2 系统软件设?计

软件设计分?上位机软件?设计和下位?机软件设计?。这两部分虽?然在不同的?机器上编写?和运行,但它们要做?的工作是对?应的:一个发送,另一个接收?。为了保证数?据通信的可?靠性,要制定通信?协议,然后各自根?据协议分别?编制程序。现约定通信?协议如下:PC机和单?片机都可以?发送和接收?。上位机和下?位机均采用?查询方式发?送控字符和?数据、中断方式接?收控制字符?和数据。采用RS-232串口?异步通信,

1 上位PC机?与下位单片?机异步串行?通信的通信?协议

为了保证可?靠的通信,必须有一套?完善的通信?协议。分布式控制?系统中的每?台单片机均?有唯一的番?号。通信开始时?,先由PC机?呼叫被叫单?片机的番号?,单片机在接?收到微机的?呼叫后,首先判断是?不是自己的?番号,如果是,则发送呼叫?应答信号,否则不予理?睬。微机在接收?到呼叫应答?信号之后,将向单片机?发出通信命?令字符串。以下是上位?PC机协议?的格式:

单片机号

单片机号

命令码

命令码

停止标志

其中,单片机号代?表现场第几?台单片机,占用1个字?节,发送两次的?目的是为了?防止干扰;命令码则代?表上位机向?下位机发布?的工作命令?,它也占用1?个字节,发送两次的?目的也是为?了防止干扰?。而停止标志?则表明一次?命令发送完?毕。使用时可依?据该标志判?断上位机的?命令是否发?送完毕。

下位机协议?格式如下:

数据块

校验位

该格式中,数据块为下?位机上传到?上位PC机?的数据。校验位则用?于PC机对?收到的数据?进行奇偶校?验(占1个字节?)。校验正确后?,可将数据写?入内存,否则发出数?据传输错误?信息,以要求单片?机重新传输?数据。

另外,作为一个完?整的通信协?议,只有上述约?定还不够,还必须在发?送和接收数?据的时间间?隔上加以限?制。否则,很可能由于?某些原因而?造成无限制?的等待对方?应答,使整个系统?处于工作不?正常状态,或者延误其?它动作的处?理。具体时间限?制可根据通?信内容、CPU处理?速度,再加上适当?的余量来确?定。

2 单片机通信?程序设计

单片机的数?据通信由串?行口完成,定时器T1? 作为波特率?发生器,其波特率要?与PC 机一致。数据的传送?格式为1 位起始位、8 位数据位和?1 位停止位。采用中断方?式发送和接?收数据,定时器T1? 设置为工作?工作模式2?,串行口设置?为工作方式?3,由第9位判?断停止。具体的程序?流程图见下?。

①单片机中断?方式接收程?序

当PC 机不发送任?何数据的时?候,从机单片机?始终处于等?待状态(P.),直到PC 机发送数据?过来。由于PC 机在发送有?效数据之前?会加一个开?始符(FFH),在有效数据?之后会加一?个开始符(7FH),所以单片机?接收到主机?发送来的F?FH 之后,置RAM 存贮单元的?初始地址3?0H 单元,用来放紧接?着接收的数?据,程序中还用?了一个计数?器COUN?TER 来计接收到?的数据位数?,直到接收到?7FH 为止。

linux串口工具 SRT,汇编语言实现串口通信(PC和单片机间).doc相关推荐

  1. linux串口工具 SRT,应用于简单控制任务的软PLC——PC WORX SRT

    摘要:菲尼克斯电气的软PLC--PC WORX SRT可以将一台普通的Windows电脑变成一台PLC.而最新的PC WORX SRT V1.10版本提供了更简便的安装.配置过程,以及更灵活的功能. ...

  2. 『实用教程』VSPD虚拟串口工具——从此告别硬件串口调试

  3. 虚拟串口工具VSPD简单使用

    1.下载 资源下载 虚拟串口+串口调试工具 2.安装及破解 解压vspd7.2.308.zip后文件如下,点击vspd.exe安装(安装没啥技巧一直下一步就好了,不过需要记住安装地址),在安装完成之后 ...

  4. 日常生活小技巧 -- 虚拟串口工具

    串口部分基本讲完,最后再提供一个虚拟串口工具. 一.虚拟串口 vspdconfig 下载:虚拟串口工具 二.安装 执行 vspd.exe,正常安装,安装完后将Cracked目录下的两个文件,拷贝到安装 ...

  5. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)

    Qt 串口通信程序全程图文 是本文介绍的内容,在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourc ...

  6. codesys中打开linux端的串口_干货分享——安卓串口通信

    1 引言 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.串口通信(Serial Communicatio ...

  7. Linux 串口工具 cutecom

    Linux工具-串口工具 cutecom cutecom 一个位于 linux 系统下的串口工具 安装方法 1.使用终端 apt 命令进行安装,一路回车就可以完成安装. sudo apt-get in ...

  8. AM335x Linux uart 串口(rs485rs232)无法正常通信的一种解决方法

    先大概说说我是如何解决rs485(uart4)&rs233(uart5)的通信问题. 首先,在kernel-AGV/drivers/tty/serial/omap-serial.c中确定串口的 ...

  9. Linux串口工具Minicom连接TQ2440开发板

    开发板光盘带了串口工具,但是基本上都是基于Windows的.我的电脑只有Linux可用.只好自己折腾了. 网上随便找了一个资料: http://www.linuxidc.com/Linux/2011- ...

最新文章

  1. 系统架构师-基础到企业应用架构-表现层
  2. linux下的time函数们
  3. 前端ui框架_跨屏建站发布同名响应式前端ui框架
  4. 8086汇编_除法指令
  5. MYSQL 表 部分数据导出、导入
  6. C++空类中的默认函数
  7. maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
  8. xml文件转json文件
  9. 电路交换、报文交换与分组交换
  10. PHP配置优化《MordenPHP》
  11. 50G PON将成为未来发展部署的重点
  12. DELETE_FAILED_INTERNAL_ERROR 小米之殇
  13. 安卓手机APP 开发
  14. 人工智能中的常用搜索策略
  15. 基于连续小波变换的厄尔尼诺海平面周期变化数据集分析
  16. Mybatis的配置文件参数详解
  17. Java 如何模拟真正的并发请求?
  18. Canoe 安装流程
  19. 网站服务器域名费用入什么科目,域名费用计入什么科目
  20. 手柄映射软件_生化危机3该用哪款游戏手柄?北通宙斯给你四维游戏体验

热门文章

  1. iOS 利用JSPatch 添加热补丁功能
  2. 分布式缓存系统 Memcached CAS协议
  3. ubuntu时区设置
  4. 从一个实际的例子来了解线程套间模型(.NET and COM interop)
  5. 理解 Linux 的硬链接与软链接
  6. python3 str is not callable 问题解决
  7. mysql null 和 空字符串 区别
  8. linux history 命令 shell历史记录显示 HISTSIZE
  9. python3 读写文件
  10. Wireshark基本介绍和学习TCP三次握手