AT89C51单片机与PC机的通信接口及编程

更新时间:2023-07-22 10:02:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AT89C51单片机与PC机的通信接口及编程

第32卷第9期电子工蠢师

V01.32No.9

2006年9月

ELECTRONICENGINEER

S印.2006

AT89C5l单片机与PC机的通信接口及编程

夏莉英,陈雁

(苏州职业大学电子信息工程系,江苏省苏州市215104)

摘要:介绍了Pc机与单片机采用RS-232C进行串行通信的接口方法。对于硬件接口电路中常用的一些方法进行了简要的比较,并介绍了电平转换芯片MAx232及其应用方法。在通信程序的设计中,数据传输的校验方法采用反馈.确认法,即每传送一个数据就反馈一次,由发送方确认,相当于每次都有握手信号,大大提高了数据传输的可靠性。给出了完整的Pc机与单片机点对点双机通信程序。

关键词:串行通信;接口;RS-232C;编程

中图分类号:TP334.7

O引言

率为20kb∥s,最大距离为15m。它们之间具有相关

性,适当降低传输速率就可加大传输距离,反之,适当A髓9c51是一种低功耗、高性能的8位单片微型减少传输距离就可提高传输速率。

计算机,它采用了cMOs工艺和ATMEL公司的高密Rs.232c标准接口是一个使用二进制进行交换的度NVRAM(非易失性随机存储器)技术,片内带有一

DTE(数据终端设备)与DcE(数据通信设备)之间的个4kB的FlashEPROM(可擦除、可编程只读存储

接口。RS_232c定义了22根信号线,采用标准的DB一器),其输出引脚和指令系统与MCs一51完全兼容。25芯和DB.9芯两种连接器,其中最常用的信号线的由于A鸭9C51单片机具有集成度高、面向控制、系统功能如表1所示。

结构简单、价格便宜等诸多优点,因而在智能化仪器仪表1

RS∞2C接口常用信号线功能表

表、数据采集、数据测量等方面有着广泛的应用。但是,实际应用中单片机在数据处理能力、人机交互等方面往往不能满足要求,因而通常用Pc机来弥补单片机的这些不足。例如,在Ic卡税务管理系统中,用单片机控制IC卡的读写操作,实现税务申报情况记录,然后传送给PC机进行数据处理,建立数据库文件及各种表格文件,显示、打印报表等,从而实现税务征收管理。此时,就涉及到PC机与单片机之间的通信问题。本文介绍一种Pc机与单片机的通信接口及其编程方法。

1接口电路的设计

Rs.232c的发送器和接收器之间具有公共信号在设计硬件接口电路时,应充分考虑到电路的电地,使用单端信号,因而共模噪声易耦合到信号系统气特性、逻辑电平以及驱动能力的匹配问题,若匹配得中。为了提高抗干扰能力,Rs一232c使用较高的传输

不好,将会导致通信失败。

电压。

1.1

串行通信接口标准Rs-232c

Rs.232c主要电气特性如下:不带负载时驱动器

PC机上均带有标准的RS一232C接口。RS一

输出电平为一25

V~+25

V;负载电阻范围为3

kQ

232C是由EIA(美国电子工业协会)于1969年正式公~7

kQ;负载电容(包括线间电容)为<500pF;逻辑

布的、在异步串行通信中应用最为广泛的标准总线接“0”的输入电平为>+3V;逻辑“1”的输入电平为

口,适合于短距离通信或带调制解调器的通信应用场<一3V;逻辑“0”的输出电平为+5V~+15V;逻辑

合。采用Rs-232c标准进行数据传输时,最大传输速

“1”的输出电平为一5V~一1

V;输出短路电流为

<0.5

A;驱动器转换速率为<30v/斗s;驱动器输出电

收稿日期:2005-1l一07;修回日期:2006m2_2l。

阻为<300Q(在断电条件下测量)。

52

万 

方数据

AT89C51单片机与PC机的通信接口及编程

第32卷第9期夏莉英,等:A髓9c51单片机与Pc机的通信接口及编程 计算机与自动化技术

1.2

RS.232c与TTL、CMos逻辑电平的比较Rs_232c是早期为促进公共电话网进行数据通信

