欢迎来到天天文库
浏览记录
ID:12189463
大小:162.83 KB
页数:29页
时间:2018-07-16
《微机原理项目报告-双机串行通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《微机原理》课程项目实施报告题目(三):双机串行通信组号:第19组任课教师:方针组长:11123128吴慧泽21%成员:11123227丰硕19%成员:11123201温英杰19%成员:11123168范特21%成员:11123260崔向阳20%联系方式:18817393058二零一三年五月十八日课程项目名单统计表课程项目名单统计表表一:课程项目名单统计表组号:19任课教师(√)方针沈明华王向阳学生学号学生姓名吴慧泽11123128是温英杰11123201是范特11123168是丰硕11123227是崔向阳11123260是一、课程项目实施方案(题目要求,说明
2、设计思想、指标及实现方法,所需器件清单等)题目要求:实现单片机和PC机之间的双机双工串行通信。(1)设计上位机(汇编语言设计)、下位机通信程序(C语言、汇编不限),通信波特率9600bps,8位数据、1个停止位、无校验。(2)全双工通信。(3)分别在PC机屏幕和实验板LCD上显示接收到的内容(4)其它扩展功能。实验材料:(1)单片机实验板(2)通信接口电缆(3)电阻、电容、三极管等若干单片机选型:通过组内讨论,考虑到实验室发的51系列的单片机相对于学院给我们配发的MSP430单片机的学习资源更丰富,并且项目制作中所需硬件(部分元器件)和软件资源都要相对于MSP
3、430单片机更易获得,所以我们组决定采用51单片机来设计和完成本课程项目。设计思想:硬件方面:实验室所发的单片机实验板上配有许多小部件,可以根据要实现的功能,将STC89C52RC单片机与小部件配合连接使用。由于STC89C52RC单片机有一个全双工UART串行通信接口,通过实验板上的MAX232电平转换芯片和RS-232C非标准(即DB9)串口与PC机连接,从而可实现单片机与PC机之间的全双工串行通信,即同时接收和发送数据。软件方面:上位机和下位机通信程序均用汇编语言编写设计,STC单片机采用中断方式接收PC发送的数据并回送,串行口的工作方式为工作方式1,使
4、用11.0592MHz晶振,并以定时器T1的方式2为波特率发生器,波特率在汇编程序中设置为9600,PC采用查询方式收、发数据。我们采用KeiluVision2软件工具来进行通信程序的编写、编译与调试,采用STC单片机PC端ISP下载控制软件STC-ISP-V4.83将编译调试好的程序烧写到单片机内。指标实现预期:基本指标:满足全双工通信要求,能在PC机屏幕和实验板LCD上显示接收到的内容。扩展功能:随后续项目的进展逐步在原要求功能基础上加以扩展。一、项目的制作过程领到单片机后,我们组迅速开展了项目资料的查找与学习。大致了解了所用开发板的基本组成和结构,知道了
5、用何种软件将程序烧写到单片机内,以及51单片机程序编译软件,还了解到与单片机串口有关的调试工具——串口调试助手。至此,我们将工作重心放在学习有关的编程语言:C语言和汇编语言,计划开始编写上位机和下位机通信程序。小组成员学习任务都很重,而且组员各自都有自己额外的奋斗目标,比如电子竞赛,考托福,所以开始的时候我们的项目进展缓慢。在获得老师提供的开发板资料后,我们就利用其中配套程序里面的mini80E功能测试程序对单片机的基本功能进行了测试,当时除了串口通信功能外,其余功能均正常。而进行串口通信功能测试时,我们用串口调试助手向单片机发送字符,在接收区看到的字符与发送
6、的字符不一样,不是多一个字符就是乱码。然而我们检查相关的设置,波特率、数据位和停止位都设置无误。后来了解到,是开发板上所带的晶振的问题。开发板上的晶振是12Mhz,我们查资料了解到,在12Mhz晶振下,设置出来的9600波特率与实际有很大的误差,这个误差在串口调试助手接受范围之外,所以出现了乱码。我们就改用我们自己买的单片机上带的11.0592Mhz的晶振,结果收发数据之间没有出现偏差。这使我们终于松了一口气。然而,这仅仅是用现有的配套程序进行功能测试。真正实现单片机与PC机之间的串行通信还有相当多的工作要做。随着微机原理课程的学习和项目的进行,我们小组主要遇
7、到了以下的几个问题:1)用C语言编写还是用汇编语言编写?虽然题目未要求下位机程序用什么语言编程,但根据老师的说法,建议使用汇编语言。由于汇编语言是与CPU紧密相关的,要想学习后达到能编一个程序的水平,就必须要求对CPU的内部结构有一定深度的了解,和与CPU对应的指令系统有很深的了解。说实话,从身边有些同学反映汇编语言学起来很生硬很吃力,以及我们小组成员学习汇编的感受,都感觉汇编不如C形象生动、容易上手,而且我们之前学过C,大家都有一定的底子,所以编程难度降低了不少,加上单片机方面各个部件的参考程序例如液晶显示,矩阵按键程序等等都以C语言居多,所以我们不用花很多
8、时间去研究各种汇编指令,这会使我们项目
此文档下载收益归作者所有