您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子技术课程设计,双机通信
电子技术课程设计题目:双机串行通信系统设计学院计算机与通信工程学院专业通信工程2014年4月20日星期日目录摘要………………………………………………………………………………………1一总体设计……………………………………………………………………………21设计要求……………………………………………………………………………22设计方案……………………………………………………………………………2二硬件设计……………………………………………………………………………2151单片机串行通信功能…………………………………………………………22AD0808芯片………………………………………………………………………63整体电路设计………………………………………………………………………7三软件设计……………………………………………………………………………81串行通信软件实现…………………………………………………………………82程序流程图…………………………………………………………………………9四联合调试……………………………………………………………………………11五设计小结……………………………………………………………………………12六附录…………………………………………………………………………………121程序……………………………………………………………………………………132参考文献………………………………………………………………………………201摘要串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机串行通信。由ADC0808将模拟的滑动变阻器电压值转换成数字量,通过LED灯点亮表明电压值的极值并由数码管进行显示。串行通信特点是传输线少,通信线路简单,通信速度慢,成本低,适合长距离通信。关键词:51单片机,串行通信,数模转换2一:总体设计1.设计要求:两个单片机串行通信。“主机”连接ADC0808将模拟的滑动变阻器电压值转换成数字量,并通过LED灯点亮表明电压值的极限值。“从机”对数码管的电压值进行显示。2.设计方案:本次设计,对于两片AT89C51,采用串口进行通信。以“主机”为例发送方的数据由串行口TXD段输出,经过传输线将信号传送到接收端RXD。“主机”P0口作为8位数据口连接ADC0808芯片,START,OE,EOC分别与P1口5,6,7引脚连接。CLOCK与P3.4引脚连接,ALE与START连接,IN0连接滑动变阻器的滑动段。二、硬件设计1.51单片机串行通信功能AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3图1.AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直4接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2)串行控制寄存器(SCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表SM0SM1工作方式功能波特率0008位同步移位寄存器(用于I/O扩展)fORC/120118位异步串行通信(UART)可变(T1溢出率*2SMOD/32)1029位异步串行通信(UART)fORC/64或fORC/321139位异步串行通信(UART)可变(T1溢出率*2SMOD/32)SM2:多机通信控制位。REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器PCON5其最高位为SMOD。(6)波特率计算当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率=fORC/12。产生溢出所需机器周期数=模M-计数初值X。(7)定时器/计算器1寄存器及控制位:A:寄存器,控制位:(a)方式寄存器TMOD用于设定定时器/计数器T0和T1的工作方式。它的字节地址为89H。如下格式:GATEC/TM1M0GATEC/TM1M0定时器1定时器0其中:M1,M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择。工作方式选择如下:M1M0工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只T0有)C/T为定时或计数方式选择位。当C/T=1时工作方式于计数方式;当C/T=0时于定时方式。GATE为门控位,GATE=1时,定时器/计数器T0的启动还受芯片外部中断请求信号引脚P3.2和P3.3的控制,引脚为高电平才开始启动计数;如果GATE=0.定时/计数器的启动与外部中断请求信号与引脚P3.2,P3.3无关。(b)控制寄存器TCON:控制寄存器TCON用于控制定时/计数器的启动与溢出,它的字节地址为88H,可以进行位寻址,各位的格式如下:TF1TR1TF0IE1IT1IE0IT0TF1:为定时器/计数器T1的溢出标志位,当定时/计数器T1计满时,由硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬件电路自动清除。TR1:为定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时启动,TR1=0时停止。(8)串行工作方式:6当SM0和SM1为01时工作于方式1。方式1为8位异步通信方式。在方式1下,一桢信息为10位:1位起始位,8位数据位和1位停止位。TXD为发送数据,RXD为接收数据端。波特率可变,由定时/计数器T1的溢出率和电源控制寄存器PCON中SMOD位决定:波特率=T1溢出率*2SMOD/32。因此在方式1时,需要对定时/计数器T1进行初始化。A:发送方式:在T1=0时,当CPU执行一条向SBUF写数据指令时,就启动了发送过程。数据由TXD引脚送出,发送时钟由定时/计数器T1送来的溢出信号经过16分频或32分频后得到。在发送时钟作用下,先通过TXD端送出一个低电平的起始位,然后是8位数据,其后是一个高点品的停止位。当一桢数据发送完毕后,由硬件使发送中断标志TI置位,向CPU申请中断,完成一次发送过程。B:接收过程:当允许接收控制REN被置1,接收器就开始工作,由接收器以所选波特率的16倍速率对RXD引脚的电平进行采样。当采样从“1”到“0”的负跳变时,启动接收控制器开始接收数据。在接收移位脉冲的控制下依次把所有接收数据移入移位寄存器。当8位数据及停止位全部移入后,根据一下状态,进行响应操作:(a):如果RI=0,SM2=0,接收控制器发出“装载SBUF”的信号,将输入移位寄存器中的8位数据装入接收数据寄存器SBUF中,停止位装入RB8中,并置RI=1,向CPU申请中断。(b):如果RI=0,SM2=1,只有停止位为“1”,所接收的数据不装入SBUF,数据将会丢失。(c):RI=0,SM2=1且停止位为“0”,所接收数据在任何情况下都不会装入SBUF,即数据丢失。(d):如果RI=1,则所接收控制器都将继续采样RXD引脚,以便接收下一帧信息。2.ADC0808芯片ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。8、14、15和17~21:8位数字量输出端。722(ALE):地址锁存允许信号,输入,高电平有效。6(START):A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。7(EOC):A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+))和16(VREF(-)):参考电压输入端。11(Vcc):主电源输入端。13(GND):地。23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路。3.整体电路设计最终设计电路如下图2所示,通过改变与ADC0808芯片连接的滑动变阻器的电压值,并进行数模转换后“主机”串口传输。“发送方”的数据由串行口TXD段输出,经过传输线将信号传送到“接收方”接收端RXD。“从机”接收后,通过与P2口连接的共阳极数码管显示电压值。如果电压值为滑动变阻器两端较大或较小值,与“主机”P1口连接的LED灯被点亮8图2元器件清单如表:CategoryQuantityReferenceValueIntegratedcircuits2U1,U3AT89C51Integratedcircuits2D1,D2LED-BIRYIntegratedcircuits1RV1POT-HGIntegratedcircuits1U2ADC0808三、软件设计1.串行通信软件实现(1)初始化:串行口
本文标题:电子技术课程设计,双机通信
链接地址:https://www.777doc.com/doc-2210418 .html