MCS-51单片机最小系统知识
第02章 MCS-51单片机的结构

CY
AC
F0
RS1 RS0
OV
/
P
PSW位地址
D7H D6H D5H D4H CY AC F0 RS1
D3H RS0
D2H D1H OV
D0H P
CY:进位标志。用于表示Acc.7有否向更高位进位。 加减运算时,保存最高位进位、借位状态。 AC:半进位标志。用于表示Acc.3有否向Acc.4进位。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111
ALU
定时与控制 程序地址寄存器AR
CPU
。
2.2.2 控制器
控制器由程序计数器PC、指令
寄存器和指令译码器、定时和控
制逻辑电路。
相对控制器而言,运算器接受控 制器的命令而进行动作。
1).程序计数器PC
※ PC不属于特殊功能寄存器,不可访问,在物理结构 上是独立的。 ※ 16位的地址寄存器,用于存放下一字节指令的地址, 可寻址64KB的程序存储器空间。 ※ PC的基本工作方式有:
⑴ 自动加1。CPU从ROM中每读一个字节,自动执行 PC+1→PC; ⑵ 执行转移指令时,PC会根据要求修改地址; ⑶ 执行调用子程序或发生中断时,CPU会自动将当前 PC值压入堆栈,将子程序入口地址或中断入口地址装入 PC;子程序返回或中断返回时,恢复原有被压入堆栈的 PC值,继续执行原顺序程序指令。
用示波器检测该引脚来判断单片机是否损坏。
② PROG功能:片内有EPROM的芯片,在EPROM编程 期间,此引脚输入编程脉冲。
⑵ PSEN:片外程序存储器读选通信号输出端。 在向片外程序存储器读取指令或常数期间,每个机
器周期该信号两次有效(低电平)作为片外ROM的
第4章MCS-51单片机系统功能扩展

74LS373结构示意图
74LS373的引脚
引脚说明如下: D7~D0: 8位数据输入端。 Q7~Q0: 8位数据输出端。 G:数据输入锁存控制端:当G为“1” 时,锁存器 输出端与输入端数据相同;当G由“1” 变“0” 时,数据输入锁存器中。 OE#: 输出允许端。
P0口与地址锁存器74LS373的连接
4.1 系统扩展概述
4.1.1 最小应用系统
图4.1 MCS–51单片机最小化系统 (a) 8051/8751最小系统结构图;(b) 8031最小系统结构图
4.1.2 单片机系统扩展的内容与方法
1.单片机的三总线结构
图4.2 MCS–51单片机的三总线结构形式
(1)以P0口作为低8位地址/数据总线。 (2)以P2口的口线作高位地址线。 (3)控制信号线。 *使用ALE信号作为低8位地址的锁存控制信号。 *以PSEN#信号作为扩展程序存储器的读选通信号。 *以EA#信号作为内外程序存储器的选择控制信号。 *由RD#和WR#信号作为扩展数据存储器和I/O口的 读选通、写选通信号。 尽管MCS-51有4个并行I/O口,共32条口线,但由于系 统扩展需要,真正作为数据I/O使用的,就剩下P1 口和P3口的部分口线。
锁存器8282 功能及内部结构与74LS373完全一样,只是其引脚的排 列与74LS373不同 ,8282的引脚如下图。
4.2.2 74LS244和74LS245芯片
在单片机应用系统中, 扩展的三总线上挂接
很多负载, 如存储器、并行接口、A/D接口、显
示接口等, 但总线接口的负载能力有限, 因此常
3) 采用地址译码器的多片程序存储器的扩展
例3 要求用2764芯片扩展8031的片外程序存储器,分配的 地址范围为0000H~3FFFH。
本章导读本章首先介绍MCS51单片机最小应用系统与总线