制定的接口标准,其逻辑电平对地呈对称性,与吼、

CMOS逻辑电平完全不同。RS一232C的逻辑“0”电平

为+5

V一+15

V,逻辑“1”电平为一5

V~一15

V,采

用负逻辑,而TTL、cMos采用正逻辑。两种逻辑电平

的比较见表2。

表2

RS.232C与TTL、CMOS逻辑电平的比较

1.3

RS.232c与TTL逻辑电平的转换

由于PC机串行口使用的是RS一232C逻辑电平,

而A偈9c51单片机串行口的输人输出均为TTL电平,因此当Pc机与单片机通信时必须进行电平转换。常

见的电平转换方法有以下3种:

a)使用Mcl488、Mcl489电平转换器。此方法的

缺点是:需要+12V、一12

V电源供电;工作稳定性和

可靠性不高。

b)使用2个三极管构成准Rs一232c电平转换器。此方法的缺点是:通信只能工作于半双工状态;程序设计较复杂。

c)使用双向电平转换集成芯片。此方法的优点是:只需单一+5V电源供电,可靠性高,无需增加程序设计的复杂性,常用的芯片有ICL232、MAx232、髑C232等。

本文采用最后一种方法,芯片选用MA)(232。

1.4

MA慰32电平转换芯片

MAx232的组成框图如图1所示。

+S

图1

MAX232组成框图

MA)(232电平转换芯片是MAxIM公司生产的一种新型的电平转换芯片,其内部有电压倍增电路和电压转换电路,只需单一+5V电源供电。它含有4个反向器,可实现2路,ITI'L/CMOS电平+5V到RS一

万 

方数据232C电平±10V的转换和2路RS.232C电平土10V

到rI-I'L/cMOS电平+5V的转换。

MA)【232的引脚排列如图2所示。

VGT

R∞№.虽m

RTT

m¨卟曙眩uⅫ眦

m№m‰

图2

MA】|【232引脚排列

1.5

Pc机与单片机的串行通信接口电路

如前所述,本文采用MAx232作为PC机与单片

机的串行通信接口芯片。硬件连接时,可从MA)【232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3所示。

AT89C5l

MAX232

+5VIBM.PC

C1+

VCC1崮卜_

C1.V+

爿一

C2+

lLIF

1扫卜_

C2.RS.232C

TXDT1inT10utRXDRXDRloutRlinTXDGND

GND

V.ll十

一1r

GND

图3PC机与单片机通信接口电路

2通信程序设计

在设计Pc机与单片机通信程序时,应首先明确数据传输协议,例如:数据传输的帧格式、数据校验方法、Pc机与单片机在实现异步通信时的工作方式等。本文所述的IC卡税务管理系统中的各项约定为:波特率为9

600

b∥s;数据格式一帧10位,起始位1位,数

据位8位,停止位l位;数据校验方法为反馈一确认法;异步通信工作方式,Pc机采用BIOs功能调用INT14H,单片机采用查询方式收发数据,其串行口工作于

方式1。

2.1

PC机异步通信编程方法

IBM—Pc系列机的串行异步通信适配器是以8250为核心,由它完成发送时的并/串转换和接收时的串/并转换,以及与转换相关的控制工作。同时,适配器中还配置了电平转换的发送器和接收器电路及其他控制

电路。发送器用于将rIfI’L电平转换为Rs-232c电平,接收器用于将Rs-232c电平转换为rITllL电平。

Pc机控制RS.232C接口的方法有3种:直接对

8250的端口编程(端口地址为3F8H一3FFH)、DOs功能调用、BIOS功能调用。其中,BIOS功能调用方法最好,用它编程时既不必涉及8250的端口,又有比较完

53

AT89C51单片机与PC机的通信接口及编程

计算机与自动化技术 电子工墨师

2006年9月

善的功能,因而简单、方便,易于实现。表3列出了BI-OS功能调用INT14H的各项子功能。

表3

BIoS功能调用烈T14H的功能

表3中AL的参数格式如图4所示。

D7

D6

D5

D4

D3

D2

D1

D0

波特率选择

