8051_时序
- 格式:ppt
- 大小:815.50 KB
- 文档页数:9
8051单片机的内部结构8051单片机是一种经典的8位微控制器,因其性能稳定、易于使用和广泛应用于各种嵌入式系统中而备受推崇。
8051单片机采用哈佛架构,具有强大的功能和丰富的内部资源。
本文将详细介绍8051单片机的内部结构。
1.CPU核心:8051单片机核心包括中央处理器(CPU)和一些相关模块,主要包括ALU(算术逻辑单元)和控制单元。
ALU负责执行算术和逻辑运算,而控制单元负责指令译码和控制指令执行。
2.存储器:8051单片机具有多种类型的存储器,包括ROM、RAM和特殊功能寄存器。
- ROM(Read Only Memory):8051单片机的ROM存储器用于存储程序指令,其容量通常为4KB至64KB,并且不可编程。
程序储存在ROM中,在运行时从中读取指令并执行。
- RAM(Random Access Memory):8051单片机的RAM存储器用于存储变量和临时数据。
其容量通常从XDATA的8051型号开始,为128B至256B。
与ROM不同,RAM可读可写,并且容易被程序修改。
-特殊功能寄存器(SFR):8051单片机的特殊功能寄存器是一种特殊的存储器类型,用于存储特定功能的控制和状态信息。
例如,P0(口0)用于控制和监测微控制器的输入/输出。
3.端口:8051单片机包含4个8位双向并行端口(P0-P3),用于与外部设备进行通信。
每个端口都可以配置为输入或输出,并且具有输入缓冲器和输出驱动器。
4. 定时器/计数器:8051单片机具有两个16位定时器/计数器(Timer/Counter 0和Timer/Counter 1)。
它们可用于测量时间间隔、生成定时中断和计数外部事件。
5.串行通信接口:8051单片机具有一个串行通信接口(UART),用于与外部设备进行串行数据传输。
UART可以通过异步串行通信或同步串行通信来传输数据。
6.中断控制器:8051单片机具有中断控制器,用于处理外部中断和内部中断。
8051单片机的体系结构中央处理器:8051单片机采用的中央处理器由一个8位的累加器(Acc)和一个8位的算术逻辑单元(ALU)组成。
它还配备了一组标志寄存器,用于存储运算过程中的标志位,例如进位标志、零标志、溢出标志等。
该中央处理器支持多种数据操作,包括算术运算、逻辑运算、位操作等。
存储器:8051单片机具有多种类型的存储器。
它包括ROM(只读存储器)、RAM(随机存储器)和特殊功能寄存器(SFR)。
ROM用于存储程序代码和常量数据,RAM用于存储变量和临时数据,而SFR用于存储与特殊功能相关的寄存器。
其中,ROM和RAM的大小可以根据系统需求进行扩展。
输入/输出:8051单片机的输入/输出部分是其最重要的功能之一、它提供了多个通用输入和输出引脚,可以与外部设备进行数据通信。
此外,还提供了一些特殊功能引脚,用于与外围设备(如计时器、串行通信接口等)进行连接。
通过这些引脚,8051单片机可以与外部世界进行高效的数据交换。
时钟:8051单片机需要一个时钟源来提供时序控制和计时功能。
它可以使用外部晶振或者外部时钟源。
时钟源会被输入到时序逻辑单元(TLU),对程序进行节拍控制和计时。
特别值得一提的是,基于提供的根据时钟源产生的节拍信号,8051单片机能够实现采样输入、执行指令并输出结果的协调操作。
除了上述基本组件之外,8051单片机还有一些其他的特点和功能。
其中,片内计时器和串行通信接口(UART)是值得注意的。
片内计时器可以用于计时、延时、脉冲宽度测量等应用,而UART提供了串口通信功能。
另外,8051单片机还具有中断系统,可以在特定事件发生时中断正在执行的程序,并执行响应的中断服务程序。
总的来说,8051单片机的体系结构以其紧凑、高效的设计而著称。
它通过统一的总线结构,实现了不同部件之间的高速通信和数据传输。
这使得它成为一个理想的嵌入式控制器,适用于各种应用领域,如家电、汽车、工业自动化等。
8051芯片手册目录1 NL06F86 芯片概述 (1)1.1结构框图 (1)1.2NL06F86 性能 (1)1.3外设连接示意图 (4)1.4管脚定义 (5)1.5NL06F86 最小系统 (18)1.6部分管脚的配臵电路 (18)2 内存映射 (20)3 CPU内核 (23)3.1概述 (23)3.2CPU编程模型 (24)3.3处理器寻址方式 (28)3.4CPU指令集 (32)3.5MMU和Cache (48)4 外设功能 (61)4.1 功能综述 (61)4.2 所有寄存器列表 (62)4.3 外设使用说明 (71)4.4 编程实例 (71)5 程序起动描述 (73)6 存储器控制器 (74)6.2 寄存器表 (74)6.3 寄存器功能描述 (74)6.4 模块管脚描述 (76)6.5 典型电路 (80)6.6 编程实例 (81)7 中断控制器 (83)7.1 功能综述 (83)7.2 寄存器表 (84)7.3 寄存器功能描述 (84)7.4 编程实例 (86)8 定时器 (88)8.1 功能综述 (88)8.2 寄存器表 (88)8.3 寄存器功能描述 (89)8.4 编程实例 (90)9 通用I/O (91)9.1 功能综述 (91)9.2 寄存器表 (91)9.3 寄存器功能描述 (93)9.4 编程实例 (96)10 HW控制器 (98)10.1 功能综述 (98)10.2 寄存器表 (98)10.4 编程实例 (99)11 以太网MAC控制器 (100)11.1 功能综述 (100)11.2 寄存器表 (100)11.3 寄存器功能描述 (101)11.4 模块管脚描述 (106)11.5 典型电路 (107)11.6 编程实例 (107)12 通用异步收发器UARTs (112)12.1 功能综述 (112)12.2 UART寄存器表 (112)12.3 寄存器功能描述 (113)12.4 模块管脚描述 (117)12.5 编程实例 (118)13 I2C总线接口 (122)13.1 功能综述 (122)13.2 寄存器表 (122)13.3 寄存器功能描述 (122)13.4 时序波形图 (123)13.5 模块管脚描述 (125)13.6 典型电路 (125)13.7 编程实例 (126)14 低速外设接口 (128)14.2 寄存器表 (128)14.3 寄存器功能描述 (128)14.4 模块管脚描述 (130)14.5 典型电路 (131)14.6 编程实例 (132)15 显示接口 (134)15.1 功能总述 (134)15.2 寄存器表 (134)15.3 寄存器功能描述 (136)15.4 模块管脚描述 (143)15.5 典型电路 (144)15.6 编程实例 (145)16 磁卡接口 (149)16.1 功能综述 (149)16.2 寄存器表 (149)16.3 寄存器功能描述 (149)16.4 模块管脚描述 (151)16.5 编程实例 (151)17 IC卡接口 (153)17.1 功能综述 (153)17.2 寄存器表 (153)17.3 寄存器功能描述 (154)17.4 模块管脚描述 (156)17.6 编程实例 (157)18 打印机接口 (159)18.1 功能综述 (159)18.2 寄存器表 (159)18.3 寄存器功能描述 (159)18.4 模块管脚描述 (161)18.5 典型电路 (162)18.6 编程实例 (162)19 PC键盘接口 (164)19.1 功能综述 (164)19.2 寄存器表 (164)19.3 寄存器功能描述 (164)19.4 模块管脚描述 (165)19.5 数据格式和时序图 (166)19.6 典型电路 (166)19.7 编程实例 (167)20 PWM接口 (169)20.1 功能综述 (169)20.2 寄存器表 (169)20.3 寄存器功能描述 (170)20.4 模块管脚描述 (171)20.5 典型电路 (171)20.6 编程实例 (172)21 蜂鸣器 (173)21.1 功能综述 (173)21.2 寄存器表 (173)21.3 寄存器功能描述 (173)21.4 模块管脚描述 (174)21.5 典型电路 (174)21.6 编程实例 (175)22 DES控制器 (176)22.1 功能综述 (176)22.2 寄存器表 (176)22.3 寄存器功能描述 (176)22.4 编程实例 (177)23 封装尺寸 (179)1. 8051 芯片概述8051微控制器属于MCS-51系列,自其1980年由Inter公司设计以来,由于其完善的指令集,在嵌入式系统应用中占有很大的市场。
计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。
这个脉冲是由单片机控制器中的时序电路发出的。
单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作,在学习51单片机的时序之前,我们先来了解下时序相关的一些概念。
既然计算机是在统一的时钟脉冲控制下工作的,那么,它的时钟脉冲是怎么来的呢?要给我们的计算机CPU提供时序,就需要相关的硬件电路,即振荡器和时钟电路。
我们学习的8051单片机内部有一个高增益反相放大器,这个反相放大器的作用就是用于构成振荡器用的,但要形成时钟,外部还需要加一些附加电路。
8051单片机的时钟产生有以下两种方法:1. 内部时钟方式:利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHz-12MHz之间选择。
为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。
2. 外部时钟方式:此方式是利用外部振荡脉冲接入XTAL1或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。
由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。
对于CHMOS型的单片机(例如80C51),因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外时钟信号接到XTAL1而XTAL2悬空。
如下图外接时钟信号通过一个二分频的触发器而成为内部时钟信号,要求高、低电平的持续时间都大于20ns,一般为频率低于12MHz的方波。
片内时钟发生器就是上述的二分频触发器,它向芯片提供了一个2节拍的时钟信号。
摘要抢答器是一种应用非常广泛的设备,在各种竞猜、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。
早期的抢答器只由几个三极管可控硅、发光管等组成,能通过发光管的指示辨认出选手。
现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新的功能,如选手号码显示、抢按器或抢按后的计时、选手得分显示等功能。
本文介绍了用8051系列单片机控制的八路智力抢答器。
该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。
关键字:抢答器;单片机;报警ABSTRACTAnswer is a very wide range of application equipment, in a variety of quizzes, Answer occasions, it can quickly and objectively identify the first player to obtain the right to speak. Answer earlier are only a few transistor SCR, LED, etc., through the LED's to identify the instructions. Answer the majority are now using the single-chip devices and digital integrated circuits, and to increase the number of new features such as player number displayed, looting or robbery by the time after by players scoring display functions. This paper introduces the 8051 Series with single-chip eight-way control devices intellectual Answer. In addition to the browser Answer Answer basic functions,,but also with time, time and alarm functions.Keywords: Single-chip; device ; alarm Answer目录引言 (1)1系统设计 (2)1.1设计任务与要求 (2)1.2方案比较与论证 (2)1.38051单片机系统说明 (4)1.3.18051单片机简介 (4)1.3.28051的时序图 (4)1.48051引脚及其功能 (5)1.5设计抢答器的目的与意义 (5)2主要元器件分析 (7)2.18051芯片 (7)2.274LS373 (7)2.3MAX7219 (8)2.3.1引脚说明 (9)2.3.2基本工作原理及使用方法 (9)2.3.3应用举例 (10)2.3.4初始化 (11)2.4数码管 (11)2.5计分电路 (14)3程序设计 (17)3.1定时电路的设计 (17)3.2抢答电路的设计 (17)3.3加减分程序设计 (18)3.4报警电路设计 (19)3.5消噪子程序 (20)3.6抢答器程序流程图 (21)结论 (23)致谢 (24)参考文献 (25)附录1 (26)附录2 (35)引言在知识比赛与娱乐竞赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。
8051芯片手册目录1 NL06F86 芯片概述 (1)1.1结构框图 (1)1.2NL06F86 性能 (1)1.3外设连接示意图 (4)1.4管脚定义 (5)1.5NL06F86 最小系统 (18)1.6部分管脚的配置电路 (18)2 内存映射 (20)3 CPU内核 (23)3.1概述 (23)3.2CPU编程模型 (24)3.3处理器寻址方式 (28)3.4CPU指令集 (32)3.5MMU和Cache (48)4 外设功能 (61)4.2 所有寄存器列表 (62)4.3 外设使用说明 (71)4.4 编程实例 (71)5 程序起动描述 (73)6 存储器控制器 (74)6.1 功能综述 (74)6.2 寄存器表 (74)6.3 寄存器功能描述 (74)6.4 模块管脚描述 (76)6.5 典型电路 (80)6.6 编程实例 (81)7 中断控制器 (83)7.1 功能综述 (83)7.2 寄存器表 (84)7.3 寄存器功能描述 (84)8 定时器 (88)8.1 功能综述 (88)8.2 寄存器表 (88)8.3 寄存器功能描述 (89)8.4 编程实例 (90)9 通用I/O (91)9.1 功能综述 (91)9.2 寄存器表 (91)9.3 寄存器功能描述 (93)9.4 编程实例 (96)10 HW控制器 (98)10.1 功能综述 (98)10.2 寄存器表 (98)10.3 寄存器功能描述 (98)10.4 编程实例 (99)11 以太网MAC控制器 (100)11.2 寄存器表 (100)11.3 寄存器功能描述 (101)11.4 模块管脚描述 (106)11.5 典型电路 (107)11.6 编程实例 (107)12 通用异步收发器UARTs (112)12.1 功能综述 (112)12.2 UART寄存器表 (112)12.3 寄存器功能描述 (113)12.4 模块管脚描述 (117)12.5 编程实例 (118)13 I2C总线接口 (122)13.1 功能综述 (122)13.2 寄存器表 (122)13.3 寄存器功能描述 (122)13.5 模块管脚描述 (125)13.6 典型电路 (125)13.7 编程实例 (126)14 低速外设接口 (128)14.1 功能综述 (128)14.2 寄存器表 (128)14.3 寄存器功能描述 (128)14.4 模块管脚描述 (130)14.5 典型电路 (131)14.6 编程实例 (132)15 显示接口 (134)15.1 功能总述 (134)15.2 寄存器表 (134)15.3 寄存器功能描述 (136)15.4 模块管脚描述 (143)15.6 编程实例 (145)16 磁卡接口 (149)16.1 功能综述 (149)16.2 寄存器表 (149)16.3 寄存器功能描述 (149)16.4 模块管脚描述 (151)16.5 编程实例 (151)17 IC卡接口 (153)17.1 功能综述 (153)17.2 寄存器表 (153)17.3 寄存器功能描述 (154)17.4 模块管脚描述 (156)17.5 典型电路 (156)17.6 编程实例 (157)18 打印机接口 (159)18.2 寄存器表 (159)18.3 寄存器功能描述 (159)18.4 模块管脚描述 (161)18.5 典型电路 (162)18.6 编程实例 (162)19 PC键盘接口 (164)19.1 功能综述 (164)19.2 寄存器表 (164)19.3 寄存器功能描述 (164)19.4 模块管脚描述 (165)19.5 数据格式和时序图 (166)19.6 典型电路 (166)19.7 编程实例 (167)20 PWM接口 (169)20.1 功能综述 (169)20.3 寄存器功能描述 (170)20.4 模块管脚描述 (171)20.5 典型电路 (171)20.6 编程实例 (172)21 蜂鸣器 (173)21.1 功能综述 (173)21.2 寄存器表 (173)21.3 寄存器功能描述 (173)21.4 模块管脚描述 (174)21.5 典型电路 (174)21.6 编程实例 (175)22 DES控制器 (176)22.1 功能综述 (176)22.2 寄存器表 (176)22.3 寄存器功能描述 (176)23 封装尺寸 (179)1. 8051 芯片概述8051微控制器属于MCS-51系列,自其1980年由Inter公司设计以来,由于其完善的指令集,在嵌入式系统应用中占有很大的市场。
单片机时序图MCS51单片机的指令时序接下来我们分别对几个典型的指令时序加以说明。
·单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。
·双字节单周期指令:这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。
·单字节双周期指令:两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。
单字节双周期指令有一种特殊的情况,象MOVX这类指令,执行这类指令时,先在ROM 中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。
在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。
上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。
·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。
·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。
MCS-51 单片机的指令时序
时序是用定时单位来描述的,MCS-51 的时序单位有四个,它们分别是
节拍、状态、机器周期和指令周期,接下来我们分别加以说明。
-节拍与状态:
我们把振荡脉冲的周期定义为节拍(为方便描述,用P 表示),振荡脉冲经
过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义
为状态(用S 表示),这样一个状态就有两个节拍,前半周期相应的节拍我们
定义为1(P1),后半周期对应的节拍定义为2(P2)。
-机器周期:
MCS-51 有固定的机器周期,规定一个机器周期有6 个状态,分别表示为
S1-S6,而一个状态包含两个节拍,那幺一个机器周期就有12 个节拍,我们
可以记着S1P1、S1P2S6P1、S6P2,一个机器周期共包含12 个振荡脉冲,即机器周期就是振荡脉冲的12 分频,显然,如果使用6MHz 的时钟频率,一个机器周期就是2us,而如使用12MHz 的时钟频率,一个机器周期就是1us。
-指令周期:
执行一条指令所需要的时间称为指令周期,MCS-51 的指令有单字节、双
字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器。
keil 8051 时间函数-回复Keil 8051 时间函数(Keil 8051 time functions)Keil C51是一种被广泛应用于嵌入式系统开发的集成开发环境(IDE),它是专为Intel 8051单片机开发设计的。
在嵌入式系统开发中,处理时间是非常重要的,因此Keil C51提供了一些非常有用的时间函数,以帮助开发人员在代码中处理时间相关的任务。
本文将逐步回答关于Keil 8051时间函数的问题,以帮助大家更好地理解和应用这些函数。
1. 什么是Keil 8051时间函数?Keil 8051时间函数是由Keil C51提供的一组函数,用于处理与时间相关的任务。
这些函数包括延时函数、定时器函数和计时函数等。
2. Keil 8051时间函数有哪些?Keil 8051时间函数包括:- _nop():用于产生一个空操作,仅消耗一个CPU时钟周期;- _nop_():用于产生指定数量的空操作,可用于微调程序执行时间;- _waitms():用于进行毫秒级的延时操作;- _waitus():用于进行微秒级的延时操作;- _getkey():用于获取按键状态,可用于进行按键检测;- _kbhit():用于检测是否有按键被按下;- _crol_():用于循环左移指定位数;- _cror_():用于循环右移指定位数;- _clrr_():用于清除指定位;- _setb_():用于设置指定位。
3. 如何使用Keil 8051时间函数?使用Keil 8051时间函数非常简单。
首先,我们需要包含与所需函数对应的头文件,例如"include <reg51.h>"。
然后,可以直接在代码中调用相应的时间函数。
例如,要在代码中进行1秒的延时操作,我们可以使用"_waitms(1000)"函数,它会产生1000毫秒的延时。
4. Keil 8051时间函数的应用场景有哪些?Keil 8051时间函数可以应用于多种场景,包括但不限于:- 延时控制:在某些应用中,需要通过延时等待一定时间后再执行下一步操作。