1、单片机原理及接口技术课程设计报告设计题目:两个单片机通信,甲乙可以相互控制学 号:姓 名:指导教师:信息与电气工程学院二零一四年六月单片机串口通信设计单片机行业已经有了很久的历史,随着科学技术的进步和社会的发展,单片机行业更加迅速的发展起来。不论在工业还是民也上都有很好的发展和应用,得到大家很好的认可和高度的评价。单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。主要有五种类型,串行通信接口、并行通信接口、USB 接口、现场总线接口以及以太网接口。串行通信按同步方式可分为异步通信和同步通信两种基本通信方式。它是在数字化的基础上用微处理器装备起来,是计算机技术与电子仪
2、器相结合的产物。它具有数据存储、运算、逻辑判断能力,能根据被测参数的变化自选量程,可自动校正,自动补偿,自寻故障等,可以做一些需要人类的智慧才能完成的工作,既具备了一定的智能,故称为智能仪器。人们习惯将这种内含微型计算机并带有 GP-IB 等通信接口的电子仪器称为智能仪器。1. 设计任务结合实际情况,基于 AT89C51 单片机设计一个两个单片机通信系统。该系统应满足的功能要求为:(1) 统一用 Proteus 软件进行仿真,统一用 C 语言编程,并且每段程序必须要有注解;硬件仿真图必须准确无误,作图规范;(2) 单片机任意选择,但必须是 51 或者 AVR 中的一种;(3) 甲机控制乙机的
3、LED 亮灭,同时乙机控制甲机的 LED 亮灭。主要硬件设备:AT89C51 单片机、拨码开关、LED 灯、11.0592M 晶振、若干电容和电阻。2. 整体方案设计基本功能:两片单片机之间进行串行通信,发送端将 0f 循环发送到接收端,并在接收端显示。原理图:复位电路复位电路单片机乙TXDRXD单片机甲RXDTXDP1 口 LED 显示P0 口 LED显示对 P1 口进行输入晶振电路晶振电路2.1.数据传输方案比较与选择在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可采用三种方案。1)方案一:单工制式单工制式是指甲乙双方通信只能单向传送数据。单工制式如图 2图 2-1-1
4、 单工制式2 )方案二:半双工制式半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图 3图 2-1-2 半双工制式对 P2 口进行输入发送器 A 发送器 BA 端发送接送B 端发送接收3)方案三:全双工制式全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工制式如下图 4:图 2-1-3 全双工制式因此,本课设采用方案三全双工制式3. 系统硬件电路设计3.1.时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就
5、是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在 MCS-51 芯片内部有一个高增益反相放大器,其输入端为芯片引脚 X1,输出端为引脚 X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用 11.0592MHz 的石英晶体。时钟电路如下图 5图 3-1 时钟电路3.2 复位电路复位是单片机的初始化操作,进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST 引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续
6、 24 个振荡周期(即 2 个机器周期)以上,若使用频率为 12MHz 的晶A 端发送接送B 端接收发送振,则复位信号持续时间应超过 4 s 才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的。在本设计中采用了按键电平方式如下图 6。 图 3-2 按键电平的连接方式3.3 单片机串行通信功能51 单片机的串行接口是一个全双工的接口,它可以作为 UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51 单片机串行接口的结构如下:图 3-3 51 单片机串行接口的
7、结构(1)数据缓冲器(SBUF)接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用同一直接地址 99H,发送时用指令将数据送到 SBUF 即可启动发送;接收时用指令将 SBUF 中接收到的数据取出。(2)串行控制寄存器(SCON)SCON 用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0 SM1 SM2 REN TB8 RB8 TI RISM0,SM1:串行接口工作方式选择位,串行接口工作方式可有以下四种工作方式:SM0 SM1 工作方式 功能 波特率0 0 0 8 位同步移位寄存器(用于 I/O 扩展)fORC/120 1 1 10 位异步串行通信(
8、UART)可变(T1 溢出率*2SMOD/32)1 0 2 11 位异步串行通信(UART)fORC/64 或 fORC/321 1 3 11 位异步串行通信(UART)可变(T1 溢出率*2SMOD/32)定时器 TI 溢出率=(fosc/12)*(1/(2k-初值)) 式中 T1 计数率= fORC/12, (2k-初值)为生溢产出所需机器周期数,K 为定时器位数,与定时器设定工作方式有关:方式 0 时 K=13;方式 1 时 K=16;方式 2 时 K=8。SM2:多机通信控制位。主要用于方式 2,3.当 SM2=1 时可以利用收到的 RB8来控制是否激活 RI(RB8=1 时收到数据进
9、入数据缓存器,并激活 RI 在中断服务中将数据读走;RB8=0 时受到信息丢弃) ;当 SM2=0 时均可以将数据送入缓存器,并激活 RI。REN:接收允许控制位。软件置 1 允许接收;软件置 0 禁止接收。TB8:方式 2 或 3 时,TB8 为要发送的第 9 位数据,根据需要由软件置 1 或清 0,可以用作数据奇偶效验位,或在多机通信中作地址帧/数据帧标志位。RB8:在方式 2 或 3 时,RB8 位接收到的第 9 位数据,实际为主机发送的第9 位数据 TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要
10、软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8 位数据全移入后,再并行送入接收 SBUF 中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51 系列单片机用定时器 T1 作为波特率发生器,T1 设置在定时方式。波特率是用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟调制信号变化的次数。(5)电源控制寄存器 PCON其最高位为 SMOD 即波特率倍增位,当 SMOD=1 时波特率提高一倍,复位时,SMOD=0。3.4 输出接 LED 灯图 3-43.5.由拨码开关控制输入图 3-53.6.总体硬件图4. 系统程序设计4.1 主程序流程图(1)发送端程序流程图主程序开始从机是否回答BBH?程序初始化主机发送 AAHN主机发送数据,检验和输出完成?N清除标志位图 4-1 发送端程序流程图