单片机与嵌入式系统_第1页
单片机与嵌入式系统_第2页
单片机与嵌入式系统_第3页
单片机与嵌入式系统_第4页
单片机与嵌入式系统_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12021-12-12单片机与嵌入式系统第八章第八章 8.1 串行通信基本知识串行通信基本知识8.2 MCS-51串行接口串行接口8.3 串口多机通信串口多机通信8.4 应用举例应用举例 22021-12-12单片机与嵌入式系统8.1 串行通信的基本知识串行通信的基本知识数据传送有两种方式:并行通信和串行通信数据传送有两种方式:并行通信和串行通信 计算机计算机1 GND 计算机计算机2 GND发送发送接收接收串行通信串行通信并行通信:数据的各位并行通信:数据的各位同时同时传送;传送;串行通信:数据串行通信:数据一位一位一位一位顺序传送。顺序传送。 计算机计算机1 GND 计算机计算机2 GND

2、并行通信并行通信32021-12-12单片机与嵌入式系统一、串行通信和并行通信一、串行通信和并行通信并并 行行 通通 信信串串 行行 通通 信信原原 理理各数据位同时传送各数据位同时传送数据位按位顺序进行数据位按位顺序进行优优 点点传送速度快、效率高传送速度快、效率高最少只需一根传输线即可完成:成本低最少只需一根传输线即可完成:成本低缺缺 点点数据位数数据位数传输线根数:成本高传输线根数:成本高速度慢速度慢应应 用用传送距离传送距离30米,用于计算机内部米,用于计算机内部短距离通信短距离通信几米几千公里,用于计算机与外设之间几米几千公里,用于计算机与外设之间长距离通信长距离通信42021-12

3、-12单片机与嵌入式系统二、串行通信基本方式二、串行通信基本方式异步通信异步通信 以字符为传送单位,每个字符都要用起始位和停止位标识,间隔不以字符为传送单位,每个字符都要用起始位和停止位标识,间隔不固定,只需字符传送时同步即可。固定,只需字符传送时同步即可。52021-12-12单片机与嵌入式系统同步通信同步通信 以一串字符为一个传送单位,字符间不加标识位,在一串字符开始以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用用1-21-2个同步字符标识,硬件要求高,用同步时钟保证发送接收双方的个同步字符标识,硬件要求高,用同步时钟保证发送接收双方的严格同步。严格同步。62021-12-1

4、2单片机与嵌入式系统三、串行通信数据传送方向三、串行通信数据传送方向发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)(a a)单工:)单工:数据单向传送。(数据单向传送。(1 1条数据线,单向)条数据线,单向)(b b)半双工:)半双工:数据可分时双向传送。(数据可分时双向传送。(2 2条数据线,双向)条数据线,双向)(c c)全双工:)全双工:可同时进行发送和接收。(可同时进行发送和接收。(1 1条或条或2 2条数据线,双向)条数据线,双向)72021-12-12单片机与嵌入式系统 波特率:波特率:每秒钟传送二进制数码的位数,单位为每秒钟传送二进制数码的位数,单

5、位为bpsbps,即位,即位/ /秒。秒。 如果数据传送速率是如果数据传送速率是200200字符字符/ /秒,而每个字符秒,而每个字符包含包含1010个代码位,则波特率为个代码位,则波特率为 200200字符字符/ /秒秒1010位位/ /字符字符=2000bps=2000bps四、波特率四、波特率82021-12-12单片机与嵌入式系统8.2 MCS-51串行接口串行接口一个可编程一个可编程全双工异步全双工异步串行通信接口(串行通信接口(UART)UART)收发管脚:收发管脚:RXDRXD(P3.0P3.0)、)、TXDTXD(P3.1P3.1)四种工作方式四种工作方式波特率可设置波特率可设

