51单片机内部结构
(1)P0和P2口 P0和P2口
P0口除了作普通 口除了作普通 的I/O口,直接 口 和外部设备打交 道外;还用作片 道外 还用作片 外总线的地址总 线AB0-AB7的低 的低 八位、数据总线。 八位、数据总线。 P0口锁存器和缓冲器结构 P0口锁存器和缓冲器结构
P2口除了作普通 口除了作普通 的I/O口,直接 口 和外部设备打交 道外;还用作片 道外 还用作片 外总线的地址总 线的高八位地址 线AB8-AB15 P2口锁存器和缓冲器结构 P2口锁存器和缓冲器结构 注意: 口在作输出入口使用时 由于它无内部上拉电阻, 口在作输出入口使用时, 注意:P0口在作输出入口使用时,由于它无内部上拉电阻,为 了在口线上输出高电平并具有一定的驱动能力, 了在口线上输出高电平并具有一定的驱动能力,必须外接上拉 电阻。作输入口使用时, 电阻。作输入口使用时,为了防止口锁存器对输入口线的输入 信号造成影响,必须先往口锁存器写1。同理, 口作输入时 口作输入时, 信号造成影响,必须先往口锁存器写 。同理,P2口作输入时, 也必须先往口锁存器写1。 也必须先往口锁存器写 。
7FH7EH7DH7CH 7BH7AH79H 78H 77H 76H 75H 74H 73H 72H 71H 70H
21H 20H
0FH0EH0DH 0CH 0BH0AH09H 08H 07H 06H 05H 04H 03H 02H 01H 00H
(3)特殊功能寄存器
寄存器 B ACC PSW IP P3 IE P2 SBUF A7 P2.7 A6 P2.6 A5 P2.5 A4 P2.4 A3 P2.3 A2 P2.2 A1 P2.1 A0 P2.0 99H 99H F7 E7 D7 CY BF B7 P3.7 F6 E6 D6 AC BE B6 P3.6 F5 E5 D5 F0 BD B5 P3.5 位地址 / 位定义 F4 E4 D4 RS1 BC B4 P3.4 P3. 4 F3 E3 D3 RS0 BB B3 P3.3 F2 E2 D2 OV BA B2 P3.2 F1 E1 D1 / B9 B1 P3.1 F0 E0 D0 P B8 B0 P3.0 A8H A0H B8H B0H 地址 F0H E0 D0H
2.1.2
1.主程序流程图 1.主程序流程图
控制程序
2.控制程序 2.控制程序 ORG LJMP ORG CLR RETI ORG LJMP MAIN: SETB MOV MOV MOV MOV SETB SETB SETB 0000H MAIN 0003H 20H.0 000BH DELAY 20H.0 TMOD,#01H TL0,#00H TH0,#4CH B,#20 IT0 EA EX0
ORG、END等 、 等 伪指令将在核 心模块的单元 三、四中详细 讲解
SETB ET0 SETB PX0 MOV P1,#00H SETB TR0 BEGIN:JB 20H.0,SHOW MOV B,#250 CJNE B,#00,$ MOV A,P1 CPL A MOV P1,A ; SJMP BEGIN DELAY:MOV TL0,#00H MOV TH0,#4CH DJNZ B,LOOP MOV B,#20 LOOP:RETI END
任务中假设单片 机外接的石英晶 体振荡器的频率 为11.0592MHz
2.1.3
源程序的编辑、编译、 源程序的编辑、编译、下载
1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 打开 正确选择单片机类型8751 8751或 1、正确选择单片机类型8751或8031 正确选择编译器- 2、正确选择编译器-伟福编译器 3、选择模拟仿真功能 4、打开或新建文件进行编辑 5、编译 2.打开 ISP下载软件 将目标文件下载到ISP 打开“ 下载软件” ISP2.打开“ISP下载软件”将目标文件下载到ISP-4实验开发 板上的AT89S51单片机芯片,观察程序运行结果。 AT89S51单片机芯片 板上的AT89S51单片机芯片,观察程序运行结果。 1、编译成功后打开下载软件 选择好单片机89S51并测试 89S51 2、选择好单片机89S51并测试 打开伟福6000编译生成的.BIN或 HEX文件 6000编译生成的 3、打开伟福6000编译生成的.BIN或.HEX文件 选择自动写完成擦除、 4、选择自动写完成擦除、写、读、校验过程 5、观看运行结果
(3)P3口 P3口 P3口除了作普 口除了作普 通的I/O口 通的 口(功 能和P1口一样 口一样) 能和 口一样) 直接和外部设 备打交道外;还 备打交道外 还 具有第二功能。 具有第二功能。
P3口锁存器和缓冲器结构 P3口锁存器和缓冲器结构
P3.0 串行输入口 串行输入口(RXD) P3.2 外中断 外中断0(INT0) P3.5 定时 计数器 的外部输入口 定时/计数器 的外部输入口(T1) 计数器1的外部输入口 P3.4 定时 计数器 的外部输入口 定时/计数器 的外部输入口(T0) 计数器0的外部输入口 P3.1串行输出口 串行输出口(TXD) 串行输出口 P3.3 外中断 外中断1(INT1) P3.6 外部数据存储器写选通 外部数据存储器写选通(WR) P3.7 外部数据存储器读选通 外部数据存储器读选通(RD)
MCS-51单片机存储器组织结构 MCS-51单片机存储器组织结构
0FFFFH
0FFFFH
外部 ROM EA = 1
00FFH
特殊功
外部 RAM (64K)
能寄存器
1000H
0FFFH
0000 H
0080H
内部 ROM EA = 0
0000 H
内部 RAM 0000 H
程序存储器
数据存储器
(1)程序存储器 用程序运行时所需的常数。 寻址范围:0000H 寻址范围:0000H ~ FFFFH 容量64KB,即地址长度:16位 容量64KB,即地址长度:16位 64KB
2 FH / 30 H
位寻址区 (位地址 00 H ~ 7 FH )
即可位寻址, 即可位寻址,又可字节寻址
1FH / 20 H 17 H / 18 H 0 FH / 10 H
07 H / 08 H
第 3组通用寄存器区
第 2组通用寄存器区 第1组通用寄存器区 第 0组通用寄存器区
R0、R1、R2、R3、R4、R5、R6、R7 、 、 、 、 、 、 、
00 H
位寻址区 位寻址区( 个字节。 位寻址区(20H—2FH)16个字节。 ) 个字节 16*8=128位,每一位都有一个位地址,范围为:00H—7FH, 位 每一位都有一个位地址,范围为: , 位地址区也可作为一般的用户RAM使用。 使用。 位地址区也可作为一般的用户 使用
单元地址
位地址
2FH 2EH
2.单片机的软件及数据如何存放? 2.单片机的软件及数据如何存放? 单片机的软件及数据如何存放 从前面的任务中,我们还看到要控制灯闪烁, 从前面的任务中,我们还看到要控制灯闪烁,必须编制 程序,还必须将控制灯的相关数据预先存储,那么, 程序,还必须将控制灯的相关数据预先存储,那么,在单片 机中的程序和数据是怎样保存的?原来, 机中的程序和数据是怎样保存的?原来,在单片机内部有程 序存储器和数据存储器, 序存储器和数据存储器,如果内部程序存储器和数据存储器 的容量不够的话,还可以在单片机外部为它扩展, 的容量不够的话,还可以在单片机外部为它扩展,最大我们 可以将程序存储器空间总容量扩大到64K,将数据存储器在 可以将程序存储器空间总容量扩大到 , 片外再单独扩展64K,这样,以89S51为例,数据存储器的总 为例, 片外再单独扩展 ,这样, 为例 容量可达64K(片外)+ 字节(片内)。 容量可达 (片外)+128字节(片内)。 )+ 字节 MCS-51单片机的存储器组织结构,采用典型的哈佛结构, 单片机的存储器组织结构,采用典型的哈佛结构, 单片机的存储器组织结构 即程序存储器和数据存储器完全独立,拥有各自的寻址系统, 即程序存储器和数据存储器完全独立,拥有各自的寻址系统, 包括片内数据存储器与片外数据存储器都拥有自己独立的寻 址系统。 址系统。
(2)P1口 P1口
P1口只用作普通 口只用作普通 输入输出口
P1口锁存器和缓冲器结构 P1口锁存器和缓冲器结构 注意: 口一样, 注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响, 、 口一样 为防止口锁存器对输入口线造成影响, P1口作输入时,也必须先往口锁存器写 。 口作输入时, 口作输入时 也必须先往口锁存器写1。
(2)数据存储器 用途: 用途:存放程序执行的中间结果和过程数据的 。 物理上分为两大区域: 用户RAM区。 物理上分为两大区域: 00H ~ 7FH即128B用户 即 用户 区 80H ~ FFH即特殊功能寄存器区。 即特殊功能寄存器区。 即特殊功能寄存器区
7 FH
用户 RAM 区
数据缓冲区、堆栈区、工作 数据缓冲区、堆栈区、 单元
寻址内部ROM; ; EA = 1 ,寻址内部 说明: 值超过片内ROM容量时会自动转向 外部存储器 说明:当PC值超过片内 值超过片内 容量时会自动转向 空间。 空间。 寻址外部ROM。 。 EA = 0 ,寻址外部 说明: 说明:8031单片机 单片机 EA 必须接低电平。 必须接低电平。
程序存储器中6 程序存储器中6个具有特殊含义的单元 0000H —— 系统复位,PC指向此处; 系统复位, 指向此处 指向此处; 0003H —— 外部中断 入口 外部中断0入口 000BH —— T0溢出中断入口 溢出中断入口 0013H —— 外中断 入口 外中断1入口 001BH ——T1溢出中断入口 溢出中断入口 0023H —— 串口中断入口
2.1.1
1.硬件电路
硬件电路与工作原理
2.工作原理 从图上可以看出, P1.0~P1.7中某个引脚输出低 从图上可以看出,当P1.0~P1.7中某个引脚输出低 电平时,则发光二极管上有电流流过,发光二极管发光, 电平时,则发光二极管上有电流流过,发光二极管发光, 否则,当对应引脚为高电平时,发光二极管上无电流流过, 否则,当对应引脚为高电平时,发光二极管上无电流流过, 发光二极管熄灭。S1~S4由于按键一端接地,当按键按下 由于按键一端接地, 发光二极管熄灭。S1~S4由于按键一端接地 时,对应的引脚被拉成低电平。单片机通过查询这几根口 对应的引脚被拉成低电平。 线的高低电平状态,就知道对应的按键是否按下。 线的高低电平状态,就知道对应的按键是否按下。