版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学导航教学导航任务单任务单任务准备任务准备知识梳理与总结知识梳理与总结案例示范案例示范任务作业任务作业任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯教教知识重点(1)字符帧格式与波特率; (2)串行口结构;(3)串行口控制寄存器; (4)串行口的4种工作方式及波特率设置知识难点 串行口结构及工作方式推荐教学方式以任务入手,通过单片机双机通信来控制霓虹灯这一任务的实现,让读者逐渐理解单片机串行口通信的技术及其应用。建议学时 4学时学学推荐学习方法通过对教师提供的电路图,编写程序,完成仿真调试,理解相关理论知识,学会应用。必须掌握的理论知识(1)单片机串行通信基础知识 (2)单片机之间的通信(
2、3)串行口的结构、SBUF及控制寄存器(4)串行口的4种工作方式及波特率设置必须掌握的技能(1)串行口中断服务函数的编写; (2)单片机之间的串行口通信的设计任务任务描述描述本任务是通过两个单片机通过串行口进行通信实现霓虹灯效果。任务任务要求要求两个单片机通过串行口连接,一个单片机U1接16只发光二极管(P0口各脚分别连接红、绿、黄、蓝四种颜色),一个单片机U2接两只数码管(BCD码),让16只发光二极管按规律的闪亮(如第1次点亮所有红灯、第2次点亮黄灯、第3次点亮绿灯、第4次点亮蓝灯,依次循环往复),而霓虹灯闪亮的规律字由另一个单片机U1通过串行口传送过来;与U1的P2口连接的数码管显示闪亮
3、的轮数,即U2设置一个计数值(初值为0),收到的数据是霓虹灯每轮的开始(即红灯亮时)则该计数值加1,并将该计数值传送到U1显示,当计数值超过99时计数值归0继续计数,如果U2发现数据传送有错误,则两只数码管显示“FF”。实现实现方法方法1利用教师提供的电路图,编写程序;2在Proteus仿真运行,实现任务要求。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯4.1 串行通信基础串行通信基础4.2 MCS-51单片机的串行接口单片机的串行接口任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯4.1.1 串行通信的分类串行通信的分类4.1.2 串行通信
4、的传输方向串行通信的传输方向任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯所谓通信,是指微型计算机系统内部部件之间、微型计算机与外部设备之间、微型计算机与微型计算机之间的数据传送(信息交换)。分类并行通信串行通信任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯 计算计算机机1 GND 计算计算机机2 GND并行通信并行通信 计算机计算机1 GND 计算机计算机2GND发送发送接收接收串行通信串行通信任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯 数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线为接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟
5、来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 1. 1. 异步通信异步通信任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯 起始位。位于字符帧开头,只占一位,始终为逻辑0低电平。 数据位。根据情况可取5位、6位、7位或8位,低位在前高位在后。若所传送数据为ASCII字符,则取7位。 奇偶校验位。仅占一位,用于表征串行通信中采用奇校验还是偶校验。 停止位。位于字符帧末尾,为逻辑“1”高电平,通常可取1位、1.5位或2位。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯第n-1字符帧 D7 0/1 1 0 D0 D1 D2 D3 D4 D5 D6 D7 0/1 1 0 D0 D18位
6、数据奇偶校验奇偶校验停 起止 始位 位停 起止 始位 位第n+1字符帧第n字符帧任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯第n-1字符帧 1 0 D0 D1 D2 D3 D4 D5 D6 D7 0/1 1 1 1 1 0 D08位数据奇偶校验空闲位停 起止 始位 位停止位起始位第n字符帧第n+1字符帧插入了3个空闲位的帧任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯波特率(Baut Rate)是指每秒钟传送信号的数量,单位为波特(Baud)。在异步通信中,波特率是最重要的指标,用于表征数据传输的速度。波特率越高,数据传输速度越快。可以由用户根据实际情况而通过软件设定。任务任务4 双单片
7、机控制霓虹灯双单片机控制霓虹灯(1)要注意波特率与比特率是有区别的,每秒钟传送二进制数的位数定义为比特率,单位是bit/s。由于在单片机串行通信中传送的信号就是二进制信号,因此波特率与比特率数值上相等,单位采用bit/s。(2)波特率与字符的实际传输速率不同,字符的实际传输速率是指每秒钟内所传字符的帧数。例如,假如数据传送的速率是120字符/秒,而每个字符如上述规定包含10数位(1个起始位,8个数据位和1个停止位组成一帧),则其传送波特率为:10bit120字符/s1200波特。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占
8、用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯A站站发送发送器器B站站接收接收器器A站站B站站发送器发送器发送器发送器接收器接收器接收器接收器A站站B站站发送器发送器接收器接收器接收器接收器发送器发送器单工单工半双工半双工全双工全双工任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯4.2.1 串行口的结构串行口的结构uMCS-51系列单片机内部有一个串行接口(Serial Port),是一个可编程的全双工(能同时进行发送
9、和接收)通信接口,具有UART(Universal asynchronous receiver transmitter通用异步接收和发送器)的全部功能。u该串行接口电路主要由串行口控制寄存器SCON、发送和接收电路等三部分组成。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯去申请中断去申请中断发送发送SBUF(99H)接收接收SBUF (99H)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T11A累累加加器器输出控制门输出控制门RxDTxD P3.1P3.0CPU内部内部串串行行控控制制寄寄存存器器98H任务任务4 双单片机控制霓虹灯双单
10、片机控制霓虹灯在物理上有两个SBUB:一个发送寄存器SBUF、一个接收寄存器SBUF二者共用一个地址99H和相同的名称SBUF。一个只能被CPU读、一个只能被CPU写发送时,CPU写入的是发送SBUF接收时, 读取的是接收SBUF, 接收寄存器是双缓冲的, 以避免在接收下一帧数据之前, CPU未能及时响应接收器的中断, 没有把上一帧数据读走, 而产生两帧数据重叠的问题。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯工作方式选择多机通信控制位允许接收控制位接收数据的第9位发送数据的第9位接收中断标志发送中断标志SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH 9AH
11、99H98H在方式2和方式3中,仅用于接收,当接收机的SM2=1时可以利用收到的第9位来控制是否置RI(当RB80时不激活RI,并且将接收到的前8位数据丢弃;当RB81时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求)。当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请求。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯SM0 SM1 工作方式功能说明波特率0 0方式08位同步移位寄存器常用于扩展I/O口fosc/120 1 方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)1 0方式211位UART8位数据、起始位、结束
12、位和奇偶校验位fosc/64或fosc/321 1方式311位UART可变(取决于定时器1溢出率)任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯只有该位有用,为只有该位有用,为1时,波特率时,波特率2;为为0时不变。时不变。SMOD GF1 GF0 PDIDL87H不能位寻址,在对其进行初始化时需用字节传送指令! 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯串行口的SBUF是作为8位同步移位寄存器用,主要用于和外部同步移位寄存器外接以扩展一个并行I/O接口(将串行口变为1个8位并行I/O口使用)。此方式是半双工的,并非是一种同步通信方式。 波特率固定为fosc/12,即每个机器周期移位一
13、次。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口,也可外接同步输入/输出设备。1. 1. 方式方式0 0 同步移位寄存器方式同步移位寄存器方式任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯ABCLK3 4 5 6 10 11 12 13数据输出移位脉冲RXDTXD805174LS164D7D6D5D4D3D2D1D0SBUF中的串行数据由RXD逐位移出;TXD输出移位时钟,频率=fosc/12;每送出8位数据,TI就自动置1;必须用软件清零 TI。RXD不再是接收引脚、TXD也不再是发送引脚。任务任务4 双单片机控制霓虹灯双单片机
14、控制霓虹灯ACLK6543 14 13 12 11数据输入移位脉冲RXDTXD805174LS165D0D1D2D3D4D5D6D7串行数据由RXD逐位移入SBUF中;TXD输出移位时钟,频率=fosc/12;每接收8位数据RI就自动置1;必须用软件清零 RI。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯方式0时:SM0,SM100方式0时SM2必须为0:SM20 REN1时允许接收:REN1方式0为8位数据,TB8、RB800 接收前,发送中断标志TI0 接收中断标志RI0故控制字(SCON)00010000B10H 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯方式1、方式2、方式3
15、均为全双工方式,串行数据经TXD(P3.1)端发送给外设,而外设发出的串行数据由RXD(P3.0)端接收,发送和接收可同时进行。当SM00,SM11时,串行口工作在方式1。串行口为10位异步通信方式。方式1多用于两个单片机(双机)之间或单片机与外设电路间的通信。在此方式下字符帧除8位数据位外,还有一位起始位(0)和1位停止位(1)。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯 发送操作在TI0时进行,任何一条“写SBUF”指令都可以启动一次发送,CPU向发送器缓冲寄存器写入一个字节的数据后,发送电路自动在8位发送字符前后分别添加1位起始位和1位停止位,并在移位脉冲的作用下在TXD线上依次发
16、送一帧信息,发送完后自动维持TXD线为高电平,TI由硬件在发送停止位时置1,并向CPU申请中断。 当一帧字符发送完后,使TXD输出线维持在1状态,并使TI置1以通知CPU再发送下一个字符。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯接收操作在RI0和REN1条件下进行。方式1是靠检测RXD来判断的,CPU不断采样RXD端,当采样到负跳变时,启动一次接收。在移位脉冲控制下,把接收的数据移入接收SBUF中,直到接收到数据第9位(即停止位)时,同时满足:RI0SM20或接收到的停止位为或接收到的停止位为1 则把接收到的8位数据存入“接收SBUF”,把停止位送入RB8中,并使RI置1和发出串行口中
17、断请求,通知CPU执行“读SBUF”指令,从SBUF中取出接收到的一个数据。如果条件不满足,则这次收到的数据就被舍去,不送入“SBUF(接收)”中,这就意味着丢失了一组数据。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯方式2和方式3都是11位为一帧的UART方式1个起始位,9个数据位和一个停止位。第9位数据位既可作奇偶校验位也可作控制位,发送之前应先在SCON的TB8位中准备好。方式3和方式2除波特率不同之外,其它的性能完全一样,两种工作方式的通信过程完全相同。方式2的波特率只有fosc/32和fosc/64两种而方式3的波特率是可变的,由用户根据需要在程序中设定,这一点与方式1相同。任务
18、任务4 双单片机控制霓虹灯双单片机控制霓虹灯发送过程是由执行 “写入SBUF”指令来启动的。由“写入SBUF”信号把8位数据装入SBUF,同时还把TB8装入发送移位寄存器的第9位。当TI=0,CPU向发送器缓冲寄存器写入一个字节的数据后,发送电路自动在9位发送字符前后分别添加1位起始位和1位停止位,并在移位脉冲的作用下在TXD线上依次发送一帧信息,发送完后自动维持TXD线为高电平,TI由硬件在发送停止位时置1,并向CPU申请中断。第9位数据(TB8)由软件置位或清零。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯与方式1类似,方式2和方式3接收过程始于在RXD端检测到负跳变时,说明起始位有效
19、,将其移入移位寄存器,并开始接收一帧信息的其余位。当检测到停止位时,如果同时满足下列两个条件: RI=0; SM2 =0 或接收到的第 9 位数据为“1”。 则第9位数据装入SCON中的RB8, 前8位数据装入接收SBUF,并置中断标志RI=1。上述两个条件中任一个不满足, 所接收的数据帧就会丢失, 不再恢复。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯方式2和方式3可以像方式1一样用于点对点的异步通信。在数据通信中由于传输距离较远,数据信号在传送过程中会产生畸变,从而引起误码。为了保证通信质量,除了改进硬件之外,通常要在通信软件上采取纠错的措施。常用的一种简单方法就是用“校验和”,作为第
20、9位数据称奇偶校验位,将其置入TB8位一同发送。在接收端可以用第9位数据来核对接收的数据是否正确。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯#includeunsigned char sdata=;main()SCON=0 x80; ACC=sdata; TB8=P; SBUF=sdata; while(TI=0); TI=0; 小技巧 由于要发送奇偶标志位,因此需先把要发送的数据传送到累加器A中,以获得奇偶标志位P的位,否则得不到P的值。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯#includeunsigned char sdata=;main() SCON=0 x90; w
21、hile(RI=0); RI=0;ACC=SBUF; if(P!=RB8) error(); /如果P不等于RB8的值则出错 else sdata=ACC; 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯计算机与计算机的通信不仅限于点对点通信,还会出现一机对多机或多机间的通信,构成计算机网。主从式通信,即在多台计算机中有一台是主机,其余为从机,从机要服从主机的调度、支配。MCS51单片机的串行口方式2、方式3就适合于这种主从式的通信结构用作多机通信,以构成多机系统。使用中应注意对主、从机的控制字的设定。主机应先发送与之通信的某从机的地址信息,此时应置TB8为1(地址帧的标志),收到从机应答后
22、,对TB8清0后再发送数据(TB80作为数据帧标志)。方式2时(SCON)10011000B98H方式3时(SCON)11011000BD8H任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯从机在通信开始时处于“监听状态”,以接收主机发出的地址信息,SM2位应置1,当确认是呼叫本机时使SM2清0再向主机应答。然后等待接收主机发送数据,可根据RB8的状态判断,RB80则是接收的数据,否则为地址。重又转入监听状态,同时要置SM2位为1。从机的控制字为:方式2时(SCON)10110000BB0H;方式3时(SCON)11110000BF0H。主、从机的控制字分别在各自的初始编程中进行设置。 任务任
23、务4 双单片机控制霓虹灯双单片机控制霓虹灯 固定为fosc/12,即每个机器周期移位一次。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯当SMOD=1时,波特率为1/32fosc;当SMOD=0时,波特率为1/64fosc。 oscsf642mod波特率任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯T1溢出率 = T1计数率/产生溢出所需的周期数,指在1秒钟内溢出的次数。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。设T1的初值为X,则T1工作于方式0:溢出所需周期数=8192X T1工作于方式1:溢出所需周期数=65536XT1工作于方式2:溢出所需周期数=256X 溢出率定
24、时器波特率T1322mods任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯对定时/计数器来说,T1作为波特率发生器最典型的用法是使用T1工作在定时方式2状态,则其波特率为:)256(12322SMODXfosc波特率波特率3842256Xmodsoscf则初值计算公式为:则初值计算公式为: 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯C/T波特率/b/s(方式1、3)foscSMOD定时器T1工作方式初值62.5K12102FFH(255)19.2K11.0592102FDH(253)960011.0592002FDH(253)480011.0592002FAH(250)240011.0
25、592002F4H(244)120011.0592002E8H(232)任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯解:由(PCON)00H可知SMOD0初值HFfsosc3120038421062563842256X06mod波特率任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯用8051串行口外接CD4094扩展8位并行输出口,8位并行口的各位都接一个发光二极管,要求发光二极管自右向左以一定速度依次显示,呈流水灯状态。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯本例是将串行口工作于方式0,串行口工作于方式0时有两种不同的用途:把串行口设置成并入串出的输出口,此时需要外接一片8位串行
26、输入和并行输出的同步移位寄存器74LS164或CD4094;将串行口设置成串入并出的输入口,此时需要外接一片8位并行输入和串行输出的同步移位寄存器74LS165或CD4014。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯CD4094是一种8位串行输入(D端)并行输出的同步移位寄存器,采用CMOS工艺制成。CLK为同步脉冲输入端,STB为控制端:若STB0,则8位并行数据输出端关闭,但允许串行数据从D输入;若STB1,则D输入端关闭,但允许8位数据并行输出。任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯#includesbit p10=P10;void main() unsigned ch
27、ar sdata=0 xfe; int i; SCON=0; p10=0; /避免LED产生“暗红”现象 while(1) 查询查询方式!方式! SBUF = sdata; while(TI=0); TI=0; p10=1; for(i=10000;i0;i-); sdata=1; /左移 sdata |=1; /最低位补1 if(sdata=0 xff) sdata=0 xfe; p10=0; /关闭并行输出 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯#includesbit p10=P10;void isr_serial(); unsigned char sdata=0 xfe;vo
28、id main() SCON=0; p10=0; SBUF = sdata; EA=1;ES=1; while(1);void isr_serial() interrupt 4 int i; p10=1; for(i=10000;i0;i-); sdata=1; sdata |=1; if(sdata=0 xff) sdata=0 xfe; p10=0; SBUF = sdata;TI=0;中断方式!任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯1. 串行口的初始化串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。 (2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。 (3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。 (4)设定SMOD的状态,以控制波特率是否加倍。 (5)若选定工作方式1或3,则应对定时器 T1进行初始化以设定其溢出率。 任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯任务任务4 双单片机控制霓虹灯双单片机控制霓虹灯波特率不能太高,设为240,则计数器的初值为16。使用串行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锦州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(夺冠系列)
- 2026年宁德市 农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(考点梳理)
- 东莞市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 汕头市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合卷)
- 朔州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合题)
- 兰州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(基础题)
- 丽水市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(黄金题型)
- 龙岩市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及一套答案详解
- 吕梁市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(精练)
- 保山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合卷)
- PET分类词汇带音标
- 电子科大薄膜物理(赵晓辉)第四章 化学气相沉积
- 2023年全国《经济金融基础知识》题库与答案
- 工贸行业重点可燃性粉尘目录版
- 国内地铁轨道公司组织架构
- 某县医疗卫生机构药品验收记录表
- 乙炔安全技术说明书MSDS
- GA/T 453.2-2021居民身份证冲切技术规范第2部分:冲切设备技术要求
- 医药代表地区经理竞聘ppt模板
- 国电南自110kv主变保护pst671u型调试手册
- 2021年5月CCAA审核员考试《认证通用基础》真题及答案
评论
0/150
提交评论