6、置92021-12-12单片机与嵌入式系统一、一、MCS-51串口结构串口结构发送SBUF(99H)门发送控制器接收控制器1输入移位寄存器串行控制寄存器(98H)定时器1接收SBUF(99H)888TIRI内部总线TXD(P3.1)RXD(P3.0)串行口中断uSBUF串行口数据缓冲器(串行口数据缓冲器(99H)F共两个:一个发送寄存器共两个:一个发送寄存器SBUF,一个接收,一个接收SBUF,二者共用一个地址,二者共用一个地址99H。uSCON串行口控制寄存器(串行口控制寄存器(98H)uPCON电源及波特率选择寄存器(电源及波特率选择寄存器(87H)102021-12-12单片机与嵌入式系

7、统数据缓冲器数据缓冲器SBUFSBUF(99H99H)发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址99H99H。 1 1)发送)发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同时将同时 启动发送。启动发送。 发送指令:发送指令:MOV SBUFMOV SBUF,A A2 2)接收)接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。 读取指令:读取指令:MOV AMOV A,SBUFSBUF112021-12-12单片机与嵌入式系统串行通信只用该位,为串行通信只用该位

8、,为1时,波特率加倍;为时,波特率加倍;为0时不变。时不变。SMOD GF1 GF0PDIDL电源及波特率选择寄存器电源及波特率选择寄存器PCONPCON(87H87H,不可位寻址),不可位寻址)122021-12-12单片机与嵌入式系统串口控制寄存器串口控制寄存器SCON(98H)工作方式选择工作方式选择多机通信控制位多机通信控制位允许接收控制位允许接收控制位接收数据的第接收数据的第9位位发送数据的第发送数据的第9位位SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98H发送中断标志位发送中断标志位接收中断标志位接收中断标志位RENREN:REN=1RE

9、N=1,允许接收;,允许接收;REN=0REN=0,禁止接收。,禁止接收。TB8TB8:在方式在方式2 2和方式和方式3 3中,发送的第中,发送的第9 9位数据,可作为奇偶校验位。位数据,可作为奇偶校验位。RB8RB8:在方式在方式2 2和方式和方式3 3中,接收的第中,接收的第9 9位数据。位数据。TI TI :发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1TI=1,必须,必须软件清零软件清零;RI RI :接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须,必须软件清零软件清零。132021-12-12单片机与嵌入式系统工作方式由工作方式由SM

10、1、SM0决定决定工作方式工作方式功能功能说明说明波特率波特率方式方式08位同步移位寄位同步移位寄存器存器常用于扩展常用于扩展I/O口口fosc/12方式方式110位异步收发位异步收发8位数据、起始位数据、起始位、结束位位、结束位可编程(取决于可编程(取决于定时器定时器1溢出率)溢出率)方式方式211位异步收发位异步收发8位数据、起始位数据、起始位位0、结束位、结束位1和奇偶校验位和奇偶校验位fosc/64或或fosc/32方式方式311位异步收发位异步收发数据、起始、校数据、起始、校验、结束位验、结束位可编程(取决于可编程(取决于定时器定时器1溢出率)溢出率)二、四种工作方式二、四种工作方式

11、142021-12-12单片机与嵌入式系统方式方式0:同步移位寄存器方式:同步移位寄存器方式写入写入SBUF选通选通RXD数据输出数据输出TXD移位时钟移位时钟TI中断申请中断申请D0D1D2D3D4D5D6D7(a)发送时序发送时序REN=1RI=0接收接收RXD数据输入数据输入RI中断申请中断申请(b)接收时序接收时序152021-12-12单片机与嵌入式系统 在方式在方式0 0下,波特率固定为下,波特率固定为f foscosc/12/12,即每个机器周期接,即每个机器周期接收或发送一位数据。收或发送一位数据。 串行数据从串行数据从RXD(P3.0)RXD(P3.0)端输入或输出,同步移位