2019/2/24
MCS-51单片机原理与应用
16
8.2.2 数据存储器的扩展
4
(3)29C010的数据线I/O0~I/O7与单片机的地址总线一一对应 同名相连, WE 与 WR 相连。单片机 PSEN 和 RD 经过与门后与 29C010的 OE 相连,两个控制信号只要有一个有效,就可以对 29C010进行读出操作。这样的接法是把29C010芯片既看作是程 序存储器,又看作是数据存储器。 把29C010看作程序存储器是在PSEN 信号有效,即执行取指指令: MOVC A,@A+DPTR。 把其看作数据存储器是在 RD 或 WR 信号有效,即执行读写指令: MOVX A,@DPTR ;读片外数据存储器 MOVX A,@Ri MOVX @DPTR,A ;写片外数据存储器 MOVX @Ri,A (4)29C010的地址范围如表8.3,其17条地址线A0~A16取值范 围从全0到全1,就可得到其为寻址空间为00000H~1FFFFH。当
2019/2/24 MCS-51单片机原理与应用 7
8.1 最小应用系统与总线扩展
7
数据就被锁存在锁存器中,输入端数据变化不再影响Q 端输出。当三态门的输出允许端 OE 为低电平时,三态 门处于导通状态,允许Q端输出;当 OE 为高电平时,三态 门处于高阻隔离状态,不允许Q端输出。根据74LS373 的特性,把作为P0口地址锁存器的连接如图8.4(b)。 若采用74LS273, 因其CLK端是上升沿锁存, 所以ALE 端输出锁存控制信号必须加一个反相器,如图8.4(c)。
2019/2/24 MCS-51单片机原理与应用 18
8.2.2 数据存储器的扩展
6
(1)两扩展芯片15条地址线A0~A14都与单片机的15条地址线 一一对应同名相连,用于对存储器芯片片内单元的寻址。 (2)两扩展芯片数据线I/O0~I/O7与单片机数据总线一一对应 同名相连。单片机PSEN 与29C256的OE 相连,用于取指控制;单 片机的 WR 与 RD 信号分别与62256的 OE 和WE 相连,用于数据的 读写控制。
51系列单片机最小系统

51系列单片机最小系统设计与调试实验实验指导书51系列单片机最小系统设计与调试一、实验目的1. 了解单片机的基本工作原理2. 学习并掌握相关软件的使用方法(Protel、keil)2. 掌握单片机片内程序存储器下载方法3. 掌握单片机程序设计(汇编及C51)二、原理1. 什么是单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。
2. AT89C51高性能8位单片机功能AT89C51提供以下标准功能:8K字节Falsh闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,时/计数器,串行通信口及中断系统持续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
3. AT89C51高性能8位单片机资料请参考相关书籍三、实训任务.(1)认识MCS-51的ROM及片外RAM空间:认识51系列单片机的程序存储器(ROM)的空间范围;汇编指令编码在ROM中存储形式;掌握指令编码和指令编码所在地址的概念;了解51系列单片机的程序存储器(ROM)固定地址的用途。
认识51系列单片机的片外数据存储器(片外RAM)的地址空间范围;了解51系列单片机的片外数据存储器的用途;重点掌握片内片外访问存储器的指令。
(2)认识MCS-51片内RAM空间:认识51系列单片机片内随机存储器(片内RAM)的空间范围;认识51系列单片机片内随机存储器的区域划分;掌握字节地址和位地址的概念;了解R0~R7寄存器与字节地址的关系。
51单片机最小系统原理图

51单片机最小系统原理图接触过单片机的朋友们都时常会听到别人提"最小系统"这个词.那到底什么是最小系统,有怎样设计称上"最小"呢?下面让依依电子来告诉大家:单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。
应用89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:1、具有上电复位和手动复位功能。
2、使用单片机片内程序存储器。
3、具有基本的人机交互接口。
按键输入、LED 显示功能。
4、具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
51单片机学习想学单片机,有一段时间了,自己基础不好,在网上提了许多弱智的问题,有一些问题网友回答了,还有一些为题许多人不屑一顾。
学来学去,一年多过去了,可是还是没有入门,现在我就把我学习中遇到的一些问题和大家分享一下,希望在大虾的帮助下能快速的入门:)在学习之前我在网上打听了一下atmel公司的单片机用的人比较多,avr系列这几年在国内比较流行,但是考虑到avr还是没有51系列用的人多,51系列的许多技术在实践中都已经的到了前人的解决,遇到问题后,有许多高人可以帮助解决,所以这次学习,选用了atmel公司的at89s52,来进行学习。
学习单片机是需要花费时间实践的;学之前我们先准备好所需的东西一、所需硬件at89s52一片;8m晶振一个,30pf 的瓷片电容两个;10uf电解电容一个,10k的电阻一个;万用板(多孔板)一块;其他的器件如电烙铁一把30w的,松香,焊锡若干,如果是第一次学习,不知道这些东西,没关系,以下是它们的照片:Atmel公司生产的at89s52 8m晶振22pf瓷片电容电解电容图1/4 w 10k 的电阻普通的电木万用板好了,有了这些东西,我们就可以把它们组合到一起做成我们的最小系统了:)有了这些东西我们怎么焊接丫?不用着急,过一会我们把原理图给大家画出来大家就会了。
51单片机最小系统电路图及实验

