单片机第4章输讲义入输出接口P0~P3
单片机基础知识讲解

注意:本课件为上课内容的一个补充,其中难免存在错误,请读者不吝赐教,如有问题请发送E-mail到zhaojian@。
本文根据教学的情况,随时进行修改和完善,所以欢迎同学随时注意本文档在课件中的更新情况。
单片机基础知识单片机的外部结构:1、DIP40双列直插;2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平)3、电源VCC(PIN40)和地线GND(PIN20);4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位)5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍)6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序)7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务)1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3;2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、一个串行通信接口;(SCON,SBUF)4、一个中断控制器;(IE,IP)针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。
教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。
C语言编程基础:1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。
2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。
3、++var表示对变量var先增一;var—表示对变量后减一。
4、x |= 0x0f;表示为x = x | 0x0f;5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。
并行接口P0~P3

K
30P
XTAL2 GND
第5章 并行接口P0~P3和单片机的中断系统
编程如下:
CLR P1.0 AGA:SETB P1.1 JB P1.1,LIG SETB P1.0 SJMP AGA LIG: CLR P1.0 SJMP AGA
;使发光二极管灭 ;先对P1口写入“1” ;开关开,转LIG ;开关合上,二极管亮
LED数码管的g~a七个发光二极管因加正电压而发亮, 因加零电压而不能发亮,不同亮暗的组合就能形成不同的字 形,这种组合称之为字形码,显然共阳极和共阴极的字形码 是不同的 ,其字形码见下表。LED数码管每段需10~20ma 的驱动电流,可用TTL或CMOS器件驱动。 字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或 74LS46、74LS47、CD4513
P1.7
SCቤተ መጻሕፍቲ ባይዱ引脚,在系统编程时钟输入
第5章 并行接口P0~P3和单片机的中断系统
3.P2口 内部上拉电阻的8位准双向并行I/O口,P2口的位结构比P1 多了一个转换控制部分,当P2口作通用I/O口时,多路开关 MUX倒向左; 读锁存器
1 内部总线 写锁存器 P2.x 锁存器 CL 2 读引脚 D Q
/数据复用总线(用于口扩展) 两个输入缓冲器(BUF1和BUF2) 读锁存器
P0R1
地址/数据
BUF1
AD0
控制 Vcc
b c
内部总线
D0
D C
a
T1
写锁存器
P0W
锁存器
Q
Q
P00
3、P0W为端口输出写信号,用于 推拉式I/O驱动器 锁存输出状态 多路开关 4、P0R1为读锁存器信号,执行 功能:用于控制选通I/O方式 “ANL P0,#0FH”时该信号有效 A 还是地址/数据输出方式 5、P0R2为读引脚信号,执行 2) “MOV A,P0”时该信号有效 方式控制:由内部控制信号
第5章 输入、输出接口P0~P3--1讲解

武汉科技大学
电信系
2. P1口 字节地址90H,位地址90H—97H
P1.0—P1.7: 准双向I/O口 输出时一切照常,输入时要先对其写“1”
读锁存器
内部 总线
写锁 存器
2
DQ CK /Q
1
读引脚
单片机及接口技术
Vcc 内部上拉电阻
引脚P1.X
17
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
输入数据时,要先对其写“1”
读锁存器
Vcc 内部上拉电阻
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
截 引脚P1.X 止
1
读引脚 =1
18
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
读锁存器
输出数据 1 时
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
1
Vcc 内部上拉电阻
1
读引脚 =0
控制=1时,此脚作通用输出口: 输出=1时
23
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P2口
读锁存器
内部 总线 0
写锁 存器
2
DQ CK /Q
地址高8位 控制 =1
Vcc 内部上拉电阻
0
1
3
=0
导 引脚P2.X 通
1 读引脚 =0
单片机及接口技术
控制=1 时,此脚作通用输出口: 输出=0 时
例5-1.设计一电路,监视某开关K,用发光二极 管LED显示开关状态,如果开关合上,LED亮、 开关打开,LED熄灭
单片机输入输出接口

