当前位置:文档之家› 基于单片机的串行通信发射机的设计与实现

基于单片机的串行通信发射机的设计与实现

基于单片机的串行通信发射机的设计与实现
基于单片机的串行通信发射机的设计与实现

武汉工程大学邮电与信息工程学院

毕业设计(论文)

基于单片机的串行通信发射机的

设计与实现

Design and Implementation based on Serial Communication Transmitter

学生姓名

学号

专业班级

指导教师

2012年5月

作者声明

本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。

毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。

特此声明。

作者专业:

作者学号:

作者签名:

____年___月___日

摘要

在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。因此串行发射应用愈来愈广泛。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在设备间交换信息,但传输速度较低。故串行通信在低速率、长距离通信上非常适用。而串行通信发射机是串行通信中极为重要的基础。

本设计中ADC0809将采集到的模拟信号转换成数字信号后传送至单片机,在单片机通过编程方式来增加CRC-8(8位循环冗余码校验)校验码以加强数据可靠性,最后单片机再把采集到的数据和校验码通过一个无线发送器以串行通信的方式发送出去。

本论文共分为六个章节。第1章简要阐述了课题的研究背景及意义,并对串行通信发射机做了相关介绍;第2章介绍了系统的任务分析和设计方案;第3章主要介绍了系统的电路设计及所需设备及芯片;第4章对串行通信发射机的软件部分做了详细论述,并给出软件设计流程;第5章分析了系统测试过程及结果;第6章总结了全文并对课题的发展前景做了展望。

关键词:单片机;CRC-8;串行通信

Abstract

In the communications field,there are two data communication method: parallel communication and serial communication. With the computer network Network of distributed applications and computer grading system, the communications function is increasingly important. Therefore, the serial transmit more and more widely. Serial communication using a data cable, data a one followed by transfer every data occupy a fixed length of time. It only takes a few a few lines you can exchange information between devices, but the low transmission speed. Serial communication is ideal for low-rate, long-distance communication. Serial communications transmitter is an extremely important foundation of the serial communication.

ADC0809 analog signal acquisition to convert the digital signal sent to the microcontroller, the microcontroller programmatically to increase CRC-8 (8-bit cyclic redundancy check) checksum to enhance data reliability, the final microcontroller then collectedthe data and check code serial communication sent through a wireless transmitter.

This thesis is divided into six chapters. Chapter 1 briefly described the research background and significance, and serial communication transmitters do; Chapter 2 describes the task analysis and design of the system; Chapter 3 introduces the circuit design of the system and required equipment and chips; Chapter 4, the software portion of the serial communication transmitter in detail, and gives the software design process; Chapter 5 analyzes the system test process and results; Chapter 6 summarizes the full text and design during the harvest the sentiment.

Key Words:Single chip microcomputer;CRC-8;Serial programming

目录

第1章选题背景和意义 (1)

第2章任务分析与方案设计 (2)

第3章电路设计 (3)

3.1电路连接仿真图 (3)

3.2MCS-51单片机 (3)

3.3A/D转换器 (5)

3.4无线发射电路设计 (6)

第4章软件设计 (8)

4.1ADC0809工作地址 (8)

4.2A/D转换 (9)

4.3CRC-8编码 (10)

4.3MCS-51单片机串行口结构与数据发送 (11)

4.4仿真代码 (14)

第5章系统调试 (18)

5.1系统软件调试 (18)

5.2系统仿真调试 (19)

5.3数据测试与误差分析 (20)

第6章总结 (23)

致谢 (24)

参考文献 (25)

1

第1章选题背景和意义

目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将进一步向着CMOS化、低功耗化、低电压化、低噪声与高可靠性、大容量化、高性能化、小容量、低价格化、外围电路内装化和串行扩展技术。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小和功能将更强,应用也会更广泛。

单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。

在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。其特点如下:传输线少、长距离传送时成本低、传输速率低.。因此串行发射应用愈来愈广泛。而串行通信发射机是串行通信中极为重要的基础。

此次设计注重于对单片机串行发射的理论的理解,明白发射机的工作原理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。本课题的重要意义还在于能在进一步层次了解单片机的工作原理,内部结构和工作状态。理解单片机的接口技术,中断技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来做有效的设计。

第2章任务分析与方案设计

基于单片机的串行通信发射机系统的主要功能就是以单片机为控制芯片,把采集到的数据通过串行通信的方式进行传送。本设计中数据采集器采用的是一个8通道8位线性模-数编码器ADC0809,给数据加CRC-8校验码则是采用编程的方式来实现的,发送方式采用了以无线传输的方式来传送串行数据的方法,故还需要设计一个无线发送电路。

这个系统有如下两个部分:硬件电路部分有A/D转换器及接口电路、单片机的接口电路及A/D转换器与单片机的数据线、无线数据发射电路。软件部分是 A/D 转换器的数据采集部分,用软件对A/D0809转换成的数据进行CRC-8编码,然后将采集到的八位数据和转换好的CRC-8编码作为一帧通过无线发送模块发送出去。

为了方便电路、程序的实时修改在本设计中全部采用仿真设计软件。Proteus 软件是英国Labcenter electronics公司出版的EDA工具软件Proteus是唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

