单片机作业(4) jx
- 格式:doc
- 大小:277.54 KB
- 文档页数:15
单片机作业(四)
1111020205
姜雪
一.系统设计与分析
1.系统设计:设晶振为12MHz,将拨码开关数据串行输入74LS164,并行输出
到8个LED进行相应的数码显示。
2.系统分析:本次设计是单片机串行口在方式0下发送数据时,是把串行端口
设置成“串入并出”的输出口。将它设置为“串入并出”输出
口时,需外接一片8位串行输入和并行输出的同步位移芯片——
74LS164。
3.单片机的串行通信
(1)串行通信的基本概念
通信:计算机与外界的信息交换。
通信的基本方式:并行通信和串行通信。
并行通信:构成一组数据的各位同时进行传送。其特点是传送速度快,但若传送距离远、位数又较多时会导致通讯线路复杂且成本较高。
串行通信:数据一位接一位地传送。其特点:通信线路简单,只要一对传输线就可实现通信(如电话线),从而大大降低了成本,特别适用于远距离通信,缺点是传送速度慢。
(2)串行通信分类:异步传送和同步传送。
异步传送方式:
特点:数据在线路上的传送不连续。数据的传送以一个字符为单位进行传送。它用一个起始位表示字符的开始,用一个停止位表示字符的结束。
异步传送的字符格式:
在串行异步传送中,通信双方必须事先约定:
1)字符格式:字符的编码形式,奇偶校验形式,起始位和停止位的规
定。如ASCII码:有效数据位7,奇偶校验1,起始位和停止位各1,共10位。
2)波特率:数据传送的速率,即每秒钟数据传送的位数,位/秒,一般为50-9600波特。发送端与接收端的速率必须一致。
同步传送方式:
每一个要传送的数据块的开头要用同步字符SYN来指示,使发送 和接收双方取得同步。各字符间取消了起始位和停止位,通信速度得到提高。如果发送的数据块之间有间隔,则发送同步字符填充。
串行通信的数据传送方向的形式:
1)单工方式
2)半双工方式
3)全双工方式
(3)单片机串行通信接口的功能与结构
MCS-51单片机内部有一个功能很强的全双工串行口:RXD/ P3.0 ,TXD/P3.5,可同时发送和接收数据。
发送和接收数据均可工作在
查询方式和中断方式,使用十分
灵活,可很方便地与其它计算机
或串行传送信息
的设备实现双机、多机通信。
串行口主要由发送数据缓冲
器、接收数据缓冲器、发送控制
器、接收控制器、输入移位控制
器等组成。
发送数据缓冲器只能写入,
不能读出;接收数据缓冲器只能
读出,不能写入,故两个寄存器
共用一个符号(特殊功能寄存器
SBUF),共用一个地址(99H)。
串行口中还有两个特殊功能寄存器SCON、PCON:
SCON:串行口控制寄存器,控制串行口的工作方式;
PCON:电源控制寄存器,只有一位SMOD控制波特率。
波特率发生器可用定时器/计数器0或和定时器/计数器1构成。
1)串行通信控制寄存器 SCON
寄存器SCON的功能主要是接收串行通信口送到的中断请求信号。其字节地址为98H,它有8位 ,每位均可进行位寻址,各位的地址和名称如下:
SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1:选择串行口四种工作方式,由软件置位或清零;
SM2:多机控制位;
REN:允许串行接收位;
TB8:发送数据第8位;
RB8:接收数据第8位;
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST/VPD
RXD/P3.0
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
WR/P3.6
RD/P3.7
XTAL2
XTAL1
VSS 1
2
3
4
5 6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 8031
8051
8751 40
31
29
26
22 23 24 VCC
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
EA/Vpp
ALE/PROG
PSEN
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0 TI:发送中断标志位;
RI:接收中断标志位。
2)电源控制寄存器 PCON
PCON的最高位SMOD是波特率控制位,其余各位与串行口无关。
其字节地址为97H,它有8位 ,各位的地址和名称如下:
SCON D7 D6 D5 D4 D3 D2 D1 D0
SMOD --- --- --- GF1 GF0 PD IDL
SMOD=1:波特率增大一倍。
(4)串行口的工作方式
M0 M1 工作方式 功能
0 0 方式0 移位寄存器方式(用于并行I/O口扩展),可外接移位寄存器以扩展I/O口,也可外接班同步输入输出的设备.波特率:fosc/12
0 1 方式1 8位通用异步接收发送器(UART),波特率:可变.
1 0 方式2 9位通用异步接收发送器(UART),波特率:.fosc/32或fosc/64
1 1 方式3 9位通用异步接收发送器(UART),波特率:.可变(UART,异步接收与发送)
串行通信控制寄存器 SCON
SM0 SM1 SM2 REN TB8 RB8 TI RI
方式0(SM0=0、SM1=0):为移位寄存器方式,数据从RXD引脚上接收或发送。一帧信息由8位数据组成,低位在前,波特率固定,为fosc/12。同步脉冲从TXD引脚上输出。
SM2:多机控制位必须为0;
REN:允许串行接收位:REN=0,禁止接收; REN=1,允许接收;
TB8、RB8:在方式0中无用; TI:发送中断标志位;
RI:接收中断标志位。
方式0发送或接收完8位数据TI/RI由硬件置1,CPU响应中断后, TI或RI标志位必须由程序清0。
方式1(SM0=0、SM1=1):为8位异步通信接口方式,RXD为接收端,TXD为发送端。一帧信息由10位组成:起始位:1,数据位:8,停止位:1;方式1的波特率可变,由由定时器/计数器T1及SMOD决定,且发送波特率和接收波特率可以不同。
TI=1:置发送中断标志;
REN=1,允许接收;操作如下:
1)若RI=0、SM2=0,将8位数据装入SBUF,停止位装入RB8,并置RI=1,申请中断。
2)若RI=0、SM2=1,那么只有停止位为1才发生上述操作;
3)若RI=0、SM2=1且停止位为0,则所接收的数据不装入SBUF,即数据丢失;
4)若RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。
方式2(SM0=1、SM1=0)和方式3(SM0=1、SM1=1):
1)均为9位异步通信接口,发送或接收一帧信息由11位组成:起始位:1,数据位:9,停止位:1。
2)方式2、3仅波特率不同:
方式2波特率:fosc/32(SMOD=1)或fosc/64(SMOD=0)。
方式3波特率:由定时器/计数器T1及SMOD决定。
3)方式2和方式3发送、接收数据的过程与方式1基本相同,所不同的仅在于对第9位数据的处理上。发送时,第9位数据由SCON中的TB8提供;接收时,当第9位数据移入移位寄存器后,将8位数据装入SBUF,第9位数据装入SCON中的RB8。
(5)波特率的设置
串行口的4种工作方式对应3种波特率模式:
对于方式0:波特率是固定的,为fosc/12;
对于方式2:波特率由振荡频率fosc和SMOD(PCON.7)所决定,波特率=2SMOD ×fosc/64。
对于方式1和3:波特率由定时器/计数器T1及SMOD决定,波特率= 2SMOD
×定时器/计数器T1溢出率/32。
(6)多机通信
在实际应用中,需要多个单片机之间协调工作,即多机通信,利用单片机串口即可实现。
串口用于多机通信,必须使用方式2或方式3(9位URAT)。
主从式多机通信:应用最广,也最简单。主机发出的信息只能传送到所有从机或指定从机;从机发出的信息只能被主机接收;从机之间不能直接通信,必须通过主机。
主机发出的信息有两类:一类为地址,用来确定和主机通信的从机,特征是串行传送的第9位数据为1;另一类为数据, 特征是串行传送的第9位数据为0。对从机来说,要利用SCON寄存器中的SM2的控制功能:
在接收时,若RI=0,则只要SM2=1,接收总能实现,若SM2=0,发送的第9位TB8必须0接收才能进行,因此,对于从机来说,在接收地址时,应使SM2=1,以便接收主机发来的地址,从而确定主机是否打算和自己通信;一经确认后,从机应使SM2=0,以便接收TB8=0的数据。
主从多机通信的过程:
1)使所有的从机的SM2位置1,以便接收主机发来的地址;
2)主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1;
3)所有从机接收到地址帧后,各自将所接收到的地址与本机地址相比较:对于地址相同的从机,使SM2位清零,以接收主机随后发来的所有信息;对于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧;