串口通信技术的实现单片机课程设计_第1页
串口通信技术的实现单片机课程设计_第2页
串口通信技术的实现单片机课程设计_第3页
串口通信技术的实现单片机课程设计_第4页
串口通信技术的实现单片机课程设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1单片机简介如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段。第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS–48为代表。MCS–48的推出是在工控领域的控索,参与这一控索的公司还有Motorola、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,―单机片‖一词即由此而来。第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS–48基础上推出了完善的、典型的单片机系列MCS–51。第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS–96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS–51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。2硬件设计2.1整体设计在PC系统中都装有异步通信适配器,利用它可以实现异步串行通信。适配器的核心元件是可编程的intel8251芯片,它使PC有能力与其他具有RS-232标准的接口的计算机或设备进行通信,而MCS-51单片机本身具有一个双全工的串行口,因此只要配上电平转换电路就可以和RS-232接口组成一个简单的通信通道。简单的PC与单片机通信只要3根线就可以了,单片机的TXD、RXD与PC的RXD、TXD分别相连,连接地线。由于51系列单片机的串行口使用的是TTL电平,因此在PC和单片机间要有RS-232电平转换电路,图1所示为PC与单片机的通信图。C5189TXD232电平转换RXD2串行口PCRXDRXD3GNDGND5图2.1PC机与单片机的通信图2.2单片机选择2.2.1AT89C51AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机。片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为提供许多高性价的应用场合,可灵活的应用于各种控制领域。图2.2.1单片机AT89C512.2.2AT89C51功能特性描述AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。2.2.3AT89C51引脚功能说明Vcc:电源电压GND:地P0口:PO口是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。P1口:P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。RST:复位输出。当震荡器工作时,RST引脚出现两个机器周期以上高电平使机器复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。PSEN:程序存入允许(PSEN)输出的是外部程序存储器的读选通信号。EA/VPP:外部访问允许。·XTAL1:震荡器反向放大器及内部时钟的输入端。XAAL2:震荡器反向放大器的输出端。2.2.4AT89C51的串行接口AT89C51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:表表1寄存器SCON结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H图2.2.4.1SCON寄存器结构特殊功能寄存器PCON,主要是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表:PCONPCOND7D6D5D4D3D2D1D0位符号SMODGF1GF0PDIDL图2.2.4.2特殊功能寄存器PCON2.2.5串行口工作方式的选择波特率(BoudRate)就是在串口通信中每秒能够发送的位数。MSC-51串行端口在四种工作模式下有不同的波特率计算方法。其中,模式0和模式2波特率计算很简单;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。在此模式下波特率计算公式为:波特率=(1+SMOD)*晶振频率/(384*(256-TH1))其中,SMOD——寄存器PCON的第7位,称为波特率倍增位;TH1——定时器的重载值。在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。2..3、RS-232简介2.3.1RS-232电平转换器—MAX232图2.3.1RS-232电路RS-232规定了自己的电气标准,由于它是在TTL电路之前研制的,因此它的电平不是+5V和地,而是采用负逻辑,即逻辑“0”:+5V~—5V,逻辑“1”:—5V~—15V。因此RS-232不能和TTL电平直接相连,必须进行电平转换。本设计选用MAX232。管脚说明如下①C0+、C0-、C1+、C1-是外接电容端;②R1IN、R2IN是2路RS-232C电平信号接收输入端;③RlOUT、R2OUT是2路转换后的TTL电平接收信号输出端,送8051的RXD接收端;④TlIN、T2IN是2路TTL电平发送输入端,接8051的TxD发送端;⑤TlOUT、T2OUT是2路转换后的发送RS-232C电平信号输出端,接传输线;⑥V+经电容接电源+5V;⑦V-经电容接地。2.3.2RS-232的接口信号RS-232规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线。常用的只有9根,它们是:2个数据信号:发送TXD;接收RXD。1个信号地线:SG。6个控制信号:DSR;数传机(即modem)准备好,DataSetReady.DTR;数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,DataTerminalReady。RTS;DTE请求DCE发送(RequestToSend)。CTS;DCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。DCD;数据载波检出,DataCarrierDetection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。RI;振铃信号Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。3数码显示管要用单片机构成发射机,就需要一个人机界面。常采用的方式是LED数码管显示测试结果,用一个小键盘执行某些功能,如请零、预置值、改变测量范围等。3.1LED显示器的工作原理LED显示是用发光二极管显示字段的显示器件,也可称为数码管,其外形结构如图所示,由图可见它由8个发光二极管构成,通过不同的组合可用来显示0~9、A~F及小数点。图3.1.1“8”字型数码管LED显示器分为共阴极和共阳极,共阴极是将8个发光二极管阴极连接在一起作为公共端,而共阳极是将8个发光二极管的阳极连接在一起作为公共端。我们这次就是采用的共阳极LED,所以这里要介绍共阳极数码管。如图所示,LED显示器有静态和动态显示两种方式,静态显示是将共阴极联到一起接地,每位的显示段(a-dp)分别与一个8位的锁存器输出相连。由于显示的各位可以相互独立,各位可以互相显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。并且由于各位由一个8位锁存器控制段选线,故在同一时间内每一位显示的字符可以不同。7777H01110111a7CH01110111b39H00111001c5EH01011110d79H01111001e71H01110000f图3.1.2段码与字型的关系这种方式占用锁存器较多。动态显示是将所有位的段选线相应的并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的阴极分别由相应的I/O口控制,实现各位的分时选通。要LED能够显示相应的字符,就必须采用动态扫描方式,只要每位显示的时间足够短,则可造成多位同时显示的假象,达成显示的目的。在数字电路中常常要把数据或运算结果通过半导体数码管、液晶数码和荧光数码管,用十进制数显示出来。发光二极管的工作电压为1.5-3.0伏,工作电流为己毫安到几十毫安,寿命很长。半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图所示,选择不同的字段发光,可显示出不同的字型。例如:当a,b,c,d,e,f,g七个字段同时亮时,显示8,a,b,c段亮时显示出1。3.2原理图图3.2数码管原理图4软件编程及调试双方约定:波特率为2400bit/s,通信格式为8个数据位,一个停止位,无奇偶校验位。4.1单片机通讯软件单片机通过中断方式接收PC机发送的数据,并回送。根据信息格式,可以设定单片机的串行口工作在方式1。在串行口方式1中,波特率是由定时器T1产生的。如晶振为6MHZ,波特率为2400bit/s,这时T1工作在方式2(自动重新装入初值)。经计算,T1的初始值应为F3H,SMOD=1。程序框图如图所示:图4.1.1程序流程图图4.1.2图4.1.2中断服务子程序流程图程序设计如下:ORG0000HLJMPSTART;主程序入口ORG0023HLJMPINTS;串行口中断入口ORG0100HSTART:MOVTMOD,#20H;初始化定时器1为方式2MOVTL1,#0F3H;与2400波特率相应的定时器初值MOVTH1,#0F3HSETBTR1;启动定时器1MOVSCON,#50H;串行口工作在方式1,允许接收MOVPCON,#80H;SMOD=1SETBEA;开串行口中断SETBES;允许中断LOOP:SJMPLOOP;等待数据接收INTS:CLREA;禁止中断CLRRI;清除中断标志RIMOVA,SBUF;从SBUF取接收到的数据MOVSBUF,A;回送WAIT:JNBTI,WAIT;判断回送是否完毕CLRTI;清除TI标志POPA;发送完,恢复现场POPDPHPOPDPLSETBEA;允许中断,准备接收新的数据RETI;中断返回END4.2PC机通信软件PC机方面的通信程序用汇编语言编写。程序如下:stackSegmentparastack'code'Db256dup(0)StackendsCodeSegmentparapublic'code'StartprocfarAssumecs:code,ss:stackPUSHDSMOVAX,0PUSHAXCLIINPUT:MOVAL,80H;置DLAB=1MOVDX,3FBH;写入通信线控制寄存器OUTDX,ALMOVAL,30H;置产生2400b/s波特率除数低位MOVDX,3F8HOUTDX,AL;写入除数锁存器低位MOVAL,00H;置产生2400b/s波特率除数高位MOVDX,3F9HOUTDX,AL;写入除数锁存器高位MOVAL,03H;设置数据格式MOVDX,3FBH;写入通信线路控制寄存器OUTDX,ALMOVAL,00H;禁止所有中断MOVDX,3F9HOUTDX,ALWAIT1:MOVDX,3FDH;发送保持寄存器不空则循环等待INAL,DXTESTAL,20HJZWAIT1WAIT2:MOVAH,1;检查键盘缓冲区,无字符则循环等待INT16HJZWAIT2MOVAH,0;若有,则取键盘字符INT16HSEND:MOVDX,3F8H;发送键入的字符OUTDX,ALRECE:MOVDX,3FDH;检查接收数据是否准备好INAL,DXTESTAL,01HJZRECETESTAL,1AH;判断接收到的数据是否出错JNZERRORMOVDX,3F8HINAL,DX;读取数据ANDAL,7EH;去掉无效位PUSHAXMOVBX,0;显示接收字符MOVAH,14INT10HPOPAXCMPAL,0DH;接到的字符若不是回车则返回JNZWAIT1MOVAL,0AH;是回车则回车换行MOVBX,0MOVAH,14HINT10HJMPWAIT1ERROR:MOVDX,3F8H;读接收

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论