在本设计中采用Proteus来进行电路设计,采用Keil进来软件编写以及编译,最后将Keil编译出的程序文件跟Proteus进行联合仿真。

第3章电路设计

3.1电路连接仿真图

ADC0809跟MCS-51之间的数据交换采用并行传输方式,用MCS-51的P0口读ADC0809的数据,故只需用8条连线将P0.0~P0.7口分别与OUT1~OUT8连接即可,另外由于Proteus中没有MICRF102元件库,在本设计中就采用示波器来表示。综合各芯片的引脚分布及功能特点,具体的电路连接图如图3.1所示。

图3.1 电路连接仿真图

3.2 MCS-51单片机

本系统采用MCS-51单片机,MCS是Intel公司单片机系列的符号。Intel公司推出有MCS-48、MCS-51、MCS-96系列单片机。其中MCS-51系列单片机典型机型包括51和52两个子系列。

在51子系列中,主要有8031、8051、875l三种机型,它们的指令系统与芯片引脚完全兼容,只是片内程序存储器有所不同。

MCS-51单片机的引脚图如图3.2所示。

图3.2 单片机引脚图

各引脚功能如下:

(1) P0.0~P0.7:P0口是一个8位双向I/O 口。在访问外部存储器(RAM 、ROM)和扩展的I/O口时分时进行工作。在指令的前半周期,P0口作为地址总线的低8位,在指令的后半周期为8位的数据总线。

(2) P1.0~P1.7:P1口是一个带有上拉电阻的8位双向I/O口。

(3) P2.0~P2.7:P2口是一个带有上拉电阻的8位双向I/O口。在访问外部存储器(RAM 、ROM)和扩展的I/O 口时,送出地址总线的高8位。

(4)P3.0 ~P3.7:P3口是一个带有上拉电阻的8位双向I/O口在MCS-51单片机中,P3口是一个双功能口,其第一功能是作为通用I/O 口,第二功能是作为特殊信号线使用。

(5) ALE(地址锁存控制信号):在系统扩展时,ALE用于控制把P0口输出的低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。此外由于ALE 是以晶振1/6的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。

(6) PSEN(外部程序存储器读选通信号):在读外部程序空间时PSEN有效(低电平),以实现外部程序空间单元的读操作。

(7) EA(访问内外程序存储器控制信号):当EA信号为低电平时,对ROM 的读操作限定在外部程序存储器;而当EA信号为高电平时,则对ROM 的读操

作是从内部程序存储器开始,并可延至外部程序存储器。

(8) RST复位信号:当输入的复位信号延续2 个机器周期以上高电平时即为有效,用以完成单片机的初始化复位操作。

(9) XTAL1和XTAL2(外接晶体引线端):当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

(10) Vss:地线。

(11) Vcc:正5V电源。

3.3 A/D转换器

本系统采用ADC0809进行模数转换,ADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。

用它可直接将8个单端模拟信号输入,分时进行A/D转换,在多点巡回监测、过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为A/D转换电路的核心。

ADC0809引脚如图3.3所示。

图3.3 ADC0809引脚图

各引脚的功能如下:

IN0~IN7:8个通道的模拟量输入端。可输入0~5V待转换的模拟电压。

D0~D7:8位转换结果输出端。三态输出,D7是最高位,D0是最低位。

A、B、C:通道选择端。当CBA=000时,IN0输入;当CBA=111时,IN7

输入。

ALE:地址锁存信号输入端。该信号在上升沿处把A、B、C的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。

START:启动转换信号输入端。从START端输入一个正脉冲,其下降沿启动ADC0809开始转换。脉冲宽度应不小于100~200ns。

EOC:转换结束信号输出端。启动A/D转换时它自动变为低电平。

OE:输出允许端。

CLK:时钟输入端。ADC0809的典型时钟频率为640kHz,转换时间约为100μs。

REF(-)、REF(+):参考电压输入端。ADC0809的参考电压为+5V。

VCC、GND:供电电源端。ADC0809使用+5V单一电源供电。

当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D 转换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。OE为低电平时,D0~D7为高阻状态,OE为高电平时,允许转换结果输出。

3.4无线发射电路设计

无线发射电路如图3.4所示,电路以MICRF102为核心。MICRF102芯片内包含有:由基准振荡器、相位检波器、分频器、带通滤波器、压控振荡器构成的合成器,发射偏置控制,RF功率放大器,天线调谐控制和变容二极管等电路,是一个真正的"数据输入-无线输出"的单片无线发射器件。UHF合成器产生载频和正交信号输出。输入相位信号(I)用来驱动RF功率放大器。天线调谐正交信号(Q)用来比较天线信号相位。天线调谐控制部分检测天线通道中发射信号的相位和控制变容二极管的电容,以调谐天线,实现天线自动调谐。功率放大器输出受发射偏置控制单元控制。ASK/OOK调制,提供低功耗模式,数据传输速率为20kb/s。

图3.4 无线发射电路

这个无线发射电路是基于MICRF102芯片设计的,在使用此芯片时要注意以下问题:

