《单片机串行通信协议设计毕业设计.doc》由会员分享,可在线阅读,更多相关《单片机串行通信协议设计毕业设计.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 龙岩学院函授本科毕业设计单片机串行通信协议设计 专 业:电子信息技术班 级:09级本科电子班姓 名: 指导老师: 完成日期:2012年4月20日目 录1. 单片机概述 (2)1.1 AT89C51单片机简介(4)2.单片机的串行接口 (7)2.1 MCS-51的串行和控制寄存器 (7)3.串行通讯技术及硬件基本组成 (9) 3.1 硬件的基本组成: (9)3.2 串行通信原理 (9) 3.3 双机通信连接方法 (10)参考文献 (11)第11页1. 单片机概述1.1 AT89C51单片机简介AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦
2、写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。图1.1 单片机AT89C51主要性能参数:与MCS-51产品指令系统的全兼容 4k字节可重擦写Flash闪速存储器1000次可擦写周期全静态操作:0Hz-24MHz三级加密程序存储器1288字节内部RAM 32个可编程I/O口线2个16位定时/计数器6个中断源可编程串行UART通道低功耗空闲和掉
3、电模式 1.4.1 AT89C51功能特性描述:AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。(1) AT89C51引脚功能说明:Vcc:电源电压GND:地P0口:PO口是一组8位漏极开路行双向I/O口,也
4、既地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。P1口:P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(I)。Flash编程和程序
5、校验期间,P1口接收8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高地址和其他控制信号
6、。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表1.2所示:P3口还接收一些用于Flas 闪速存储器编程和程序校验的控制信号图1.2 AT89C51方框图RST:复位输出。当震荡器工作时,RST引脚出现两个机器周期以上高电平使机器复位。 ALE/当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访
7、问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。要注意的是:每次访问外部存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还要输入编程脉冲()。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。:程序存入允许()输出的是外部程序存储器的读选通信号,当表1.3 AT89C51端口AT89C51由外部程序取指令(或数据)时,每个机器周期两次有效,既输出两个脉冲。在此期间,当访问
8、外部数据存储器,这两次有效的信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。XTAL1:震荡器反向放大器及内部时钟的输入端。XAAL2:震荡器反向放大器的输出端。时钟震荡器:AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。 图1.4 内部震荡电路 图1.5 外部震荡电路由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部 寄存器内容寄存器内容PC0000HTMOD00HACC00HTCOM00HB00HTH000HPSW00HT
9、LO00HSP07HTH100H0DPTR0000HTH100HP1P30FFHSCON00HIPxxx00000SBUF不定IE0xxx00000PCON0xxx00000表1.6 AT89C51寄存器时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。Flash闪速存储器的编程:AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储存储阵列出厂时已处于擦除状态(既所有存储单元的内容均为FFH),用户随时可对其进行编程。程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,适用与用户在线编程系统。而高电
10、平模式可与通用EPROM编程程序兼容。编程方法:编程前需设置好地址、数据及控制信号,编程单元的地址就、加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置见表。PSEN为低电平,RST保持高电平,EA/Vp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)编程时可采用420MHz的时钟震荡器AT89C51的编程方法如下:1.0 在地址线上加上要编程单元的地址信号。1.在数据线上加上要写入的数据字节。2.激活相应的控制信号。3.在高电压编程时,将EA/Vpp端加上
11、+1V编程电压。4.每对Flash存储阵列写入一个字节,加上一个ALE/PROG编程脉冲。(2) AT89C51控制信号RST/VPD(9脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1P3口输出高电平,初始值07H写入堆栈指针SP、清0程序计数器PC和其余特殊功能寄存器,但始终不影响片内RAM状态,只要该引脚保持高电平,89C51将循环复位,RAT/VPD从高电平到低电平单片机将从0号单元开始执行程序,另外该引脚还具有复用功能,只要将VPD接+5V备用电源,一旦Vcc电位突然降低或断电,能保护片内RAM中的信息不丢失,恢
12、复电后能正常工作。AT89C81通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关如图所示:图1.7 手动开关手动开关未按下之前,电容正极处于家电状态,当按键按下去后,VCC与GND导通,电容放电,从而实现放电。2 单片机的串行接口2.1 MCS-51的串行和控制寄存器2.2.1 串行口和控制寄存器MCS-51单片机串行口专用寄存器结构如图所示。A:串行通信寄存器在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:表2.1 寄存器SCON结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB
13、8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H表2.1 SCON寄存器结构下面我们对个控制位功能介绍如下:(1)SM0、SM1:串行口工作方式控制位 SMO SM1 工作方式 功能说明 0 0 方式0 移位寄存器方式(用于I/O扩展) 0 1 方式1 8位UART,波特率可变(T1溢出率/ n) 1 0 方式2 9 位UART,波特率为fosc/64或fosc/321 1 方式3 9位UART,波特率可变(T1溢出率/ n) (2)SM2:多机通信控制位多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作方式2或3,以及SM2=1时,只有
14、当接收到第9位数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。TB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始
15、时置“1”。必须由软件清“0”。RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1”B:特殊功能寄存器PCONPCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表: PCOND7D6D5D4D3D2D1D0位符号SMODGF1GF0PDIDL表1.2 特殊功能寄存器PCON在CHMOS型单片机中,除SMOD位外其它位均为虚设的,SMOD是串行波特率倍增位,当SMOD=1时串行口波特率加倍,系统复位默认为SMOD=0。C:中断允许寄存器IE中断允许寄存器这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES
16、=0,禁止串行中断。2.2.2 串行口工作方式串行口具有4种工作方式,我从应用和毕业设计的角度,重点讨论方式1发送。串行口定义为方式1时传送1帧数据为10位,其中1位起始地址、8位数据位(先低位后高位)、1位停止位方式1的波特率可变,波特率=(T1的溢出率)符号EAESET1EX1ETOEX0位地址AFHAEHADHACHABHAAHA8HA8H表2.3 中断允许寄存器3.串行通讯技术及硬件基本组成3.1硬件的基本组成:单片机89C52、11.059M晶震、30pF电容、22uf/10V电容、1K电阻、MAX232转换器,DB9接口,按键。3.2串行通信原理所谓“串行通信”是指外设和计算机间或
17、者两台计算机之间使用了数据线、控制线和地线进行连接,数据在数据线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。图3.1 串行通信的示意图3.3双机通信连接方法对于DB-9串口,3线连接法只使用电缆中的3条线,一条作为信号地线,一条作为发送线,一条作为接收线。在连接这种电缆时需要注意,电缆中的发送线和接收线需要交叉,也就是说,一台计算机的RS-232发送引脚需要和另一台计算机的RS-232发送引脚相连,连接方法见图3.2所示。图3.2硬件连接图参考文献1 薛晓书.单片微机原理及接口技术.西安.西安石油大学 2002.32 黄智伟 朱卫华.单片机与嵌入式系统应用.南京.南华大学.2005.33 付浩 AT89C51单片机高速串行输出口设计.淮阴.淮阴师范学院 2004.104张有德.单片机原理应用与实验.上海:复旦大学出版社,19915高鹏。Protel入门与提高。北京:人民邮电出版社,2000 6李玉梅.基于MC5-51系列单片机原理的应用设计.北京:国防工业出版社,2006.57李群,肖看.单片机原理,接口及应用-嵌入式系统技术基础。北京:清华大学出版社,2005