版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验报告(自动化 15 级)实验名称 : 串行通讯实验一、实验目的1掌握单片机串行口工作方式;2掌握双机通讯的接口电路设计及程序设计。二、实验设备1. pc机;2单片机最小系统教学实验模块;3. 数码管显示模块三、实验内容1双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。我们u1 为甲机, u2 为乙机。甲机发送本机 (学生本人) 学号后 8位给乙机, 乙机接收该 8位数据, 并显示在 8位数码管上。电路如图 1所示。要求串行通信方式为方式1 ,波特率为2400bit/s, 不加倍,单片机外部晶振频率为11.0592m 。图 1 双机通信原理示意图附加要求:乙机接收完毕后,将
2、本机(乙机)的学号后8位发送回甲机,甲机显示在数码管上。2.单片机与 pc机通信单片机向 pc机发送数据。单片机向 pc机重复发送本机(学生本人)学号,发送波特率为 1200,采用方式 1,单片机外部晶振频率为 11.0592m。四、实验原理4 1 串行通讯的方式在串行通讯中,有两种基本的通讯方式:异步通讯,同步通讯。异步串行通讯规定了字符数据的传送格式,既每个数据以相同的帧格式发送。息由起始位、数据位、奇偶校验位和停止位组成。本实验主要学习异步通讯的实现方法。每个帧信在异步通讯中, 每一个字符要用起始位和停止位作为字符开始和结束的标志,以至占用了时间。所以在数据块传送时,为了提高通讯速度,常
3、去掉这些标志,而采用同步通讯。同步通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送和接受同步。而是通过同步字符在每个数据块传送开始时使收/发双方同步。按照通讯方式,又可将数据传输线路分成三种:单工方式、半双工方式、全双工方式。(1)单工方式在单工方式下, 通讯线的一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定的方向传送。(2)半双工方式在半双工方式下, 系统中的每个通讯设备都由一个发送器和一个接收器组成, 通过收发开关接到通讯线路上,如图 33-1所示。在这种方式中,数据能从 a 站送到 b站,也能从 b站传送到 a 站,但是不能同时在二个方向上传送,即每次只
4、能一个站发送,另一个站接收。图 2 半双工通讯方式图 33-1中的收发开关并不是实际的物理开关, 而是由软件控制的电子开关, 由通讯线两端的半双工通讯协议进行功能切换。( 3)全双工 (full duplex)方式虽然半双工方式比单工方式灵活, 但它的效率依然较低。 从发送方式切换到接收方式所需的时间一般大约为数毫秒,这么长的时间延迟在对时间较敏感的交互式应用 (例如远程检测监视控制系统 )中是无法容忍的。重复线路切换所引起的延迟积累,正是半双工通信协议效率不高的主要原因。半双工的这种缺点是可以避免的,而且方法很简单,即采用信道划分技术。在图 33-2 的全双工连接中, 不是交替发送和接收,
5、而是可同时发送和接收。 全双工通讯系统的每一端都包含发送器和接收器,数据可同时在两个方向上传送。图 3全双工通讯方式4 2单片机串行口工作方式在静态数码管显示实验中,我们熟悉了单片机串口工作方式0;单片机串口还具有有3种工作方式。如下表所示:这 3种工作方式,均用于串行异步通讯。在异步串行通讯的一个字节的传送中,必须包括了起始位 ( 0)和停止位 ( 1)。除此之外, 方式 1具有 8位( 1个字节) 的数据位 ( 低位在先 ),方式 2、 3则除这 8位之外,还具有一个可编程的第 9位,这个第 9位编程通常被编程为奇偶校验位。我们将在下一个实验中用到它。串口工作方式在特殊寄存器scon 中设
6、置。其中的 sm0 和 sm1 位确定了串口工作方式。 要使通讯双方能够通讯成功, 必须具有相同的串口工作模式; ren 为允许接收位, 本实验中因为双方都要进行接收, 因此 ren 也都应设为1。 tb8 和 rb8 这里暂不涉及。利用以下语句来设置scon:mov scon, #50h4 3 波特率的设置在异步串口通讯中, 一个很重要的工作就是进行串口波特率的设置。 波特率是指串口通讯中每秒传送的位数,单位为 bps,它反映了串行口通讯的速度;同时,通讯双方的速度必须一致,才能够顺利进行通讯。在串口工作方式 1、 3中,传送波特率都是可变的。单片机内部通过定时器送与接收缓存器的内部移位时钟
7、。也就是说,要确定串行通讯的波特率,必须对t1来提供发t1 进行相关 置。 51 片机系 此 t1的 置有以下固定的 定:()必 工作在定 器状 ;()必 工作在“8位自 重 ”工作模式; 必 在特殊寄存器 tmod 中 行 置。 关于 tmod 的 内容, 我 在 十七已 。可以利用以下 句来 置 tmod:mov tmod, #20h除了 tmod 的 置外, 必 置定 器t1的定 ,也就是保存在th1 中的 8位重 。 直接影响到波特率的大小:它通 以下公式 行 算:其中的 smod 特殊寄存器 pcon 的最高位。当它置1 ,可以将波特率增大1倍。在双机通 中, 只要双方的波特率一致就
8、能 完成通 了;但是,在 准的异步通 中,只有几种波特是适用的。例如1200bps, 2400bps, 4800bps, 9600bps 等等。而通 个公式可以看出,并不是所有的晶振 率都能 得到准确的上述波特率。比如采用 12mhz 晶振,代入公式 行运算,就无法得到 4800bps的准确波特率( th1 必 小数了)。在 种情况下, 去人 都使用 件 的方法,尽量得到准确的波特率;而 在,市 上有很多通 用的晶振,例如3.6864mhz 、11.0592mhz的晶振,都能 直接得到准确的波特率。因此在 行本 , 必 使用通 用晶振(如果使用仿真器, 置 使用仿真 的外接晶振,并将 11.0
9、592m 的晶振插入仿真 。当波特率已 确定,就可以反向推 出 th1 的取自大小,例如,在本次 中,我 要求波特率 4800bps,在晶振采用 11.0592mhz 的情况下,推出 th1 0f4h 。五、实验步骤1参考 1 并 行 路 ,画出 路 ,并用 正确 接两套装置的 片机最小系 模 ,并 接最小系 模 与数 管 示模 。2照 要求 写程序流程 ,然后 写程序, 写的程序 行仿真 ,直至通 成功。六、实验报告1在该实验中,单片机串行口工作在什么工作方式下?说明该工作方式的特点。工作在工作方式1。 8 位数据通讯,波特率可变。2 波特率是什么?怎样设置单片机串口通讯的波特率?如果实验要
10、求通讯波特率为4800bps,怎样修改程序?特率是指串口通讯中每秒传送的位数,单位为bps,它反映了串行口通讯的速度。单片机内部通过定时器t1 来提供发送与接收缓存器的内部移位时钟。必须工作在定时器状态;必须工作在 “8位自动重载 ”工作模式。3详细说明本次实验采用的通讯协议。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该 8位数据,并显示在8位数码管上。乙机接收完毕后,将本机(乙机)的学号后8位发送回甲机,甲机显示在数码管上。4给针对实验要求编写本机的程序流程图、程序清单并给予适当注释,并说明合作单片机(合作同学) 。这里有两个程序,一个是先接受,一个是先发送。# include #d
11、efine uchar unsigned char void init(void);void send(void);void delay(unsigned int i);uchar xuehao8=6,6,6,6,6,6,6;void main(void)init();send();while(1);void init(void)tmod=0x20;th1=0xfd;tl1=0xfd;scon=0x50;pcon=0x00;tr1=1;void send(void)uchar i;dodelay(200);sbuf=0xaa;while(ti=0);ti=0;while(ri=0);ri=0;
12、while(sbuf!=0xbb);/ - ?delay(80);for(i=0;i0;i -)for(j=0;j125;j+);# include #define uchar unsigned char void init(void);void receive(void);void delay(unsigned int i); void display(uchar a,uchar b); void duanxuan(uchar c);uchar xuehao8=0;void main(void)init();receive();while(1)display(1,xuehao0);delay
13、(3);p0=0x00;display(2,xuehao1);delay(3);p0=0x00;display(3,xuehao2);delay(3);p0=0x00;display(4,xuehao3);delay(3);p0=0x00;display(5,xuehao4);delay(3);p0=0x00;display(6,xuehao5);delay(3);p0=0x00;display(7,xuehao6);delay(3);p0=0x00;display(8,xuehao7);delay(3);p0=0x00;/void init(void)p0m1=0x00;p0m0=0xff;p2m1=0x00;p2m0=0xff;tmod=0x20;th1=0xfd;tl1=0xfd;scon=0x50;pcon=0x00;tr1=1;vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《JBT 10801.3-2007电主轴 第3部分:数控机床用电主轴 技术条件》专题研究报告
- 2026年法律职业资格考试民法试用买卖规则模拟卷含答案
- 2026高一生物下册第一单元第一次月考含答案及解析
- 《JBT 10556-2006纤维直径光学分析仪》专题研究报告
- 《JBT 10378-2014固定式离心消防泵》专题研究报告
- 2026高三语文上册第二单元第一次月考含答案及解析
- 湖南中考:生物重点知识点归纳
- 湖南高考:英语高频考点总结
- 2026年党建知识竞赛试题及答案(八)
- 2026年虚拟化技术对软件测试的影响研究
- 页岩气及其成藏特征
- 《公路装配式混凝土桥梁设计规范》(JTG-T3365-05-2022)
- python程序设计 课件全套 董付国 第1-12章 初识python-程序设计案例分析
- 2024中小学教师 高级职称专业水 平能力题库 (含答案)
- 高考语文复习:文言文复习教考衔接
- 日语中助词は和が的区别(初级)课件
- 校园零星维修服务 投标方案
- 整县屋顶分布式光伏项目吊装方案
- 高二【化学(鲁科版)45】微项目探秘神奇的医用胶-课件
- JJG 1000-2005电动水平振动试验台
- corelDraw交互式工具组
评论
0/150
提交评论