(1)REFOSC(引脚4)是基准振荡端,连接晶振到地,或采用AC耦合方式输入峰-峰值为0.5 V的时钟脉冲。发射频率是基准振荡器频率的32倍:基准振荡频率×32=发射频率。如果使用外接时钟信号,须采用AC耦合方式,输入信号幅度峰-峰值为200~500 mV。

(2)MICRF102使用差分输出去驱动天线负载。功率放大器输出级包含有一个变容二极管,它自动与天线的电感调谐,以保证谐振在发射频率上。典型的PCB 导线天线的电感与回路的尺寸、天线导线的宽度、PCB铜泊的厚度和接地板的位置有关。设计时一般选择变容二极管的电容值为 6.5pF。天线电感L由公式L=1/(4π2f2C)计算。

(3)功率放大器的输出功率与PC端(引脚1)上的电压有关。正常工作时,该引脚端上的电压被设置在0.2~0.4V之间。PC端上的电压上升,输出功率加大;但是,如果PC端上的电压超过0.4V,功率放大器被限流,输出功率不再增加。减少PC端的电压可降低电源功率消耗,同时也会减少RF输出功率。

(4)STBY端(引脚5)是待机模式控制。接VDD为发射方式,接VSS为待机模式。

(5)MICRF102芯片对电源纹波敏感,正确地电源旁路是必需的,一般使用4.7μF、0.1μF、100pF3个电容并联在VDD和VSS之间。

第4章软件设计

4.1 ADC0809工作地址

ADC0809与MCS-51单片机的硬件接口有3种形式,分别是查询方式、中断方式和延时等待方式,本论文中选用中断接口方式。

由于ADC0809无片内时钟,时钟信号可直接由外部时钟信号源给出。由于ADC0809内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0809的A、B、C相连。通道基本地址为0000H~0007H。其对应关系如表4.1所示。

表4.1 ADC0809地址码与对应输入通道

在本系统中,由于只采用ADC0809的一个采样信道,故可直接将ADC0809的A、B、C三个接口接0电平。

控制信号:将P2.0作为片选信号,在启动A/D转换时,由单片机的写信号和P2.0控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。ADC0809工作时序图如图4.1所示。

图4.1 ADC0809工作时序图

在读取转换结果时,用单片机的读信号RD和P2.0引脚经或非门后,产生正脉冲作为OE信号,用一打开三态输出锁存器。

START信号和OE信号的逻辑表达式为

START= 2.0

+(4.1)

WR P

OE= 2.0

+(4.2)

RD P

当MCS-51通过对0000H~0007H(基本地址)中的某个口地址进行一次写操作,即可启动相应通道的A/D转换;当转换结束后,ADC0809的EOC端向MCS-51发出中断申请信号;MCS-51通过对0000H~0007H中的某个口地址进行一次读操作,即可得到转换结果。通过电路图的电路连接方式可以算出,ADC0809的一个工作地址是FEF8H。

4.2 A/D转换

中断方式使用EOC信号作为向MCS-51的中断申请。在主程序中,向ADC 发出首次启动转换信号后,并计数管理转换通道数。当检测到EOC的请求后,转去执行中断服务程序,读取转换结果,并启动下一次转换,后继续执行。A/D转换程序流程图如图4.2所示。

图4.2 A/D转换程序流程图

4.3 CRC-8编码

为保证单片机系统串行通信的可靠性,除了需采取硬件措施确保通信接口电平匹配、时序匹配消除波特率误差外,还需通过软件对通信数据的准确度进行校验。MCS-51单片机的UART技术为应用系统实现串行通信奠定了基础。MCS-51单片机串行通信系统中,主要采用奇偶校验方法,例如,设置MCS-51单片机为方式2(11位:起始位0、数据位D0~D7、奇偶校验位、停止位1),通过检测接收数据的奇偶性来判断其传翰的数据是否畸变。奇偶校验法简单、快速,但它只能进行数据的奇偶性畸变检测,对于双位畸变则无能为力,可靠度较差。

常见的校验方法还有多重校验、海明校验和CRC校验等。多重校验采用多个校验位检测校验每一组数据中的每一位,具有相当高的可靠性,但由于检验位占据太多的数据流位置,因而通信设备利用率很低。海明校验是奇偶校验与多重校验的折中,通过在数据流中插人一定数量的校验位,通过采取编码、译码与纠错等措施保证通信可靠性,这种方法实现过程复杂,且不能保证实现高可靠性通信。CRC(Cyclic Redundancy Check) 循环冗余校验技术可为MCS-51单片机系统实施高可靠通信设计提供技术支持。CRC转换子程序流程图如图4.3所示。

图4.3 CRC转换子程序流程图

4.3 MCS-51 单片机串行口结构与数据发送

MCS-51 单片机的串行口是一个全双工串行口,在结构上它由两个物理上独立的接收和发送缓冲器SBUF( 共用一个逻辑地址99H)、一个串行口控制寄存器( SCON)、由定时器TI构成的波特率发生器、移位寄存器等部件组成的通用异步收发器(UART),如图4.4所示。

图4.4 单片机串行口结构图