12、脉冲由端输入或输出,同步移位脉冲由TXD(P3.1)TXD(P3.1)送出。这种方式常用于扩展送出。这种方式常用于扩展I/OI/O口。口。方式方式0用于扩展用于扩展I/O口输出口输出162021-12-12单片机与嵌入式系统方式方式1:10位异步通信方式位异步通信方式写入写入SBUF选通选通(a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位发送过程:发送过程:写入写入SBUF(例如:(例如:MOV SBUF,A),同时启),同时启动发送,一帧发送结束,动发送,一帧发送结束,TI=1。172021-12-12单片机与嵌入式系统方式方式1

13、:10位异步通信方式位异步通信方式接收过程:接收过程:REN=1时允许接收,采样时允许接收,采样RXD管脚电平,如是起始位,管脚电平,如是起始位,则开始接收。接收完一帧,若则开始接收。接收完一帧,若RI=0且停止位为且停止位为1 (或或SM2=0),将接收数,将接收数据装入据装入SBUF,停止位装入,停止位装入RB8,并使,并使RI=1。)256(12322SMODXfosc方式方式1波特率波特率= 其中,其中,X为为T1的初值的初值(b) 接收时序图接收时序图采样采样RXD输入数据输入数据D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变182021-12-12

14、单片机与嵌入式系统方式方式2和方式和方式3:11位异步通信方式位异步通信方式发送过程:发送过程:先装入先装入TB8TB8,将要发送数据写入,将要发送数据写入SBUFSBUF并启动发并启动发送,发送结束,送,发送结束,TI=1TI=1 。方式方式2和方式和方式3工作原理相同,区别是方式工作原理相同,区别是方式2波特率固定,方式波特率固定,方式3波特波特率可变。方式率可变。方式2、3可用于多机通信。可用于多机通信。(a) 发送时序图发送时序图写入写入SBUF选通选通TXD输出输出TID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7192021-12-12单片机与嵌入式系统方式方式2和

15、方式和方式3:11位异步通信方式位异步通信方式接收过程:接收过程:REN=1时允许接收,采样时允许接收,采样RXD管脚电平,如是起始位,管脚电平,如是起始位,则开始接收。接收完一帧,若则开始接收。接收完一帧,若RI=0且第且第9位为位为1 (或或SM2=0),将接收数据,将接收数据装入装入SBUF,第,第9位装入位装入RB8,使,使RI=1。RXD输入输入(b) 接收时序图接收时序图RID0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变oscf642SMOD方式方式2波特率波特率=)256(12322SMODXfosc方式方式3波特率波特率= 其中,其中,X为为

16、T1的初值的初值202021-12-12单片机与嵌入式系统在方式在方式1、3中,波特率由中,波特率由T1定时器设置这种方法用的最多,定时器设置这种方法用的最多,用到寄存器有:用到寄存器有:TMOD:T1设成方式设成方式2,自动重装式自动重装式,0010 xxxxB; PCON:用到了用到了SMOD位(位( D7位)位) SMOD=1时加倍;时加倍; SMOD=0时不加倍。时不加倍。)256(12322SMODXfosc方式方式1或方式或方式3的波特率的波特率= 其中,其中,X为为T1的初值的初值已知波特率,计算已知波特率,计算T1初值初值X=波特率3842-256SMODoscf三、波特率的计

17、算三、波特率的计算212021-12-12单片机与嵌入式系统波特率波特率/(b/s)fosc/MHzSMOD定时器定时器1C/模式模式初始值初始值方式方式0:1 M方式方式2:375000方式方式1/3:62500192009600480024001200137.5 11011012121211.059211.059211.059211.059211.059211.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT常用的波特率常用的波特率222021-12-12单片机与嵌入式系统例:例:要求串口以方式要求串口以方式1

18、 1工作,通信波特率为工作,通信波特率为2400b/s2400b/s,设振荡,设振荡频率频率foscfosc为为6MHz6MHz,请初始化,请初始化T1T1和串口。和串口。解:解:若选若选SMOD=1SMOD=1,则,则T1T1时间常数时间常数 N=256N=2562 21 1 6 6 10106 6/(384/(384 2400)=242.98243=F3H2400)=242.98243=F3H 定时器定时器T1T1和串行口的初始化程序如下:和串行口的初始化程序如下:MOVMOVTMODTMOD,#20H#20H;设置;设置T1T1为方式为方式2 2MOVMOVTH1TH1,#0F3H#0F

19、3H;置时间常数;置时间常数MOVMOVTL1TL1,#0F3H#0F3HORLORLPCONPCON,#80H#80H;SMOD=1SMOD=1MOVMOVSCONSCON,#50H#50H;设串口为方式;设串口为方式1 1 SETB SETBTR1TR1;启动;启动T1T1 232021-12-12单片机与嵌入式系统四、串行通信标准四、串行通信标准RS232TTL电平电平TTL电平采用电平采用正逻辑正逻辑: “0”: 0 2.4V; “1”: 3.6V+5V; 高阻:高阻:2.4V3.6V。242021-12-12单片机与嵌入式系统1569载波检测载波检测DCD接收数据接收数据RXD发送数

20、据发送数据TXD数据终端就绪数据终端就绪信号地信号地GND数据装置就绪数据装置就绪请求发送请求发送RTS清除发送清除发送CTS振铃指示振铃指示RS-232通信接口通信接口9针针D型头型头252021-12-12单片机与嵌入式系统单片机电平是单片机电平是TTL电平,它与电平,它与RS-232电平不兼容,必电平不兼容,必须进行电平转换。电平转换的电路很多,须进行电平转换。电平转换的电路很多,MAX232是一种是一种新型的专用集成电路,类似的集成电路还很多,能实现新型的专用集成电路,类似的集成电路还很多,能实现RS232电平和电平和TTL电平之间的相互转换。电平之间的相互转换。C1+C1-C2+C2

21、-VCCV+V-电压倍增器电压倍增器+5V+10V电压反向器电压反向器+10V-10V1111+5VT1OUTT2OUTR1OUTR2OUTT1INT2INR1INR2INC1C2C3C4TTL/CMOS输入输入TTL/CMOS输出输出RS-232C输出输出RS-232C输入输入MAX232C2-V-C1+V+C1-C2+T2OUTR2INR2OUTT2INT1INR1OUTR1INT1OUTVCCGND12345678910161514131211电平转换电平转换262021-12-12单片机与嵌入式系统PC机和单片机串口通讯的电路连接机和单片机串口通讯的电路连接 PC机机COM口口接接80

22、51的的TXD和和RXD272021-12-12单片机与嵌入式系统原理图原理图 282021-12-12单片机与嵌入式系统8.3 串口多机通信(了解)串口多机通信(了解) 主机设置为方式主机设置为方式2或或3的工作方式,令的工作方式,令SM=0、REN=1; 从机工作方式与主机相同,但令从机工作方式与主机相同,但令SM=1、REN=1。292021-12-12单片机与嵌入式系统8.4 应用举例应用举例串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#控制状态字控制状态字 ;写方式字;写方式字 MOV PCON,#80H ;波特率加倍;波特率加倍 MOV TMOD,#20H

23、 ;T T1 1作波特率发生器作波特率发生器 MOV TH1,#X ;选定波特率;选定波特率 MOV TL1,#X SETB TR1 ;启动定时器;启动定时器 (SETB EA) (SETB ES) ;开串行口中断;开串行口中断302021-12-12单片机与嵌入式系统发送程序发送程序1、查询方式:查询方式:TRAM:MOV A,R0 ;取数据;取数据 MOV SBUF,A ;发送一个字符;发送一个字符WAIT: JBC TI,NEXT ;等待发送结束;等待发送结束SJMP WAITNEXT: INC R0 ;准备下一次发送;准备下一次发送SJMP TRAM先发送一个字符,等待先发送一个字符,

24、等待TI=1TI=1后再发送下一个字符。后再发送下一个字符。312021-12-12单片机与嵌入式系统2、中断方式:、中断方式: ORG 0023H ;串行口中断入口;串行口中断入口AJMP SINTMAIN: ;初始化编程初始化编程TRAM: MOV A, R0 ;取数据;取数据MOV SBUF,A ;发送第一个字符;发送第一个字符 H:SJMP H ;其它工作;其它工作 SINT:CLR TI ;中断服务程序;中断服务程序INC R0MOV A, R0 ;取数据;取数据MOV SBUF,A ;发送下一个字符;发送下一个字符RETI322021-12-12单片机与嵌入式系统接收程序接收程序1

25、.查询方式:查询方式: WAIT:JBC RI,NEXT;查询等待;查询等待SJMP WAITNEXT:MOV A,SBUF ;读取接收数据;读取接收数据MOV R0,A;保存数据;保存数据INC R0 ;准备下一次接收;准备下一次接收SJMP WAITREN=1REN=1、RI=0RI=0等待接收;当等待接收;当RI=1RI=1,从,从SBUFSBUF读取数据。读取数据。332021-12-12单片机与嵌入式系统2.中断方式:中断方式:ORG0023HAJMPRINTMAIN: ;初始化编程;初始化编程 H:SJMPH ;其它任务;其它任务 RINT:CLRRI ;清中断标志;清中断标志MO

26、VA,SBUF ;读取接收数据;读取接收数据MOVR0,A;保存数据;保存数据INCR0RETI342021-12-12单片机与嵌入式系统chsi_ck0: ;初始化串口初始化串口子程序子程序 mov TMOD,#20H ;0010,0001B T1:定时定时,方式方式2 mov SCON,#50H ;0101,0000B 方式方式1,8UART 方式方式 mov PCON,#00H ;SMOD=0不加倍不加倍 mov TH1,#0F3H ;自动重装自动重装 mov TL1,#0F3H ;定时常数定时常数 setb TR1 ;开开T1 ret 例例1:采用采用查询查询的方法实现单片机向的方法实

27、现单片机向PC机发送数据。已知,晶振机发送数据。已知,晶振频率为频率为12M,波特率为,波特率为2400。实现:每按一次按键,单片机发。实现:每按一次按键,单片机发送一个数字送一个数字(ASCII码码),从,从0到到9循环发送,循环发送,PC机接收。机接收。(用汇编用汇编编程编程)352021-12-12单片机与嵌入式系统sed_numb: ;发送子程序发送子程序 mov SBUF,a ;发送一个数据发送一个数据went_s: JBC TI,is_snumb;TI=1,表示发完表示发完 sjmp went_s ;TI=0,没发完,等待没发完,等待is_snumb: inc a ;数据增数据增1

28、 ret 362021-12-12单片机与嵌入式系统main: ;主程序主程序 mov sp,#80h ;堆栈堆栈 lcall chsi_ck0 ;初始化串口初始化串口re_sed: mov r0,#10 ;设数据个数设数据个数(共共10个)个) mov A,#30h ;从从0开始发送开始发送r_k1: jb k1,$ ;判按键按下否判按键按下否 jnb k1,$ ;判按键抬起否。可加入延时去抖判按键抬起否。可加入延时去抖 ;程序程序 lcall sed_numb ;发送数据发送数据 djnz r0,r_k1 ;未发送完,继续未发送完,继续 sjmp re_sed ;发送完,重新开始发送完,重

29、新开始 end372021-12-12单片机与嵌入式系统red_numb: ;从串口接收数据从串口接收数据 jbc RI,is_numb sjmp red_numbis_numb: mov a,SBUF ;读数据读数据 mov b,a ;存储在存储在B中中 ret 例例2:采用采用查询查询的方法实现的方法实现PC机与单片机的双向通信。已知,机与单片机的双向通信。已知,晶振频率为晶振频率为12M,波特率为,波特率为2400。实现:。实现:PC发送数据发送数据, 单片机单片机接收该数在数码管显示,并回送该数到接收该数在数码管显示,并回送该数到PC。(用汇编编程用汇编编程)382021-12-12单

30、片机与嵌入式系统sed_numb: ;发送数据到发送数据到PC mov a,b mov SBUF,a ;发送数据发送数据w_snub: jbc TI,is_end_n ;查查TI=1? sjmp w_snub ;TI=0 等待等待is_end_n: ret392021-12-12单片机与嵌入式系统main: ;主程序入口主程序入口 mov sp,#80h ;设堆栈设堆栈 clr P1.7 ;选通数码管选通数码管 mov P2,#03 ;初始显示初始显示0 lcall chsi_ck0 ;初始化串口初始化串口con_red: lcall red_numb ;从串口读数从串口读数 lcall di

31、sp_r_numb ;数码管显示子程序,自己编写数码管显示子程序,自己编写 lcall sed_numb ;发送数据到发送数据到PC sjmp con_red ;继续发送数据继续发送数据 end 402021-12-12单片机与嵌入式系统 org 0000h ;程序入口程序入口 ljmp main ;跳到主程序跳到主程序 org 0023H ljmp sint ;跳到串口中断程序跳到串口中断程序 org 0100hsint: ;串口中断程序串口中断程序 jbc RI, JS ;已接收,读取且已接收,读取且RI=0 jbc TI, FH ;已发送,返回且已发送,返回且TI=0FH: reti ;无数据通信,退出无数据通信,退出例例3:采用中断的方法实现例采用中断的方法实现例2(用汇编编写用汇编编写)。412021-12-12单片机与嵌入式系统JS: mov a,SBUF ;读数据读数据 mov b,a ;存储在存储在B中中 lcall disp_r_numb ;可调用显示子程序可调用显示子程序 mov a,b mov SBUF,a ;发送数据发送数据 reti ;中断返回中断返回 422021-12-12单片机与嵌入式系统main: ;主程序入口主程序入口 mov sp,#90h ;设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论