奇偶校验停止位字符长度Ooo.110xO.无奇偶O—l位

lO,7位001.15001.奇校验1.2位1l一8位

010.30011.偶校验

011-600100.1200101—2400110-480011】.9600

图4AL的参数格式

调用INT14H后,AH中存放的是线路状态的出

口参数,其各位定义如图5所示。

D7

D6

D5

D4

D3

D2

Dl

Do

超时错发送器

发送器间断帧格奇偶溢出错接收器移位寄保持寄条件

式错

校验错

数据寄存器空存器空

存器就

图5AH中各位的定义

AH中D7位的含义如下:

a)发送时返回D7=1,表示未能发送成功;

b)接收时返回D7=1,表示未能成功接收。

2.2

A髑9C5l单片机异步通信编程方法

A弼9c5l单片机内部有一个功能很强的全双工

串行异步通信接口,能方便地构成双机或多机通信系统。本文介绍的是PC机与A1’89c51单片机构成的点对点双机通信系统。

A聪9c51串行口主要由2个串行数据缓冲器(sBUF)、发送控制器、接收控制器、发送端口、接收端口等组成。串行口的工作方式和波特率由专用寄存器SCON和PCON控制。编程时,首先将串行口设置为工作方式1,以便实现点对点的异步通信。

发送时,只要执行一条“MOVSBUF,A”指令,就启动了发送功能,累加器A中的数据就会按事先设置的方式和波特率从TxD端(P3.1)串行输出。一帧数据发送完毕,发送中断标志位TI=l,串行口向cPu请求中断。此时,令TI=0,就可发送下一帧数据。

54

万 

方数据接收时,首先使scoN中的接收允许控制位REN=l,A偈9C5l以16倍波特率的速率检测RxD(P3.O)上的信号,检测时采取“三中取二”原则,即当连续检

测3次RxD,出现2次以上由“1”到“0”的负跳变时,就启动接收控制器接收数据,一帧数据接收完毕,接收

中断标志位RI=1,串行口向cPu请求中断。此时,只

要执行一条“MOVA,SBuF”指令,就可将数据读人累

加器A中。再令RI=0,就可接收下一帧数据。2.3通信程序

1)Pc机通信程序

STACKl

SEGMENTSTACK

DB256

DUP(0)

STACKlENDDA7IASEGMENTRBUFDB

256(O)

COUNTDB256DATAENDSCODESEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACKl

S’rARTPROCFAR

PUSHDSXORAX.AXPUSHAH

MOVAX.DATAMOVDS.AXMOVAX.SrrACKMOVSS.AXLEA

DI,RBuF//置接收数据块首址MOVcx,couNT//置接收数据块长度

MOV

AL,E3H//串口初始化:波特率9600,无校验,1位停

止位,8位数据位

MOVDx,00H//指定cOMl

MOV

AH,00H//0号功能

INT14HREPTl:

MOVAH,02H//2号功能:接收一个字符

INT

14H//出口参数:AL中为接收到的字符,AH中为线路

状态

MOVBx,Ax//Ax内容暂存于Bx中MOVAL,AH//取线路状态至ALTEsT

AL,80H//接收成功否(D7=0)?

JNzREPTl//不成功,重试

TEsTAL,01H//成功,则再查接收数据就绪否(D0=1)?

Jz

RE胛l//未就绪,重试

MOVAL,BL//取回所接收的字符cMP

AL,EEH//该字符是出错标志否?

JEREPrl//是。重试

MOV[DI],AL//不是,则接收正确,保存该字符

AT89C51单片机与PC机的通信接口及编程

第32卷第9期夏莉英,等:A鸭9c5l单片机与PC机的通信接口及编程 计算机与自动化技术

INC

DI//指向下一个地址单元

DECDPLREPl2:

NEXT:INC

DPm

MOV

AH,03H//3号功能:检查串口状态

MOVxA,@DFrrR//取数据

INT14HMOV33H,A//暂存于33H单元中MOVAL,AH//取线路状态至AL

MOV

SBuF,A//发送数据

TEST

AL,20H//8250的发送保持器空否(D5=1)?

JNBⅡ,¥//等待发送完毕