串行口控制寄存器的主要功能是选择串行口的通信方式、发送和接收控制及串行口通信状态的指示。SCON作为特殊功能寄存器之一,它占用内部98H地址,可以进行位寻址。该寄存器各位意义如表4.2所示。

表4.2 寄存器各位意义

1.串行工作方式选择位 (SM0、SM1 )

SCON 寄存器中的SM0和SM1位的不同编码决定串行口的不同工作方式,如表4.3所示。

表4.3 SM0和SM1串口工作方式

(1) 方式0为8位移位寄存器方式。该方式用于I/O 口扩展。在这种方式下, RXD 端可以作为串行数据的输出和输入端,TXD 按osc f /12的速率输出同步移位脉冲。在同步移位脉冲作用下驱动外接的移位寄存器,可以将该串行口扩展为并行输出口或并行输入口。该方式以 8 位数据为一帧,没有起始位和停止位。这种串行口扩展I/O 口方式,可节省单片机本身的I/O 口资源。

(2 ) 方式 1为10位UART 方式。在这种方式下,串行口按串行通信字符格式在发送的8位数据前嵌入一个起始位,在8位数据后嵌入一个停止位,10位作为一帧发送。波特率可按要求设定。接收方以同样方式和波特率接收数据。

(3) 方式2为11位UART 方式。在这种方式下,TB8作为发送的第9位数据,8位数据和第9位TB8 与起始位和停止位,共11位构成一帧。发送的第9位数据 TB 8 是发送8 位( D0~D7 )数据的附加信息位, 在双机通信时它可以代表数据的奇偶性,在多机通信时它可以表明所发的8位数据(D0~D7)是地址信息还是数据信息。第 9 位作为附加信息位与 SM 2 ( 多机通信控制位 ) 配合, 完成多个分机的寻址。第九位数据 TB8在发送前由程序设定。

(4) 方式3与方式2类似。它们之间的区别在于方式3波特率可变, 更适用于要求以某一波特率进行多机通信的场合。

2.允许接收控制位REN

通信的双方在通信前由软件将该位置 1,允许接收。该位清零时禁止接收。

3.发送第9位TB8

该位是工作在方式2和方式3时要发送的第9位数据,根据需要由软件置位或清零。在主从式多机通信时,该位作为标志位,标志所发数据是地址帧(TB 8 =

1)还是数据帧(TB 8 =0),而由分机进行识别接收。在双机通信时,该位也可当做附加奇偶校验位。

4. 接收第9位 RB 8

该位是方式 2 和方式 3 时接收到的第 9 位数据。在方式 1 中,如果接收方 SM 2 =0,则 RB 8 是接收到的停止位。方式 0,不使用 RB 8。

5.发送完毕标志位TI

该位是发送完毕标志。在方式0,发送完第8位后,该位由硬件自动置1。在其他方式时,该位在串行发送有效停止位时置1。该位是由硬件自动置位,由软

件清零。该位置位后作为发送完毕申请串行口中断标志,也可作为软件查询标志。

6.接收完毕标志位RI

该位是接收完毕标志。在方式0中,接收方接收完第9位数据后由硬件将RI 置位;在其他方式中,接收方在接收到有效停止位时将该位置位,由软件清零。该位置位后作为接收完毕申请串行口中断标志。也可作为软件查询标志。SCON 所有位在复位时被清零。

对应的发送子程序流程图如图4.5所示。

图4.5 子程序流程图

4.4仿真代码

由数据采集、CRC编码、发送三个子程序构成本系统的全部程序,总程序流程图如图4.6所示。

图4.6 总程序流程图

根据流程图,编写了相应的代码如下。

ORG 0000H ;初始化程序

SJMP START

ORG 0013H

AJMP INTR1

START: SETB IT1 ;INT1设置为边沿触发SETB EA ;CPU开中断

SETB EX1 ;开外部中断1

MOV DPTR,#0FEF8H ;指向0809的IN0通道

MOVX DPTR,A ;启动A/D转换WAIT:SJMP WAIT ;等待中断

INTR1:MOVX A,DPTR ;将转换结果存入A中

单片机双机之间的串行通信设计

专业方向课程设计报告 题目:单片机双机之间的串行通信设计

单片机双机之间的串行通信设计 一.设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。 二、方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断

方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。 两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。 三、理论设计: 采用AltiumDesigner绘制的原理图(整图)

本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。 本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一 数据的发送过程,然后按照此过程不段循环,直到结束。 晶振电路提供脉冲,加上复位电路,将 EA接入高电电平选择片内程序存储器。 这是一个单片机能够工作的最低设置。

第06章单片机串行通信系统习题解答

