当前位置:文档之家› 第02章 单片机输入输出端口

第02章 单片机输入输出端口

第2章 单片机输入/输出端口
章节安排: 2.1 单片机时序简介 2.2 单片机外部引脚简介 2.3 C51语言简介 2.4 输入/输出端口编程实践
能力要求: 了解单片机时序 掌握单片机端口输入/输出操作 掌握编程实践连线:使单片机的P1、P2或者P3端口与发光二 极管相连(以P2口为例)
2.2 单片机外部引脚简介—I/O端口引脚
➢ 强调
51单片机中4个8位的并行I/O接口P0,P1,P2,P3:分别 对应着1个特殊功能寄存器,这些寄存器分别称之为P0, P1,P2,P3口寄存器
通过特殊功能寄存器的读写完成对端口的操作 每个端口既可以数据输入,也可以数据输出 每个端口既可以 整体8位一起 操作,也可以 按位 操作。
2.2 单片机外部引脚简介
➢40个引脚按功能分为3类:
➢电源和时钟引脚:Vcc,GND,XTAL1,XTAL2
➢编程控制引脚:RST,PSEN ,ALE/ PROG ,
EA / Vpp (只要求了解这些引脚即可) ➢I/O端口引脚:P0,P1,P2,P3(必须掌握)
2.2 单片机外部引脚简介--电源和时钟引脚
➢ EA / Vp(p 31脚):访问程序存储器控制信号 ➢当该引脚接低电平时,对ROM的读操作限定于对外部程序存 储器访问(内部的失效) ➢当该引脚接高电平时,对ROM的读操作首先从内部ROM开始, 内部访问完毕后才访问外部ROM(内部ROM没有的编织部分)
2.2 单片机外部引脚简介—I/O端口引脚
C51包含的数据类型、变量存储模式、输入输出处理、函 数等方面与标准的C语言有一定的区别。
其它的语法规则、程序结构及程序设计方法等与标准的C 语言程序设计相同。
2.3 C51语言简介
➢ 2.3.1 C51中常用数据类型(基本类型)
基本数据类型
unsigned char signed char unsigned int signed int unsigned long signed long float
2.4 输入/输出端口编程实践
2.4.1 keil软件的使用(详见教材P274) 2.4.2 USB ISP下载线的使用
首先插入USB ISP下载线,安装驱动(在16上网下载) 将 “配套软件” 中的 progisp.exe 发送到 桌面快捷方式 双击运行 progisp.exe ,“选择芯片” 中选择AT89S52 将ISP下载线接头插入电路板 点击按钮“调入Flash”,选择要运行程序的 .hex 文件 点击按钮 “自动” 开始下载程序 电路板复位,运行程序
2.2 单片机外部引脚简介—I/O端口引脚
P3口 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能 RXD 串行口输入端 TXD 串行口输出端 INT0 外部中断0请求输入端,低电平有效 INT1 外部中断1请求输入端,低电平有效 T0 定时/计数器0外部计数脉冲输入端 T1 定时/计数器0外部计数脉冲输入端 WR 外部数据存储器写信号,低电平有效 RD 外部数据存储器读信号,低电平有效
2.2 单片机外部引脚简介(以40引脚为例)
T2/P1.0 T2EX/P1.1
P1.2 P1.3 P1.4 M OSI/P1.5 M ISO/P1.6 SCK/P1.7 RST RXD/P3.0 TXD/P3.1
IN T 1/P3.3
INT 0/P 3.2 T0/P3.4 T1/P3.5
WR/P3.6
2.4 输入/输出端口编程实践
2.4.3 端口基本输入/输出操作 ➢ 端口输出操作(以P1口为例)
位操作: P1^0=1; //从P1.0口输出数据1
或者: sbit P1.1=P1^1; P1.1=1;
P1端口整体操作: P1=0x55;//通过P1口输出数据0x55
2.4 输入/输出端口编程实践
2.3 C51语言简介
➢ 2.3.1 C51中常用数据类型(扩充类型)
基本数据类型
长度
取值范围
bit
1位
0或1
sbit
1位
0或1
sfr
1字节
0~255
sfr16
2字节
0~65535
➢ sfr:8位特殊功能寄存器声明(P19)
例如:sfr P0=0x80; //P0是P0端口寄存器,它在存储器中的地址是0x80, 此定义之后,可以通过该变量符号对P0端口直接操作(即告知编译器,程 序要操作的是地址为0x80地址处的寄存器)。当然,我们可以定义其它的 名字。
时钟周期的大小是时钟信号频率(常用fosc表示)的倒数
若时钟频率为12MHz,即fosc=12MHz,则时钟周期
=1/(12*106)
➢ 状态周期
概念:一个 状态周期S 由2个 时钟周期 构成
➢ 机器周期
一个 机器周期 由 6个状态周期 或者说由 12个时钟周期 构 成
2.1 单片机时序简介
➢在对 外部程序存储器进行读操作 时,每个周期出现两次信号,
连线时与外部ROM的OE引脚相连 ➢在读取外部的RAM时,该引脚不会有输出
➢单片机内部已经有足够大的ROM,通常不需要外扩程序存储 器,因此该引脚通常不使用
2.2 单片机外部引脚简介—编程控制引脚
注:该页ppt内容此时仅需了解
➢ALE/PROG(30脚):地址锁存信号输出端 ➢当外接存储器(ROM或RAM)时,ALE的输出用于锁存 地址的低8位,一般ALE接锁存器的EN端 ➢当没有外部存储器时,ALE端可用于脉冲信号输出,且频 率是石英振荡频率的1/6。 ➢在烧写EPROM时,该引脚用作编程脉冲PROG的输入端
2.3 C51语言简介
➢ 在C51语言编程中,对数据类型与变量的定义,必须 要与单片机的存储结构相关联,否则编译器不能正 确地映射定位。
➢ 用C语言编写单片机应用程序与标准的C语言程序 也有相应的区别
C语言编写单片机应用程序时,需根据单片机存储结构及 内部资源定义相应的数据类型和变量,而标准的C语言程 序不需要考虑这些问题;
长度
1字节 1字节 2字节 2字节 4字节 4字节 4字节
取值范围
0~255 -128~+127 0~65535 -32768~+32767 0~4294967295 -2147483648~+2147483647 1.175494E-38~3.402823E+38
2.3 C51语言简介
➢ 2.3.1 C51中常用数据类型(扩充类型)
2.4 输入/输出端口编程实践
2.4.4 实践项目:流水灯
➢ 硬件连线:使单片机的P1、P2或者P3端口与发光二 极管相连(以P2口为例)
➢ 电路原理分析
➢ 单片机P2口通过 连线与JP14相接, 从而控制发光二极 管的阴极。
➢ 当P2端口输出1时 (二极管阴极呈现 高电平),发光二 极管不能导通,不 发光;输出0时发 光。
2.2 单片机外部引脚简介—编程控制引脚
注:该页ppt内容此时仅需了解
➢ RST(9脚):RST即为RESET。 ➢当单片机振荡器工作时,该引脚上出现持续两个机器周期的 高电平,就可实现复位操作,使单片机回复到初始状态。 ➢单片机复位后,从0000H地址处读取第一条指令并开始执行
➢PSEN(29脚):外部程序存储器的读选通信号,低电平有效。
➢ P0口(39~32脚):P0.0~P0.7统称为P0口。 ➢P0口的每一位端口都可以 单独控制 输入或者输出 ➢P0口作为I/O口使用时,必须外接上拉电阻(一般选择10K左右)。
➢ P1口(1~8脚):P1.0~P1.7统称为P1口。 ➢P1口的每一位端口都可以 单独控制 输入或者输出 ➢P1口内部自带上拉电阻,使用时不需要外接
基本数据类型
长度
取值范围
bit
1位
0或1
sbit
1位
0或1
sfr
1字节
0~255
sfr16
2字节
0~65535
➢ bit:位变量声明
例如:bit flag=0; //声明一个变量flag,只占据一个二进制位
➢ sbit:特殊功能位声明,即声明一个特殊功能寄存器中的某一位
例如:sbit EA=IE^7; //EA是IE寄存器中的最高一位,该定义之后,可直 接用EA对此位操作: EA=1 或者EA=0;
➢机器周期
➢机器周期是单片机的基本操作周期 ➢每个机器周期包含S1、S2、、S66个状态,每个状态 包含2拍P1和P2,每一拍为一个时钟周期(振荡周期)。 因此,一个机器周期包含12个时钟周期。依次可表示为 S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。
时钟信号 S1
P1 P2
➢ 电路原理分析
➢ 单片机P2口通过 连线与JP14相接, 从而控制发光二极 管的阴极。
➢ 当P2端口输出1时 (二极管阴极呈现 高电平),发光二 极管不能导通,不 发光;输出0时发 光。
2.1 单片机时序简介
➢ 时钟周期
概念:单片机在工作时,由 内部振荡器产生 或由 外部直接 输入的 送至 内部控制逻辑单元 的 时钟信号 称为时钟周期
➢ P2口(21~28脚):P2.0~P2.7统称为P2口 ➢同P1口
➢ P3口(10~17脚):P3.0~P3.7统称为P3口 ➢P3口作为普通端口使用时,同P1口 ➢P3口还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义 为第一功能的输入输出或第二功能。
➢ P0~P3口都是准双向口 ➢端口在作为 输入使用 前,必须先向该口写1(即输出1),然后 在执行读取操作,才能获取正确结果 ➢端口输出可以直接进行
S2 P1 P2
S3 P1 P2
S4 P1 P2
S5 P1 P2
S6 P1 P2
2.1 单片机时序简介
相关主题