单片机课程设计报告-实现单片机PC串行双工通信.doc
- -课程设计任务书学生:XXXXXX专业班级:XXXXXXXX指导教师:XXXX工作单位:XXXXXXXX题 目:实现单片机与PC串行双工通信初始条件:具备数字电路的理论知识;具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU构造和指令系统;熟悉相关常用接口电路的设计使用方法。要求完成的主要任务:包括课程设计工作量及其技术要求,以及说明书撰写等具体要求1、 分析设计原理,画出程序设计框图,编写程序代码,完成PC和单片机的串行双工通信,单片机的P1口接一共阴数码管,阴极接地。要求PC键盘每按“0-9数字键能发送到单片机,并显示在数码管上,单片机发送一串字符能显示在PC的屏幕上,采用查询方式。波特率为1200。在Proteus中画出电路图。2、 完成程序的仿真测试,并演示系统的最终运行结果;3、 独立完成课程设计说明书,课程设计说明书按学校统一规来撰写。时间安排:(1)、布置课程设计任务,查阅资料,完成系统需求分析 一天;(2)、用Proteus实现系统原理图的设计、仿真和结果显示 三天;(3)、完成课程设计报告书及辩论 一天;指导教师签名: 年 月 日系主任或责任教师签名: 年 月 日- word.zl- -目录摘要I1 芯片介绍11.1 89C51简介11.2 MAX232简介12 原理介绍22.1 串行通信介绍22.2 串行接口标准22.3 单片机串口简介33 程序设计43.1 单片机串口编程43.2 程序流程图53.3 源程序64 Proteus电路制作84.1 Proteus简介84.2 电路图绘制85 Proteus仿真115.1 生成HEX文件115.2 Proteus仿真结果115.3 结果分析126课程设计心得体会13参考文献14致15- word.zl- -摘要单片机可以通过电平转换后和PC机进展串行通信,只要串口设定一致,单片机和PC机就能交换数据。通过Proteus可以对其进展仿真,Proteus中有串口器件,有虚拟终端,可以对PC机单片机串口通信进展仿真。关键词:单片机,PC机,串口通信,Proteus- word.zl- -1 芯片介绍1.1 89C51简介单片机的定义是在一块芯片中集成了CPU、RAM、ROM、定时、计数器和多功能I/O口等的根本功能部件的大规模集成电路,又称MCU。这些也是计算机所拥有的根本部件,所以单片机就是一台微型的计算机,可以实现计算机的很多功能。本次课设使用的89C51是MCS-51系列单片机的51子系列。89C51片ROM是4KB的闪速E2PROM,其构造、引脚和封装和其它信号根本一样。89C51主要由以下几个局部组成:一个8位CPU;一个片振荡器及时钟电路;4KB ROM程序存储器;128B RAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;32条可编程的I/O线;一个可编程全双工串行口;5个中断源、两个优先级嵌套中断构造。本次课设主要用到的引脚线是P3.0RXD和P3.1TXD,两者分别是串行通信的接收线和发送线,通过它们可以和其它串行通信设备进展连接。PC机也可以通过串口将程序输入单片机。1.2 MAX232简介单片机和电脑用串口线相连接时要用到电平转换芯片MAX232。MAX232部有电压倍增电路和转换电路,工作时需外接5个1uF的电容和+5V电源,实现TTL电平与RS-232电平双向转换,。一个MAX232可以连接两对收/发线,把通信接口的TXD和RXD端TTL电平05V转换成RS-232电平-10V+10V,送到传输线上,也可以把传输线上的RS-232电平转换成TTl电平送到通信接口TXD和RXD。单片机与PC机相连接时,单片机的RXD应连MAX232的R1OUT引脚,TXD应连T1IN,PC机串口的RXD应连T1OUT,TXD应连R1IN,这样MAX232就能在单片机和PC机之间完成电平转换,使单片机和PC机可以正常通信了。2原理介绍2.1 串行通信介绍计算机之间有时需要交换信息,这种信息交换被称为通信。通信可分为并行通信和串行通信。将数据各位同时传送的方法是并行通信,将数据逐位传送的方法是串行通信。本次课程设计采用的是串行通信。串行通信分为串行异步通信和串行同步通信两种类型,串行异步通信以假设干位表示一个字符,通信时以收/发一个字符为一独立的通信单位。异步传送的数据前面应加起始位,完毕后应加停顿位,形成一个完整的串行传送字符。串行同步通信串行同步通信就是去掉异步传送时每个字符的起始位和停顿位,以一组字符组成一个数据块,在每个数据块前附加一个或两个同步字符或标识符,后面在附加校验字符。2.2 串行接口标准串行通信在电器连接上游串行接口标准,常用的标准有1RS-232-C接口标准;2RS-422A、RS-432A和RS-485接口标准;320mA电流环接标准。本次课程设计采用的是RS-232-C串行总线接口标准。RS-232-C接口标准是美国电器工业协会EIA制定的,是一种在数据终端设备Data Terminal Equipment,DTE和数据通信设备Data munication Equipment,DCE之间通信的标准。在有些短距离场合,计算机之间可以直接通过RS-232-C接口连接。目前常用的是9针D型连接器,如图2.1所示。图2.1 RS-232C 9针D型连接器常用的引脚有3根,是接收数据 RXD,发送数据 TXD和接地GND。2.3 单片机串口简介本次课设用的89C51的串行口是一个可编程的全双工串行通信接口,它的功能很多,可以用软件编程来控制,它可以作为通用异步接收和发送器UART,也可以作为同步移位存放器。其帧格式可有8位,10位,11位,并能设置各种波特率,只要编程就能进展设定,使用很方便。串行口的构造主要由两个数据缓冲存放器SBUF和一个输入移位存放器组成,另外其部还有一个串行控制存放器SCON和一个波特率发生器,波特率发生器是由T1及分频器组成,因此修改波特率时要修改T1的设定。在与PC机进展通信时,PC机发来的的串行数据是通过引脚RXD输入的。输入数据先逐位进入输入移位存放器,再送入接收数据缓冲存放器。在PC接有PC16550串行接口、RS-232C连接器、EIA-TTL的电平转换器等设备,有两个串行口1和2留给用户,通过这两个串行口可以连接串行通讯设备如单片机等。3 程序设计3.1 单片机串口编程89C51串行通信的方式选择、接收和发送控制及串行口的标志均由专用存放器SCON控制和指示,其格式如表3.1:表3.1 SM0SM1SM2RENTB8RB8TIRI方式选择多机控制串行接收允许/制止欲发的第9位收到的第9位发送中断有/无接收中断有/无SM0,SM1是串行口工作方式控制位。00方式0,01方式1,10方式2,11方式3。方式0是移位存放器方式,方式1是波特率可变10位异步通信方式,方式2是11位异步通信方式,方式3引脚使用和数据格式同方式2,不同的是波特率可变。串行通信还要用到电源控制存放器PCON中的SMOD位,SMOD=0时波特率不加倍,SMOD=1时波特率加1倍。本次课设使用的是方式1,每帧数据为10位:1个起始位“0,8个数据位,1个停顿位“1。由T1提供移位时钟,波特率可变。波特率计算公式为:本次课设中设定单片机晶振频率为12MHz,波特率为1200,SMOD=0,那么T1时间常数计算如下:X=230=E6H串行通信可采用两种方式:查询方式和中断方式,本程序采用查询方式。查询方式发送程序:发送一个数据发送一个数据查询TI发送下一个数据先发后查接收程序:查询RI读入一个数据查询RI读入下一个数据先查后收PC机上串口设置应与单片机一致。3.2 程序流程图程序先向PC机发送一段字符,再接收PC机发来的字符。发送局部流程图如图3.1所示:T1初始化,启动T1P1口清0设定SCONDPTR存发送数据块首址R0为数据长度计数器发送数据TI=1?A中存发送的数据清T1数据长度计数器R0加1全部数据发完?程序接收局部YYNN图3.1 发送局部程序流程图接收局部程序流程图如图3.2所示:设定SCONDPTR存字码表首址接收数据RI=1?清R1将收到的ASCII码转为数字YN查表得字形码并送入P1口显示程序发送局部图3.2 程序接收局部流程图3.3 源程序单片机上实现与PC机串行通信源程序如下:ORG 0000H MOV P1,#0;P1口清0 MOV TMOD,#20H;设定定时器T1工作于方式2 MOV TH1,#0E6H;时间常数为230 MOV TL1,#0E6H SETB TR1;启动T1 MOV SCON,#40H;串口工作于方式1 MOV DPTR,#TAB1;DPTR存待发送数据首址 MOV R0,0;R0做发送数据计数器LOOP1: MOV A,R0;R0的值送入A MOVC A,A+DPTR;查表得要发送的数据 MOV SBUF,A;发送数据 JNB TI,$;未发完那么继续查询 CLR TI;发完后将TI清0 INC R0;R0加1 CJNE R0,#05H,LOOP1;假设R0不等于5那么继续发送 MOV SCON,#50H;设定串口工作于方式1,允许接收 MOV DPTR,#TAB2;DPTR存共阴字码表首址LOOP2: JNB RI,$;数据未收完继续查询 CLR RI;收完那么将RI清0 MOV A,SBUF;接收数据送入A SUBB A,#30H;将ASCII码转为对应数字 MOVC A,A+DPTR;查表得相应的字形码 MOV P1,A;将A送入P1口显示数字 SJMP LOOP2;继续接收TAB1: DB 41H,42H,43H,44H,45H;TAB2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH; END4Proteus电路制作4.1 Proteus简介本次课程设计使用的软件是Proteus。Proteus是英国Labcenter公司开发的电路分析与仿真软件。它可以运行于Windows操作系统上,功能很强大,可以仿真、分析各种模拟器件和集成电路。Proteus具有强大的原理图绘制功能。放置元件和连线都很方便,可以制作各种电路图。Proteus支持主流单片机系统的仿真。它支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。本次课设采用了其中的89C51单片机。该软件实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能。有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。还有虚拟终端,可以仿真PC机与单片机的通信。Proteus提供软件调试功能。在该软件的在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、存放器等的当前状态;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件,可以和Keil联调使用,功能强大。4.2 电路图绘制首先翻开Proteus ISIS程序界面,开场绘制电路图。首先添加所要用到的元件。元件清单如表4.1所示元件清单如表4.1所示元件名称所属类所属子类数量AT89C51Microprocessor ICs8051 Family1CAPCapacitorsGeneric2CAP-POLCapacitorsGeneric4CRYSTALMiscellaneous1RESResistorsGeneric17SEG-CATHODEOptoelectronics7-Segment Displays1MAX232Microprocessor ICsPeripherals1PIMMiscellaneous1其中AT89C51是单片机,在设置中设置其频率为12MHz,在Program File中可以加载程序的HEX文件。CAP是电容,用在外部晶振电路中,电容大小设置为33pf。CAP-POL是极化电容器,用于MAX232电路,大小设置为1uf。CRYSTAL是晶振,频率设置为12MHz。RES是电阻,与串口相连,大小设置为10k。7SEG-CATHODE是7段共阴数码管。MAX232是电平转换芯片。PIM是串行口,设置波特率为1200,无奇偶校验,8位数据位,1位停顿位,设置如图4.1。图4.1 串口设置此外还需要接地,在左侧工具栏中终端里的GND是接地。还要加虚拟终端来仿真PC机,虚拟终端是虚拟仪器中的VIRTUAL TERMINAL,虚拟终端设置波特率为1200,无奇偶校验,8位数据位,1位停顿位,电平极性反转。其设置如图4.2。图4.2 虚拟终端设置放置好所有元件后在端点处点击鼠标就可以连线了,得到电路图如图4.3。图4.3电路图5Proteus仿真5.1生成HEX文件仿真时单片机需要载入HEX文件。这里使用WAVE软件生成,首先在WAVE中编写程序。在WAVE的仿真器设置,目标文件中把生成HEX文件的选项选上,如图5.1。图5.1 仿真器设置然后进展编译,就可以得到HEX文件。如果有错误就进展调试,直到程序无误。5.2 Proteus仿真结果给单片机加载HEX文件后,点击屏幕左下角的开场仿真按钮即可开场仿真,此时鼠标右击虚拟终端,选择最下面一个选项Virtual Terminal即可看见PC收到的数据,如图5.2所示图5.2 PC收到的数据此时按键盘上的数字键,就可以发送数据给单片机了,可以见到单片机数码管会显示出所按的数字,如图5.3、5.4所示。图5.3 按2键数码管显示结果图5.4 按0键数码管显示结果5.3 结果分析通过仿真结果可以看出,单片机发送的字符“ABCDE成功送到了PC机,可以在虚拟终端上看见。当虚拟终端翻开时,按下0-9的数字键,数码管会显示相应字符,说明PC机的信息也可以通过串口传送到单片机,电路工作正常,到达了要求。6 课程设计心得体会通过进展本次单片机课程设计,我对Proteus有了初步的认识,我掌握了Proteus的根本操作,并学会了用Proteus解决一些课程中的问题,稳固了单片机相关知识。下面是我具体的一些体会。Proteus功能非常强大,几乎可以仿真目前单片机课程中遇到的各种问题,它有丰富的元件库,电路中用到的各种元件都有,有的同一类元件都有好几种,比方7段共阴数码管,就有红绿蓝等几种颜色的,可以仿真各种电路。除了元件,Proteus还提供了大量的虚拟元件,比方虚拟示波器,虚拟终端等。本次课设用到的虚拟终端就可以模拟PC机,接收单片机发送的数据,并可以向单片机发送数据,功能强大。Proteus虽然功能非常强大,但其操作却非常简单,只要找到相应的元件,进展参数设置,点击鼠标即可连线。完成电路后加载HEX文件,点击仿真开场就可以仿真了,仿真结果会很直观的显示。不过Proteus的元件库容十分丰富,要找到所需的元件也不是很容易。需要熟练掌握相关的英语,并在网上查阅相关资料,才能熟练掌握Proteus的应用。在课程设计中我也稳固了单片机的相关知识,更深入了解了单片机与PC机串行通信的原理,并编制了相关程序,掌握了其根本的应用。在这次课程设计中,我学到了很多关于Proteus的知识,但这还远远不够,我现在只掌握了一些根本的功能,而解决更高级问题我的知识还不够,我要在日后进一步学习,更好地掌握Proteus。参考文献1 群芳,士军,黄建单片微型计算机与接口技术:电子工业,20072 王守中51单片机开发入门与典型实例:人民邮电,20073倪志莲单片机应用技术:理工大学,20074周润景Proteus入门实用教程:机械工业,20075靖武,周灵彬单片机系统的Proteus设计与仿真:电子工业,2007致本次课设的指导教师教师XX给了我很大帮助,帮助我修订了课程设计说明书,稳固了单片机的相关知识,使我的知识水平有了较大提高。XXX教师在数字图像处理课上认真细致的讲解也使我受益匪浅,在此对他表示诚挚的意。我同组的同学也给了我很多帮助,我们共同努力完成了本次课程设计,在此也对他们表示感。- word.zl- -本科生课程设计成绩评定表姓 名性 别专业 班级课程设计题目:实现单片机与PC串行双工通信课程设计辩论或质疑记录:成绩评定依据: 指导教师签字:_ 年 月 日- word.zl