第6章单片机串行通信系统习题解答 一、填空题 1.在串行通信中,把每秒中传送的二进制数的位数叫波特率。 2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 fosc/32或fosc/64 。 3.SCON中的REN=1表示允许接收。 4.PCON 中的SMOD=1表示波特率翻倍。 5.SCON中的TI=1表示串行口发送中断请求。 6.MCS-51单片机串行通信时,先发送低位,后发送高位。 7.MCS-51单片机方式2串行通信时,一帧信息位数为 11 位。 8.设T1工作于定时方式2,作波特率发生器,时钟频率为,SMOD=0,波特率为时,T1的初值为 FAH 。 9.MCS-51单片机串行通信时,通常用指令 MOV SBUF,A 启动串行发送。 10.MCS-51单片机串行方式0通信时,数据从引脚发送/接收。 二、简答题 1.串行口设有几个控制寄存器它们的作用是什么 答:串行口设有2个控制寄存器,串行控制寄存器SCON和电源控制寄存器PCON。其中PCON中只有的SMOD与串行口的波特率有关。在SCON中各位的作用见下表: 2.MCS-51单片机串行口有几种工作方式各自的特点是什么 答:有4种工作方式。各自的特点为:

3.MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值 答:串行口各种工作方式的波特率设置: 工作方式O :波特率固定不变,它与系统的振荡频率fosc 的大小有关,其值为fosc/12。 工作方式1和方式3:波特率是可变的,波特率=(2SMOD/32)×定时器T1的溢出率 工作方式2:波特率有两种固定值。 当SM0D=1时,波特率=(2SM0D/64)×fosc=fosc/32 当SM0D=0时,波特率=(2SM0D/64)×fosc=fosc/64 计算定时器的初值计算: 4.若fosc = 6MHz ,波特率为2400波特,设SMOD =1,则定时/计数器T1的计数初值为多少并进行初始化编程。 答:根据公式 N=256-2SMOD ×fosc /(2400×32×12)= ≈243 =F3H TXDA: MOV TMOD,#20H ;置T1定时器工作方式2 MOV TL1,#0F3H ;置T1计数初值. MOV TH1,#0F3H B f B f N OSC SMOD OSC SMOD ??-=???-=384225612322256

两个单片机之间的串行通信

两个单片机之间的串行通信 一、设计要求 在某个控制系统中有U1、U2这两个单片机,U1单片机首先将P1端口指拨开关数据载入SBUF,然后经由TXD将数据传送给U2单片机,U2单片机将接收数据存入SBUF,再由SBUF载入累加器,并输出至P1端口,点亮相应端口的LED。 二、实验所需元器件 三、电路原理图: 两个单片机之间的串行通信电路图

四、程序设计 这两个单片机均工作在半工状态,U1将P1端口的状态通过TXD发半空给U2,而U2接收U1的数据,然后控制P1端口的LED显示。因此,需编写两个不同的程序,其程序流程图如下所示:

五、C语言程序: U1的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char void send(uchar state) { SBUF=state; while(TI==0); TI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; TI=0; TR1=1; ES=1; } void main() { P1=0xff; SCON_init(); while(1) { send(P1); } } U2的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char uchar state; void receive() { while(RI==0) state=SBUF; RI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; RI=0; TR1=1; } void main() { SCON_init(); while(1) { receive(); P1=state; } } 六、调试与仿真:

基于单片机的串口通信模块设计

1 绪论 1.1 研究背景 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用围也将越来越广。本文所介

基于单片机的串行通信发射机设计【开题报告】

毕业设计(论文)开题报告 题目:基于单片机的串行通信发射机设计 专业:电子信息工程 一、选题的背景、意义 随着微机和单片机技术的不断发展,由PC机和多台单片机构成的多机网络监控系统已成为单片机技术发展的一个方向。它结合了单片机在实时数据的采集和微机对图形处理,显示的优点[1]。同时,Windows环境下后台微机在数据库管理上具有明显的优势,二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成以网络为核心的分布或多点系统发展的趋势。但这些单片机的发展方向和趋势的前提必须有一个良好的通信,使得微机能良好的采集单片机传来的数据[2]。 由于串行通信是一种简单、易行可靠的通信方式,所以在工业控制中已被大量采用。在许多工业生产中用哪个计算机对生产过程实行实时监控,对下位机发送来的数据进行实时数据处理,以及控制信号的产生与传输等功能[3]。在这种工业生产的特定环境下,计算机要与过程控制的实时信号相联系,因此要求计算机能实现对串行端口的直接操作。故本设计就是要通过单片机的发送,让PC机能对单片机发送的数据进行接收。 二、相关研究的最新成果及动态 至今,微机与下位单片机的通信发展已经有十几年的历史了,随着越来越成熟的通信技术和控制系统,PC机与下位机的通信已经实现了产品化、工业化[4]。但是越来越多的现实问题对该通信领域的要求越来越高。如便捷问题,无线的通信。 近年来,上位机与下位机的通信领域研究的势头与日俱增,成果也越来越多。现在该通信领域正朝着网络化、便捷化、无线化发展。 网络化就是以一台PC机为核心机对多个下位机进行数据的采集和处理,并发送相应的命令进行控制。如果有需要的话,各个下位机之间也可以形成通信,以方便满足通信的需要。 便捷化,串口通信已经是非常成熟的一种通信方式,但由于是串口形式,必须PC机上要有RS232接口,这样的连接对于以体积为重要指标的笔记本电脑就

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } Love is not a maybe thing. You know when you love someone.

单片机与PC机串口通讯设计

