第7章 AT89C51单片机的串行口
第7章AT89C51单片机的串行口

RETI
;中断返回
2.方式2接收
SM0、SM1=10,且REN=1。数据由RXD端输入,接收11位信息。当 位检测到RXD从1到0的负跳变,并判断起始位有效后,开始收 一帧信息。在接收器完第9位数据后,需满足两个条件,才能 将接收到的数据送入SBUF。
(1)RI=0,意味着接收缓冲器为空。 (2)SM2=0或接收到的第9位数据位RB8=1时。 当上述两个条件满足时,接收到的数据送入SBUF(接收缓冲
正脉冲,串行口即把SBUF中的8位数据以fosc/12的固定波特 率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲, 发送完8位数据置“1”中断标志位TI。时序如图7-5所示。 2.方式0接收 REN=1,接收数据,REN=0,禁止接收。
图7-5
REN=1,允许接收。向串口的SCON写入控制字(置为方式0,并 置“1”REN位,同时RI=0)时,产生一个正脉冲,串行口即 开始接收数据。RXD为数据输入端,TXD为移位脉冲信号输出 端,
图7-3 (1)SMOD—波特率选择位
例如:方式1的波特率的计算公式为:
方式1波特率=(2SMOD/32)×定时器T1的溢出率
也称SMOD位为波特率倍增位。
(2)GF1、GF0—通用标志位 这两个标志位可供用户使用,可用软件置1或清0。两个标志位
用户应充分利用。 (3)PD—掉电方式位 若PD=1,单片机进入掉电工作方式。
图7-9 时采样)进行表决以确认是否是真正的起始位(负跳变)的开始。 当一帧数据接收完,须同时满足两个条件,接收才真正有效。 ⑴ RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被
响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 ⑵ SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),
AT89C51单片机说明

PSEN 此为"Program Store Enable"的缩写。访问外部程序存储器选通信号,低电平有效。在访
(60KB)
0FFFFH
1000H
外部 程序 存储器
0FFFH
EA=0 (4KB)
0000H
0FFFFH
外 部 数 据 存 储 器
(64KB)
0000H
图 2-2 只读程序存储器
图 2-3 外部数据存储器
直接地址
2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 位寻址区 27H 3F 3E 3D 3B 3C 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2B 2C 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 1FH
AT89C51单片机与PC机串行通信的接口实现

AT89C51单片机与PC机串行通信的接口实现[摘要] 本文介绍了AT89C51单片机与PC机采用RS232C标准进行串行通信的接口实现。
在接口中采用MAX232作电平转换电路,简单的通信协议,PC 机用VB编程,AT89C51单片机采用中断收发方式。
文章给出了相应通信接口电路与程序。
[关键词] 通信协议RS232C 通信接口电路通信接口程序AT89C51是一种带4K字节可编程可擦除只读存储器(FLASH FPEROM)和128字节的存取数据存储器(RAM)的低电压,高性能CMOS8位微处理器。
采用了ATMEL公司的高密度、不容易丢失存储技术,与MCS-51系列的单片机兼容。
具有集成程度高、系统结构简单、价格低廉等优点被广泛应用到控制领域中。
但是在复杂的数据处理、良好的人机交互等方面不能满足需要,常采用PC 机与AT89C51单片机进行通信,AT89C51单片机(下位机)实时采集数据传送给PC机(上位机)处理,然后接收PC机处理的结果,并进行相应的控制的方式来弥补。
本文介绍单片机与PC机进行串行通信的一种接口实现。
一、接口电路的设计(一)接口逻辑电平的转换在PC机系统大都装有异步通信适配器,为标准的RS-232C接口。
RS-232C 为负逻辑,用+3V~+15V表示逻辑“0”, 用-3V~-15V表示逻辑“1”。
AT89C51单片机采用正逻辑TTL电平0和+5V.所以AT89C51与PC机通信时必须进行电平转换。
转换的方法有多种。
常采用MAXIM公司生产的专用的双向电平转换集成电路MAX232。
MAX232引脚排列与外围电路如图1所示。
图1MAX引脚及外围接口图(二)通信接口电路本文采用可靠性高的MAX232作电平转换芯片,选择其中一对发送器与接收器,PC机的串行口与MAX232的电平端口相连,MAX232的逻辑电平端口与单片机的串行口相连,接口电路如图2所示。
图2PC机与AT89C51通信接口图二、通信接口程序(一)通信协议PC机与AT89C51进行通信必须有一定的通信协议,本文采用简单的通信协议。
(C语言版)绝密版C51单片机复习题及答案