P3.4/T0 14
P3.5/T1 15
P3.6/WR 16
P3.7/RD 17
XTAL2 18
XTAL1 19
GND 20
40 Vcc 39 P0.0 38 P0.1 37 P0.2 36 P0.3 35 P0.4 34 P0.5 33 P0.6 32 P0.7 31 EA 30 ALE 29 PSEN 28 P2.7 27 P2.6 26 P2.5 25 P2.4
/*“HELLO”的段码, 最高位送
uchar i; uint j; while(1) { P3=0x01; for(i=0;i<5;i++) { if(P17==1)P1=tab1[i]; else P1=tab2[i]; P3<<=1; for(j=0;j<=25000;j++);
}}} 课本习题5.8 *关于液晶显示
归纳四个并行口使用的注意事项如下:
1。如果单片机内部有程序存贮器,不需要扩展外 部存贮器和I/O接口,单片机的四个口均可作 I/O口使用。
2。四个口在作输入口使用时,均应先对其写 “1”,以避免误读。
3。P0口作I/O口使用时应外接10K的上拉电阻,其 它口则可不必。
4。P2可某几根线作地址使用时,剩下的线不能作 I/O口线使用。
用作地址/数据复用总线时,多路开关的控制 信号为1,输出与上方的地址/数据线反向器的输出 相连,由于控制信号为1,上面的场效应管受地址/ 数据信号控制,与下面的场效应管成为推挽输出 形态。外部不再需要上拉电阻,P0口为真正的双 向I/O口。
操作过程:假如要读外部程序存储器中 0x1245单元的指令,首先从P0口输出45H,P2口 输出12H,控制器输出ALE地址锁存信号,再发出 指令输出允许信号PSEN,外部程序存储器 0x1245单元的内容出现在总线上,由CPU读入程 序指令寄存器,译码执行。
单片机基础_80C51

5. 串行I/O口 目前高档 8 位单片机均设置了全双工串行 I/O 口,用以 实现与某些终端设备进行串行通信,或者和一些特殊功能 的器件相连接的能力,甚至用多个单片机相连构成多机系 统。随着应用的拓宽,有些型号的单片机内部还包含有二 个串行I/O口。 6. 定时器/计数器
3. 控制线:共4根。
· RST(VPD:备用电源引入端,当电源发生故障,电源降到下限值时, 备用电源经此端向内部 RAM提供电压,以保护内部RAM中的数据不 丢失)——复位输入信号,高电平有效。在振荡器工作时,在RST上 作用两个机器周期以上的高电平,将器件复位。 ·/EA(Vpp:编程电压,具体电压值视芯片而定)——片外程序存储 器访问允许信号,低电平有效。/EA=1,选择片内程序存储器(80C51 为4KB,80C52为8KB) ;/EA=0,则程序存储器全部在片外而不管片 内是否有程序存储器。 使用80C31时,必须接地,使用8751编程时,施加 21V的编程电 压。 · ALE(PROG:编程脉冲)——地址锁存允许信号,输出。 在访问片外存储器或 I/O 时,用于锁存低八位地址,以实现低八 位地址与数据的隔离。即使不访问外部存储器,ALE端仍以固定的频 率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器 时,出现一个ALE脉冲。
在单片机中,常把寄存器(如工作寄存器、特殊功能 寄存器、堆栈等)在逻辑上划分在片内 RAM 空间中,所 以可将单片机内部 RAM 看成是寄存器堆,有利于提高运 行速度。
当内部 RAM 容量不够时,还可通过串行总线或并行 总线外扩数据存储器。
4. 并行I/O口
单片机往往提供了许多功能强、使用灵活的并行输入 /输出引脚,用于检测与控制。有些I/O引脚还具有多种功 能,比如可以作为数据总线的数据线、地址总线的地址线、 控制总线的控制线等。单片机 I/O 引脚的驱动能力也逐渐 增大,甚至可以直接驱动外扩的LED显示器。
第4章 80C51单片机IO端口及应用最终

24
参考程序:
#include <reg51.h> void main(void) { unsigned char i; P2=0xff; for(;;) { i=P2; P1=i; } }
25
4.6单片机I/O口控制电磁继电器
在控制系统中,常常存在电子电路与电气电路的互 相连接问题,需要电子电路控制电气电路的执行元件, 例如电动机、电磁铁、电灯等,同时实现电子线路与电 气电路的电隔离,以保护电子电路和人身的安全,继电 器在其中起了重要的桥梁作用。
控制
T1
内部总线 写锁存器 读引脚
D P0.x Q 锁存器 Q
BUF2
MUX
P0.x引脚 T2
图4-1 P0口的位电路结构
4
2.P0口工作原理 (1)P0口作为地址/数据总线分时复用口
当80C51单片机外部扩展存储器或者I/O接口芯片,需要 P0口作为地址/数据总线分时使用时,“控制”信号输出高 电平;转换开关MUX 将T2与反相器输出端接通,同时“与 门”开锁,“地址或数据”信号通过与门驱动T1管,并通过 反相器驱动T2管,使得P0.x引脚的输出状态随“地址/数据” 状态的变化而变化。具体输出过程如下。
注意,当P0口作输出口使用时,输出级属开漏电路,在 P0.x引脚应外接上拉电阻。
6
② P0口作为I/O口输入时,端口中的两个三态缓冲器用于读 操作。有2种读操作:读锁存器和读引脚。
“读引脚”:当执行一般的端口输入指令时,引脚上的外部 信号既加在三态缓冲器BUF2的输入端,又加在场效应管T2 漏极上,若此时T2导通,则引脚上的电位被钳在0电平上。 为使读引脚能正确地读入,在输入数据时,要先向锁存器置 “1”,使其Q反端为0,使输出级T1和T2两个管子均被截止, 引脚处于悬浮状态;作高阻抗输入。“读引脚”脉冲把三态 缓冲器打开,于是引脚上的数据经缓冲器到内部总线;
单片机习题答案

《单片机应用技术》习题答案第一章概述1. 什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。
一般情况下,可分为系统总线和外总线。
系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。
地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。
在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。
控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。
CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。
数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。
在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设2.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线?CPU通过接口电路与外部输入、输出设备交换信息,一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。
CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。
一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。
3. 存储器的作用是什么?只读存储器和随机存储器有什么不同?存储器具有记忆功能,用来存放数据和程序。
计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。
随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。
单片机原理接口及应用

单片机原理接口及应用单片机是一种集成电路芯片,包含了中央处理器、存储器和各种输入输出接口等基本组成部分。
单片机通过其接口与外部设备进行通信,实现各种应用。
1. 数字输入输出接口(Digital I/O Interface):单片机通过数字输入输出接口连接外部设备。
通过设置相应的寄存器和引脚配置,单片机可以读取外部器件的状态,并且能够控制外部器件的输出信号。
数字输入输出接口常用于连接开关、LED、蜂鸣器等设备。
2. 模拟输入输出接口(Analog I/O Interface):单片机的模拟输入输出接口可以将模拟信号转换为数字信号,或将数字信号转换为模拟信号。
通过模拟输入输出接口,单片机可以实现模拟信号的采集和输出,例如连接温度传感器、光电传感器等。
3. 串口接口(Serial Interface):串口接口是单片机与外部设备进行数据传输的重要接口。
单片机通过串口接口可以与计算机或其他单片机进行通信。
串口的通信速度和传输协议可以根据具体需求进行设置。
4. I2C总线接口(I2C bus Interface):I2C总线接口是一种常用的串行通信协议,具有多主机、多从机的特点。
单片机通过I2C总线接口可以与各种器件进行通信,如传感器、实时时钟等。
5. SPI接口(Serial Peripheral Interface):SPI接口是一种高速同步串行通信接口,常用于单片机与外部存储器、显示器和其他外设的连接。
SPI接口可以实现全双工通信,具有高速传输的优势。
6. 中断接口(Interrupt Interface):中断是单片机处理外部事件的一种方式。
通过中断接口,单片机可以响应来自外部设备的信号,并及时处理相应的事件,提高系统的实时性。
以上是单片机的一些常用接口及其应用。
不同的单片机具有不同的接口类型和功能,可以根据具体的应用需求选择合适的单片机型号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOP
2021/4/17
15
THANKS
• INC R0 • RL A
;指向下一位字形 ;指向下一位
• MOV R1,A • CJNE R1,#20H,NEXT ;5个数码管显示完否
• SJMP TEST
• DAY:MOV R6,#20 ;延时子程序,在focs=6MHz时
•
;可延时20ms
• DL2:MOV R7,##7DH
• DL1:NOP
• P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位 准双向I/O口,P3口除了作为一般的I/O口使用之外, 其还具有特殊功能。
。 2021/4/17
4
• P3 口的第二功能
2021/4/17
5
5.2 编程举例
• 例:设计一电路,监视某开关K,用发光二极管 LED显示开关状态,如果开关合上,LED亮;开关 打开,LED熄灭。
2021/4/17
3
5.1 P0~P3端口的功能和内部结构
• P0口(P0.0~P0.7):该端口为8位准双向口,负载能力 为8高LSTTL负载。
• P1口(P1.0~P1.7):8位准双向I/O口,P1口的驱动能 力为4个LSTTL负载。
• P2口(P2.0~P2.7):8位准双向I/O口,P2口的驱动能 力也为4个LSTTL负载。在访问外部程序存储器时, 它作存储器的高8位地址线。
用一个并行口接一个数码管,数码管的公共端按共 阴或共阳分别接地或Vcc。
• 动态接口:采用各数码管循环轮流显示的方法,当 循环显示的频率较高时,利用人眼的暂留特性,看 不出闪烁显示现象。
2021/4/17
12
• 例:如图5-7是接有5个共阴极数码管的动态显示 接口电路,用74LS373接成直通的方式作为驱动电 路,阴极用非门74LS04反向门驱动,字形选择由 P1口提供,位选择由P3口控制。当P3.0~P3.4轮流 输出1时,5个数码管轮流显示。P1.7接开关,当开 关打向位置“1”时,显示“12345”字样;当开关打向 位置“2”时,显示“HELLO”字样。
;读开关
SJMP ABC ;循环执行,反复调整开关状态并执行观
;结果
2021/4/17
9
5.3 用并行口设计LED数码显示器和键盘电路
• COM 为公共点,根据内部发光二极管的接线形式,可 分成共阴极型和共阳极型。
2021/4/17
10
LED字形显示代码表
2021/4/17
1方式,无闪烁,其电路可以采
2021/4/17
13
• 汇编程序编程如下:
ORG 0000H ;清显示
MOV P3,#0
TEST:SBTB P1.7
JB P1.7,DIR1 ;检测开关
MOV DPTR,#TAB1;开关打向1,置“12345”字形表头地址
SJMP DIR
DIR1: MOV DPTR,#TAB2;开关打向2,置“HELLO”表头地址
•
• 分析:设计电路如图5-2(a)如示。
开关接在P1.1口线,LED接P1.0口线,当开关断开时 , P1.1为+5V,对应数字量为“1”,开关合上时,P1.1电 平为0V,对应数字量为“0”,这样就可以用JB指令 对开关状态进行检测。LED正偏时才能发亮,按电 路接法,当P1.0 输出“1”时LED正偏而发光,当P1.0输 出“0”,LED的两端电压为0时熄灭。
2021/4/17
6
• 编程如下:
CLR P1.0
;使发光二极管灭
AGA:SETB P1.1;对输入位P1.1写“1”
JB P1.1,LIG ;开关开,转LIG
SETB P1.0
;开关合上,二极管亮
SJMP AGA
LIG: CLR P1.0 ;开关开,二极管灭
SJMP AGA
2021/4/17
7
• 例:如图5-3所示, P1.0~ P1.3接4个发光二极管LED, P1.4~ P1.7接4个开关,编程将开关的状态反映到发光二极管上。
DIR: MOV R0,#0
;R0存字形表偏移量
MOV R1,#01
;R1置数码表位选代码
NEXT:MOV A,R0
MOVC A,@A+DPTR ;查字形码表1
MOV P1,A
;送P1口输出
2021/4/17
14
• MOV A,R1 • MOV P3,A ;输出位选码 • ACALL DAY ;延时
此处加标题
单片机第4章输入输出 接口P0~P3
眼镜小生制作
• 概述
• 第一节 P0~P3端口的功能和内部结构 • 第二节 编程举例
• 第三节 用并行口设计LED数码显示器和键盘 电路
2021/4/17
2
•
• MCS-51单片机有P0、P1、P2、P3四个8位双向I/O 口,每个端口可以按字节输入或输出,也可以按位 进行输入或输出,共32根口线,用于位控制十分方 便。P0口为三态双向口,能带8个TTL电路。 P1、P2 、P3门为准双向口,负载能力为4个TTL电路。
2021/4/17
8
汇编语言编程如下:
ORG 0000H
MOV P1,#0FFH ;高4位LED全灭,低4位输入线送“1”
ABC:MOV A,P1;读P1口引脚开关状态,并送入A
SWAP A ;低4位开关状态换到高4位
ANL A,#0F0H;保留高4位
MOV P1,A ;从P1口输出
ORL P1,#0FH ;高4位不变,低4位送“1”,准备下一轮