第一章串口通讯的系统组成与原理 1.1 系统组成及通讯原理 1.1.1 系统构成 一、MSP430F149功能简介: 本设计选用的主要芯片为MSP430F149,该单片机属于德州仪器公司MSP430F14X/16X FLASH 系列。该系列是一组工业级超低功耗的微控制器,运行环境温度为-40~+85 摄氏度工作电压范围 1.8~3.6V,MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。由于具有16位RISC(精简指令集)结构,16位寄存器和常数寄存器,MSP430 达到了最大的代码效率。数字控制的振荡器提供快速从所有低功耗模式苏醒到活动模式的能力时间少于6ms。MSP430F149有较高的处理速度,在8MHz 晶体驱动下指令周期为125 ns。另外它带有两个16 位定时器(带看门狗功能)、速度极快的8 通道12 位A/D 转换器(ADC)(带内部参考电压、采样保持和自动扫描功能)、一个内部比较器和两个通用同步/异步发射接收器、48个I/O口(均可独立控制)的微处理器结构。硬件乘法器提高了单片机的性能并使单片机在编码和硬件上可兼容[3]。这些特点保证了可编制出高效率的源程序。 二、系统构成 1、系统框图 系统构成如图1-1所示,由上位机(即工业控制计算机)、通讯接口和下位机3部分组成。上位机选用的是工控机,智能终端由单片机MSP430F149和外围传感器放大电路等构成(本设计部涉及该部分的设计)。单片机与PC 机之间通信方式为串行异步方式(UART),下位机采用中断方式进行与上位机的数据交换,上位机采用按时查询方式对各串口进行读写操作。单片机MSP430要想与PC 串口连接或者其它带有串口的终端设备连接,接口电路部分必须要进行EIA-RS-232-C 与MSP430 电平和逻辑关系的转换[4]。本设计将采用MAX3221芯片,完成3V~5V 电平与串口电平的双向转换。

单片机串行通信发射部分设计

单片机串行通信发射部分设计 摘要:我所做的是单片机串行通信发射机,它能显示数字信号,还能将信号发射出去。采用串行工作方式,能显示00-99的数字,用单片机89C51来控制,采用共阳极数码显示,软件部分由汇编语言编写。 单片机串行通信发射机是用来发射信息,能完成信息准确无误的显示发射,使信息能够在两地之间传递,给人们在通信上带来方便。发射机设计的思路是:由一片单片机来控制信息的发射、存储和显示,用汇编语言编写发射程序和显示程序,使硬件和软件加以结合,完成发射机的设计。 硬件的设计要考虑多方面,以自己设计的目的为出发点,设计合理的方案。发射机需要硬件和软件的配合、补充,软件编写要和接收机达成相同的通信协议,这样才能完成预期的效果。 关键词:单片机,汇编语言,数字信号,发射

The Design of Micro Controller Unit Communication Transmission Depart Abstract: What I do is a Micro Controller Unit correspondence blast-off device, it can show the digital signal, and also can send out the signal .It uses serial-port operating mode, can show the number from 00 to 99, control with a machine 89 C51s, adopt the total anode figures manifestation, the software part from edit collected materials the language plait to write. A Micro Controller Unit correspondence blast-off device is used for sending out the information, it can complete the information accurate without any error of manifestation blast-off to make information delivered between the two sides and bring the convenience on the correspondence to the people.The way of thinking that blast-off device design is controlled the blast-off of information by a machine of one, saving and manifestation, use to edit collected materials the language plait to write to shoot the procedure and the manifestation procedures, make hardware and softwares take into combine, complete the design of blast-off device. The design of the hardware need to consider in many ways,taking the purpose that oneself design as the point of departure to design the reasonable project.The blast-off device need moderate between hardware and software.The software edition want to reach with receiver correspondence protocol of the machine demand hardware, then can complete the anticipant result thus. Key Words : Micro Controller Unit, edit collected materials the language, Datasignal, Transmission

基于51单片机的双机串行通信

机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx : xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 1.51单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

51单片机实现的485通讯程序

51单片机实现的485通讯程序 #ifndef __485_C__ #define __485_C__ #include #include #define unsigned char uchar #define unsigned int uint /* 通信命令*/ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲区长度 #define __ERRLEN 12 // 任何通信帧长度超过12则表示出错uchar dbuf[__MAXSIZE]; // 该缓冲区用于保存设备状态信息uchar dev; // 该字节用于保存本机设备号 sbit M_DE = P1^0; // 驱动器使能,1有效 sbit M_RE = P1^1; // 接收器使能,0有效

void get_status(); // 调用该函数获得设备状态信息,函数代码未给出 void send_data(uchar type, uchar len, uchar *buf); // 发送数据帧 bit recv_cmd(uchar *type); // 接收主机命令,主机请求仅包含命令信息 void send_byte(uchar da); // 该函数发送一帧数据中的一个字节,由send_data()函数调用void main() { uchar type; uchar len; /* 系统初始化*/ P1 = 0xff; // 读取本机设备号 dev = (P1>>2); TMOD = 0x20; // 定时器T1使用工作方式2 TH1 = 250; // 设置初值 TL1 = 250; TR1 = 1; // 开始计时 PCON = 0x80; // SMOD = 1 SCON = 0x50; // 工作方式1,波特率9600bps,允许接收 ES = 0; // 关闭串口中断 IT0 = 0; // 外部中断0使用电平触发模式 EX0 = 1; // 开启外部中断0

