单片机原理及其应用.pptx
《单片机原理及其应用.pptx》由会员分享,可在线阅读,更多相关《单片机原理及其应用.pptx(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第1章概述第2章MCS-51单片机硬件结构第3章MCS-51寻址方式和指令系统第4章MCS-51汇编程序设计第5章中断系统第6章定时器/计数器及串行口第7章存储器扩展第8章接口电路扩展第9章应用举例第1页/共86页2第6章 定时器/计数器、及串行口6.1 定时/计数器结构特点及控制6.2 串行通信及其接口第2页/共86页36.2 串行通信及其接口串行通信及其接口概述的串行口串行口的编程第3页/共86页4概述 串行通信是将字符数据的每位一位一位地依次传送。适合于计算机之间、计算机与外部设备之间的远距离通信。串行通信从传输方式分为:单工方式、半双工方式、全双工方式。从接收方式来说,串行通信有两种
2、方式:异步通信方式、同步通信方式。第4页/共86页5第5页/共86页6第6页/共86页7第7页/共86页8的串行口一、串行口的结构二、串行口的工作方式三、波特率的计算第8页/共86页9一、串行口的结构 下图是简化的串行口结构示意图。串行口有两个独立的发送、接收缓冲器SBUF。可同时发送与接收数据。发送缓冲器只写不能读,接受缓冲器只读不能写。要注意的是它们共用一个SFR地址(99H),也就有相同缓冲器名:SBUF 第9页/共86页101串行口控制寄存器SCONSCON的字节地址为98H,可位寻址。格式如图所示。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI9F9E9
3、D9C9B9A9998SCON位地址SM0,SM1:选择串行口4种工作方式。第10页/共86页11TITI:发送中断标志,发送一帧结束,TI=1,必须软件清零。RIRI:接收中断标志,接收一帧结束,RI=1,必须软件清零。RENREN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8TB8:发送的第9位数据位,可用作校验位和地址/数据标识位。RB8RB8:接收的第9位数据位或停止位。SM2SM2:多机通信控制位(接收控制)。方式0:SM2=0。方式1:一般SM2=0;若SM2=1,接收到停止位后,才激活RI。方式2,3:SM2=1,只有接收到 RB8=1,数据才进入SBUF,
4、并使RI=1。若RB8=0,数据丢弃。SM2=0,不管RB8是何值,数据都进SBUF,并使RI=1。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998SCON位地址第11页/共86页122特殊功能寄存器PCON其字节地址为87H,没有位寻址功能。PCON的格式如图所示,其中与串行接口有关的只有D7位SMOD。PCON格式SMOD=1 使波特率加倍。PCONSMODD7D6D5D4D3D2D1D0第12页/共86页13二、串行口的工作方式第13页/共86页141方式0 方式0是同步移位寄存器输入方式,用来扩展并行口。不用于通信。8位数据为
5、一帧,无起始位和停止位。1)方式0发送 CPU写入发送缓冲器SBUF一字节数据,产生一个正脉冲,串口开始从低位起,以fosc/12的固定波特率从RxD输出数据,同时在TxD上出现同步移位时钟。8位数据发完后,置位TI。第14页/共86页152)方式0接收 当CPU向SCON写入控制字(方式0,REN=1,RI=0),产生一个正脉冲,串口开始以fosc/12的固定波特率从RxD接受数据,同时TxD发出移位脉冲信号,作为外接芯片的移位时钟。8位数据收完后,置位RI。第15页/共86页162.方式1可变波特率8位异步收发方式启动发送过程MOVSBUF,A发送完时,TI=1方式1的一帧数据为10位。波
6、特率可变:1)方式1发送 CPU写入发送缓冲器SBUF一字节数据,内部/SEND 变低,串口开始从数据低位起,以TX时钟波特率从TxD输出数据,即每经过一个TX时钟,TxD上输出一个数据位。8位数据发完后,置位TI,/SEND 信号失效。第16页/共86页17读转换结果IfRIMOVA,SBUF2)方式1接收 CPU向SCON写入控制字(方式1,REN=1,RI=0),串口开始从RxD检测负跳变。出现负跳变后,位检测采样器启动,以波特率16倍的速率采样RxD。在7,8,9三次脉冲处采样,并以三中取二确定起始位。起始位到了后,以同样的方法接收其它数据。一帧数据收到后先放在移位寄存器中,满足下列条
7、件,数据才进SBUF,并置位RI。RI=0,说明接收SBUF空。SM2=0 或 SM2=1且收到的停止位1(第九位1)。第17页/共86页183方式2固定波特率9位异步收发方式 方式2是9位异步收发方式,每帧数据均为11位。在8位数据后加了可程控的第九位数据,可用于多机通信。波特率固定为:1)方式2发送 按通信协议设置TB8(奇偶校验或地址/数据标志),CPU写入发送缓冲器SBUF一字节数据,启动发送过程。串口自动把TB8装到第九位数据位,逐位发出,完毕,置位TI。第18页/共86页19【例6-11】(7-1)方式2发送在双机通信中的应用 通信检错采用偶校验,放在TB8中发送。用第二组工作寄存
8、器区的R0作为发送数据指针。下面是发送中断服务程序:PIPTI:PUSH PSWPUSH ASETB RS1;选第二组寄存器CLR RS0CLR TI;清发送标志MOV A,R0;取数据MOV C,P;奇:P=1,偶:P=0MOV TB8,C;校验位送TB8MOV SBUF,A;数据进SBUF,启动发送INC R0;调整指针POP APOP PSWRETI第19页/共86页202)方式2接收当CPU向SCON写入控制字(方式2,REN=1,RI=0),串口开始从RxD检测负跳变。出现负跳变后,位检测采样器启动,以波特率16倍的速率采样RxD。在7,8,9三次脉冲处采样,并以三中取二确定起始位。
9、起始位到了后,以同样的方法接收其它数据。一帧数据(11位)收到后先放在移位寄存器中,满足下列条件,8位数据才进SBUF,并置位RI。RI=0,说明接收SBUF空。SM2=0或SM2=1且收到的第九位数据RB81(地址)。第20页/共86页21【例6-12】(7-2)方式2接收在双机通信中的应用 通信检错采用偶校验,对RB8中的校验位作偶校验处理。选用第一组工作寄存器区的R0作为接收数据指针。下面是接收中断服务程序:第21页/共86页22PIRI:PUSH PSWPUSH ASETB RS0;选第一组寄存器CLR RS1CLR RI;清接收标志MOV A,SBUF;从接收缓冲区取数据MOV C,
10、P;获得接收数据的奇偶性JNC L1;偶数个1,转查RB8JNB RB8,ERP;奇数个1,奇校验错处理AJMP L2;奇偶性正确L1:JB RB8,ERP ;偶校验错,转出错处理L2:MOV R0,A;存接收的数据INC R0POP APOP PSWRETI第22页/共86页234方式3固定波特率9位异步收发方式 方式3和方式2一样可发送或接收11位数据,一个起始位(0),8个数据位(低位在先),附加第9个数据位(可编程控制位)及一个停止位(1)。方式3和方式2通信波特率不同,方式2的波特率是固定的。方式3的波特率和方式1类似,可以有多种选择,由定时器T1或T2的溢出率经分频得到。为避免反复
11、对T1装入初值,常选用方式2,此时T1计数器为8位,当需要较高波特率时,才选用其他工作方式。波特率=(2SOMD/32)*T1溢出率 第23页/共86页24三、波特率的计算方式1,3的波特率是可变的。设用T1作波特率发生器:波特率=(2SOMD/32)*T1溢出率波特率的定义:串口每秒钟发送(接收)的位数。方式0和方式2是固定波特率:方式0 波特率 fosc/12,fosc=12MHz,波特率为1Mb/s 方式2fosc=12MHz,SMOD=0,波特率为187.5kb/s,SMOD=1,波特率为375 kb/s。第24页/共86页25T1作波特率发生器,波特率计算公式为:其中,k为T1计数器
12、的位数,取决于T1的工作方式,可以是13(方式0)、16(方式1)和8(方式2或3)。T1作波特率发生器,最常用的是方式2。第25页/共86页26第26页/共86页27波特率计算【例6-13】(7-3)用T1方式2作波特率发生器,波特率为4800b/s。晶振频率12MHz取SMOD=0 实际波特率 4460b/s,误差较大。晶振频率取11.0592MHz,可得精确的波特率(X=250)第27页/共86页28四、串行口简单应用 串行口初始化编程格式:SIO:MOV SCON,#控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H);波特率加倍 (MOV TMOD,#20H);T1作
13、波特率发生器 (MOV TH1,#X);选定波特率 (MOV TL1,#Y)(SETB TR1)(SETB EA)(SETB ES);开串行口中断第28页/共86页29发送程序:先发送一个字符,等待TI=1后再发送下一个字符。1.查询方式发送:TRAM:MOV A,R0 ;取数据 MOV SBUF,A ;发送一个字符WAIT:JBC TI,NEXT;等待发送结束 SJMP WAITNEXT:INC R0 ;准备下一次发送 SJMP TRAM第29页/共86页302.中断方式发送:ORG0023H;串行口中断入口 AJMP SINTMAIN:;初始化编程TRAM:MOV A,R0 ;取数据 MO
14、V SBUF,A ;发送第一个字符H1:SJMP H1 ;其它工作SINT:CLR TI ;中断服务程序 INCR0 MOVA,R0 ;取数据 MOVSBUF,A ;发送下一个字符 RETI第30页/共86页31接收程序:REN=1、RI=0,等待接收,当RI=1,从 SBUF读取数据。1.查询方式接收:WAIT:JBC RI,NEXT;查询等待 SJMP WAITNEXT:MOV A,SBUF;读取接收数据 MOV R0,A;保存数据 INC R0 ;准备下一次接收 SJMP WAIT第31页/共86页322.中断方式接收:ORG0023H AJMP RINTMAIN:;初始化编程H1:SJ
15、MPH1 ;其它任务 RINT:CLRRI ;清中断标志 MOVA,SBUF;读取接收数据 MOVR0,A;保存数据 INCR0 RETI第32页/共86页33串行口的编程一、硬件连接二、双机通信三、多机通信第33页/共86页34两台8031直接通信RxDBTxDB一、硬件连接第34页/共86页35两台8751互传数据第35页/共86页36 单片机与单片机与RS232C接口接口(1)集成电路电平转换电路MC1488,1489(2)集成电路电平转换器Max232。(3)分离元件电平转换电路。第36页/共86页37两台8031采用RS232C总线通信第37页/共86页388031单片机和PC机通过
16、RS232C总线通信接口图第38页/共86页39(a)MC1488(b)MC1489MC1488,MC1489引脚第39页/共86页40第40页/共86页41二、双机通信【例6-14】甲乙双方以串口方式1(8位数据)发送/接收数据块。通信协议:波特率4800b/s应答甲机发呼叫信号“06H”乙机发应答信号“00H”表示可以接收“05H”暂不接收数据格式 字节数 数据1 数据2 数据n 累加校验和 乙机计算的累加和与接收的累加和相同时,发“0FH”否则发“F0H”,甲机收到“F0H”则重发。第41页/共86页421.甲机发送 甲机将30H开始10个单元内容发送给乙机,以查询方式发送。晶振11.0
17、592MHz,T1方式2的初值是FAH R1:数据区指针 R7:数据长度 R6:累加和 第42页/共86页43R1第43页/共86页44ORG 0HSTART:MOV TMOD,#20H;T1方式2MOV TH1,#0FAH;4800b/sMOV TL1,#0FAHMOV SCON,#50HSETB TR1AGAIN:CLR P1.0CLR TICLR RIMOV R1,#30H;数据区首地址MOV R7,#10;10个数据MOV R6,#0;累加和清0TX_ACK:MOV A,#06H;发呼叫“06HMOV SBUF,AWAT:JNB TI,WATCLR TI第44页/共86页45RX_RE
18、P:JNB RI,RX_REP;等待接收CLR RIMOV A,SBUF;接收应答CJNE A,#00H,TX_ACK ;应答不对,重;新呼叫TX_NUM:MOV A,R7;发字符数MOV SBUF,AWAIT2:JNB TI,WAIT2CLR TITX_DAT:MOV A,R1;发数据MOV SBUF,AADD A,R6;计算累加和MOV R6,AINC R1第45页/共86页46WAIT3:JNB TI,WAIT3DJNZ R7,TX_DAT;未完,再发下一个;数据MOV A,R6;发累加和MOV SBUF,AWAIT4:JNB TI,WAIT4CLR TICHECK:JNB RI,CHE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 及其 应用
限制150内