(C 语言版)绝密版 C51 单片机复习题及答案一填空题1、计算机中最常用的字符信息编码是( ASCII 码)。
2、MCS-51 系列单片机为( 8 )位单片机。
3、若不使用 MCS-51 片内存储器引脚( /EA )必须接(地)。
4、8031 内部有 ( 128 )个 RAM; 8051 内部有 (4K ROM )和( 128 个 RAM)。
5 、堆栈的地址由 ( SP ) 内容确定,其操作规律是“(先 ) 进(后)出”。
6 、在单片机扩展时, ( P0 ) 口和 ( P2 ) 口为地址线, (P0 ) 口又分时作为数据线。
7 、在 MCS-51 单片机中,如采用 6MHZ 晶振,一个机器周期为( 2us )。
8、当 80C51 的 RST 引脚上保持 ( 2 ) 个机器周期以上的低电平时,80C51 即发生复位。
9、当 P1 口做输入口输入数据时,必须先向该端口的锁存器写入( 1 ),否则输入数据可能出错。
10、若某存储芯片地址线为 12 根,那么它的存储容量为( 4K B )。
11、程序状态寄存器 PSW 的作用是用来保存程序运行过程中的各种状态信息。
其中 CY 为 (进位) 标志,用于无符号数加 (减) 运算,当进行(位)操作时作为位累加器。
OV 为(溢出)标志,用于有符号数的加(减)运算。
12、消除键盘抖动常用两种方法,一是采用(硬件去抖电路),用基本 RS 触发器构成;二是采用(软件去抖程序),既测试有键输入时需延时 ( 约大于 10 毫秒) 后再测试是否有键输入,此方法可判断是否有键抖动。
13、若 MCS-51 单片机采用 12MHz 的晶振频率,它的机器周期为( 1us ),ALE 引脚输出正脉冲频率为(2 MHZ )。
14 、 8051 有两个 16 位可编程定时/计数器,T0 和 T1。
它们的功能可由两个控制寄存器( TCON ) 、 ( TMOD ) 的内容决定,且定时的时间或计数的次数与( TH)、 ( TL)两个寄存器的初值有关。
经典:AT89C51单片机硬件结构

INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6
RD/P3.7 XTAL2
17XTAL1 VSS
1
40
2
39
3
38
4
37
5
36
6
35
7
34
8
33
9 8051 32
10
31
11
30
12
29
13
28
14
27
15
26
16
25
17
24
18
23
19
22
20
21
VCC P0.0
1.电源引脚2根 2.时钟引脚2根 3.控制引脚4根 4.I/O引脚32根 AT89C51单片机是高性能的单片机,受到引脚数目 的限制,采用引脚复用技术,部分引脚具有第二功能10。
(二) 引脚图及功能
VSS VCC RST/VPD
P1.0
P1.1
P1.2
P1.3
P1.4 P1.5 P1.6 P1.7 RST/VPD RXD/P3.0 TXD/P3.1
AT89C51单片机的硬件结构
主要单片机简介 总体结构 存储器配置 并行I/O口 时钟电路和复位电路
主要单片机简介
一、MicroChip公司的PIC系列单片机
主要产品是PIC12F、PIC16F、PIC17F等系列8位单片机, CPU采用RISC结构,分别仅有33、35、58条指令,采用 Harvard双总线结构,运行速度快,工作电压低,低功耗,有较 大的输入/输出直接驱动能力,可靠性高。
MCS-51单片机系列分为51和52子系列,并以芯片 型号的末位数字加以标识。其中,51子系列是基本型, 而52子系列是增强型。
AT89C51单片机简单介绍

AT89C51单片机简单介绍
AT89C51单片机是一款由Atmel公司生产出的基于8位MCS-51内核架构的单片机。
其内部包含大量的外设和接口,如8KB的Flash存储器、128字节的RAM、32个通用输入/输出引脚、三个16位定时器/计数器,还具备可编程的串行通讯接口UART、SPI、I2C总线控制等外设,使其在嵌入式系统中广泛应用。
AT89C51单片机拥有稳定、可靠的性能,主要应用于各种嵌入式系统中,例如:智能家居、仪器仪表、安防控制设备、工业自动化设备、医疗设备等。
1. 采用MCS-51内核架构,具有8位宽的数据总线和16位宽的地址总线;
2. 内置8KB的Flash存储器和128字节的RAM,可实现程序存储和数据处理;
3. 32个通用输入/输出引脚,可扩展各种外设和接口;
4. 内置三个16位定时器/计数器,可生成多种PWM波形,产生各种延时和定时功能;
5. 内置可编程的串行通讯接口UART,支持RS232、RS485通讯协议;
6. 支持SPI、I2C总线控制,可实现多种通讯方式;
7. 拥有多种中断模式和中断源,可实现多任务处理、多线程操作;
8. 采用低功耗设计,外部器件少,体积小,非常适合嵌入式系统应用。
最后,AT89C51单片机是一款性价比高、应用广泛、可靠稳定的单片机,是嵌入式系统设计师的不二之选。
AT89C51的引脚功能

