单片机应用技术教学课件PPT.ppt

上传人:仙人指路1688 文档编号:2875824 上传时间:2023-02-28 格式:PPT 页数:34 大小:1.36MB
返回 下载 相关 举报
单片机应用技术教学课件PPT.ppt_第1页
第1页 / 共34页
单片机应用技术教学课件PPT.ppt_第2页
第2页 / 共34页
单片机应用技术教学课件PPT.ppt_第3页
第3页 / 共34页
单片机应用技术教学课件PPT.ppt_第4页
第4页 / 共34页
单片机应用技术教学课件PPT.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《单片机应用技术教学课件PPT.ppt》由会员分享,可在线阅读,更多相关《单片机应用技术教学课件PPT.ppt(34页珍藏版)》请在三一办公上搜索。

1、单片机应用技术,主讲:王永祥,项目五 单片机双机通信系统设计与制作,知识目标了解通信的基本概念掌握51单片机串行口结构及控制寄存器设置掌握单片机串行通信的编程方法技能目标掌握单片机双机通信线路连接方法掌握串行口的调试方法,5.1 本项目的工作任务,设计一个单片机双机通信系统,单片机A接1个8位拨码开关,单片机B接8个发光二极管,通过串行通信实现由A机拨码开关控制B机发光二极管的亮灭。,5.2 串行通信基础,5.2.1 串行通信基本概念,异步通信和同步通信异步通信,同步通信,波特率 每秒钟传送二进制数的位数。如:异步通信中,若每秒传送120个字符,而每个字符可包括10位(起始位、校验位、停止位各

2、1位,数据位7位),则波特率为:12010=1200位/秒(bps),串行通信的方向,串行口的连接三线连接,RS232接口连接,Modem连接,5.2.2 串行口的结构及工作方式,1.数据缓冲器SBUF 发送SBUF和接收SBUF共用一个地址99H。发送SBUF存放待发送数据,写入SBUF将同时启动发送。发送指令:MOVSBUF,A接收SBUF存放已接收的8位数据,供CPU读取。接收指令:MOV A,SBUF,2.串行口控制/状态寄存器SCON(98H),SM0,SM1:选择串行口4种工作方式。SM2:多机控制位,用于多机通讯。REN:允许接收控制,REN=1,允许;REN=0,禁止。TB8:

3、发送的第9位数据位,可用作校验位RB8:接收的第9位数据位或停止位TI:发送中断标志,发送一帧结束,TI=1,须软件清零RI:接收中断标志,接收一帧结束,RI=1,须软件清零,串行口的工作方式,方式0:同步移位寄存器方式。一帧8位,无起始位和停止位,先发送/接收最低位。RXD:数据输入/输出端。TXD:同步脉冲输出端,每个脉冲对应一个数据位。波特率B=fosc/12 如:fosc=12MHz,B=1MHz,每位数据占1s。发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。,方式1:10位通用异步通讯方式一帧:8位数据位,

4、1个起始位(0),1个停止位(1)。波特率:用T1作为波特率发生器,B=(2SMOD/32)T1溢出率。发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1,将接收数据装入SBUF,停止位装入RB8,并使RI=1。,方式2和方式3:11位异步通信方式一帧:1位起始位,8位数据位,1位可编程位,1位停止位。波特率:方式2 B=(2SMOD/64)fosc。方式3 B=(2SMOD/32)T1溢出率。发送:先根据通信协议由软件设置TB8。由写“SBUF”指令启动发送过程,并把8位数据装入“SBUF”,同时串口还自动把TB8装到发送

5、移位寄存器的第9位数据位置上,并通知发送控制器要求发送,然后从TXD端输出一帧数据。,接收:先设置REN=1,使其允许接收,同时置RI=0。在此前提下,再依SM2和所接收到的RB8的状态才能决定串行口在信息到来后是否会使RI置1。如果RI置1,在中断方式下将申请中断,接收数据。当SM2=0时,不管RB8为1还是为0,RI都置1。当SM2=1,且RB8=1时,表示在多机通信方式下,接收的信息位地址帧,此时RI置1。当SM2=1,且RB8=0时,表示接收的信息为数据帧,但不是发给本机的,此时,RI不置1,丢弃SBUF中所收数据帧。,5.3 串行通信的程序设计,串行口的初始化编程串行口控制寄存器SC

6、ON设置电源控制寄存器PCON设置波特率发生器T1的初始化中断系统的设置,常用初始化内容:FIRST:MOV SON,#工作方式字;设定工作方式M OV PCON,#80H;波特率加倍时,设定MOV TMOD,#20H;波特率可变时,用于 设定T1工作方式MOV TH1,#定时初值;设定初值MOV TH1,#定时初值CLR ET1;禁止T1中断SETB TR1;启动T1SETB EA;开CPU中断SETB ES;开串口中断SETB PS;设定串口为最高优先级,【例5-1】,若fosc=6MHz,波特率为2400bps,设SMOD=1,则定时/计数初值为多少?并进行初始化编程。初值计算:由 波特

7、率=(2SOMD/32)T1的溢出率=(2SOMD/32)fosc/(12(256-x)有 X=243=F3H,初始化程序:,MOV SCON,#40HMOV TMOD,#20HMOV PCOM,#80HCLRMOV TH1,#0F3HMOV TL1,#0F3H CLR ET1SETB TR1,发送和接收程序设计查询方式,中断方式,奇偶校验位的处理,当串行口采用方式2和方式3时工作时,帧数据格式中的第9位可以用作奇偶校验位。发送时,当发送的字节数据送入累加器A后,P标志和A中1的总个数应为偶数,此时,可将P值送入TB8,这样就实现了数据的补偶发送。与此同时,在接收时,可在读取数据时进行“偶校验

8、”,如果RB8中的位值与累加器A从SBUF读入的数据中的1加起来,“1”的个数也是偶数,则接收正确,否则为出错。,5.4 双机通信系统设计与制作,双机通信系统硬件制作,双机通信系统软件设计,发送程序ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#60MOV SCON,#40H;串行口以方式1工作MOV TMOD,#20H;T1以方式2工作MOV TH1,#0FDH;波特率为9600bpsMOV TL1,#0FDH,SETB TR1MOV P1,#0FFHMOV 30H,#0FFH;设拨码开关初始值K0:MOV A,P1;读入拨码开关CJNE A,30H,K1;判

9、断与前次是不是相同,不同则调至K1SJMP K0K1:MOV 30H,A;存入拨码开关新值MOV SBUF,A;输入SBUF发送WAIT:JBC TI,K0;是否发送完毕?SJMP WAITEND,接收程序ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#60MOV SCON,#50HMOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDH,SETB TR1MOV P1,#0FFHK0:JB RI,KK;是否接收到数据,若有,则调至KKSJMP K0KK:MOV A,SBUF;将接收到的数据保存到累加器MOV P1,A;输出至P1CLR RI;清除RISJMP K0END,5.5 双机通信的系统调试,双机通信程序的编译与调试,联机调试,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号