单片机双机之间的串行通信设计

单片机双机之间的串行通 信设计 Prepared on 24 November 2020

专业方向课程设计报告题目:单片机双机之间的串行通信设计单片机双机之间的串行通信设计 一.设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。 二、方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。 两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护

单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。 三、理论设计: 采用AltiumDesigner绘制的原理图(整图) 本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。 本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一数据的发送过程,然后按照此过程不段循环,直到结束。 单片机最小系统:接上电源和地,

CPLD与单片机串行通信

CPLD与单片机串行通信 一、实验目的 1、了解单片机串口的构成及原理。 2、掌握单片机串口数据接收和发送原则。 3、掌握UART设计方法。 4、掌握用定时/ 计数器设置波特率的方法。 5、掌握EDA自顶向下的设计方法。 二、实验任务 通过VHDL语言和C51语言的编程,设计完成CPLD和AT89S51(AT89S52)的串行通信,首先让单片机处于串行发送状态,单片机每一秒向CPLD发送八位数码管阳码从0--9,CPLD进行接受并送显示,让数码管一秒显示一个数字,当显示显示到9后,单片机停止发送,CPLD自动的转向发送状态向单片机发送LCD12232F所能识别的液晶码,每0.1秒发送一次,单片机接受并送显示,每0.1秒显示一个字符,每0.2秒显示一个汉字,使液晶的第一行显示“串口通信成功”。 三、实验原理 1、简易通用异步收发机(UART)设计原理: (1)首先是是波特率的设置,由于单片机选择1模式可以设置的最大波特率是 62.5kHz,所以CPLD的波特率也是设置此值,并采用此波特率的4倍 250kHz进行采样并判断.采样的原则,进行4次的采样,如果中间两位是一致的,就认定此值为正确的可以接收;否则丢弃,重新采样。再采样之 前要对单片机发来的信号进行同步平滑处理,消除毛刺,使用于采样的信 号更加的稳定。采样可以采用16倍采样,这样采样更加的精确,在此为了节省硬件资源所以采用4倍采样。 (2)无论接收还是发送对是采用的循环结构,每发送完8位数据就重新回到发送其实点,重新赋初值进行下一轮的发送,直到发送完成。接收时,也一 样接收8位,回到起点重新接收下8位,依次循环接收。 (3)由于采用4倍速率的接受(发送)方式,因此在拨特率一致方面要特别注意,每一次状态转换也要一个时钟周期,一定要计算在内,这样才能使拨特率完全同步。 2、单片机串口设置原理: 四、实验模块电路图及引脚分配 1、CPLD模块电路图: 2、单片机模块电路图: 3、LCD12232F模块电路图: 4、数码管模块电路图: 5、引脚分配: 五、实验步骤

单片机串口通信C程序及应用实例

一、程序代码 #include//该头文件可到https://www.doczj.com/doc/aa17583403.html,网站下载#define uint unsigned int #define uchar unsigned char uchar indata[4]; uchar outdata[4]; uchar flag; static uchar temp1,temp2,temp3,temp; static uchar R_counter,T_counter; void system_initial(void); void initial_comm(void); void delay(uchar x); void uart_send(void); void read_Instatus(void); serial_contral(void); void main() { system_initial(); initial_comm(); while(1) { if(flag==1) { ES = 0; serial_contral(); ES = 1; flag = 0; } else read_Instatus(); } } void uart_send(void) { for(T_counter=0;T_counter<4;T_counter++) { SBUF = outdata[T_counter]; while(TI == 0);