—【1】VCC:供电电压。
—GND:接地。
—P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
—P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
—P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
—P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)INT(外部中断0)P3.2 0INT(外部中断1)P3.3 1P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
89C51单片机各接口简介

AT89C51单片机简介2.管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 AT89C51单片机的串行口
1.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式。
答:1。
2.在串行通信中,收发双方对波特率的设定应该是的。
答:相等。
3.下列选项中,是正确的。
A.串行口通信的第9数据位的功能可由用户定义
B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中
D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存
E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定
答:(A)对(B)对(C)错(D)对(E)对。
4.通过串行口发送或接收数据时,在程序中应使用。
A.MOVC指令B.MOVX指令C.MOV指令D.XCHD指令
答:(C)MOV指令。
5.串行口工作方式1的波特率是。
A.固定的,为f osc/32 B.固定的,为f osc/16
C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64
答:(C)。
6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?
答:当接收方检测到RXD引脚上的有效的负跳变时,即可知道发送方开始发送数据。
7.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有4种工作方式:方式0、方式1、方式2、方式3。
有3种帧格式,方式2和3具有相同的帧格式。
方式0的发送和接收都以fosc/12为固定波特率。
方式1的波特率=2SMOD/32×定时器T1的溢出率。
方式2的波特率=2SMOD/64×fosc。
方式3的波特率=2SMOD/32×定时器T1的溢出率。
8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”(42H)的帧格式。
答:传送的字符“B”的帧格式如图所示(先低位后高位)。
起始位0 1 0 0 0 0 1 0 校验位停止位
图
9.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?若已
知时钟频率、通信波特率,如何计算其初值?
答:(1)因为定时器/计数器在方式2下,初值可以自动重装,这样在进行串口波特率发生器设置时,就避免了重装参数的操作,且减少了重装参数的误差。
(2)已知时钟频率、通信波特率,根据公式(7-3),即可计算出初值。
10.若晶体振荡器为11.0592MHz,串行口工作于方式1,波特率为4 800bit/s,
写出用T1作为波特率发生器的方式控制字和计数初值。
答:经计算,初值为FAH。
控制字: ANL TMOD,#0F0H
ORL MOD,#20H
MOV TH1,#0FAH
MOV TL1,#0FAH
MOV SCON,#40H
11.简述利用串行口进行多机通信的原理。
答:以方式1为例。
发送过程:数据位由TXD端输出,发送1帧信息为10位,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送。
发送开始时,内部发送控制信号SEND变为有效,将起始位向TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。
8位数据位全部输出完毕后,置1中断标志位TI,然后SEND信号失效。
接收过程:当检测到起始位的负跳变时,则开始接收。
接收时,定时控制信号有2种。
其中一种是位检测器采样脉冲,它的频率是RX时钟的16倍。
也就是在1位数据期间,有16个采样脉冲,以波特率的16倍速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误地开始接收数据。
12.使用AT89C51的串行口按工作方式1进行串行数据通信,假定波特率为2 400bit/s,以中断方式传送数据,请编写全双工通信程序。
答:请参考教材的P115-P117程序,并作适当改动。
13.某AT89C51单片机串行口,传送数据的帧格式由1个起始位(0)、7个数据位、1个偶校验和1个停止位(1)组成。
当该串行口每分钟传送1 800个字符时,试计算出它的波特率。
答:串口每秒钟传送的字符为1800/60=30个字符/秒,所以波特率为30个字符/秒×10位1个字符=300b/s。
14.为什么AT89C51单片机串行口的方式0帧格式没有起始位(0)和停止位(1)? 答:串行口的方式0为同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个89C51之间的串行通信。
该方式以fosc/12的固定波特率从低位到高位发送或接收数据。
15.直接以TTL电平串行传输数据的方式有什么缺点?答:优点是连线简单,缺点是抗干扰性能差,传输距离短。