版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块5单片机的串口通信设计5.1项目描述5.2项目目的与要求5.3项目支撑知识链接5.4项目实施项目小结项目拓展技能与练习
【项目导入】
由项目1可知,单片机的I/O端口中有一个可编程、全
双工的串行口,它就是单片机与外界进行交换信息的端口,本项目将学习单片机串行通信的相关知识和串口的结构及
应用。
【项目目标】
1.知识目标
(1)了解单片机串行通信的一些概念;
(2)掌握单片机串行口的结构和工作原理;
(3)理解单片机串行口的工作方式;
(4)掌握串行通信的硬件设计。
2.能力目标
(1)能根据系统的功能要求,对串口进行设置;
(2)能根据功能模块要求,对串口通信进行设计;
(3)学会串行口的初始化编程。
5.1项目描述
单片机与外界进行信息的交换必然要用到通信协议,比如单片机与单片机的通信、单片机与PC的通信等。本项目通过设计一个由甲单片机(简称甲机)通过串口通信去控制乙单片机(简称乙机)LED灯的闪烁,来让大家熟悉并掌握单片机的通信设计。
5.2项目目的与要求
本项目的设计目的是通过甲单片机的端口控制乙单片机I/O端口LED灯的闪烁。具体要求:通过按下甲单片机的开关次数来完成发送控制命令字符,乙单片机根据接收来自甲机传送的信息来完成LED1闪烁、LED2闪烁、双闪烁或停止闪烁等。在实施项目过程中,要掌握以下基本知识点:
(1)串行通信的基本概念和工作原理;
(2)单片机的串行口结构;
(3)串口寄存器的功能及串口的工作方式;
(4)串口通信的应用。
5.3项目支撑知识链接
5.3.1串行通信
1.概述
在实际应用中,计算机与外部设备之间,计算机与计算机之间常常要进行信息交换,所有这些信息的交换均称为“通信”。通信的基本方式分为并行通信和串行通信两种。并行通信是构成数据信息的各位同时进行传送的通信方式,例如8位数据或16位数据并行传送。图5-1(a)为并行通信方式的示意图,其特点是传输速度快,缺点是需要多条传输线,当距离较远、位数又多时,通信线路复杂且成本高。串行通信是数据一位接一位地顺序传送。图5-1(b)为串行通信方式的示意图。其特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大降低了成本,特别适用于远距离通信,缺点是传送速度慢。图5-1通信的两种基本方式由图5-1可知,假设并行传送N位数据所需时间为T,那么串行传送的时间至少为NT,实际上总是大于NT。在串行通信中一个方向只有一根通信线,这根线既传输数据信息,又传输控制信息。为了加以区分,要对信息的格式进行约定。信息格式有异步信息和同步信息两种,与此对应,串行通信就分为异步通信和同步通信两种方式。
1)异步通信方式
异步通信方式是一种常用的通信方式,以帧为发送单位。帧由四个部分组成:起始位、数据位、奇偶校验位、停止位。起始位占1位,数据位占5~8位,奇偶校验位占1位(也可以没有奇偶校验位),停止位占1或2位,如图5-2所示。图5-2中给出的是有8位数据位的帧格式,帧中有1位起始位、8位数据位、1位奇偶校验位、1位停止位,共11位。其中,起始位标识数据发送开始,接下来是数据位和奇偶校验位,停止位标识数据发送结束。数据传送的基本过程是:传送开始后,接收设备不断检测传输线,若在接收到一系列的“1”之后,检测到一个“0”,说明接到一个帧的起始位,接着接收数据位和奇偶校验位,当接收到停止位时,说明帧传送结束。将数据位拼成一个字节,进行奇偶校验,验证无误后表明正确收到一个字符。图5-2异步通信原理示意图由上述过程可见,异步通信是按字符传输的。异步通信的特点是不需要传送同步脉冲,字符帧长度也不受限制,故硬件结构比同步通信方式简单;但因此种传送方式中包含有起始位和停止位,故而降低了有效数据的传输速率。
2)同步通信方式
同步通信是一种比特同步的通信方式,要求发收双方具有同频同相的同步时钟信号,用同步起始位作为发送或接收数据的开始,如图5-3所示。图5-3同步通信示意图图5-3中给出的是同步通信方式的一帧数据。数据传送的基本过程为:发送方先发送一个或两个特殊字符,该字符称为同步字符,当发送方和接收方达到同步后,就一个接一个地发送一大块数据。
使用同步通信方式可以实现高速度、大容量的数据传送,其缺点是要求发送时钟和接收时钟保持严格同步。故发送时钟除应和发送比特率保持一致外,还应把它同时传送到接收端。
2.串行通信方式与波特率
1)串行通信方式
在串行通信中,数据是在两个站之间进行传送的。按照数据传送方向,串行通信可分为单工(simplex)、半双工(halfduplex)和全双工(fullduplex)三种方式。图5-4为三种方式的示意图。
(1)单工:指通信双方只能进行单方向传输。单工通信的通信线是单向的,发送端只有发送器,只能发送数据;接收端只有接收器,只能接收数据,如图5-4(a)所示。
(2)半双工:指通信双方都能进行数据传输,双方都设有发送器和接收器,都能发送数据和接收数据,但不能同
时进行,即发送时不能接收,接收时不能发送,如图5-4(b)所示。
(3)全双工:是指通信双方能同时进行数据传输,双方都设有发送器和接收器,能同时发送数据和接收数据,如图5-4(c)所示。图5-4串行通信数据传送方式
2)波特率
串行通信的快慢用波特率来表示。51系列单片机串行口有4种工作方式,波特率也随之不同。波特率和帧格式可以通过软件编程来设置。必须正确进行波特率的设置,才能进行可靠的数据通信。波特率是数据的传送速率,指的是每秒钟传送二进制数码的位数,单位为波特/秒(baud/s),也叫波特数,它是衡量异步通信的一个重要指标。但波特率与字符的实际传送速率不同,字符的实际传送速率(字符帧/秒)是每秒内所传送的字符帧数,和字符帧格式有关。波特率与字符的传送速率(字符/秒)之间存在如下关系:波特率=位/字符×字符/秒=位/秒。每1位二进制位的传送时间Td就是波特率的倒数。
例如:假设字符传送速度为360字符/s,每个字符又包含10位,试求此通信中的波特率及一位二进制数的传送时间。
波特率为一位二进制数传送的时间即为波特率的倒数:
异步通信的传送速率在50~19200位/s之间,常用于计算机到CRT终端,以及双机和多机之间的通信。
3.信号的调制和解调
当异步通信的距离在30m以内时,计算机之间可以直接通信。而当传输距离较远时,通常用电话线进行传送。电话线的带宽限制以及信号传送中的衰减会使信号发生明显的畸变。所以,在这种情况下,发送时要用调制解调器(Modulator)把数字信号转换为模拟信号,并加以放大再传送,这个过程称为调制。在接收时,用解调器(Demodulator)检测此模拟信号,并把它转换成数字信号再送入计算机,这个过程称为解调。
4.RS-232C串行通信协议
RS-232C由美国电子工业协会制定,是目前使用最多的一种异步串行通信总线标准。RS-232C定义了数据终端设备(DTE)和数据通信设备(DCE)之间的物理接口规范。采用标准接口后,能方便地把单片机和外设以及测量仪器等有机地连接起来构成一个控制系统。此串口协议适合短距离或调制解调的通信场合。
1) RS-232C的电气特性
该标准采用负逻辑,电平值为-3V~-15V的低电平表示逻辑“1”;电平值为 +3V~+15V的高电平表示逻辑“0”。RS-232C不能直接与TTL电路连接,使用时必须加上适当的电平转换电路,否则会烧坏。目前较常用的电平转换芯片有MAX232、MC1488和MC1489等。
2) RS-232C引脚
RS-232C接口采用的是9针连接和25针连接,具体如图5-5所示。RS-232C的引脚定义见表5-1所示。图5-5串行口
3) RS-232C的通信距离和速度
RS-232C规定的最大负载电容为2500pF,这个电容限制了它的传送距离和传送速率。在不使用调制解调器(Modem)时,它的可靠最大通信距离为15米。另外,它的接口最大传输速率为20k/s,它还提供以下传输速率:1200b/s、2400b/s、4800b/s、9600b/s和19200b/s。在使用RS-232C时要根据情况选择它的传输速率。5.3.2单片机的串行口及工作方式
51单片机内部含有一个可编程的全双工通信串行接口(简称串行口),该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。该串行口通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信。由三个特殊功能寄存器对串行口的接收和发送进行控制,它们分别是串行口缓冲寄存器SBUF、串行口控制寄存器SCON和电源控制寄存器PCON。51系列单片机串行口内部简化结构示意图如图5-6所示。图5-6串行口简化结构串行发送和接收的速率与移位时钟同步,定时器T1作为串行通信的波特率发生器,T1溢出率经2分频(或不分频)后又经16分频作为串行发送或接收的移位时钟。移位时钟的速率即波特率。
(1)发送数据过程:CPU通过内部总线将并行数据写入发送SBUF。在发送控制电路的控制下,按设定好的波特率,每来一次移位脉冲,通过引脚TXD向外输出一位。一帧数据发送结束后,向CPU发出中断请求,TI位置1;CPU响应中断后,开始准备发送下一帧数据。
(2)接收数据过程:CPU不停检测引脚RXD上的信号,当信号中出现低电平时,在接收控制电路的控制下,按设定好的波特率,每来一次移位脉冲,读取外部设备发送的一位数据到移位寄存器。一帧数据传输结束后,数据被存入接收SBUF,同时向CPU发出中断请求,RI位置1。CPU响应中断后,开始接收下一帧数据。
1.与串行口有关的寄存器
51系列单片机中有关串行通信的特殊功能寄存器有串行数据缓冲寄存器SBUF、串行控制寄存器SCON和电源控制寄存器PCON。
1)串行数据缓冲寄存器SBUF
串行数据缓冲寄存器SBUF是一个字节地址为99H的特殊功能寄存器,用来存放将要发送或接收到的数据。在物理结构上,它对应着发送缓冲寄存器和接收缓冲寄存器,它们共用同一个地址。CPU通过读或写来区别究竟对哪一个缓冲寄存器进行操作,即发送缓冲寄存器只能写入不能读出,接收缓冲寄存器只能读出而不能写入。当CPU向SBUF发出“写”命令时,表示将A中数据写入发送缓冲寄存器,同时也启动数据按一定的波特率发送;而当执行读SBUF的命令时,则表示将接收到的数据从接收缓冲寄存器读出并送入A中。
2)串行控制寄存器SCON
串行控制寄存器SCON用于设置串行口的工作方式,监视串行口的工作状态、发送与接收的状态控制等。它是一个既可进行字节寻址又可进行位寻址的特殊功能寄存器。
串行控制寄存器SCON的结构和各位名称、位地址如表5-2所示。各位功能说明如下:
(1) SM0、SM1—串行口工作方式选择位:串行口的工作方式及功能选择由这两位确定,具体如表5-3所示。
(2) SM2—多机通信控制位:在方式2和方式3中,若SM2=1,且RB8(接收到的第九位数据)=1时,将接收到的前8位数据送入SBUF,并置位RI产生中断请求,否则将接收到的8位数据丢弃;若SM2=0,则不论第九位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。在方式0中,SM2必须为0。
(3) REN—允许接收控制位:REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。
(4) TB8—方式2和方式3中要发送的第9位数据:在方式2和方式3时,TB8是发送的第9位数据。该位由软件置位或复位。TB8还可用作奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。
(5) RB8—在方式2或方式3中,RB8存放已接收到的第9位数据,作为奇偶校验位或地址帧/数据帧的标志位;在方式1中,若SM2=0,则RB8是接收到的停止位。
(6) TI—发送中断标志位:当采用方式0时,发送完第8位数据后,该位由硬件置位;在其他方式下,遇发送停止位时,该位由硬件置位。因此TI=1,表示帧发送结束,可用软件查询TI位标志,也可以请示中断。TI位必须由软件清0。
(7) RI—接收中断标志位:当采用方式0时,接收完第8位数据后,该位由硬件置位;在其他方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束,可用软件查询RI位标志,也可以请示中断。RI位也必须由软件清0。
3)电源控制寄存器PCON
PCON主要是为CHMOS型单片机电源控制而设置的专用寄存器。其中,最高位SMOD是串行口波特率的倍增位,在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时串行口波特率加倍。系统复位时,SMOD=0。PCON寄存器不能进行位寻址,其各位名称如表5-4所示。
2.串行口的工作方式
89C51单片机串行通信共有4种工作方式,可有8位、10位、11位帧格式,是由串行控制寄存器SCON中SM0SM1来决定的,如表5-3所示。
1)串行工作方式0
在方式0下,串行口作为同步移位寄存器使用。这时以RXD端作为数据移位的输入/输出端,而由TXD端输出移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。其帧格式如下:在移位时钟脉冲(TXD)的控制下,将发送数据缓冲器的数据串行移到外接的移位寄存器,通过引脚RXD输出;8位数据以fosc/12的固定频率输出,发送完一帧数据后,发送中断标志TI由硬件置位;接收数据时,复位接收请求标志RI=0,置位允许接收控制位REN=1,外接移位寄存器中的内容首先移入内部的输入寄存器,然后写入接收数据缓冲寄存器,此后RI置1。在方式0下,移位操作的波特率是固定的,为单片机晶振频率的1/12。以fosc表示晶振频率,则波特率=fosc/12,也就是一个机器周期进行一次移位。若fosc=6MHz,则波特率为500kb/s,即2μs移位一次;若fosc = 12MHz,则波特率为1Mb/s,即1μs移位一次。
2)串行工作方式1
方式1是一帧10位的异步串行通信方式,包括1个起始位、8个数据位和1个停止位,其帧格式如下:数据发送是由一条写串行数据缓冲寄存器SBUF指令开始的。在串行口硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在“1”(space)状态下,并将串行控制寄存器SCON中的TI置1,表示一帧数据发送完毕;接收数据时,SCON中的REN位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从1向0状态的跳变时,就认定为已接收到起始位,随后在移位脉冲的控制下,接收数据位和停止位。
【小提示】
(1)若RI=0,SM2=0,则8位数据装入SBUF,停止位装入RB8,置RI=1。
(2)若RI=0,SM2=1,且停止位为1,则结果与A相同。
(3)若RI=0,SM2=1,且停止位为0,则所接收数据丢失。
(4)若RI=1,则所接收数据丢失。上述不论出现哪种情况,检测器都会重新检测RXD端的负跳变,以便接收下一帧。
方式1的波特率是可变的,其波特率由定时器/计数器T1的计数溢出率来决定,其公式为:波特率=2SMOD×(T1溢出率)/32。其中,SMOD为PCON中最高位的值,SMOD=1表示波特率倍增。当定时器/计数器T1用作波特率发生器时,通常选用定时初值自动重装的工作方式2(注意:不要把定时器/计数器的工作方式与串行口的工作方式搞混淆),从而避免了通过程序反复装入计数初值而引起的定时误差,使得波特率更加稳定。若T1不中断,则T0可设置为方式3,借用T1的部分资源,拆成两个独立的8位定时器/计数器,以弥补T1被用作波特率发生器而少一个定时器/计数器的缺憾。若时钟频率为fosc,定时计数初值为T1初值,则波特率为
波特率= 在实际应用中,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为
T1的时间常数 =
例如,89C51单片机控制系统,晶振为12MHz,要求串口发送数据为8位,波特率为1200b/s,设SMOD=1,则T1的时间常数的计算如下:
T1的时间常数=
=256-52.08=203.92≈0CCH
3)串行工作方式2和方式3
方式2是一帧11位的串行通信方式,即1个起始位、8个数据位、1个可编程位TB8/RB8和1个停止位,其帧格式如下:其中,可编程位TB8/RB8既可用作奇偶校验位,也可用作控制位(多机通信)用,其功能由用户确定。发送数据时,向SBUF写入一个数据就启动串口发送,同时将TB8写入输出移位寄存器的第9位。开始时,SEND和DATA都是低电平,把起始位输出到TXD。以后每次移位,左边移入0。当TB8移到输出位时,其左边是一个1和全0。检测到此条件,再进行最后一次移位,SEND=1,DATA=0,输出停止位,置TI=1。接收数据时,置REN = 1。与方式1类似,起始位0移到输入寄存器的最左边时,进行最后一次移位。在RI=0,SM2=0或接收到的第9位为1时,收到的一字节数据装入SBUF,第9位进入RB8,置RI=1,然后又开始检测RXD端负跳变。方式3同样是一帧11位的串行通信方式,其通信过程与方式2完全相同,所不同的仅在于波特率。方式2的波特率只有固定的两种,而方式3的波特率则与方式1相同,即通过设置TI的初值来设定波特率。
3.串行口的工作方式应用
单片机串口初始化需完成单片机串口工作方式选择、波特率设置、波特率发生器设置等基本设置。例如,设置单片机晶振为11.0592MHz,串口波特率为9600baud/s,串口选择工作方式1,定时器配置为工作方式2。初始化程序如下:voidUartInit(void)
{TMOD=(TMOD&0X0F)|0X20;//设置定时器T1为定时方式2
TH1=110592001/12/32/9600;//求波特率为9600baud/s时定时器初值
TL1=TH1;//启动T1计数器
TR1=1;
SCON=0x70;//设置串行工作方式1,允许接收
PCON=0x80;}
【例5-1】用89C51的串行口外接一片CD4094扩展8位并行输出,并行口每位接一发光二极管,要求发光二极管循环轮流亮,工作电路如图5-7所示,请编写程序。图5-7CD4094扩展输出接口分析:CD4094是一片8位串行输入/并行输出的同步移位寄存器,CLK为同步脉冲输入端,STB为选通控制端。STB=0时,8位数据Q1~Q8关闭,允许数据输入;STB=1时,8位数据Q1~Q8输出。系统采用方式0通信,以中断方式工作。C51源程序如下:
#include<reg51.h>
#include<intrins.h> //包含头文件
#defineunitunsignedchar
#defineunitunsignedint
sbitP1_0=P1^0;
ucharSendData
voidDelayMs(uchar);
//延时1毫秒程序
voidserial_ISR(void)interrupt4//串行中断处理程序{
P1_0=1;
DelayMs(200); //延时
TI=0;
P1_0=0; //允许接收
SendData=_crol_(SendData,1); //待发送的数据左移1位
SBUF=SendData; //发送数据
}
voidmain(void) //主程序{
TMOD=0x00; //设串行口为方式0
EA=1;
//开总中断
ES=1;
//开串行中断
SendData=0x01; //发送数据初值
P1_0=0;
SBUF=SendData; //发送数据
While(1); //等待一次数据发送完毕
}voidDelayMs(ucharno) //延时毫秒程序
{
uchari,j;
for(i=0;i<no;i++)
{
for(j=0;j<164;j++);
for(j=0;j<164;j++);
}
}
【例5-2】89C51单片机按全双工方式收发数据。要求将内部RAM的30H单元开始的20个数据发送出去,同时接
收到的20个数据保存到以50H单元为初始地址的内部RAM
数据缓冲区。时钟振荡频率为6MHz,数据传送的波特率为2400baud/s,试编写通信程序。
分析:
全双工通信要求能同时接收和发送数据,通过检测RI位还是TI位为1来判断是选择接收操作还是选择发送操作,系统采用串行方式2通信,以中断方式工作。
C51程序如下:
#include<reg51.h>
#include<absacc.h>
unsignedchardatasdata[20]_at_0x30;
unsignedchardatardata[20]_at_0x50;
//定义变量绝对地址
main()
{
TMOD=0x20; // T1工作于方式2
TH1=0xfa;
TL1=0xfa; //波特率时间常数TR1=1; //启动T1
SCON=0x50;
//设定串行口方式1
ES=1; //开串口中断
EA=1;
//开中断
While(1); //等待串行中断
}
voidsbsi()interrupt4; //中断处理程序{
if(RI==1)
{send();} // RI=1,调用接收子程序
else
{rces();} //TI=1,调用发送子程序
}
//发送接收子程序
voidrces(){
unsignedcharI;
RI=0; //清RI
rdata[i]=SBUF;
//存入到指定数据缓冲区
i++; //指向下一数据存储单元
if(i==20)
{i=0;}
}
voidsend(){
unsignedchari;
if(i==20)
{;}
//判断数据是否发送完毕
else{
TI=0;
//清TI
SBUF=sdata[i]; //启动发送
}
i++;
//指向下一数据
}
5.4项目实施
5.4.1项目硬件设计
本项目的设计要求是:单片机甲发送信息,单片机乙接收发来的信息。通过甲的按键来控制发送的字符信息,乙单片机根据所接收到的信息完成LED1闪烁、LED2闪烁、LED1和LED2双闪烁或同时停止闪烁,硬件设计如图5-8所示。图5-8甲机控制乙机的通信设计5.4.2项目软件设计
根据甲单片机通过按键S1向乙单片机发送不同字符的控制信息,乙单片机再根据接收到的甲的字符信息来完成点亮LED,其程序设计的思想见程序控制流程图5-9。根据流程图的功能可写出C51的源程序。图5-9甲机和乙机通信流程图C51源程序:
/*****甲机通过按键向乙机发送不同字符******/
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitLED1=P0^0;
sbitLED2=P0^3;
sbitS1=P1^0;
voidDelayMS(uintms) //延时{ uchari;
while(ms--)for(i=0;i<120;i++);
}
/********向串口发送字符********/
voidPutc_to_SerialPort(ucharc)
{ SBUF=c;
while(TI==0);
TI=0;
}
voidmain() //主程序{
ucharOperation_No=0;
SCON=0x40; //串口模式1
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
while(1) {
if(K1==0)//按下S1时选择操作代码0,1,2,3
{
while(S1==0);
Operation_No=(Operation_No+1)%4;
}
switch(Operation_No) /根据操作代码发送
A、B、C或停止发送
/*乙机程序接收甲机发送字符并完成相应动作,根据相应信号控制LED完成不同闪烁动作*/
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitLED1=P0^0;
sbitLED2=P0^3;
//延时
voidDelayMS(uintms)5.4.3项目综合仿真与调试
1.使用KeilC51编译源程序
KeilC51是51系列单片机的开发系统,利用它可以编辑、编译、汇编、连接C程序和汇编程序,从而可以生成在单片机中进行烧录的 .hex文件。项目1已经详细介绍了程序的编译过程,本项目编写的程序最终生成的烧录文件如图5-10所示。图5-10编辑成功后生成的烧录文件
2.使用Proteus系统仿真软件调试并验证系统运行的
结果
Proteus是一款优秀的EDA软件,使用它可以绘制电路原理图、PCB图,进行交互式电路仿真。在单片机开发中可以使用此软件检查系统仿真运行的结果。在Proteus下把原理图按照图5-8画好后,点击单片机芯片在里面加载“.hex”文件,并点击下面仿真控制按钮的第一个“三角形”箭头后,系统就能对系统进行仿真,此时可以看到仿真结果,如图5-11所示。图5-11甲机通过通信控制乙机的仿真结果
【拓展技能训练】
设计:单片机与PC通信。
要求:单片机可接收PC发送的数字字符,按下单片机的S1键后,单片机可向PC发送字符串。
在Proteus环境下完成本实验时,需要安装VirtualSerialPortDriver和串口调试助手。本例缓冲100个数字字符,缓冲满后新数字从前面开始存放(环形缓冲)。
硬件设计原理图如图5-12所示。图5-12单片机与主机的通信硬件电路C51源程序如下:
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharReceive_Buffer[101]; //接收缓冲
ucharBuf_Index=0; //缓冲空间索引
//数码管编码
ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
//延时void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏苏州常熟市昆承湖建设投资集团有限公司及下属公司招聘14人备考题库带答案详解(培优A卷)
- 2026四川巴中市“筑梦巴蜀万才兴农”岗位招聘64人(第二批)笔试题库附答案详解(B卷)
- 2026云南保山昌宁县卡斯中心卫生院招聘编外人员4人考前冲刺试卷及参考答案详解(A卷)
- 2026年广东茂名市信宜市巡察事务中心公开选聘事业编制工作人员3人考前冲刺密卷及答案详解【有一套】
- 2026北京师范大学一带一路学院教学助理招聘模拟试卷及参考答案详解(培优B卷)
- 2026年工业噪声治理设计规范
- 2025-2026学年四川省南充市蓬安县数学四年级下学期期中联考模拟试题(含答案)
- 2025-2026学年嘉荫县数学三年级第二学期期中检测模拟试题(含答案解析)
- 陆丰中考体育试卷题目和答案
- 2026中国运动防护社交媒体舆情监测与品牌危机应对预案
- 2026年福建厦门市统计局招聘非在编辅助岗位人员1人笔试参考题库及答案详解
- AI驱动的税收征管智能化升级
- 2026邮政银行面试题目及答案
- 2026年江苏高职单招(英语)考试试题(含答案)
- 光伏直流电缆敷设施工方案及技术措施
- 2026年中考开放性测试题及答案
- 2026中国剧本杀内容创作升级与线下娱乐业态创新报告
- 2026年CCAA职业健康安全管理体系基础考试真题及答案
- GB/T 24027-2026环境标志和声明产品种类规则的制定
- 心脏性猝死高危人群风险分层
- 玻璃雨棚施工组织设计
评论
0/150
提交评论