51单片机最小系统电路图及实验(含调试程序)--------------------------------------------------------------------------------51单片机最小系统电路图及实验一、任务开发单片机最小系统二、任务分析:该系统具有的功能:(1)具有2位LED数码管显示功能。
(2)具有八路发光二极管显示各种流水灯。
(3)可以完成各种奏乐,报警等发声音类实验。
(4)具有复位功能。
三、功能分析(1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;(3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。
(4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。
四、设计框图五、最小系统电路图设计根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。
六、元器件件清单的确定:数码管:共阴极2只(分立)电解电容:10UF的一只30PF的电容2只220欧的电阻9只4.7K的电阻一只1.2K的电阻一只4.7K的排阻一只,12MHZ的晶振一只有源5V蜂名器一只AT89S51单片机一片常开按钮开关1只紧锁座一只(方便芯取下来的,绿色的)发光二极管(5MM红色)8只万能板电路版15*17CMS8550三极管一只4.5V电池盒一只,导线若干。
七、硬件电路的焊接按照原理图把上面的元件焊接好,详细步骤省略。
八、相关程序设计针对上面的电路原理图,设计出本系统的详细功能:(1)、第一个发光二极管点亮,同时数码管显示“1”。
(2)、第二个发光二极管点亮,同时数码管显示“2”。
(3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。
以上出现的是流水灯的效果(4)、所有的发光二极管灭了,同时数码管现实“0”。
MCS--51单片机最小系统设计

MCS-51单片机最小系统设计目录第一部分课程设计任务书 (1)一、课程设计题目 (1)二、课程设计时间 (1)三、课程设计提交方式 (1)四、设计要求 (1)第二部分课程设计报告 (2)一、单片机发展简史 (2)二、MCS-51单片机系统简介 (3)三、设计思路 (3)四、硬件设计电路 (3)五、软件设计流程 (5)六、程序源代码 (6)七、结束语 (7)八、参考文献 (8)第一部分课程设计任务书一、课程设计题目MCS-51单片机最小系统设计二、课程设计时间一周三、课程设计提交方式提交打印课程设计报告四、设计要求设计一个模拟现实的交通灯系统,0~15秒东西红灯亮,南北绿灯亮,15~20秒东西红灯亮,南北黄灯亮,20~35秒东西绿灯亮,南北红灯亮,35~40秒东西黄灯亮,南北红灯亮,同时设立双位数码管表示倒计时时间,并实现循环。
第二部分课程设计报告一、单片机发展概况1946年2月15日,第一台电子数字计算机问世,这标志着计算机时代的到来。
匈牙利籍数学家冯·诺依曼在方案的设计上做出了重要的贡献。
1946年6月,他又提出了“程序存储”和“二进制运算”的思想,进一步构建了计算机由运算器、控制器、存储器、输入设备和输出设备组成这一计算机的经典结构。
在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。
单片机技术发展过程可分为三个主要阶段:单芯片微机形成阶段1976年,Intel公司推出了MCS-48系列单片机。
8位CPU、1K字节ROM、64字节RAM、27根I/O线和1个8位定时/计数器。
特点是:存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。
性能完善提高阶段1980年,Intel公司推出了MCS-51系列单片机:8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。
寻址范围64K,并有控制功能较强的布尔处理器。
第二章 MCS-51 单片机基本知识

CPU
特殊功能寄存器SFR 特殊功能寄存器 (Special Function Register) )
MCS-51单片机的引脚功能 2.1.2 MCS-51单片机的引脚功能
MCS-51单片机芯片共40脚 I/O端口引脚32条 端口引脚32 MCS-51单片机芯片共40脚,I/O端口引脚32条、控制引 单片机芯片共40 电源引脚2 时钟引脚2 如图2 脚4条、电源引脚2条、时钟引脚2条,如图2-1、2-4 所示。 所示
通用I/O I/O口 无片外存储器时,P2口可作通用I/O口使用 口可作通用I/O口使用; ① 通用I/O口:无片外存储器时,P2口可作通用I/O口使用; ② 地址口:在访问外部存储器时,传送ROM/RAM高低8位地址。 地址口:在访问外部存储器时,传送ROM/RAM高低8位地址。 ROM/RAM高低
CPU
算术逻辑单元ALU 算术逻辑单元ALU (Arithmetic Logic Unit) 定时控制器 定时控制器 程序计数器PC 程序计数器PC Counter) (Program Counter) 累加器ACC 累加器ACC (Accumulator) (Accumulator) 程序状态字PSW 程序状态字PSW Word) (Program Status Word) 堆栈指针SP 堆栈指针SP Pointor) (Stack Pointor) 数据指针DPTR 数据指针DPTR Pointer) (Data Pointer) 寄存器B 寄存器B
中央处理单元CPU 2.1.1 中央处理单元CPU
算术逻辑单元ALU 算术逻辑单元ALU (Arithmetic Logic Unit) 加法器 2个暂存器TMP1和TMP2 个暂存器TMP1和 TMP1 布尔处理器 定时控制逻辑 定时控制器 定时控制器 指令寄存器IR 指令寄存器IR (Instruction Register ) 振荡器OSC 振荡器OSC (Oscillator) 特殊功能寄存器 特殊功能寄存器SFR (Special Function Register) )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT 89C51
1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 17 16 P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/ P PSEN 10 11 30 29 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28
★引脚介绍——共40个引脚,4类
(1)电源接口:VCC(40脚)VSS(20脚) (2)时钟接口:XTAL2(18脚),XTAL1(19脚) (3)I/O接口:4个8位的并行口—P0、P1、P2、P3。 (4)其他引脚: RST(9脚)复位,高电平有效 ■小窍门1: 接口助记词: 奇左偶右,小上大下; 占 4 个角,P3少3脚。 只有P0序号反。
②、软件
P1.1=1 LED1灭
P1.2=0? N N P1.3=0?
Y,K1按下
P1.1=0 LED1亮
Y,K2按下 P1.1=1 LED1灭
完整的LED闪烁程序
#include<reg51.h> Sbit LED1 = P1^0; void main() { while(1) { LED1 = 0; Delay(10); LED1 = 1; Delay(10); } }
例:能使8个发光二极管循环顺序闪烁的单片机电路
680 680 680 680 680 680 680 680 3鼠标、硬/软/光驱、音箱、 打印机、扫描仪…等外设。 单片机则只是一片集成电路。(……100、48、40、32、 28、20、16、8条引脚)。
单片机与计算机之异同
功能: PC机: 数据运算、采集、处理、存储、传输; 单片机:控制(或受控于)外设。
通用计算机擅长于数据运算、采集、处理、存储和传 输; 单片机的专长则是测控,往往嵌入某个仪器/设备/系统 中,使其达到智能化的效果。
9
◆非80C51结构单片机新品不断推出,给 用户提供了更为广泛的选择空间 ,近年来推 出的非80C51系列的主要产品有:
﹡Intel的MCS-96系列16位单片机 ; ﹡Microchip的PIC系列RISC单片机 ; ﹡TI的MSP430F系列16位低功耗单片机 。
10
■
8051单片机的外部引脚
■单片机最小系统
任何单片机想要正常工作,都有3个必接的电 路:电源电路、时钟电路、复位电路。接好这3种 电路的单片机系统,称为单片机最小系统。
1 电源电路 VCC(40脚)一般接5V电源,VSS(20脚)接地。
2 时钟电路
Y1为晶体振荡器,简称晶振 ,C1、C2为电容。 单片机通电后,晶振电路开 始工作,产生周期性方波, CPU就是以波动周期为时间标 准的。 MCS-51系列单片机常用的晶 振频率为f=12MHz和 f=11.0592MHz。
CPU
输 入 设 备
输 入 接 口 设 备
运算器 控制器
输 出 接 口 设 备
输 出 设 备
软
+
件
系
统
存储器 硬件系统
在一片集成电路芯片上集成微处理器(CPU )、存储器、I/O 接 口电路,从而构成了单芯片微型计算机,即单片机( MCU , Micro Controller Unit)。简单说,就是集成在一个芯片上的 微型计算机——单片机实质上就是一个芯片
VCC
200 2K
void Delay(char delaytime) //延时函数 { char i=0; char j=0; for(i=0;i<delaytime;i++) for(j=0;j<100;j++) ; }
void main(void) //主函数 { P1=0xff; // 1、熄灭所有发光二极管 while(1) // 系统主循环 { LED1=0; //2、点亮第1个发光二极管 Delay(100); //3、延时0.1秒 LED1=1; //4、熄灭第1个发光二极管 LED2=0; //5、点亮第2个发光二极管 Delay(100); //6、延时0.1秒 LED2=1; //7、熄灭第2个发光二极管 LED3=0; //8、点亮第3个发光二极管 Delay(100); //9、延时0.1秒 LED3=1; //10、熄灭第3个发光二极管 LED4=0; //11、点亮第4个发光二极管 Delay(100); //12、延时0.1秒
主要内容
• 什么是单片机、单片机能做什么。 • 从点亮实验板上的一个发光二极管开始 • KEIL工程建立详细介绍及KEIL软件使用方法
什么是单片机
• 1、微型计算机硬件结构 ——常见的微机外形
台式微机
立式微机
便携式微机
微型计算机硬件结构 ——微机硬件组成
显示器 主机 键盘 鼠标
微型计算机系统
微型计算机系统
+5V
0
阴极
0V
LED发光二极管的工作原理
51单片机最小系统
0
如何点亮LED?
1
执行语句 P1^0 = 0; 如何熄灭LED? 执行语句 P1^0 = 1;
如何实现LED闪烁?
头文件
#include<reg52.h> Sbit LED1 = P1^0; 主函数 void main(void) { while(1) { LED1 = 0; 无限循环 LED1 = 1; } }
3 复位电路
复位的功能: 使单片机恢复初始状态。令程 序计数器PC清零,令大部分 RAM存储器清零。特殊的有: P0\P1\P2\P3复位后各引脚均 为高电平;堆栈指针SP=07H。 复位的条件: 复位引脚的高电平维持两个 机器周期以上。 复位的方式: 上电复位和手动复位。
51单片机最小系统
阳极 1
CPU
输 入 设 备
输 入 接 口 电 路
运算器 控制器
存储器 硬件系统
输 出 接 口 电 路
硬件系统 —— 构成微机 的实体和装置
输 出 设 备 软
+
件 系 统
软件系统——微机系统所 使用的各种程序的总称
软件系统与硬件系统共同 构成实用的微机系统,两 者是相辅相成、缺一不可 的。
单片微型计算机
微型计算机系统
单片机产品近况
◆ 80C51系列单片机产品繁多,主流地位已
经形成,近年来推出的与80C51兼容的主要产 品有:
﹡ATMEL公司融入Flash存储器技术的AT89系列; ﹡Philips公司的80C51、80C552系列; ﹡华邦公司的W78C51、W77C51高速低价系列; ﹡ADI公司的ADμ C8xx高精度ADC系列; ﹡LG公司的GMS90/97低压高速系列; ﹡Maxim公司的DS89C420高速(50MIPS)系列; ﹡STC公司的STC89CXX系列;
单片机内部结构示意图
T
INT
定时器/计数器
中断系 统
P0-P3
并 行 I/ O 口
CPU
存储 器
串 行 I/ O 口
TxD RxD
单片机与计算机之异同
组成: CPU(进行运算、控制) RAM(数据存储器) I/O口(串口、并口等) ROM(程序存储器) PC机: 上述部件以芯片形式安装在主板上。 单片机:上述部件被集成到单芯片中。
} }
……… LED7=1; //22、熄灭第7个发光二极管 LED8=0; //23、点亮第8个发光二极管 Delay(100); //24、延时0.1秒 LED8=1; //25、熄灭第8个发光二极管 //26、跳回第2步开始循环执行
程序的改进型
#include <AT89X51.H> void Delay(unsigned char delaytime); unsigned char DispBuffer[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf, 0xbf,0x7f}; void Delay(unsigned char delaytime) //延时函数 { unsigned char i=0; unsigned char j=0; for(i=0;i<delaytime;i++) for(j=0;j<120;j++) ; }