JzREPl2//不空,重试;空,则反馈该字符

cLRr11//.I’I=1已发送完毕,清r11

REPl3:

NOP

MOV

AH,01H//1号功能:发送一个字符

JNBRI,¥//等待PC机反馈

INT14HCLRm//砒=1已收到,清RIMOVAL,AH//取线路状态至ALMOV

A,SBUF//取反馈数据

TEST

AL,80H//发送成功否(D7=0)?

cJNEA,33H,ACK—EE//确认数据,不正确则发送出错标

JNzREPl3//否,重试

志通知PC机

L00P

RE胛l

//数据块接收完毕否?未完,继续

DJNzR2’,NEXT//正确,继续发下一个STARTENDPSJMP8

CODEENDS

ACK—EE:

ENDSTART

MOV

A,椰EEH//发送通信出错标志

2)AB9c51单片机通信程序

MOVSBUF.A

0RG0000H

JNB1f1,¥

LJMPBEGIN//转到程序实际入口

CLRTI

0RG0030HAJMPRsEND//重发数据

BEGIN:

END

MOVTMOD,轮0H//设置定时器工作方式:T1,方式2参考文献

MOV

THl,棚FDH//设置波特率

MOVTLl.}f0FDH[1]徐仁贵,廖哲智.单片微型计算机应用技术[M].北京:

SETBTRl机械工业出版社,2001.

MOV

sc0N,柏0H//串口初始化:设置串口于工作方式1、

[2]翁桂荣,邹丽新.单片微型计算机接口技术[M].苏州:苏

允许接收

州大学出版社,2002.

MOVPCON,柏OH//置SMOD=O[3]郑学坚,周斌.微型计算机原理及应用[M].北京:清华

MOV

R2.加0H

大学出版社,2001.

MOVDPH,31H//置D盯R指针

[4]钱晓捷,陈涛.微型计算机原理及接口技术[M].北京:机

MOVDPL.30H械工业出版社,1999.

RSEND:DECDPH

InterfIaceand

ProgramlllingofSingle-chipMicrocomputerAT89C51

CommuIlicating谢thIBM-PC

XIA

LiyiIlg,ClⅢN

Yan

(SuzhouVocationalUniversity,Suzhou215

104,China)

Abstract:nis

paperintroduces

an

interfacingmethodofIBM—PCseriallycommunicatingwith

single—chip

microcomputerwithRS一232C.Itgives

comp撕sonamongsomemethodeswhich

are

oftenadoptedintheinter—

facingcircuit,andintroducesa

chipMAX232ofleveltranslationanditsapplicationmethodindetail.

Inthe

designofcommunicationpmgram,”feedback-confi珊”isused

as

checkmethodindata

transmission,n锄ely

data

are

alwaysfbdback

andconfi珊edbysending—side

wheneveritistransmitted,whichisequiValenttosig-

naLlshakinghandeverytime.

Therefore,thereliabilityofdatat】阻nsmissionisgreatlyimproVed.The

p印er

presentsthewholepmgramofIB]Ⅵ一PCcommunicatingwithsinde—chipmicrocomputerf而mpointtopoint.

Keywords:serialcommunication;interface;RS_232C;pmgramming

万 

方数据 55

AT89C51单片机与PC机的通信接口及编程

AT89C51单片机与PC机的通信接口及编程

作者:作者单位:刊名:英文刊名:年,卷(期):引用次数:

夏莉英, 陈雁, XIA Liying, CHEN Yan

苏州职业大学电子信息工程系,江苏省,苏州市,215104电子工程师

ELECTRONIC ENGINEER2006,32(9)6次

参考文献(4条)

1.徐仁贵.廖哲智 单片微型计算机应用技术 20012.翁桂荣.邹丽新 单片微型计算机接口技术 20023.郑学坚.周斌 微型计算机原理及应用 20014.钱晓捷.陈涛 微型计算机原理及接口技术 1999

相似文献(10条)

1.期刊论文 张长森 调度台接口CPU与调度台工控机串行通信的设计 -工矿自动化2005(4)

