单片机与PC计算机通信设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11.课程设计说明书1.1课程设计内容运用所学单片机、模拟和数字电路等方面的知识,完成单片机与PC计算机的串口接口设计。此系统具有如下功能:1)单片机可以从RS-232串口接收PC计算机来的一组4位10进数,并显示在4位LED数码管显示器上,波特率可选1200、2400、4800、9600,采用奇偶校验。2)设置一个按键,按下按键时停止接收PC计算机发送的信号,再次按下按键又继续接收。1.2.任务分析与设计思路1)设计要求接收数据并显示,接收数据的波特率可选1200、2400、4800、9600,并采用奇偶校验。设计思路为使用89c51的串行接口来接收数据,波特率越高,数据传输速度越快,任务对传输速度未作要求,考虑到定时器T1的时间常数初值与相应波特率之间有误差,在选择单片机时钟频率为12M情况下,4800的误差较小,所以波特率选择4800。由于采用奇偶校验,所以串口工作方式选择3。2)采用4位LED数码管对接收数据进行显示,从节约硬件的角度考虑,采用软件译码,并采用动态显示。3)按键控制接收,通过INT0中断实现。1.3总体方案设计通过RS-232实现PC机与单片机的连接,由于需要电平转换,采用MAX232芯片,设计采用两块单片机,其中一块作添加校验位来用。单片机通过P0.0~P0.6(字形码),P2.0~P2.3(字位码)与LED数码管相连。按键接INT0脚。设计框图如下2.详细设计2.1开发环境本系统使用Keil进行程序编写,需要Proteus进行硬件仿真。适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机。PC机单片机1增加校验位RS-232MAX232电平转换单片机2接收数据四位LED数码管按键22.2硬件设计元件清单见附录A,硬件电路图如下所示:2.3软件程序流程图软件部分包括按键、通信、显示等,按键采用INT0中断,通信涉及对单片机串口的编程,采用动态显示编程,软件程序见附录B。软件流程图如下所示:主程序串口中断程序0023H开始地址初始化串口初始化定时器T1初始化开中断动态显示32.4程序调试情况仿真调试准备1)虚拟串口的设置虚拟串口软件用Virtua1SerialportsXP5.1,打开软件后,如图1,图1左边上面的COM1是电脑上实际的物理串口,下面是虚拟串口,在没有设置前是空的。因为电脑最多有两个物理串口,点击Addpair在下面添加COM3和COM4作为一对虚拟串口,见图1:2)使用虚拟串口调试软件SSOM32模拟PC机发送数据,如图所示3)采用Proteus进行仿真44)调试过程中发现pc机通过串口发送的数据没有校验位,只含1位停止位、8位数据位和1位停止位,所以使用另一片单片机接受pc数据,再补上校验位发送给另一片单片机。5)由于是仿真,RS-232直接与单片机相连,并未使用MAX232进行电平转换,图中只是画出,没有连入电路。6)调试过程中发现接收数据一开始正常,过一段时间便显示紊乱,通过检查电路和程序发现,程序中进入中断未对中断中使用的寄存器A进行保护,经过改正后显示正常。3、课程设计进程安排序号课程设计各阶段名称日期、周次1总体设计,硬件设计7月5日,19周2绘制软件程序流程图,编写软件7月6日,19周3软、硬件仿真调试7月7日,19周4软、硬件仿真调试,撰写设计说明书7月8日,19周5完善设计说明书,提交设计说明书7月9日,19周4.结束语首先,理论课的重要性。平时上理论课的时候总觉得理论课上的知识与实践总有很远的距离,不知道上理论课的重要性,所以在学的时候兴致缺缺,但在课程设计时,才发现根修房子最重要是打好地基一样,没有理论课所学知识的支撑设计根本无法完成。其次,不刚愎自用。在做该课程设计过程中遇到困难的时候,不要忘记学习除了一个人独自琢5磨外还应多与同学切磋,一个人学习容易走进死胡同,而且进入死胡同后会大大的打击做设计的积极性,这时候应与同学多交流,从一个新的角度去看待问题、分析问题、解决问题,会有耳目一新的感觉。再做起设计来事倍功半,最主要的是,从课程设计中学会了把课本上的理论知识实践化,还有良好的编程风格,注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。如果注释和代码不一致,那就更加糟糕。附录:源代码清单附录A:元件清单如下:元件名称数量(个)元件名称数量(个)7SEG-MPX4-CA1CAP-POL480C512COMPIM1BUTTON1CRYSTAL2CAP4MAX2321CAP-ELEC2RES2附录B:软件程序如下所示:ORG0000HLJMP1000HORG1000HMOV70H,#0;显示区70H~73HMOV71H,#0MOV72H,#0MOV73H,#0MOVR0,#70H;R0指向显示区MOVR3,#11H;R3存位控位MOVTMOD,#20H;选择定时器T1,方式2MOVTH1,#0F3H;选择波特率4800,计算初值0F3HMOVTL1,#0F3HSETBTR1;启动定时器MOVSCON,#0D0H;串口选择方式3,允许接收6MOVPCON,#80H;SMOD=1MOVR1,#60H;R1指向接收区60H~63HMOVR4,#04H;R4存接收个数SETBEASETBES;开串口中断SETBIT0;INT0中断选负边沿触发SETBEX0;开INT0中断MOVA,R3LD0:MOVP2,AMOVA,@R0ADDA,#15MOVCA,@A+PCMOVP0,AACALLDELAYINCR0MOVA,R3RLAMOVR3,ACJNER0,#74H,LD0MOVR0,#70HSJMPLD0;显示显示区的数DB40H,4FH,24H,30H,19H,12H,02H,78H,00H,18HDELAY:;1ms延时程序MOVR7,#02HDELAY1:MOVR6,#0FFHDELAY2:DJNZR6,DELAY2DJNZR7,DELAY1RET7ORG0023H;串口终端服务程序LJMP2000HORG2000HRE:CLRRI;清标志位MOVA,SBUFMOVR5,AMOV20H,#00HMOV21H,#00HMOVC,PMOV00H,CMOVC,RB8MOV08H,CMOVA,20HXRLA,21HJNZL3MOVA,R5;奇偶校验L5:CJNEA,#30H,L2L2:JCL3CJNEA,#3AH,L4L4:JNCL3;判断接收数据是否在30H~39H之间ANLA,#0FH;清接收数据高四位MOV@R1,A;送数据接收区INCR1L3:CJNER1,#64H,L1;判断是否接受完4个数据MOVR1,#60HMOV70H,60HMOV71H,61H8MOV72H,62HMOV73H,63H;若接收完则接收数据送显示区L1:RETIORG0003H;INT0中断服务程序LJMP2500HORG2500HCPLREN;允许接收位取反MOVR1,#60HRETIEND设计资料及参考文献1).胡汉才.单片机原理及其接口技术.清华大学出版社,20042).吴飞青等.单片机原理与应用实践指导.机械工业出版社2009.23).李建忠.单片机原理与应用(第二版).西安电子科技大学出版社4).李朝青.单片机原理及接口技术(简明修订版).杭州:北京航天航空大学出版社,19985).李广弟.单片机基础[M].北京:北京航天航空大学出版社,19946).阎石.数字电子技术基础(第三版).北京:高等教育出版社,19897).廖常初.现场总线概述[J].电工技术,19998).周良权,傅恩锡,李世馨.模拟电子技术基础(第二版).北京:北京高等教育出版社,2001..129).李干林.《STARES598PCI试验仪微机原理实验指导书》[M].南京工程学院,2008

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功