




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.基本原理1.1 8051单片机串行口工作原理MCS-51系列单片机片内有一个串行IO端口,通过引脚RXD(P30)和TXD(P31)可与外设电路进行全双工的串行异步通信。8051单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的IO电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器(SCON和PCON),用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。
2、串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时只写不读;接收时,只读不写。在一定条件下,向SBUF写入数据就启动了发送过程;读SBUf就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的溢出率确定,使用十分方便灵活。1.2 波特率的设定 在串行通信中,收发双方对发送和接收数据的速率(即波特率)要有一定的约定,8051的波特率发生器的时钟来源有两种:一是来自于系统时钟的分频值,由于系统时钟的频率是固定的,所以此种方式的波特率是固定的;另一种是由定时器T1提供的,波特率由溢出率控制,T
3、1的计数初值是可以用软件改写的,因此是一种可变波特率方式,此时T1工作于定时方式2(8位自动重装入方式)。波特率是否提高一倍由PCON的SMOD值确定,SMOD=1时,波特率加倍。串行口的工作方式中,方式0和方式2采用固定波特率,方式1和方式3采用可变波特率。2.电路的设计2.1自发自收电路图3.1自发自收电路 上图是本次课程设计的第一个要求:用自发自收的方式,实现串行中的自检,当串口正常时,发光二极管亮,否则,灯不亮。因此只需要一个单片机即可实现该功能。2.2串行通信电路图3.2串行通信电路上图是实现第二个要求:甲乙两机采用串行方式1通信。的图。在本次的设计中,两边都是采用相同的波特率为48
4、00.。其中甲机为主机,发送程序;已机为从机,接收数据,并在乙机上显示器上显示出甲机发送的数据:0,1,2,3,4,.1F.。3串行通信程序设计3.1程序设计流程图 设定T1和scon设定发送数据地址指针和块长度计数器开中断开关EA允许串行口中断发送等待中断清T1修改数据地址指针和块长度计数器全部数据发送完发送中断返回清EA或ESYN主程序中断服务程序(a)中断方式发送程序主程序设定T1和SCON置位REN允许接收开中断开关EA允许串行口中断等待中断中断服务程序清R1接收数据数据送接收缓冲器数据块接收完清EA或ES中断返回NY设定接收缓冲区首址置接收数据个数计数器(b)中断方式接收程序图2.1
5、串行通信中断方式流程图 串行通信可采用两种方式:查询方式和中断方式,T1和R1是一帧发送完否或一帧数据到齐否的标志。当采用中断方式:发送程序:发送一个数据-等待中断,在中断中再发送下一个数据。接收程序:等待中断,在中断中再接收一个数据。两种方式中,当发送或接收数据后都要注意清T1或R1。为保证收、发双方的协调,除两边的波特率要一致外,双方可以约定以某个标志字符作为发送数据的起始,发送方先发这个标志字符,待对方收到该字符,并给以回应后再正式发数据。以上是针对点对点的通信,如果是多机通信,标志字符就是各个分机的地址。3.2自发自收程序ORG 0000HMOV TMOD,#20HMOV TH1,#0
6、CCHMOV TL1,#0CCH ;设定波特率SETB TR1MOV SCON,#50HABC : CLR TI MOV P1,#0FEH ;LED灭 ACALL DAY ;延时 MOV A,#0FFH MOV SBUF,A ;发送数据FFH JNB RI, $ ;RI1等待 CLR RI MOV A,SBUF ;接收数据,A=FFH MOV P1,A ;灯亮 JNB TI, $ ;TI1等待 ACALL DAY ;延时 SJMP ABCDAY: MOV R0,#0DAL: MOV R1,#0 DJNZ R1, $ DJNZ R0,DAL RET END3.3发送程序及分析#include&l
7、t;reg51.h>unsigned int i;unsigned char table="0123456789abcdefg"void init()TMOD=0x20 ;/设定定时器T1TH1=0xfa ;/串口波特率4800bpsTL1=0xfa ;PCON=0x00 ;/置SMOD=0SCON=0x40 ;/置SM0=0,SM1=1TR1=1 ;/开定时器T1void main()init() ;for(i=0;i<16;i+)SBUF=tablei ;while(TI=0) ;TI=0 ; 这段就是应用中断方式所编写发送的程序.。串行通信的编程时有要点如
8、下:定好波特率,串行口的波特率有两种方式:固定波特率和可变波特率。当使用可变波特率时,应计算T1的初值,并对T1进行初始化。本次的实验中,因为要用8位自动重装入方式,故要采用方式2,所以设定的TH1=TL1=oxfa。又因为倍率不加倍,所以SMOD=0。再有串行口采用方式1工作,所以SCON=0400-化为二进制为:0100 0000 即SM0 SM1 选择方式1,的REN串行接收禁止,只是发送端。3.4接收程序及分析#include"reg52.h"#include"1602.c"#define uchar unsigned char#define u
9、int unsigned intuchar *p,*tempr,*q;uchar i;void reveal(uchar *temp) ; /液晶显示函数/*函数名:init_serial函数功能:从机串行通信方式初始化*/void init_serial()TMOD=0x20 ; /设定定时器T1TL1=0xfa ; /串口波特率4800bpsTH1=0xfa ;PCON=0x00 ; /置SMOD=0SCON=0x50 ; /工作方式1,允许接收EA=1 ; /开中中断ES=1 ; /开串口中断TR1=1 ; /开定时器T1void main()p=0x20 ;/将存储单元的首地址赋给p,
10、q=p ;/且之后的程序中p的值不用改变*(p+15)=0x00 ;/用于判断赋值是否到达0x2f这一单元init_serial() ; /初始化串行通信while(1) if(*(p+15)!=0)/if语句为真的条件等同于赋值进行到0x2f单元break;ES=0 ; /赋值完成后关闭串口中断tempr=p ;reveal(tempr) ;/从RAM中提出接收到的数据并显示在液晶上while(1) ;void receive() interrupt 4RI=0;i=SBUF;*q=i;q+;这段便是应用中断方式所编写接收的程序.。串行通信的编程时要点与发送相同。TH1和TJ1的设定也相同,
11、TMOD的设定也相同的。只是SCON的设定是不同的。因为是接收方,所以SCON=0500。化为二进制便是:0101 0000 第4位REN=1.即串行接收允许。4仿真及结果分析利用软件将程序编译生成 HEX 文件,输入到单片机中,用Proteus进行仿真。自发自收电路仿真结果为发光二极管不停闪烁。双机串行通信电路仿真结果如下图:仿真结果图接收端的数码管按0,1,2,1F顺序显示,完成了数据从主机到从机的完整的发送,结果符合要求。完成了课程设计任务书上给出的两个作务。同时也完成了仿真。5.心得体会我认为,在这次的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量
12、资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在设计过程中,我学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。而团队合作也是当今社会最提倡的。曾经听过,mba之所以最近不受欢迎就是因为欠缺团队合作的精神和技巧。很感谢学校和老师给我们安排了这次课程设计,让我真正感受到的是合作的重要,许多时候都是组员的讨论,就出现的让人欣喜的结果;理论知识同样很重要,有些问题都是由于基础知识掌握不好才出现的.通过本次的实验,我对单片机有了更进一步的认识。对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织机械自动化与智能控制考核试卷
- 磷肥生产设备操作规程与故障预防考考核试卷
- 肉牛饲养与生长发育监测试题考核试卷
- 碳酸饮料行业新技术应用考核试卷
- 中药材种植基础知识考核试卷
- 畜牧养殖场环境治理技术考核试卷
- 成人教育学生综合素质评价体系构建考核试卷
- 电机在电力行业品牌建设的应用考核试卷
- 网络文学虚拟作品收益分成合同
- 游戏虚拟货币发行与内容创作者激励协议
- 《使用有毒物品作业场所劳动保护条例》新版解读:加强劳动保护预防职业危害
- 《动物防疫》课件
- 2025年广西能汇投资集团有限公司招聘笔试参考题库含答案解析
- 山西焦煤招聘2025笔试题库
- 军工科研招投标行为规范须知
- 幼儿园食堂主要负责人食品安全岗位职责
- 《散货船结构简介》课件
- 高压设施维修合同范例
- AI新时代算力需求高增长-算力网络建设有望奔向太空
- 2024届考研199管理类综合能力真题及解析完整版
- 肠梗阻合并糖尿病护理查房
评论
0/150
提交评论