机和电脑通信.docx
- 文档编号:23230914
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:51
- 大小:394.22KB
机和电脑通信.docx
《机和电脑通信.docx》由会员分享,可在线阅读,更多相关《机和电脑通信.docx(51页珍藏版)》请在冰豆网上搜索。
机和电脑通信
目录
更多论文请加QQ1634189238492186520
第一章微机基础知识1
1.1基本概念1
1.1.1微处理器、微型计算机、微型计算机系统1
1.1.2微型计算机的分类1
1.2微机系统的基本组成2
1.2.1微处理器的组成2
1.2.2单片微型计算机3
第二章MCS-51单片机原理5
2.1单片机的结构及应用5
2.1.1MCS-51单片机内部结构5
2.1.2单片机的特点及应用5
2.2中断系统及定时器7
2.2.1中断的概念7
2.2.2中断控制7
2.2.3定时器概述8
第三章单片机的双机通信10
3.1串行通信基础10
3.1.1串口通信的传送方向10
3.1.2同步通信和异步通信10
3.2单片机的串口工作原理11
3.2.1串口结构11
3.2.2单片机串口的工作寄存器12
3.2.3单片机串行口工作方式及帧格式13
3.3双机通信举例13
3.3.1中断方式的双机通信13
3.3.2查询方式的双机通信16
第四章多机通信22
4.1多机通信原理22
4.2多机通信程序23
第五章单片机与PC机的通信36
5.1通信硬件设计36
5.2通信软件设计37
5.2.1IBM-PC机通信软件37
5.2.2单片机通信软件42
小结47
致答谢词48
参考文献48
摘要
串行通信是计算机进行数据通信的一种主要方式之一,而单片机通信主要采用串行通信。
这也就引导我们向这方面发展,以至有了单片机的双机通信,多机通信,单片机与PC机的通信等等。
双机通信作为各种通信的基础,在这里我们从中断方式和查询方式两方面对双机通信做讲解。
意在让大家对双机通信有一个比较深刻的了解,为我们后面要重点介绍的多机通信埋下伏笔。
由于单片机间的通信结果没有显示出来,我们就不好对其作出很有力的判断,所以在实际生活中我们常常需要把它和显示器或PC机相连。
这就有了单片机与PC机的通信,它们之间的通信在现阶段有了一定的成绩,但还需要我们去不断完善。
总之,单片机通信是一个值得我们不断研究探讨的问题,随着科学技术的不断升温我们单片机通信的应用将越来越广泛。
关键词
单片机中断系统双机通信多机通信
前言
单片机作为微型计算机的一个分之,在工业自动控制、智能仪表等方面应用越来越广泛。
在这些应用中必然存在数据的传输,单片机的串行通信是进行数据通信的主要方式之一。
本书系统的介绍了单片机的几中通信。
全书共分为6章:
第一章介绍了一些关于微机的基础知识,对一些基本概念以及微机的组成作了简单的介绍;第二章讲解了单片机的原理及结构,让我们对单片机有了基本的认识;第三章介绍单片机的中断系统和定时器,单片机通信中必然要用到中断和定时器,在这里对它们作一定的介绍为以后的学习打下基础;第四章介绍单片机的双机通信,这是单片机通信中最简单、基础的一种通信,特别对中断方式和查询方式两种双机通信作了相应说明;第五章介绍了单片机的多机通信,这是基于双机通信上的,对多机通信的原理及程序作了较详细的介绍;第六章介绍了单片机与PC机的通信,单片机与PC机在生活中应用得比较多所以在这里也作了一定的介绍。
本书由叶燕编写,由笪贤进老师主审。
他仔细审阅了全部书稿,并提出了许多宝贵意见。
在次我对他本书给予的热情关心和大力支持表示衷心的感谢。
由于单片机通信技术发展很快,而编者水平有限,书中难免存在错误和不足之处,恳请大家批评指正。
编者
2006年5月
第一章微机基础知识
1.1基本概念
1.1.1微处理器、微型计算机、微型计算机系统
随着大规模集成电路的发展,一块集成电路芯片可以包含几十万到几百万个晶体管电路,计算机的大部分功能都可以集成在一个芯片,这就出现了所谓的微处理器芯片。
以微处理器芯片为核心构成的计算机就是微型计算机,在微型计算机的基础上又组成微型计算机系统。
因此,微处理器、微型计算机、微型计算机系统是三个不同的概念。
1.微处理器
微处理器是一个有运算逻辑单元、控制单元、寄存器组以及内部系统总线
单元组成的大规模集成电路芯片,它具有CPU的全部功能。
因此,微处理器就是集成化的CPU。
2.微型计算机
微型计算机是以处理器芯片为核心,配上内芯片、I/O接口电路以及相应的辅助电路构成的装置,它又简称为微型机。
3.微型计算机系统
微型计算机系统是以微型计算机为主体,配上输入设备、输出设备、外存储设备、电源机箱以及基本系统软件和应用软件组成的系统,它又简称为微机系统。
1.1.2微型计算机的分类
可以从不同的角度将微型计算机分为几种类型
1.按组装形式和系统规模分类
(1)单片机
单片机是一种将CPU单元、部分存储器单元、部分I/O接口单元以及内部
系统总线等单元集成在一片大规模集成电路芯片内的计算机。
它具有完整的微型计算机的功能。
随着集成电路技术的发展,近年来推出的高档单片机除了增强基本微机功能以外,还集成了一些特殊功能单元,如A/D、D/A转换器,DMA控制器,通信控制器等。
单片机具有体积小、可靠性高、成本低等特点,广泛应用于仪器、仪表、家电、工业控制等领域。
(2)单板机
单板机是一种将微处理器、存储器、I/O接口电路、简单外设(键盘、数码显示器)以及程序固件(PROM)等部件安装在一块印制电路板上构成的计算机。
(3)个人计算机(PC)
PC机实际上是一个计算机系统,它将一块主机板(含有微处理器、内存、
I/O接口等芯片)、若干I/O接口卡、外部存储器、电源等部件组装成在一个机箱内,并配置显示器、键盘、打印机等基本外部设备。
2.按微处理器位数分类
(1)8位微机
(2)16位微机
(3)32位微机
(4)64位微机
1.2微机系统的基本组成
1.2.1微处理器的组成
微机硬件系统是指构成一台微型计算机所有功能部件的装置组合,其基本组成如图1.1所示。
图1.1微机硬件系统组成
1.微处理器
微处理器是一个集成了中央处理器(CPU)的大规模集成电路芯片,内部包
括运算器、控制器和寄存器组三个主要单元。
2.存储器
存储器是微机存放程序和数据的装置。
3.输入/输出设备和I/O接口
输入输出设备是微机系统的重要组成部分。
输入设备是将外界信息送入计算机的装置。
输出设备是将计算机运算处理的结果信息以人们熟悉的形式显示出来的装置。
外部设备与CPU相比,工作速度较低,信息处理多样,不同外设的工作时序不一致等。
所以外设与CPU之间一般不能直接连接,而需要一个“接口电路”来作为外设与CPU之间的桥梁,这种接口电路称为I/O接口。
4.系统总线
完成微处理器、存储器、外部设备等主要功能部件之间信息的相互传送的一组公共传输线称为系统总线。
1.2.2单片微型计算机
单片微型计算机是指集成在一个芯片上的微型计算机,它是把组成微型计算机的各种功能部件:
中央处理单元(CPU)、随机存取存储器RAM、只读存储器ROM、基本I/O接口电路、定时器/计数器等部件都集成在一块芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。
单片微型计算机的内部结构示意图如图1.2所示。
图1.2单片微型计算机内部结构示意图
由于单片微型计算机的结构及功能均是按照工业控制要求设计的,所以其确切的名称应是单片微型控制器。
在实际应用中,通常很难将单片微型计算机直接和被控制对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控制对象等硬件和软件,才能构成一个单片机微型计算机应用系统。
第二章MCS-51单片机原理
2.1单片机的结构及应用
2.1.1MCS-51单片机内部结构
一个完整的计算机应该由控制器、运算器、存储器(ROM和RAM)和I/O接口组成。
一般微处理器只包括运算器和控制器两部分。
和一般微处理器相比8051增加了四个8位I/O口、一个串行口、4KBROM、128BRAM、很多工作寄存器及特殊功能寄存器(SFR)。
如图2.1所示,其具体简述如下:
图2.18051单片机内部结构图
一、中央处理器
CPU是单片机的核心,是计算机控制和指挥中心,由运算器和控制器等部件组成。
1.运算器
运算器包括一个可进行8位算术运算和逻辑运算的单元ALU,8位的暂存器1,暂存器2,8位的累加器ACC,寄存器B和程序状态寄存器PSW等。
2.控制器
控制器包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等。
二、存储器
1.程序存储器(ROM)
8051的片内程序存储器容量为4KB,地址从0000H开始,用于存放表格常数和程序。
2.数据存储器
8051片内数据存储器为128B,地址从00H~7FH,用于存放运算的中间结果,数据暂存以及数据缓冲等。
2.1.2单片机的特点及应用
一、单片机的特点 :
1 、具有优异的性能价格比
2 、集成度高、体积小、可靠性高
3 、控制功能强
4 、低电压、低功耗
二、单片机的应用 :
1、在智能仪器仪表中的应用:
在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。
2 、在机电一体化中的应用:
机电一体化产品是指集机械、微电子技术、计算机技术于一本,具有智能化特征的电子产品。
3 、在实时过程控制中的应用:
用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。
4 、在人类生活中的应用:
目前国外各种家用电器已普通采用单片机代替传统的控制电路。
5 、在其它方面的应用:
单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。
2.2中断系统及定时器
2.2.1中断的概念
当CPU正在处理某事件的时候,外部发生的某一事件(如一个电平的变化,一个脉冲的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。
中断服务处理完该事件后,再回到原来被中止的地方,继续原来的工作,这样的过程叫中断。
实现这种功能的部件叫中断系统,产生中断的请求源称为中断源。
中断源向CPU提出的处理请求,称为中断请求或中断申请。
CPU暂时中止自身的事务,转去处理事件的过程,称为CPU的中断响应过程。
对是事件的整个处理过程称为中断服务。
处理完毕,再回到原来被中止的地方称为中断返回。
2.2.2中断控制
8051中断系统有以下四个特殊功能寄存器:
(1)定时器控制寄存器TCON
(2)串行口控制寄存器SCON
(3)中断允许寄存器IE
(4)中断优先级寄存器IP
一.中断优先级
MCS-51 有 5 个中断源,可分为 2 个中断优先级,即高优先级和低优先级,中断自然优先级:
外部中断 0 ;定时器 0 中断; 外部中断 1 ;定时器 1 中断 ;串行口中断
二.中断响应条件
CPU 响应中断的条件有:
(1)有中断源发出中断请求;
(2)中断总允许位 EA=1 ,即 CPU 开中断;
(3)申请中断的中断源的中断允许位为 1 ,即中断没有被屏蔽。
(4)同级或高优先级的中断正在进行中;
(5)现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没完成前不响应任何中断;
(6)正在执行的是中断返回指令 RET1 或是访问专用寄存器 IE 或 IP 的指令,换而言之,在 RETI 或者读写 IE 或 IP 之后,不会马上响应中断请求,至少要在执行其它一条指令之后才会响应。
2.2.3定时器概述
8051单片机片内有二个16位定时器/计数器,既定时器0(T0)和定时器1(T1)。
它们都有定时和事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
定时器有两种工作方式 :
即定时和计数工作方式。
设置为定时工作方式时,定时器计数8051片内振荡输出12份频后的脉冲,既每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。
设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。
当输入脉冲信号产生由1到0的下降沿时定时器的值加1。
由 TMOD 的 D6 位和 D2 位选择,其中 D6 位选择 T1 的工作方式, D2 位选择 T0 的工作方式。
C/T =0 工作在定时方式,C/T =1 工作在计数方式。
并有四种操作模式:
1 、模式 0 :
13 位计数器, TLi 只用低 5 位。
2 、模式 1 :
16 位计数器。
3 、模式 2 :
8 位自动重装计数器, THi 的值在计数中不变, TLi 溢出时, THi 中的值自动装入 TLi 中。
4 、模式 3 :
T0 分成 2 个独立的 8 位计数器, T1 停止计数。
图2.28051定时器结构
第三章单片机的双机通信
以上对单片机的一些基础问题作了一定的介绍,让我们对单片机有了一定得了解。
从这一章期我们将正式学习单片机通信,首先让我们学习单片机的双机通信,然后再进入后续的学习。
3.1串行通信基础
3.1.1串口通信的传送方向
串行通信通常有3种:
一种为单工通信,只允许数据向一个方向进行传送;另一种是半双工通信,允许数据向两个方向中的任何一个方向进行传送,但一次只有一个发送、一个接收;第三种传送方式是全双工通信,允许同时进行双向数据传送。
因此,全双工通信是一对单工通信的组合,它要求两端的通信设备都具有完整和独立的发送和接收能力。
3.1.2同步通信和异步通信
一.同步通信
同步通信方式是指在发送设备的时钟频率与接收频率一致的条件下,发送设备发出一个同步码后,随之自动发送一组数据的方式,同步通信方式属于一种连续传送数据的方式,适用于大批量数据传送。
其特点是传送速率高,但要求收发双方的时钟保持严格的同步。
二.异步通信
异步通信方式的数据是一帧一帧的传送,每一帧数据由一个起始位、5~8个数据位、一个奇偶校验位、1~2个停止位组成。
三.波特率
波特率即串行数据传送的速率,表示每秒传送的二进制的位数,若发送一位二进制信号的时间为t,则波特率为1/t。
在串口通信时,接收和发送双方的波特率必须设为一致,才能正常工作。
3.2单片机的串口工作原理
3.2.1串口结构
单片机的串口主要由2个物理上独立的串行数据缓冲器SBUF(发送缓冲器、接收缓冲器)、发送控制器、接收控制器、输入移位寄存器和输出控制门组成,
其组成原理如图3.1所示
图3.1MCS-51串口组成结构图
发送数据时,CPU将数据送入发送缓冲器,在发送控制器的控制下,将数据一位一位通过TXD(P3.1)引脚发送出去;接收时,外面的数据通过RXD(P3.0)引脚,在接收控制器的控制下,一位一位的移入寄存器,待接收完一个完整的字节后,就将该字节装入接收缓冲器,由CPU通过读SBUF取走。
其中,发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入,所以2个缓冲器共用一个地址99H(SBUF)。
该串口有4种工作方式,其工作方式和传送波特率可通
过特殊功能寄存器SCON,PCON进行设置。
3.2.2单片机串口的工作寄存器
SCON主要用于设定串口的工作方式、接收和发送控制以及状态标志。
其格式如下:
(1)SM0、SM1工作方式控制位:
SCON
SMOSM1方式说明
0008位同步移位寄存器
01110位异步收发
10211位异步收发
11311位异步收发
其中10位、11位是指异步通信中数据帧的格式。
10位数据帧格式为1位起始位、8位数据位、1位停止位;11位数据帧格式为1位起始位、8位数据位、1位奇偶校验位、1位停止位。
(2)REN允许接收控制位:
REN=1允许接收
REN=0禁止接收
(3)TB8在方式2、3中是准备发送的第9位。
(4)RB8位是方式2、3接收到的第9位。
(5)TI发送中断标志。
(6)RI接收中断标志。
(7)SM2多机通信控制位:
SM2=0时则无论RB8=0或RB8=1均可申请中断。
SM2=1时当接收到的第9位为1即RB8=1可申请中断;当接收收到的第9位为0即RB8=0不可申请中断。
3.2.3单片机串行口工作方式及帧格式
MCS-51 单片机串行口可以通过软件设置四种工作方式:
方式 0 :
这种工作方式比较特殊,与常见的微型计算机的串行口不同,它
叫同步移位寄存器输出方式。
在这种方式下,数据从 RXD 端串行输出或输入,同步信号从 TXD 端输出,波特率固定不变,为振荡率的 1/12 。
该方式是以 8 位数据为一帧,没有起始位和停止位,先发送或接收最低位。
方式1:
串口工作于方式1时,为一个8位的异步通信口,传送的帧数据的格式为:
8位数据位,加上1位起始位和1位停止位,此时的TXD端位发送端,RXD为接收端。
传输的波特率可变,由定时器T1的溢出率确定。
方式 2 :
采用这种方式可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余相同。
第 9 个数据即 D8 位具有特别的用途,可以通过软件搂控制它,再加特殊功能寄存器 SCON 中的 SM2 位的配合,可使 MCS-51 单片机串行口适用于多机通信。
方式 2 的波特率固定,只有两种选择,为振荡率的 1/64 或 1/32 ,可由 PCON 的最高位选择。
方式 3 :
方式 3 与方式 2 完全类似,唯一的区别是方式 3 的小组特率是可变的。
而帧格式与方式 2一 样为 11 位一帧。
所以方式 3 也适合于多机通信。
3.3双机通信举例
3.3.1中断方式的双机通信
为实现全双工通信,即能同时发送和接收,就必须采用中断方式进行数据传送和接收。
下面我们编一个程序,采用串口的工作方式2实现双机通信。
无论是一个数据发送完毕,还是接收到一个数据,串口都向CPU申请中断;CPU在中断程序中,通过检测是RI=1还是TI=1来决定是发送中断还是接收中断,从而进行相应的发送操作或接收操作。
在主程序中对串口进行初始化,设串口既可发送,也允许接收,然后发送一个数据,其余的发送和接收操作全在中断程序中实现。
图3.2双机通信
校验方法采用数据帧的第9位作为奇偶校验,若收到数据的奇、偶性与发送数据的奇、偶性一致,则接收正确,否则出错。
中断方式的双机通信,设发送数据区的首地址为片内20H,接收数据区首地址为40H。
主程序:
ORG0000H
LJMPMAIN
ORG0023H
LJMPSBR1
MAIN:
MOVSCON,#90H;串口工作于方式2,REN=1允许接收
MOVPCON,#80H;SMOD=1,波特率为f osc/32
SETBES;允许串口通信
SETBEA
MOVR0,#20H;发送数据区首址
MOVR1,#40H;接收数据区首址
LCALLSOUT;发送一个数据
SJMP$;等待中断
中断服务子程序:
SBR1:
JBTI,SEND;TI=1,为发送中断
LCALLSIN;RI=1,为接收中断,调接收子程序
SJMPNEXT;转至统一的出口
SEND:
LCALLSOUT;中断返回
NEXT:
RETI
发送子程序:
SOUT:
MOVA,@R0;取发送数据到A
MOVC,P;奇偶标志送C
MOVTB8,C;奇偶标志作为发送的第9位
INCR0;修改发送数据指针
CLRTI;清发送中断
MOVSBUF,A;发送数据
接收子程序:
SIN:
MOVA,SBUF;取接收数据
JBP,ONE;接收数据为奇,转ONE
JBRB8,ERR;接收数据为偶,原发送为奇,转出错处理
LJMPRIG
ONE:
JNBRB8,ERR;接收数据为奇,原发送为偶,转出错处理
RIG:
MOV@R1,A;接收正确,送接收缓冲区
INCR1;修改接收数据指针
CLRRI;清接收中断标志
CLRF0;出错标志清0,接收数据有效
RET
ERR:
SETBF0;出错标志置1,接收的数据无效
CLRRI
RET
3.3.2查询方式的双机通信
1.通常情况下,若不需要全双工通信,而是采用半双工方式,即双方都具有接收和发送能力,但一次只能有一方发送、另一方接收,则可采用查询方式进行数据通信。
下面我们用串口方式1(数据帧10位,波特率由TI设定),采用查询方式实现异步通信。
由于串口方式1的数据帧中无奇偶校验位,所以采用传送“校验和”
的方式以检测数据传送的正确性。
2.将A机片内RAM60H单元的16个字节的数据发向B机,并存入B机片内RAM60H开始的单元中。
(1)通信协议如下:
①设A机片内为发送机,B机为接收机。
双方均采用6MHz的晶振,通信波特率设为2400波特。
②A、B双方联络信号是A机先发“AAH”,B机收到后发回“BBH”信号,若B机收到的联络信号不为“AAH”,则发回联络出错信号“FFH”;A机收到“BBH”
开始发送数据,从而保证B机能收到A机发送的数据。
③A机每发送一个数据,求一次“校验和”,数据发送完后发送“校验和”。
④B机在接收数据时也求“校验和”,最后将两机的“校验和”进行比较,若相等,则表示接收正确,B机随即向A机发一个“00H”回答信号;否则接收错误,向A机发“FFH”信号,要求A机重发一次数据。
⑤A机若收到“00H”信号结束发送,收到非零信号重新发送一次数据。
根据上述要求,T1设为方式2定时产生波特率,其定时初值为:
T1初值=256-f osc/波特率×12×(32/2SMOD)
=256-6×106/2400×12×(32/20)
=249
=F9H
(2)A机发送程序
程序流程图如3.2所示
图3.2发送流程图
START:
MOVTMOD,#20H;T1为方式2定时
MOVTL1,#0F9H;定时初值
MOVTH1,#0F9H;8位重装值
MOVSCON,#50H;串口方式1,REN=1
TT1:
MOVSBUF,#0AAH;发联络信号AAH
WAIT1:
JBCTI,RR1;等待发送完毕清TI
SJMPWAIT1
RR1:
JBCRI,RR2;等待B机应答信号
SJMPRR1
RR2:
MOVA,SBUF;取应答信号
XRLA,#0BBH;应答信号为BBH
JNZTT1;不是联络信号
TT2:
MOVR0,#60H;置发送数据区首址
MOVR7,#10H;字节数
MOVR6,#00H;清校验和
TT3:
MOVSBUF,@R0;发送一个字节
MOVA,R6;计算校验和
ADDA,@R0
MOVR6,A;校验和存入R6
INCR0;修改发送数据指针
WAIT2:
JBC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑 通信