调度台接口CPU负责调度台工控机与交换机中央控制模块的通信,它与调度台工控机之间的通信采用RS232格式.采用AT89S8252作为调度台接口CPU,采用MAX202设计一个RS232接口,并设计了AT89S8252与工控机之间的信令格式,实现了调度台接口CPU与调度台工控机之间的串行通信.

2.学位论文 郭治平 符合USB2.0规范的串行通信接口芯片设计 2009

通用串行总线(USB)是计算机与外围设备互连的标准接口之一,是一种点对点的通信接口,可同时支持多个外围设备。设计一款符合USB2.0规范的串行通信接口芯片,作为与任意外围设备与计算机的互连接口,具有重要的意义。 在硬件方面,本文所设计的芯片主要设计了5个主要的模块:主接口电路模块、存储器接口与优先级判别模块、控制/状态寄存器模块、协议层模块和数据通用收发宏单元接口模块。主接口电路是内部数据寄存器、控制寄存器与外部设备之间的通信桥梁。此外,协议层模块与内部数据存储器、控制寄存器和数据通用收发宏单元接口连接,负责保持通信数据的格式符合USB2.0规范中的协议格式。数据通用收发宏单元接口模块与USB物理层连接,PHY模块负责将数据发送到与USB连接器相连的计算机,或接受来自计算机的数据。 在软件方面,本文使用Verilog语言写下了各模块的电路描述程序。同时利用QuartusII软件进行了系统调试和系统编译。 通过设计这款符合USB2.0规范的串行通信芯片可以同时支持16个节点,支持全速和高速两种通信模式,其速率分别达到12Mbit/s和480Mbit/s。同时该芯片还提供了功能强大的存储器接口和WISHBONE电路接口,实现了存储器和芯片间的互联。

3.期刊论文 余海涛.张丹平 基于RS-232/RS-485接口转换器的半双工串行通信研究 -工业控制计算机2002,15(11)

本文介绍工业控制系统中,基于RS-232/RS-485接口转换器的串行通信的实现方法,对其软、硬件设计进行了分析,这种方法能满足智能仪器仪表长距离串行通信的要求。

4.期刊论文 刘毅.田军.张明明.LIU Yi.TIAN Jun.ZHANG Ming-ming 粒子阻隔效率测试仪串行通信数据处理系统 -中国安全生产科学技术2009,5(4)

在GB2626-2006<呼吸防护用品--自吸过滤式防颗粒物呼吸器>中防尘面罩粒子阻隔效率测定是一项评价防尘面罩性能的关键指标.为实现数据通信及处理的自动化操作,提高检测效率,本研究针对装置的串行数据通信的底层接口,开发基于EXCEL VB肢本的串行通信数据外理系统.该系统为更好地研究实粒子阻隔效率测定方法和阻隔效率相关规律提供了便利条件.

5.期刊论文 马时平.毕笃彦.张重阳.肖卫华 PC与TMS320C5402DSP实现串行通信 -电子产品世界2002(1)

利用DSP的McBSP和DMA来实现通用异步接口UART,并以复用器和计算机的串行通信为例,给出了UART软件实现的详细流程.

6.会议论文 黄建平 USB接口在串行通信中的应用 2003

USB即通用串行总线,可以实现热插拔,采用菊花链结构,最多可以同时连接127台设备,由总线提供电源,并有检错、纠错功能以保证数据正确传输.USB在PC机上应用时,PC机的操作系统需要支持USB协议,此时PC机上的软件包括两部分:USB初始化软件和运行部分.前者对外设进行构造并定义一个唯一的标识,这就是所谓的列举过程,以获得每个外设的描述表.

7.期刊论文 冯春阳.张遂南.FENG Chunyang.ZHANG Suinan 三线制同步串行通信控制器接口设计 -现代电子技术2009,32(19)

为解决没有三线制同步串口的微处理器与外围串行设备通信困难的问题,通过研究三线制同步串行通信的机理,首先构建基于传统设计所实现的硬件电路接口,然后利用可编程逻辑器件PLD,设计基于CPLD/FPGA的三线制同步串行通信控制嚣通用接口.通过对各功能模块的详细介绍,实现硬件电路的小型化和灵活移植性,减小了整个系统的体积和功耗.经实际项目使用,结果表明基于该接口结构实现了微处理器与外围串行设备间的三线制同步串行通信的功能.

