版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章80C51的结构和原理2.180C51单片机的内部结构与引脚功能
2.280C51单片机的CPU2.380C51单片机的存储器2.480C51单片机的并行口2.580C51单片机的最小系统第2章80C51的结构和原理任务2-1用Keil软件将51单片机控制蜂鸣器程序编译成hex文件任务2-2用Proteus软件绘制51单片机控制蜂鸣器电路图任务2-3用单片机控制一只发光二极管闪烁本章小结习题
2.180C51单片机的内部结构与引脚功能
2.1.1内部结构80C51单片机基本型内部结构示意图如图2-1所示。它主要由CPU、程序存储器、数据存储器、中断系统、定时器/计数器、并行口、串行口、时钟、总线等组成,整体上包含三大模块:CPU模块、存储器模块和I/O模块。图2-180C51单片机基本型内部结构示意图
1)CPU模块
•8位CPU,含布尔处理器;
•时钟电路;
•总线控制。
2)存储器模块
•数据存储器RAM;
•程序存储器ROM。
3)I/O模块
•并行I/O端口(均为8位);
•全双工异步串行口(UART);
•定时器/计数器;
•中断系统。
2.1.2典型产品的资源配置
80C51系列单片机内部组成基本相同,但不同型号的产品在某些方面仍会有一些差异。典型的单片机产品资源配置如表2-1所示。
1)增强型与基本型的差别
•片内ROM从4K字节增加到8K字节;
•片内RAM从128字节增加到256字节;
•定时器/计数器从2个增加到3个;
•中断源从5个增加到6个。
2)片内ROM的配置形式的差别
•无ROM型,应用时要在片外扩展程序存储器;
•掩膜ROM型,用户程序由单片机芯片生产厂写入;
•EPROM型,用户程序—编程器写入,利用紫外线擦除;
•FlashROM型,用户程序可以电写入和擦除(当前常用的方式)。
2.1.3典型产品的封装和引脚功能
80C51典型产品的封装如图2-2所示。图2-280C51典型产品的封装
AT89C51的引脚排列如图2-3所示。图2-3AT89C51的引脚排列
3)并行I/O引脚(32个,分成4个8位端口)
•P0.0~P0.7:一般I/O端口引脚或数据/低位地址总线复用引脚;
•P1.0~P1.7:一般I/O端口引脚;
•P2.0~P2.7:一般I/O端口引脚或高位地址总线引脚;
•P3.0~P3.7:一般I/O端口引脚或第二功能引脚(见表22)。
2.280C51单片机的CPU
2.2.1CPU的功能单元80C51的CPU是一个8位的高性能处理器,它的作用是读入并分析每一条指令,根据各个指令的功能控制各个功能部件执行指定操作,具体如图2-4所示。图2-480C51CPU的功能
1.运算器
运算器由算术/逻辑运算单元(ALU)、累加器(ACC)、寄存器B、暂存(寄存)器、程序状态字寄存器(PSW,ProgramStatusWord)组成,它的功能是实现算术和逻辑运算、位变量处理和数据传送等操作。
1)ALU
ALU主要功能是实现8位数据的加、减、乘、除算术运算和与、或、异或、循环、求补等逻辑运算。同时还具有位处理能力。
2)ACC
ACC用于向ALU提供操作数和存放运算的结果。运算时一个操作数经暂存器送至ALU,与另一个来自ACC的操作数在ALU中进行运算,运算结果又送回ACC。
3)寄存器B
寄存器B在乘、除运算时用来存放一个操作数,也用来存放运算后的部分结果;在不进行乘、除运算时,可以作为普通寄存器。
4)PSW
PSW是状态标志寄存器,用来保存ALU运算结果的特征和处理器状态。这些特征和状态可以作为控制程序转移的条件。PSW位定义如表2-3所示。
(1)CY(PSW.7):进位标志位。存放算术运算的进位标志,在进行加或减运算时,如果操作结果最高位有进位或借位,则CY由硬件置“1”,否则被置“0”。
(2)AC(PSW.6):辅助进位标志位。在进行加或减运算中,若低4位向高4位进位或借位,则AC由硬件置“1”,否则被置“0”。
(3)F0(PSW.5):用户标志位。供用户定义的标志位,需要利用软件方法置位或复位。
(4)RS1和RS0(PSW.4,PSW.3):工作寄存器组选择位。用于CPU选择当前使用的工作寄存器组。00、01、10、11分别对应0组、1组、2组、3组寄存器,共计4组。
(5)OV(PSW.2):溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的带符号数的有效范围(-128~+127),即产生了溢出,因此运算结果是错误的;OV=0表示运算正确,即无溢出产生。
(6)F1(PSW.1):保留未使用。
(7)P(PSW.0):奇偶标志位。P标志位表明累加器ACC中内容的奇偶性,如果ACC中有奇数个“1”,则P置“1”,否则置“0”。
5)暂存器
暂存器用来暂时存放数据总线或其他寄存器送来的操作数。它作为ALU的数据输入源,向ALU提供操作数,是不可以用指令进行寻址的。
2.控制器
控制器由程序计数器(PC)、指令寄存器(IR)、指令译码及控制逻辑电路组成。
1)PC
PC是一个16位的计数器,它总是存放着下一个要取指令的存储单元地址。CPU把PC的内容作为地址,从对应于该地址的程序存储器单元中取出指令码。每取完一个指令
后,PC内容自动加1,为取下一条指令做准备。在执行转移指令、子程序调用指令及中断响应时,转移指令、调用指令或中断响应指令过程会自动给PC置入新的地址。
注意:单片机上电或复位时,PC装入地址0000H,保证单片机上电或复位后,程序从0000H地址开始执行。
2)IR
IR保存当前正在执行的一条指令。执行一条指令,先要把它从程序存储器取到指令寄存器中。指令内容含操作码和地址码,操作码送往指令译码器并形成相应指令的微操作信
号。地址码送往操作数地址形成电路,用以构成实际操作数地址。
3)指令译码及控制逻辑电路
指令译码及控制逻辑电路是微处理器的核心部件,它的任务是完成读指令、执行指令、存取操作数或运算结果等操作,向其他部件发出各种微操作控制信号,协调各部件的工作。(整体工作的协调靠时钟。)
3.其他寄存器
1)数据指针(DPTR)
DPTR是一个16位的寄存器,它由两个8位的寄存器DPH和DPL组成,用来存放16位的地址。利用间接寻址可对片外RAM、ROM或I/O接口的数据进行访问。
2)堆栈指针(SP)
SP是一个8位的寄存器,用于子程序调用及中断调用时保护断点及现场,它总是指向堆栈顶部。堆栈通常设在30H~7FH这一段片内RAM中。堆栈操作遵循“后进先出”原则,数据入栈时,SP先加1,然后数据再压入SP指向的单元;数据出栈时,先将SP指向单元的数据弹出,然后SP再减1,这时SP指向的单元是新的栈顶。
3)工作寄存器
工作寄存器R0~R7共占用32个片内RAM单元,分成4组,每组8个单元,当前工作寄存器组由PSW的RS1和RS2位指定。
80C51寄存器及其在存储器中的映射如图2-5所示。图2-580C51寄存器及其在存储器中的映射
2.2.2总线控制
1.简介
总线控制是用来传送控制信息的信号线,连接在一起并完成和实现CPU、内存和输入输出设备之间的通信与数据传送。
2.分类
总线控制就是各种信号线的集合,是各部件之间传送数据、地址和控制信息的公共通道。
1)按相对于CPU与其芯片的位置来分
(1)片内总线:指在CPU内部各寄存器、算术逻辑部件(ALU)、控制部件以及内部高速缓冲存储器之间传输数据所用的总线,即芯片内部总线。
(2)片外总线:通常所说的总线(BUS)指的是外总线,是CPU与内存RAM、ROM和输入输出设备接口之间进行通信的数据通道,CPU通过总线实现程序存取命令、内存/外设的数据交换。在CPU与外设一定的情况下,总线速度是限制计算机整体性能的最大因数。
2)按总线功能分
(1)地址总线(AB):用来传递地址信息。
(2)数据总线(DB):用来传递数据信息。
(3)控制总线(CB):用来传送各种控制信号。
3)按总线的层次结构分
(1)CPU总线:包括CPU地址线(CAB)、CPU数据线(CDB)和CPU控制线(CCB),用来连接CPU和控制芯片。
(2)存储器总线:包括存储器地址线(MAB)、存储器数据线(MDB)和存储器控制线(MCD),用来连接内存控制器和内存。
(3)系统总线:也称为I/O通道总线或I/O扩展总线,包括系统地址线(SAB)、系统数据线(SDB)和系统控制线(SCD),用来与I/O扩展槽上的各种扩展卡相连接。
(4)外部总线(外围芯片总线):用来连接各种外设控制芯片,如主板上的I/O控制器(如硬盘接口控制器、软盘驱动控制器、串行/并行接口控制器等)和键盘控制器,包括外部地址线(XAB)、外部数据线(XMB)和外部控制线(XCB)。
3.总线技术指标
1)总线的带宽(总线数据传输速率)
总线的带宽指的是单位时间内总线上传送的数据量,即每秒钟传送多少兆字节的最大稳态数据传输率。与总线密切相关的两个因素是总线的位宽和总线的工作频率,它们之间
的关系如下:
总线的带宽=总线的工作频率*总线的位宽/
2)总线的位宽
总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的位宽越宽,每秒钟数据传输率越大,总线的带宽越宽。
3)总线的工作频率
总线的工作频率以MHz为单位,工作频率越高,总线工作速度越快,总线带宽越宽。
2.380C51单片机的存储器
存储器是组成计算机的主要部件,其功能是存储信息。存储器可以分成两个大类,一类是数据存储器(RAM),另一类是程序存储器(ROM)。对于RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。所以,RAM用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。ROM是一种写入和读出信息存储器。断电后ROM中的信息不变,所以常用来存放程序或常数,如系统监控程序、常数表等。
如图2-6所示,存储器主要有4个物理存储空间:片内数据存储器(IDATA区)、片外数据存储区(XDATA)、片内程序存储器和片外程序存储器(程序存储器合称为CODE)。图2-6单片机的存储器结构示意图
2.3.1数据存储器配置
80C51单片机的数据存储器分为片外RAM和片内RAM两大部分。
MCS-51系列单片机的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(80H~FFH)。片内、片外
数据存储器概况如图2-7所示。图2-7片内、片外数据存储器概况
1)片内数据存储器低128单元(DATA区)
片内RAM的低128个单元用于存放程序执行过程中的各种变量和临时数据,称为DATA区。这片内RAM低128个单元是单片机的真正RAM存储器,按其用途划分为工作寄存器区、位寻址区和用户数据缓冲区3个区域。片内RAM低128单元的配置如表2-4所示。
(1)工作寄存器区:每组包括8个(R0~R7)共计32个寄存器,用来存放操作数据及中间数据结果等。4组通用寄存器占据内部RAM的00H~1FH单元地址。
在任何时刻,CPU只能使用其中一组寄存器,并且把正在使用的那组寄存器称为当前寄存器。当前工作寄存器到底是哪一组,由程序状态寄存器(PSW)中的RS1和RS2位的状态组合来决定。
注意:在单片机的C语言程序设计中,一般不会直接使用工作寄存器组R0~R7。但是,在C语言与汇编语言的混合编程中,工作寄存器组是汇编子程序和C语言函数之间重要的参数传递工具。
(2)位寻址区(BDATA):内部RAM的20H~2FH单元,既可以为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行操作,因此把该区称为位寻址区(BDATA区)。
位寻址区共有16个RAM单元,共
(3)用户数据缓冲区(通用RAM区):在内部RAM低128单元中,除了工作寄存器区(占32个单元)和位寻址区(占16个单元)外,还剩下80个单元,单元地址为30H~7FH,是供用户使用的一般RAM区。对用户数据缓冲区的使用没有任何规定或限制,但是一般应用中常把堆栈开辟在此区域中。
在实际应用中,堆栈一般设在30H~70H的范围内,栈顶的位置由堆栈指针SP指示。复位时SP的初值为07H,在系统初始化时,通常要进行重新设置,目的是留出低端的工作寄存器和位寻址空间以完成更重要的任务。
用户数据缓冲区示意图如图2-8所示。图2-8用户数据缓冲区示意图
2)片内数据存储器高128单元(DATA区)
内部RAM的高128单元是基本型单片机21个SFR(也称为特殊功能寄存器),它离散地分布在80H~FFH空间。虽然,它们不连续地分布在片内RAM的高128单元中,其中还有许多空闲地址,但是用户不能使用。另外还有一个不可寻址的特殊功能寄存器,即程序计数器(PC),它不占用RAM单元,在物理上是独立的。表2-6所示为21个SFR的位地址及字节地址表。
2.3.2程序存储器配置
80C51单片机的程序计数器(PC)是16位的计数器,所以能寻址64KB的程序寄存器地址范围,允许用户程序调试或转向64KB的任何存储单元。
1.片内与片外程序存储器的选择
EA引脚有效时(低电平)选择运行片外ROM中的程序。
1)EA引脚接高电平时从片内程序存储器开始取指令
当EA引脚接高电平时,对于基本型单片机,首先在片内程序存储器中取指令,当PC的内容超过0FFFH时系统会自动转到片外程序存储器中取指令,外部程序存储器的地址从1000H开始编址,如图29所示。图2-9EA接高电平时
2)EA引脚接低电平时从片外程序存储器开始取指令
当EA引脚接低电平时,单片机自动转到片外程序存储器中取指令(无轮片内外是否有程序存储器),外部程序存储器的地址从0000H开始编址,如图2-10所示。图2-10EA接低电平时
2.程序存储器低端的几个特殊单元
程序寄存器低端的一些地址被固定地用做特定的入口地址,如表2-7所示。
地址0000H是复位入口,复位后单片机执行该处的指令进入主程序。图2-11所示为基本程序储存结构。
主程序执行时,如果开放了CPU,且某一中断被允许(如图为外部中断0),当该中断事件发生时,就会暂时停止主程序的执行,转而去执行中断服务程序。编程时,通常在该中断入口地址中放一条转移指令(如LJMP2000H),从而使该中断服务发生时,系统能够跳转到该中断在程序存储器区高端的中断服务程序。只有在中断服务程序长度少于8个字节时,才可以将中断服务程序直接放在相应的入口地址开始的几个单元中。
注意:在单片机C语言程序设计中,用户无需考虑程序的存放地址,编译程序会在编译过程中按照上述规定,自动安排程序的存放地址。例如:C语言是从main()函数开始执行的,编译程序会在程序存储器的0000H处自动存放一条转移指令,跳转到main()函数存放的地址;中断函数也会按照中断类型号,自动由编译程序安排存放在程序存储器相应的地址中。因此,读者只需要了解程序存储器的结构就可以了。图2-11基本程序储存结构
2.480C51单片机的并行口
2.4.1P0口的结构、功能及使用1.结构P0口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个与门及一个反相器组成。P0口的内部逻辑电路如图2-12所示。图中的控制信号C的状态决定MUX转换开关的位置。当C=0时,MUX处于图中所示位置(I/O);当C=1时,MUX拨向反相器输出端位置(地址/数据总线)。图2-12P0口的内部逻辑电路
2.功能
P0端口作一般I/O口时,先定义后使用;作低8位地址总线/数据总线复用口时,通常后边接地址锁存器。
1)P0口用做通用I/O口(C=0)
当单片机应用系统不进行片外总线扩展时,P0口用作通用I/O口。在这种情况下,单片机硬件自动使C=0,MUX开关接向锁存器的反相输出端。另外,与门输出的“0”使输出驱动器上的上拉场效应管T1处于截止状态。因此,输出驱动器工作在需外接上拉电阻的漏极开路方式。
•作输出口时,CPU执行口的输出指令,内部数据总线上的数据在“写锁存器”信号的作用下由D端进入锁存器,经锁存器的反相端送至场效应管T2,再经T2反相,在P0.X引
脚出现的数据正好是内部总线的数据。P0口用做输出口时的内部逻辑电路图2-13所示。图2-13P0用做输出口时的内部逻辑电路
•作输入口时,数据可以读自接口的锁存器,也可以读自接口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。P0口用做输入口时的内部逻辑电路图2-14所示。图2-14P0口用做输入口时的内部逻辑电路
2)P0口用做地址/数据总线(C=1)
当应用系统进行片外总线扩展时(即扩展存储器或接口芯片),P0口用做地址/数据总线。在这种情况下,单片机内硬件自动使C=1。P0口用做地址/数据总线时的内部逻辑电
路图2-15所示。
3.使用
P0口字节单元地址为80H,引脚为32~39脚,可以位寻址;能驱动8个LSTTL电路。图2-15P0口用做地址/数据总线时的内部逻辑电路
2.4.2P1口的结构、功能及使用
1.结构
P1口通常作为通用I/O使用,由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,如图2-16所示。P1口在电路上与P0口有一些不同之处,首先它不再需要多路转换开关MUX,其次是电路的内部有上拉电阻(30kΩ),与场效应管共同组成输出驱动电路。图2-16P1口的内部逻辑电路
2.功能
P1口是51单片机中唯一的一个单功能I/O端口。作一般I/O口用时,遵循先定义后使用的原则。
3.使用
P1口字节单元地址为90H,引脚为1~8脚,可以位寻址;能驱动4个LSTTL电路。
2.4.3P2口的结构、功能及使用
1.结构
P2口由一个输出锁存器、一个转换开关MUX、两个三态输缓冲器、输出驱动电路和一个反相器组成。P2口的内部逻辑电路如图2-17所示。
图中的控制信号C的状态决定了MUX转换开关的位置。当C=0时,MUX处于图中所示位置(I/O);当C=1时,MUX拨向反相器输出端位置(地址/数据总线)。图2-17P2口的内部逻辑电路
2.功能
P2口作高8位地址总线或者是一般I/O端口。作为8位地址总线,从P2.0开始,确定方法遵循Q=2n原则,即n=8+?(?表示需要P2口提供高8位地址总线的根数,根据实际需要自己确定);作为一般I/O端口,遵循先定义后使用原则。
P2口用做通用I/O口(C=0)时:
•作输出口:执行输出指令,内部数据总线的数据在“写锁存器”信号的作用下由D端进入锁存器,经反相器反相后送至场效应管T,再经T反相,在P2.X引脚出现的数据正
好是内部数据总线的数据。应注意:P2口的输出驱动电路内部有上拉电阻。
•作输入口:数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。
3.使用
P2口的字节单元地址为A0H,引脚为21~28脚,可以位寻址;能驱动4个LSTTL电路。
2.4.4P3口的结构、功能及使用
1.结构
P3口由一个输出锁存器、三个输入缓冲器(其中两个为三态)、输出驱动电路和一个与非门组成,如图2-18所示。P3口与P1口的结构相似,区别仅在于P3口的各端口线有两
种功能可选择。当处于第一功能时,第二功能输出线为“1”,与非门开通,以维持从锁存器到输出端的数据输出通路的畅通。此时,内部总线信号经锁存器与场效应管输入\输出,其
作用与P1口的作用相同,也是静态准双向I/O端口。
当处于第二功能时,锁存器输出为“1”,通过第二输出功能线输出特定的信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以代替输入功能读入片内特定的第二功能信号。由于输出信号锁存并且有双重功能,故P3口为静态双功能端口。
图2-18P3口的内部逻辑电路
2.功能
P3口作为一般I/O端口,遵循先定义后使用的原则。P3口的第二功能如表2-8所示。
3.使用
P3口字节单元地址为B0H,引脚为10~17脚,可以位寻址;能驱动4个LSTTL电路。通常情况只要P3口使用,首先考虑是否是第二功能。
2.580C51单片机的最小系统
单片机的工作就是执行用户程序、指挥各部分硬件完成既定任务。如果一个单片机芯片没有烧录用户程序,显然它就不能工作。可是,一个烧录用户程序的单片机芯片,给它上电后就能工作吗?也不能。原因是除了单片机外,单片机能够工作的最小电路还包括时钟和复位电路,通常称为单片机最小系统。
时钟电路为单片机工作提供基本时钟,复位电路用于将单片机内部各电路的状态复位到初始化值。图2-19所示为典型的单片机最小系统。图2-19典型的单片机最小系统
2.5.1MCS51单片机的时钟
单片机的工作过程是:取一条指令、译码、进行微操作;再取一条指令、译码、进行微操作,这样自动地、一步一步地由微操作依序完成相应指令规定的操作功能。这些一步一
步的工作全靠单片机时钟来控制和协调完成。
1.时钟产生的方式
MCS51单片机的时钟信号通常由两种方式产生:一是内部时钟方式;二是外部时钟方式,如图2-20所示。
内部时钟方式只要在单片机的XTAL1和XTAL2引脚外接晶振即可。图2-20(a)中电容器C1和C2的作用是稳定频率和快速起振,电容值在5~30pF之间,典型值为30pF。
晶振CYS的振荡频率要小于12MHz,典型值为6MHz、12MHz或11.0592MHz。图2-20时钟方式
2.MCS-51单片机时钟信号
MCS-51单片机时钟信号如图2-21所示。
振荡周期(有时也称为时钟周期)为最小的时序单位。振荡信号经分频器后形成两相错开的信号P1和P2。P1和P2的周期也称为S状态周期,它是晶振周期的2倍,即一个S状态周期包含两个振荡周期。图2-21时钟信号示意图
3.时序概念
单片机内的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。
单片机的时序定时单位从小到大依次为:节拍、状态周期、机器周期和指令周期。
节拍是指晶体振荡器直接产生的振荡信号的振荡周期,用P表示:
如6MHz时T=1/6μs,12MHz时T=1/12μs。
状态周期又称为时钟周期,用S表示。每一个状态周期是振荡周期的两倍,即每个状态周期分为P1和P2两个节拍,P1节拍完成算术逻辑操作,P2节拍完成内部寄存器间数
据的传递。
机器周期是机器的基本操作周期,一个机器周期含6个状态周期,分别用S1~S6表示,或用S1P1、S1P2……S1P6表示。
指令周期是执行一条指令所占有的全部时间。一条指令通常由1~4个机器周期组成。单片机系统中,有单周期指令、双周期指令和四周期指令。
2.5.2MCS-51单片机的复位
单片机的工作就是从复位开始的。复位可以使单片机中各部件处于确定的初始状态。
1.复位电路
当MCS-51单片机的RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。复位信号变低电平时,单片机开始执行程序。实际应用中,复位操作有两种基本形式:一种是上电复位;另一种是上电与按键均有效的复位。
图2-22(a)所示为上电复位,它利用电容充电来实现复位。在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐步下降。只要保证RST为高电平的
时间大于两个机器周期,便能正常复位。
图2-22(b)所示为按键复位电路。该电路除具有上电复位电路功能外,还可以按图中的RESET键实现复位,此时电源VCC经过两个电阻分压,在RST端产生一个复位高电
平(两个机器周期)。图2-22复位电路
2.单片机复位后状态
单片机复位初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。单片机启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。
复位后,特殊功能寄存器状态是确定的。P0~P3为FFH,SP为07H,SBUF不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。相应的意义为:
•P0~P3=FFH,相当于各口锁存器已写入1,此时不但可用于输出,也可以用于输入;
•SP=07H,堆栈指针指向片内RAM的07H单元(第一个入栈内容将写入08H单元);
•IP、IE和PCON的有效位为0,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;
•PSW=00H,当前工作寄存器为0组。
任务2-1用Keil软件将51单片机控制
蜂鸣器程序编译成hex文件
任务目的通过使用KeilμVision4软件,对51单片机控制蜂鸣器程序进行输入和编译,达到掌握将C51单片机控制程序编译成hex文件的方法。任务准备设备及软件:计算机、KeilμVision4软件。
任务实施
(1)在【Project】菜单下选择【NewμVisionProject】命令,见图2-23。
(2)输入新建工程文件名“蜂鸣器”,如图2-24所示。
(3)选择厂商和单片机型号,见图2-25。
(4)新建c文件,见图2-26。
(5)输入C语言程序并保存,见图2-27。
(6)保存的文件后缀名为在英文状态下的“.c”,见图2-28
(7)将新建的文件添加到工程中,见图2-29和图2-30。
(8)单击图标,在【Output】下拉菜单中生成的hex文件上打对钩,见图2-31和图2-32。
(9)编译,底端显示0错误0警告,表示程序语法正确,见图2-33。
图2-23新建工程图2-24保存工程图2-25选择单片机图2-26新建c文件图2-27编程图2-28保存c文件图2-29添加c文件操作一图2-30添加c文件操作二图2-31勾选hex文件操作一图2-32勾选hex文件操作二图2-33编译
任务2-2用Proteus软件绘制51单片机
控制蜂鸣器电路图
任务目的使用Proteus软件绘制51单片机控制蜂鸣器电路图,掌握Proteus软件绘制电路图的方法及注意事项。任务准备设备及软件:万用表、计算机、KeilμVision4软件、Proteus软件。电路图:51单片机控制蜂鸣器电路图一张(电路图参见后面的绘制结果)。
任务实施
(1)单击搜索元件的符号,见图2-34;也可以按快捷键P进行搜索。
(2)在搜索栏输入要用的元器件,见图2-35。
(3)双击需要的元器件之后,元器件就会进入器件工具列表窗口,见图2-36。
(4)用鼠标左键单击连接元件端口,画好电路图之后,双击单片机就会进入元器件编辑界面,接着选择对应的hex文件,见图2-37。
(5)单击左下角允许符号,没有错误,表示运行成功,见图2-38。
图2-34搜索元件图2-35选取元件图2-36添加元器件到器件工具列表图2-37连线画图图2-38运行结果
任务2-3用单片机控制一只发光二极管闪烁
任务目的使用单片机控制一只发光二极管闪烁,综合练习KeilμVision4软件和Proteus软件在进行单片机应用系统设计时的步骤和方法。任务准备设备及软件:万用表、计算机、KeilμVision4软件、Proteus软件。
任务实施
1.任务分析
任务电路Proteus原理图如图2-39所示,当P1.0输出为0时,对应发光二极管D1点亮。当P1.0输出为1时,对应发光二极管D1熄灭。图2-39单片机控制一只发光二极管的Proteus电路图
2.软件仿真
(1)打开Keil软件,在软件中输入任务程序,并对程序进行编译,直至没有错误,并生成相应的hex文件。
(2)打开Proteus软件,绘制如图2-39所示的电路原理图,导入编译后生成的hex文件,运行程序,观察仿真效果。
任务结论
通过KeilμVision4软件和Proteus软件的具体使用和操作,实现了LED的闪烁。
本章小结
MCS-51是Intel的一个单片机系列名称。其他厂家以8051为基核开发的CMOS工艺单片机产品统称为80C51系列。80C51单片机在功能上分为基本型和增强型,在制造上采用CMOS工艺。在片内程序存储器的配置上有掩模ROM、EPROM和Flash、无片内程序存储器等形式。
80C51单片机由CPU、存储器、I/O模块构成。
80C51单片机的存储器主要有4个物理存储空间:片内数据存储器(IDATA区)、片外数据存储区(XDATA)、片内程序存储器、片外程序存储器(程序存储器合称为CODE)。片内程序存储器容量为4KB,片内数据存储器容量为256KB。
片内RAM的低128个单元用于存放程序执行过程中的各种变量和临时数据,按其用途划分为工作寄存器区(占32个单元)、位寻址区(占16个单元)、用户数据缓冲区(地址为
30H~7FH)3个区域。
RAM的高128单元是基本型单片机21个SFR(也称为特殊功能寄存器)。它离散地分布在80H~FFH空间。虽然,它们不连续地分布在片内RAM的高128单元中,其中还有许多空闲地址,但是用户不能使用。
MCS51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。这些端口在结构和特性上基本相同,但又各具特点。P1端口是唯一的单功能口,仅能用作通用数据输入/输出口。P3端口是双功能口,除具有数据输入/输出功能外,每一条端口线还具有不同的第二功能。在需要外部程序存储器和数据存储器扩展时,P0端口为分时复用的低8位地址线/数据总线,P2端口为高8位地址总线。
80C51单片机的时钟信号有内部时钟方式和外部时钟方式两种。内部的各种微操作都以振荡(晶振)周期为时序基准,晶振信号二分频后形成两相错开的时钟信号P1和P2。一
个机器周期包含12个晶振周期(或6个S状态周期)。指令的执行时间称作指令周期。
单片机的复位操作使单片机进入初始化状态。复位后,P0~P3=FFH,相当于各口锁存器已写入1,此时不但可用于输出,也可以用于输入;SP=07H,堆栈指针指向片内RAM的07H单元(第一个堆栈内容将写入08H单元);IP、IE和PCON的有效位为0,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;PSW=00H,当前工作寄存器为0组。
习题
一、填空题1.单片机80C51内部整体结构有3个模块,即()、()、()。2.单片机的存储器主要有4个物理存储空间,即()、()、()、()。3.单片机的应用程序一般存放在()中。4.片内RAM低128单元按其用途划分为()、()和()3个区域。
5.当振荡脉冲频率为12MHz时,一个机器周期为()
;当振荡脉冲频率为()6MHz时,一个机器周期为。
6.单片机总线按照功能分为()、()、()3种。
7.单片机的复位电路有两种,即()和()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44951-2024防弹材料及产品V50试验方法
- 2021年华夏航空分析报告48
- 人力资源管理(管理科学研究所课件)
- 羊水污染的健康宣教
- 同型胱氨酸尿症的临床护理
- 上颌窦癌的健康宣教
- 《数学应用问题专题》课件
- 《第一章》课件-第七章第三节:大数据技术与应用-大数据相关知识
- 胎动的健康宣教
- 孕期呼吸道过敏的健康宣教
- 概率论智慧树知到课后章节答案2023年下宁波大学
- 基于费托合成的天然气制合成油工艺技术综述
- 招商银行-陈翔老师-基于数据驱动的招行数字化应用实践
- 现金赠与协议书范本(5篇)
- HCIP-Intelligent Computing H13-211考试认证题库
- 西南交通大学2016-2017第二学期概率论与数理统计期末试题及解析
- 其他常见疾病的康复
- 例谈实验教学的强化与优化(吴加澍)(共39张)
- 【建模教程】-数学建模题目及答案-数学建模100题
- 水上通航安全维护方案
- 幼儿口头作文800字(通用范文6篇)
评论
0/150
提交评论