单片机应用技能实训教案--项目9
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技能实训教案一项目8项目9单片机双机通信电路制作
任务1项目相关基本知识学习
送或接收一进制数据的位数称为波特率,单位为b/s,即位/秒。串行口有四种工作方式,这四种工作方式对应三种波特率。
工作方式0 :波特率为=fsoc/12,不受SMOD位影响。
工作方式2:波特率=2SMOD X fsoc/64 (9-1 )
工作方式1和方式3:
波特率=2SMOD X( T1 溢出率)/32 (9-2 ) T1溢出率即为一次定时时间的倒数,即
T1 溢出率=M1(9-3 )
(2M x) 12 fsoc
其中x为定时初值,M由T1的工作方式决定,一般置T1 工作方式2, M=8将式9-3代入9-2,并整理后得:
o SMOD -
波特率- ----- 『■竺(6-4 )
384(2 x)
当已知晶振频率和所需的波特率时,可由式6-4计算定时器
的初值。
二、MCS-51单片机串行口工作方式1、2、3及应用
1、方式1
方式1是波特率可调的8位数据异步通信方式,发送或接收一帧信息为10位,其中包括1位起始位0, 8位数据位和1位停止位1。
方式1的发送是在T1-0的条件下,由任何一条以SBUF为目的地址的数据传送指令作为启动发送开始的。发送时,由硬件自动生成一位起始位0,接着发送8位数据位,之后自动生成停止位1,数据从TXD端(P3.1引脚)输出。当发送完一帧数据后,置中断标志TI为1。
串行口置为方式1,若RI=0 , REN=1时,允许串行口接收数据。串行口米样RXD ( P3.0引脚),当米样到由1到0跳变时,确认是起始位“ 0”,便开始接收一帧数据。方式1接收时,必
须同时满足以下两个条件:
(1)RI=0 ;
(2)停止位为1或SM2=0。
在满足以上两个条件后,8位数据存入SBUF,停止位进入串行口控制寄存器SCON的RB8位,同时置中断标志RI为1。若不满足这两个条件,接收到数据不能存入SBUF,此组数据丢失。
2、方式2
方式2是9位数据异步通信方式,发送一帧信息为11位,其
中一位起始位0、8位数据位、第9位数据位和一位停止位1。当通信需要进行波特率设置时,应采用方式1或方式3。此时要计算定时器T1初值,并常设为方式2以获得需要的波特率。
重点说明如何启动发送以及如何将接收到的数据进行保存。
由老师与 同学共同 进
行程序 编写。
根据流程图,编写参考程序如下:
ORG 0000H
AJMP START ;转移到初始化程序 START
ORG 0023H ;串行口中断入口
AJMP CKZD
;转移到串行口中断服务程序 CKZD
ORG 0030H
;初始化程序入口 START : MOV 40H ,#00H ;给发送数据单元送立即数 01H
MOV
SCON #50H
;串行口方式 1初始化
MOV TMOD , #21H
;定时器T1初始化
MOV
TL1,#0F4H ;串行口方式 1波特率为2400
MOV TH1,#0F4H
SETB EA ;开中断总允许
SETB ES ;开串行口中断
SETB TR1 ;开定时器T1 简明介绍 MAIN : SJMP $
;等待接收/发送完成 多机通信 CKZD: ;中断服务子程序
原理,只要 PUSH ACC
;保存现场数据
同学了解 JNB RI,CKZD1 ;不是接收中断则转移到 CKZD1
多机通信 MOV 40H,SBUF ;是接收中断,将收到数据送 40H 单元 的原理。
CLR RI ;清RI ,为下次接收准备 CLR TI
MOV
SBUF , 40H ;
(a)主程序流程图
中断返回
(b)中断服务程序流程图
任务2双机通信电路的硬件、软件设计
统和LED显示电路(用于输出显示)。
2、电路设计
根据电路构成方案设计,对各组成部分进行设计。
2、元件选择
(1 )复习晶振电路元件及复位电路元件的选择。
(2)复习发光二极管电路元件选择。
二、应用程序编写
1、指令复习
请将下面每条指令举个应用例子。
MOV A, @Ri ; A・((Ri))
PUSH direct ;将direct中的内容压入堆栈。
RL A ; 将A中数据循环左移1位
INC Rn ; Rn —(Rn )+1
CJNE Rn, #data,rel ;比较不相等则转移,相等则顺序执行
SETB bit ; bit —1
CLR bit ; bit —0
JNB bit , rel ; bit位为1则转移,为0则顺序执行
2、指令学习
(1 )数据传送类指令
①MOV @Ri,A ; (Ri) —(A)
②MOV direct,@Ri ; direct—((Ri))
③MOV @Ri,direct ; (Ri) —(direct)
举例:设(A ) =26H、( 30H) =66H、(R0) =31H、( R1) =32H 分析下列指令的执行结果。
MOV @R0, A
MOV 30H,@R0
MOV @R1,30H
执行后,(30H) =26H、(31H) =26H、(32H) =26H , A、R0、R1中内容不变。
[温馨提示:数据传送指令中,间接寻址指令比较难掌握,但应用程序中还是经常使用,希望同学们多加练习。]
3、乙机接收程序设计
根据项目要求,程序编写应分别编写甲机的发送程序和乙机和接收程序。乙机接收程序与例9.1类似,下面冋学们和我一起来编写接收程序。
乙机的接收采用中断方式,参考程序如下:
ORG 0000H 老师和同学共同在黑板上绘制电路原理图。
通过提问或讨论方式由同学进行使用练习。
对各条指令进行讲解并举应用例子。
由老师和同学一起编写。
在老师引导下由同学老师共同完成流