TI = 0; } T_counter = 0; } uart_receive(void) interrupt 4 { if(RI) { RI = 0; indata[R_counter] = SBUF; R_counter++; if(R_counter>=4) { R_counter = 0; flag = 1; } } } void system_initial(void) { P1M1 = 0x00; P1M0 = 0xff; P1 = 0xff; //初始化为全部关闭 temp3 = 0x3f;//初始化temp3的值与六路输出的初始值保持一致 temp = 0xf0; R_counter = 0; T_counter = 0; } void initial_comm(void) { SCON = 0x50; //设定串行口工作方式:mode 1 ; 8-bit UART,enable ucvr TMOD = 0x21; //TIMER 1;mode 2 ;8-Bit Reload PCON = 0x80; //波特率不加倍SMOD = 1 TH1 = 0xfa; //baud: 9600;fosc = 11.0596 IE = 0x90; // enable serial interrupt TR1 = 1; // timer 1 RI = 0; TI = 0; ES = 1; EA = 1; }

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

毕业设计_单片机串行通信发射机资料

1 绪论 我所做的单片机串行通信发射机主要在实验室完成,参考有关的书籍和资料,个人完成电路的设计、焊接、检查、调试,再根据自己的硬件和通信协议用汇编语言编写发射和显示程序,然后加电调试,最终达到准确无误的发射和显示。在这过程中需要选择适当的元件,合理的电路图扎实的焊接技术,基本的故障排除和纠正能力,会使用基本的仪器对硬件进行调试,会熟练的运用汇编语言编写程序,会用相关的软件对自己的程序进行翻译,并烧进芯片中,要与对方接收机统一通信协议,要耐心的反复检查、修改和调试,直到达到预期目的。 单片机串行通信发射机采用串行工作方式,发射并显示两位数字信息,既显示00-99,使数据能够在不同地方传递。硬件部分主要分两大块,由AT89C51和多个按键组成的控制模块,包括时钟电路、控制信号电路,时钟采用6MHZ晶振和30pF的电容来组成内部时钟方式,控制信号用手动开关来控制,P1口来控制,P2、P3口产生信号并通过共阳极数码管来显示,软件采用汇编语言来编写,发射程序在通信协议一致的情况下完成数据的发射,同时显示程序对发射的数据加以显示。 毕业设计的目的是了解基本电路设计的流程,丰富自己的知识和理论,巩固所学的知识,提高自己的动手能力和实验能力,从而具备一定的设计能力。 我做得的毕业设计注重于对单片机串行发射的理论的理解,明白发射机的工作原理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。本课题的重要意义还在于能在进一步层次了解单片机的工作原理,内部结构和工作状态。理解单片机的接口技术,中断技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来做有效的设计。 我的毕业设计分为两个部分,硬件部分和软件部分。硬件部分介绍:单片机串行通信发射机电路的设计,单片机AT89C51的功能和其在电路的作用。介绍了AT89C51的管脚结构和每个管脚的作用及各自的连接方法。AT89C51与MCS-51兼容,4K字节可编程闪烁存储器,寿命:1000次可擦,数据保存10年,全静态工作:0HZ-24HZ,三级程序存储器锁定,128*8位内部RAM,32跟可编程I/O线,两个16位定时/计数器,5个中断源,5个可编程串行通道,低功耗的闲置和掉电模式,片内震荡和时钟电路,P0和P1 可作为串行输入口,P3口因为其管脚有特殊功能,可连接其他电路。例如P3.0RXD作为串行输出口,其中时钟电路采用内时钟工作方式,控制信号采用手动控制。数据的传输方式分为单工、半双工、全双工和多工工作方式;串行通信有两种形式,异步和同步通信。介绍了串行串行口控制寄存器,电源管理寄存器PCON,中断允许寄存器IE,还介绍了数码显示管的工作方式、组成,共阳极和共阴极数码显示管的电路组成,有动态和静态显示两种方式,说明了不同显示方法与单片机的连接。再后来还介绍了硬件的焊接过程,及在焊接时遇到的问题和应该注意的方面。硬件焊接好后的检查电路、不装芯片上电检查及上电装芯片检查。软件部分:在了解电路设计原理后,根据原理和目的画出电路流程图,列出数码显示的断码表,计算波特率,设置串行口,在与接受机设置相同的通信协议的基础上编写显示和发射程序。编写完程序还要进行编译,这就必须会使用编译软件。介绍了编译软件的使用和使用过程中遇到的问题,及在编译后烧入芯片使用的软件PLDA,后来的加电调试,及遇到的问题,在没问题后与接受机连接,发射数据,直到对方准确接收到。在软件调试过程中将详细介绍调试遇到的问题,例如:通信协议是否相同,数码管是否与芯片连接对应,计数器是否开始计数等。 我所设计的单片机串行接口现在已经发展到无线收发的阶段,本文参考无线发射

基于单片机的双机串行通信

河南机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx 姓名: xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

51单片机与上位机串口通信程序设计

51单片机与上位机串口通信程序设计 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #include< reg51.h> #include< stdio.h> #include< string.h> #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/ unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ; void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收 PCON=0x00; ES=1;

TMOD=0x21; //定时器工作于方式2,自动装载方式TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break; case 0x04 :printf("D"); TI=0;break; default :printf("fg"); TI=0;break; } }

基于单片机的串行通信发射机的设计与实现毕业设计

武汉工程大学邮电与信息工程学院 毕业设计(论文) 基于单片机的串行通信发射机的 设计与实现 Design and Implementation based on Serial Communication Transmitter

作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: ____年___月___日

摘要 在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。因此串行发射应用愈来愈广泛。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在设备间交换信息,但传输速度较低。故串行通信在低速率、长距离通信上非常适用。而串行通信发射机是串行通信中极为重要的基础。 本设计中ADC0809将采集到的模拟信号转换成数字信号后传送至单片机,在单片机通过编程方式来增加CRC-8(8位循环冗余码校验)校验码以加强数据可靠性,最后单片机再把采集到的数据和校验码通过一个无线发送器以串行通信的方式发送出去。 本论文共分为六个章节。第1章简要阐述了课题的研究背景及意义,并对串行通信发射机做了相关介绍;第2章介绍了系统的任务分析和设计方案;第3章主要介绍了系统的电路设计及所需设备及芯片;第4章对串行通信发射机的软件部分做了详细论述,并给出软件设计流程;第5章分析了系统测试过程及结果;第6章总结了全文并对课题的发展前景做了展望。 关键词:单片机;CRC-8;串行通信

相关主题
文本预览
相关文档 最新文档