单片机与PC机的串行通信设计.docx
《单片机与PC机的串行通信设计.docx》由会员分享,可在线阅读,更多相关《单片机与PC机的串行通信设计.docx(27页珍藏版)》请在冰豆网上搜索。
单片机与PC机的串行通信设计
学 生
目 录
参考文献:
.......................................36
[论文摘要]随着计算机技术尤其是单片机微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制PC机具有强大的监控和管理功能,而单片机则具有快速灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。
因此如何实现PC机与单片机之间的通讯具有非常重要的现实意义。
本系使用汇编语言实现AT89C51单片机与PC机的串行通信的基本原理和方法,并结合实例来实现
[关键词]串行通信;汇编语言;AT89C51单片机;
引 言
设计分为两个部分,硬件部分和软件部分。
硬件部分介绍:
单片机串行通信系统电路的设计,单片机AT89C51的功能和其在电路的作用。
介绍了AT89C51的管脚结构和每个管脚的作用及各自的连接方法。
AT89C51与MCS-51兼容,4K字节可编程闪烁存储器,寿命:
1000次可擦,数据保存10年,全静态工作:
0HZ-24HZ,三级程序存储器锁定,128*8位内部RAM,32跟可编程I/O线,两个16位定时/计数器,5个中断源,5个可编程串行通道,低功耗的闲置和掉电模式,片内震荡和时钟电路,P0和P1可作为串行输入口,P3口因为其管脚有特殊功能,可连接其他电路。
介绍了串行串行口控制寄存器,电源管理寄存器PCON,中断允许寄存器IE,还介绍了数码显示管的工作方式、组成,共阳极和共阴极数码显示管的电路组成,有动态和静态显示两种方式,说明了不同显示方法与单片机的连接。
软件部分:
在了解电路设计原理后,根据原理和目的画出电路流程图,列出数码显示的断码表,计算波特率,设置串行口,在与接受机设置相同的通信协议的基础上编写显示和传递程序。
编写完程序还要进行编译,这就必须会使用编译软件。
介绍了编译软件的使用和使用过程中遇到的问题,在软件调试过程中将详细介绍调试遇到的问题,例如:
通信协议是否相同,数码管是否与芯片连接对应,计数器是否开始计数等。
所设计的单片机串行接口现在已经发展到无线收发的阶段,可方便地在单片机与单片机之间,构成一个点对点、一点对多点的无线串行数据传输通道。
单片机无线串行接口电路由MICRF102单片传递器芯片、MICRF007单片接收器芯片组成,工作在300~440MHzISM频段;具有ASK调制解调能力,抗干扰能力强,适合工业控制应用;采用PLL频率合成技术,频率稳定性好;接收灵敏度高达-96dBm,最大传递功率达-2.5dBm;数据速率可达2Kb/s;低工作电压:
4.75~5.5V;功耗低,接收时电流3mA,传递时电流7.75mA,接收待机状态仅为0.5μA,传递待机状态仅为1.0μA;可用于单片机之间的串行数据无线传输,也可在单片机数据采集、遥测遥控等系统中应用。
1.总体方案设计
方案简述:
MCS-51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。
这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。
如果在串行口的输入输出引脚上加上电平转换器,就可以方便的设计成标准的RS-232接口。
在设计中以PC机为主机,单片机为从机,通过串行接口构成主从系统,设计其串行通信的基本功能,并编程实现。
图单片机与RS-232接口
2.单元模块设计
2.1单片机概述
单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。
单片机一词最初是源于“SingleChipMicrocomputer”,简称SCM。
随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。
国际上逐渐采用“MCU”(MicroControllerUnit)来代替,形成了单片机界公认的、最终统一的名词。
为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。
在国内因为“单片机”一词已约定俗成,故而可继续沿用。
2.1.1单片机的发展历史
单片机的发展可以分为以下4个阶段
第1阶段:
单片机的探索阶段、1974年,美国Fairchild(仙童)公司研制出世界第一台单片微型计算机F8,深受家用电器和仪器仪表领域的欢迎和重视,从此来开了研制单片机的序幕。
随后Intel公司推出了MCS-48单片机系列。
其他一些公司如Motorola、Zilog等也先后推出了自己的单片机,取得一定的成果。
这一阶段,单片机被正式命名为SingleChipMicrocomputer。
总的来说,它们性能较弱,属于低、中档产品。
第2阶段:
单片机的完善阶段。
随着集成科技的提高及CMOS技术的发展。
单片机的性能也随之改善,高性能的8位单片机相继问世。
1980年Intel公司推出了8位高档MCS-51系列单片机,性能得到很大的提高,应用领域也大为扩展。
第3阶段:
微控制器形成阶段、单片机要有许多面向测控对象的接口电路,如ADC、DAC、高速I/O口、计数捕捉与比较、脉宽调制(PWM)、保证程序可靠运行的WDT(看门狗定时器)、保证高速数据传输的DMA等。
这些为满足测控要求的外围电路,大多数已超出了一般计算机体系结构的范畴。
为了满足测控系统的嵌入式应用要求,这一阶段单片机的主要技术发展方向是满足测控对象要求的外围电路的增强,从而形成了不同于早起单片机特点的微控制器(MCU)。
第4阶段:
为控制器充分发展阶段,即当前的单片机时代。
其显著特点是百花齐放、技术创新,以满足不同用户的广泛需要。
单片机面向最低层的电子技术应用,从玩具、小家电、工程控制单元到机器人、只能仪表、过程控制、个人信息终端等,推出了适合不同领域要求的单片机系列。
专用型单片机也得到较大发展,早期单片机的发展。
专用单片机具有低成本、资源有效利用、系统外围电路少、可靠性高等优点、单片机的综合品质,如成本、性能、结构体系、开发环境、供应状态等都有了长足的进步。
第4阶段的单片机使用户进入了一个可广泛选择的时代。
2.1.2单片机的发展趋势
单片机的发展趋势是想着大容量化、高性能化、小容量/低价格化和外围电路内装化等几个方面发展。
(1)大容量化:
进一步扩大片内存储器的容量、以往单片机的片内程序存储器ROM为1KB-4KB,片内数据存储器RAM为128B~256B,在特殊的复杂控制场合,存储容量往往不够,因此不得不外接扩充。
为适应特殊领域的要求,人们运用新工艺,是片内存储器大容量化,片内程序存储器ROM已扩大到12KB或更大,片内数据存储器RAM已扩大到1MB。
今后,随着工艺技术的不断发展,片内存储器的容量将会进一步扩大。
(2)高性能化:
主要是指进一步改进CPU的性能,加快指令运行速度,加强位处理功能、终端和定时控制功能,采用流水线技术,加快指令运算速度和提高系统控制的可靠性。
(3)小容量/低价格化:
是发展方向之一,这类单片机的用处是将以往用数字逻辑集成电路组成的控制电路单片机化。
(4)外围电路内装化:
随着大规模集成电路的发展和集成度的不断提高,有可能把各种外围功能器件集成在片内。
除了一般必须具有的CPU、ROM、RAM、定时器等以外,片内集成的部件还有A/D、D/A、DMA控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。
随着集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强,其应用前景将会更加广阔。
2.1.3单片机的特点
单片机主要有如下特点:
1.有优异的性能价格比。
2.集成度高、体积小、有很高的可靠性。
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境 下工作。
3.制功能强。
为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。
单片机的逻辑控制功能及运行速度均高于同一档次的微机。
4.低功耗、低电压,便于生产便携式产品。
5.外部总线增加了I2C(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。
6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。
2.1.4单片机的应用
由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。
它的应用遍及各个领域,主要表现在以下几个方面:
1.单片机在智能仪表中的应用
2.单片机在机电一体化中的应用
3.单片机在实时控制中的应用
4.单片机在分布式多机系统中的应用
5.单片机在人类生活中的应用
单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。
这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。
A:
由单片机组成控制器的结构和特点:
单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型计算机的主要部件如中央处理器(CPU)、存储器(RAM/ROM)和各种功能I/O接口集成在一块芯片上的单芯片微型计算机(SingleChipMicroComputer),简称单片机.由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展了各种控制功能如A/D、PWM等,因此我们更多时候称其为一个单片形态的微控制器(SingleChipMicroController),或直接称其为微控制器(MicroController)。
B:
用单片机组成的微机控制系统具有以下特点:
1.受集成度限制,片内存储器容量较小,一般片内ROM小于4—8K字节,片内RAM小于256字节;但可在外部进行扩展,如MCS—51系列单片机的片外可擦可编程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至64K字节。
2.可靠性高。
单片机芯片本身是按工业控制环境要求设计的,其抗工业噪声的能力优于一般通用CPU;程序指令及其常数、表格固化在ROM中不易破坏;常用信号通道均在一个芯片内,故可靠性高。
3.易扩展。
片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展用的总线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。
4.控制功能强。
为了满足工业控制要求,单片机的指令系统中有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。
一般来说,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。
5.一般的单片机内无监控程序或系统管理软件,软件开发工作量大。
但近年来已开始出现了片内固化有BASIC解释程序及FROTH操作系统的单片机,使单片机系统的开发提高了一个新水平。
此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制装置,并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的性价比。
特别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控制智能化。
如数控机床就是典型实例。
近年来,单片机发展极快,其产量占微机产量的70%以上。
目前,至少有50个系列400余种机型,性能和结构各不相同,INTEL、MOTOROLA、ZILCG等公司都有系列单片微型计算机。
国内普及的几乎都是INTEL公司的产品。
2.2AT89C51单片机简介
AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。
AT89C51
图2.1 单片机AT89C51
主要性能参数:
·与MCS-51产品指令系统的全兼容
·4k字节可重擦写Flash闪速存储器
·1000次可擦写周期
·全静态操作:
0Hz-24MHz
·三级加密程序存储器
·128×8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·6个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式
3.1.4AT89C51特性指标
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。
(1) AT89C51引脚功能说明:
·Vcc:
电源电压
·GND:
地
·P0口:
PO口是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。
可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。
·P1口:
P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。
作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(I)。
Flash编程和程序校验期间,P1口接收8位地址。
·P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。
对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部存储器或1位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高地址和其他控制信号。
·P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。
作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.3所示:
P3口还接收一些用于Flas闪速存储器编程和程序校验的控制信号
图2.2 AT89C51方框图
·RST:
复位输出。
当震荡器工作时,RST引脚出现两个机器周期以上高电平使机器复位。
·ALE/当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。
要注意的是:
每次访问外部存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还要输入编程脉冲()。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令可激活。
此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。
·:
程序存入允许()输出的是外部程序存储器的读选通信号,当
表2.3 AT89C51端口
AT89C51由外部程序取指令(或数据)时,每个机器周期两次有效,既输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的信号不出现。
·EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H--FFFFH),EA端必须保持低电平(接地)。
要注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V的编程电压Vpp。
·XTAL1:
震荡器反向放大器及内部时钟的输入端。
·XAAL2:
震荡器反向放大器的输出端。
·时钟震荡器:
AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图。
外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。
对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。
用户还可以采用外部时钟,采用外部时钟如图所示。
在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。
图2.4 内部震荡电路 图2.5 外部震荡电路
由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部
表2.6 AT89C51寄存器
寄存器
内容
寄存器
内容
PC
0000H
TMOD
00H
ACC
00H
TCOM
00H
B
00H
TH0
00H
PSW
00H
TLO
00H
SP
07H
TH1
00H0
DPTR
0000H
TH1
00H
P1—P3
0FFH
SCON
00H
IP
xxx00000
SBUF
不定
IE
0xxx00000
PCON
0xxx00000
时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。
·Flash闪速存储器的编程:
AT89C51单片机内部有4K字节的FlashPEROM,这个Flash存储存储阵列出厂时已处于擦除状态(既所有存储单元的内容均为FFH),用户随时可对其进行编程。
程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。
低电压编程模式,适用与用户在线编程系统。
而高电平模式可与通用EPROM编程程序兼容。
·编程方法:
编程前需设置好地址、数据及控制信号,编程单元的地址就、加在P1口和P2口的P2.0—P2.3(11位地址范围为0000H—0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置见表。
PSEN为低电平,RST保持高电平,EA/Vp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)编程时可采用4—20MHz的时钟震荡器AT89C51的编程方法如下:
1.0在地址线上加上要编程单元的地址信号。
1.在数据线上加上要写入的数据字节。
2.激活相应的控制信号。
3.在高电压编程时,将EA/Vpp端加上+1V编程电压。
4.每对Flash存储阵列写入一个字节,加上一个ALE/PROG编程脉冲。
(2) AT89C51控制信号
RST/VPD(9脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1—P3口输出高电平,初始值07H写入堆栈指针SP、清0程序计数器PC和其余特殊功能寄存器,但始终不影响片内RAM状态,只要该引脚保持高电平,89C51将循环复位,,RAT/VPD从高电平到低电平单片机将从0号单元开始执行程序,另外该引脚还具有复用功能,只要将VPD接+5V备用电源,一旦Vcc电位突然降低或断电,能保护片内RAM中的信息不丢失,恢复电后能正常工作。
AT89C81通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关如图所示:
图2.7 手动开关
手动开关未按下之前,电容正极处于家电状态,当按键按下去后,VCC与GND导通,电容放电,从而实现放电。
2.3单片机的串行接口
MCS-51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。
这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。
如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。
2.3.1基本概念
数据通信的传输方式:
常用于数据通信的传输方式有单工、半双工、全双工和多工方式。
A. 单工方式:
数据仅按一个固定的方向传送。
因为这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。
B. 双工方式:
数据可以实现双向传送,但不能同时进行,实际的应用采用某种协议实现收发开关转换。
C. 全双工方式:
允许双方同时进行数据双向传送,但一般全双工电路的线路和设备比较复杂。
D. 多工方式:
以上三种传输方式都是同一线路传输一种频率信号,为了充分的利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分、或码分复用技术,即可实现在同一线路上资源共享功能,我们称之为多工传输方式。
串行通信的两种通信形式
A.异步通信
在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:
一个起始位,紧接着是若干个数据位,图是传输45H的数据格式。
B.同步通信
同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的
C.串行数据通信的传输速率:
串行数据传输率有两个概念,既美秒传送的位数bps(Bitpersecond)和美秒符号数-波特率(Bandrate),在具有调治解调器的通信中,波特率与调治速率有关。
2.3.2MCS-51串行和控制寄存器
2.3.2.1串行口和控制寄存器
MCS-51单片机串行口专用寄存器结构如图所示。
SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。
但这两个寄存器具有同一地址(99H)。
MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。
而从接收缓冲器读出数据既可接收数据。
此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。
而发送