8.期刊论文 黄海容.黄继武.袁兰英.王来运.余进 在Windows95下实现PC机与单片机AT89C51的串行通信 -微型机与应用1999,18(4)

在Windows95下使用串口API函数实现PC机与单片机AT89C51的串口通信,重点介绍计算机采用事件驱动I/O方式的函数编程及单片机串口中断发送、接收程序的实现.

9.学位论文 张晶 基于USB2.0接口的数字图像通信模块设计 2008

现代数据采集技术发展迅速,各种基于ISA、PCI总线的数据采集系统已经相当成熟,但这些采集系统很多都存在安装麻烦、可扩展性差等缺陷。USB总线是由Inter、Compaq、Microsoft等七家公司于1994年为解决传统总线的不足而推出的一种新型串行通信标准。为了适应高速传输的需求,2004年4月,这些公司在原来USB1.1协议的基础上制定了USB2.0传输协议,其最大传输速度达到了480Mb/s。USB总线具有传输快、连接灵活、易扩展等优点,已在PC机的多种外设上得到广泛应用,并逐渐成为现代数据采集传输的发展趋势。 本文在介绍USB2.0系统及协议的基础上,论述了使用USB2.0接口采集红外目标探测控制系统和图像处理系统间实时通信的数字图像。系统的硬件设计部分,首先设计实现了DSP TMS320LF2407芯片的外围电路包括

AT89C51单片机与PC机的通信接口及编程

JATG下载电路、时钟震荡电路、外部存储器接口和SPI接口电路;接着完成了FPGA Cyclone EP1C6PQ240芯片的配置电路包括JATG下载电路和E2PROM外围电路的设计;最后是确定了USB芯片和DSP微控制器间的并行接口连接方式并进行了电路设计。在硬件设计完善的基础上制作了系统PCB板。 系统的软件设计部分,首先在FPGA内部通过编程实现一个SPI内核,与DSP中的SPI内核连接通信形成SPI主从模式;然后是USB固件程序的设计,完成设备的管理和数据的交换,主要包括微控制器、USB设备和外围电路的初始化和USB中断服务程序的编写。 系统设计完成后进行了软硬件的调试并成功地实现了数据图像的采集和传输。

10.会议论文 胡封晔.张坤 一种新的DSP与PC机串行通信设计方案 2005

目前大多数数字信号处理器(DSP)芯片上只提供2~3个同步串行接口,并不支持通用异步接口(UART)标准,其与微机及其它设备串行通信时,必须在DSP上扩展异步串行接口.本文以美国TI公司生产的TMS320VC5402DSP为例,针对用户经常面临的DSP系统与PC机实时交换数据时通信接口标准不兼容的问题,提出了一种新的串行通信设计方案,实现了DSP多通道缓冲串行口(McBSP)与PC机RS-232接口的全双工通信.

引证文献(8条)

1.陈欣琳.王海峰.金亮 PC机和MCS-51单片机间的串行通信[期刊论文]-中国科技信息 2009(13)

2.魏佳.高卫平.贺忠江.李迎新.孙雷隐 四点视野计的研制[期刊论文]-中国组织工程研究与临床康复 2009(9)3.陶磊.孟浩 自动调焦虹膜图像采集系统设计[期刊论文]-生命科学仪器 2008(10)4.潘卫平.詹立新 万能铣床自动滚齿装置控制系统设计[期刊论文]-机械与电子 2008(8)5.SHEN Guo-yan 簇绒地毯机的控制系统设计[期刊论文]-机电工程 2008(08)6.董加强 提高单片机多机串行通信的一种新方法[期刊论文]-电工技术 2008(06)7.牛立佳 船舶模型控制器的设计[学位论文]硕士 2007

8.鞠洁 基于CAN总线的灯光控制系统的研究与设计[学位论文]硕士 2006

本文链接:/Periodical_dzgcs200609017.aspx

下载时间:2010年3月13日

本文来源:https://www.bwwdw.com/article/nv9m.html

Top