版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 MCS-51MCS-51系列单片机的硬件结构与系统设计系列单片机的硬件结构与系统设计3.1 MCS-51系列单片机硬件结构系列单片机硬件结构3.2 MCS-51系列单片机程序设计系列单片机程序设计 3.3 并行输入输出并行输入输出 3.4 定时器定时器/计数器计数器 3.5 中中 断断 3.6 串行输入串行输入/输出输出 数字电路与模拟电路数字电路与模拟电路 进制与进制之间的相互转换进制与进制之间的相互转换高电平、低电平与三态门高电平、低电平与三态门单片机的常用电路:单片机的常用电路:与门、或门、非门、编码器、译码器、选码器、分与门、或门、非门、编码器、译码器、选码器、分配器、锁
2、存器、寄存器、存储器、。配器、锁存器、寄存器、存储器、。3.1.1 MCS-51系列单片机的引脚描述系列单片机的引脚描述3.1.2 MCS-51单片机的内部结构单片机的内部结构3.1.3 MCS-51 CPU构成及工作原理构成及工作原理3.1.4 MCS-51片内数据存储器片内数据存储器3.1.5 MCS-51特殊功能寄存器特殊功能寄存器3.1.6 MCS-51片内程序存储器片内程序存储器3.1 MCS-513.1 MCS-51系列单片机的硬件结构系列单片机的硬件结构3.1.1 MCS-513.1.1 MCS-51系列单片机的引脚描述系列单片机的引脚描述(1)引脚分类主电源引脚VCC和VSS
3、(共2根) 外接晶振引脚XTAL1 (共2根) 和XTAL2控制或电源复用引脚(共4根) RST/ Vpd(复位备用电源)ALE/PROG(地址锁存编程)EA/Vpp(片外程序存储器/编程电源)PSEN (片外程序存储器读选通)输入/输出(I/O)引脚(共4组32根) P0、P1、P2、P3P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS1234567891011121314151617181920803180518
4、7514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0(2) 双功能引脚P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS1234567891011121314151617181920803180518751403938
5、3736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P3.3位线引脚第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)12INT0(外部中断0)13INT1(外部中断1)P3.414T0(定时器0的计数输入)P3.515T1(定时器1的计数输入)16WR(外部数据存储器写脉冲)17RD(外部数据存储器读脉冲)P3.7 P3.6 (3) 三总线构成 地址总线:P2、P0; 数据总线:
6、P0; 控制总线:(ALE、EA、PSEN、RST)+P3(4) 片外总线结构 总线:CPU与各部件之间传递信息 的公共通道。数据总线(DB) 8位由P0提供地址总线(AB)16位由P2提供高8位由P0提供低8位控制总线(CB)控制线+P3DBAB地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.3P0.5P0.6P0.7EAALEPSENP2.
7、7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P0.4(1)一个8位微处理器CPU(2)数据存储器RAM和特殊 功能寄存器SFR(3)内部程序存储器ROM(4)两个定时/计数器.2 MCS-51MCS-51单片机的内部结构单片机的内部结构(5)四个8位I/O并行端口(6)一个串行端口 (7)中断控制系统(8)内部时钟电路时钟电路SFR和RAM ROMCPU定时/计数器并行端口中断系统串行端口系 统 总 线时钟源 T0 T1 P0 P1 P2 P3TXD RXD INT0 INT1 MCS-51片内总体结构框图(1)(1)构成构成微控制器运算部件时序控制电路一
8、组特功能寄存器(2)(2)工作原理工作原理由PC地址取指令取指令通过IR、ID指令译码指令译码由微控制其控制指令执行指令执行例:Y=5+10求解过程ROM地址 机器代码 指令代码2000H 7405H MOV A, #05H2002H 240AH ADD A, #0AH2004H 80FEH SJMP $ 3.1.3 3.1.3 CPUCPU构成及工作原理构成及工作原理3.1.4 MCS-513.1.4 MCS-51片内数据存储器片内数据存储器(Internal RAM)(Internal RAM) 低低128Byte128Byte:00H 00H 7FH7FH用途:用途: 供用户管理、使用,
9、存放程序的变量、中间结果、堆栈等。特点:特点: 受集成度限制,容量非常有限,51系列仅为128B。注意合理分配、使用。扩展:扩展: 常通过扩展片外RAM,提高数据存放量。按用途分三个区:按用途分三个区:通用寄存器区位寻址区堆栈/数据缓冲区30H2FH00H20H1FH7FH通用寄存器区(4组)位寻址区128bit00H7FH堆栈/数据缓冲区80Byte16Byte32Byte (1 1)通用寄存器区(通用寄存器区(32Byte32Byte):):地址范围:地址范围:00H 1FH,共4组,每组R0 R7。当前寄存器组选择:当前寄存器组选择:通过设置PSW中的位 RS1、RS0完成。仅当前R组以
10、寄存器方式工作,其他组以存储器方式功能:功能:存放常用变量,提高访问速度;在中断或程序调用时使用,可减少堆栈中的数据保护30H2FH07H00H20H1FH7FHR3组R2组R1组R0组位寻址区128bit00H7FH堆栈/数据缓冲区80Byte16ByteRS1 RS011100100工作寄存器组设置参数 (2 2)位寻址区(位寻址区(16Byte16Byte):):地址范围:地址范围: 20H2FH对应位地址:对应位地址: 00H7FH功能:功能:可进行位操作,设置用户标志;未作位操作单元,可进行字节操作。30H2FH00H20H1FH7FH通用寄存器区(4组)位寻址区堆栈/数据缓冲区80
11、Byte16Byte(128bit)32Byte00H7FH (3 3)堆栈堆栈/ /用户数据区:用户数据区:地址范围:地址范围: 30H7FH功能:功能:程序堆栈区,常选高端连续地址(如:50H7FH)用户数据区30H2FH00H20H1FH7FH通用寄存器区(4组)位寻址区堆栈/数据缓冲区80Byte16Byte(128bit)32Byte00H7FH外部数据存储器(b)特殊功能寄存器通用RAM区位寻址区00H20H1FH30H2FH80H7FHFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)工作寄存器区00FFH (4 4)内外地址重叠,通过不同指令)内外地址重
12、叠,通过不同指令访问访问 内部RAM 128B + SFR外部扩展RAM 64KB3.1.5 3.1.5 特殊功能寄存器特殊功能寄存器(Special Function Register)(Special Function Register) 高高128Byte128Byte: 80H 80H FFHFFH地址范围:地址范围: 物理地址分布在80HFFH中;未作定义单元,操作无效。数量:数量: 51系列共有SFR 21个;52系列SFR 26个。操作方式:操作方式:访问时,可用寄存器符号或地址;字节操作位操作特殊功能寄存器通用RAM区 位寻址区00H20H1FH30H2FH80H7FHFFH内
13、部数据存储器工作寄存器区3.1.5 3.1.5 特殊功能寄存器特殊功能寄存器(Special Function Register)(Special Function Register) MCS-51有有21个特殊功能寄存个特殊功能寄存器(也称为专用寄存器),器(也称为专用寄存器),包括算术运算寄存器、指针包括算术运算寄存器、指针寄存器、寄存器、I/O口锁存器、定口锁存器、定时器时器/计数器、串行口、中计数器、串行口、中断、状态、控制寄存器等,断、状态、控制寄存器等,它们被离散地分布在内部它们被离散地分布在内部RAM的的80HFFH地址单元地址单元中(不包括中(不包括PC) ,共占据,共占据了了
14、128个存储单元,构成了个存储单元,构成了SFR存储块。其字节地址可存储块。其字节地址可被被8整除的整除的SFR可位寻址。可位寻址。SFR反映了反映了MCS-51单片机单片机的运行状态。特殊功能寄存的运行状态。特殊功能寄存器分布如右表所示。器分布如右表所示。(1 1)程序计数器)程序计数器PCPC(Program CounterProgram Counter) 程序计数器程序计数器PCPC在物理上是独立的,它不属于在物理上是独立的,它不属于SFRSFR存储器块。存储器块。PCPC是是一个一个1616位的计数器,专门用于存放位的计数器,专门用于存放CPUCPU将要执行的指令地址(即下一条将要执行
15、的指令地址(即下一条指令的地址),寻址范围为指令的地址),寻址范围为64KB64KB,PCPC有自动加有自动加1 1功能,不可寻址,用户功能,不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序执行的顺序。容,以控制程序执行的顺序。(2 2)累加器)累加器A A (AccumulatorAccumulator) 累加器累加器A A是是8 8位寄存器,又记做位寄存器,又记做ACCACC,是一个最常用的专用寄存器。,是一个最常用的专用寄存器。在算术在算术/ /逻辑运算中用于存放操作数或结果。逻辑运算中用
16、于存放操作数或结果。(3 3)寄存器)寄存器B B 寄存器寄存器B B 是是8 8位寄存器,是专门为乘除法指令设计的,也作通用寄位寄存器,是专门为乘除法指令设计的,也作通用寄存器用。存器用。(4 4)工作寄存器)工作寄存器 内部内部RAMRAM的工作寄存器区的工作寄存器区00H00H1FH1FH共共3232个字节被均匀地分成四个字节被均匀地分成四个组(区),每个组(区)有个组(区),每个组(区)有8 8个寄存器,分别用个寄存器,分别用R0R0R7R7表示,称表示,称为工作寄存器或通用寄存器,其中,为工作寄存器或通用寄存器,其中,R0R0、R1R1还经常用于间接寻址还经常用于间接寻址的地址指针。
17、在程序中通过程序状态字寄存器(的地址指针。在程序中通过程序状态字寄存器(PSWPSW)第)第3 3、4 4位设位设置工作寄存器区。置工作寄存器区。(5 5)程序状态字)程序状态字PSW PSW (Program Status WordProgram Status Word) 程序状态字程序状态字PSWPSW是是8 8位寄存器,用于存放程序运行的状态信息,位寄存器,用于存放程序运行的状态信息,PSWPSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。其定义格式如下用户根据需要采用传送指令加以改变。
18、其定义格式如下: :(6 6)数据指针)数据指针DPTRDPTR(Data PointerData Pointer) 数据指针数据指针DPTRDPTR是是1616位的专用寄存器,即可作为位的专用寄存器,即可作为1616位寄存器使用,位寄存器使用,也可作为两个独立的也可作为两个独立的8 8位寄存器位寄存器DPH DPH (高(高8 8位)位) 、DPL DPL (低(低8 8位)使用。位)使用。 DPTRDPTR主要用作主要用作1616位间址寄存器,访问程序存储器和片外数据寄存器位间址寄存器,访问程序存储器和片外数据寄存器。 如:MOV DPTR,#2000HMOV DPTR,#2000H(7
19、7)堆栈指针)堆栈指针SPSP(Stack PointerStack Pointer) 堆栈是一种数据结构,是内部堆栈是一种数据结构,是内部RAMRAM的一段区域。堆栈存取数据的原的一段区域。堆栈存取数据的原则是则是“后进先出后进先出”。堆栈指针。堆栈指针SPSP是一个是一个8 8位寄存器,用于指示堆栈的栈位寄存器,用于指示堆栈的栈顶,它决定了堆栈在内部顶,它决定了堆栈在内部RAMRAM中的物理位置。中的物理位置。 MCS-51MCS-51单片机的堆栈地址向大的方向变化(与微机堆栈地址向小单片机的堆栈地址向大的方向变化(与微机堆栈地址向小的方向变化相反)。系统复位后,的方向变化相反)。系统复位
20、后,SPSP初值为初值为07H07H,使得堆栈事实上由,使得堆栈事实上由08H08H单元开始,占用单元开始,占用1-31-3工作寄存器区,实际应用中通常根据需要在主工作寄存器区,实际应用中通常根据需要在主程序开始处对堆栈指针程序开始处对堆栈指针SPSP进行初始化,一般设置进行初始化,一般设置SPSP为为60H60H。 设立堆栈的目的是用于数据的暂存,中断、子程序调用时断点和设立堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的保护与恢复。现场的保护与恢复。(8 8)I/OI/O口专用寄存器(口专用寄存器(P0, P1, P2, P3P0, P1, P2, P3) 80518051片内有
21、片内有4 4个个8 8位并行位并行I/OI/O接口接口P0, P1, P2P0, P1, P2和和P3P3,在,在SFRSFR中相应有中相应有4 4个个I/OI/O口寄存器口寄存器P0, P1, P2P0, P1, P2和和P3P3。(9 9)定时器)定时器/ /计数器(计数器(TL0, TH0, TL1TL0, TH0, TL1和和TH1TH1) MCS-51MCS-51单片机中有两个单片机中有两个1616位的定时器位的定时器/ /计数器计数器T0T0和和T1T1,它们由,它们由4 4个个8 8位位寄存器(寄存器(TL0, TH0, TL1TL0, TH0, TL1和和TH1TH1)组成,)
22、组成,2 2个个1616位定时器位定时器/ /计数器是完全独立计数器是完全独立的。可以单独对这的。可以单独对这4 4个寄存器进行寻址,但不能把个寄存器进行寻址,但不能把T0T0和和T1T1当做当做1616位寄存器位寄存器来使用。来使用。(1010)串行数据缓冲器()串行数据缓冲器(SBUFSBUF) 串行数据缓冲器串行数据缓冲器SBUFSBUF用于存放需要发送和接收的数据,它由两个独立用于存放需要发送和接收的数据,它由两个独立的寄存器组成(发送缓冲器和接收缓冲器),要发送和接收的操作其实都的寄存器组成(发送缓冲器和接收缓冲器),要发送和接收的操作其实都是对串行数据缓冲器是对串行数据缓冲器SBU
23、FSBUF进行的。进行的。(1111)其他控制寄存器)其他控制寄存器 除上述外,还有除上述外,还有IP, IE, TCON, SCONIP, IE, TCON, SCON和和PCONPCON等几个寄存器,主要用于等几个寄存器,主要用于中断、定时和串行口的控制。中断、定时和串行口的控制。3.1.6 MCS-513.1.6 MCS-51片内程序存储器片内程序存储器(Internal ROM)(Internal ROM) 类型:类型: 腌膜腌膜ROMROM、EPROMEPROM、EEPROMEEPROM、Flash ROMFlash ROM 片内寻址范围:片内寻址范围: EA=1 EA=1时:时:
24、(否则(否则64KB64KB全部限定在片外全部限定在片外) )5151系列,系列,4KB4KB,0000H 0000H 0FFFH 0FFFH5252系列,系列,8KB8KB,0000H 0000H 1FFFH 1FFFH 一组特殊单元:一组特殊单元:RESET RESET 地址:地址:0000H0000H中断向量:中断向量:0003H 0003H 000AH 000AH外部中断外部中断(INT0INT0)地址区地址区 000BH 000BH 0012H 0012H定时器定时器/ /计数器中断计数器中断(T0T0)地址区地址区 0013H 0013H 001AH 001AH外部中断外部中断(I
25、NT1INT1)地址区地址区 001BH 001BH 0022H 0022H定时器定时器/ /计数器中断计数器中断(T1T1)地址区地址区0023H 0023H 002AH 002AH串行中断串行中断(SerialSerial)地址区地址区外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH 单片机太难了,涉及的内容也太多了,单片机太难了,涉及的内容也太多了, 不太好理解,也不太容易掌握!不太好理解,也不太容易掌握! 确实如此,刚开始学都是如此!确实如此,刚开始学都是如此! 不要着急,不要着急, 随着本课程的逐步深入,随着本课程的逐
26、步深入, 你会逐步了解和掌握单片机的相关知识,你会逐步了解和掌握单片机的相关知识, 很快地你就会沉浸在单片机应用系统开发的喜悦之中!很快地你就会沉浸在单片机应用系统开发的喜悦之中!3.2 MCS-513.2 MCS-51系列单片机内存结构及程序设计系列单片机内存结构及程序设计3.2.1 MCS-51片内程序存储器片内程序存储器(Internal ROM)3.2.2 MCS-51片内数据存储器片内数据存储器(Internal RAM)3.2.3 置位程序的设计置位程序的设计3.2.4 清零程序的设计清零程序的设计3.2.1 MCS-513.2.1 MCS-51片内程序存储器片内程序存储器(Int
27、ernal ROM)(Internal ROM) 片内寻址范围:片内寻址范围: EA=1 EA=1时:时: (否则(否则64KB64KB全部限定在片外全部限定在片外) )5151系列,系列,4KB4KB,0000H 0000H 0FFFH 0FFFH5252系列,系列,8KB8KB,0000H 0000H 1FFFH 1FFFH 一组特殊单元:一组特殊单元:RESET RESET 地址:地址:0000H0000H中断向量:中断向量:0003H 0003H 000AH 000AH外部中断外部中断(INT0INT0)地址区地址区 000BH 000BH 0012H 0012H定时器定时器/ /计数
28、器中断计数器中断(T0T0)地址区地址区 0013H 0013H 001AH 001AH外部中断外部中断(INT1INT1)地址区地址区 001BH 001BH 0022H 0022H定时器定时器/ /计数器中断计数器中断(T1T1)地址区地址区0023H 0023H 002AH 002AH串行中断串行中断(SerialSerial)地址区地址区外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH内部地址:00H FFH内部RAM:128B + SFR外部地址:0000H FFFFH外部扩展:RAM 64KB内外地址重叠,可通过不同
29、指令访问; 避开堆栈区(60H 7FH)用户数据区一般使用: 30H 50H 外部数据存储器(b)特殊功能寄存器通用RAM区 位寻址区00H20H1FH30H2FH80H7FHFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)工作寄存器区00FFH 3.2.2 MCS-513.2.2 MCS-51片内数据存储器片内数据存储器(Internal RAM)(Internal RAM)1 1、设计要求、设计要求 将片内20H开始的连续40个地址内容设置为0FEH。2 2、设计分析、设计分析 将片内连续地址内容置位可首先设定起始地址并指定置位个数, 然后,使用CJNE指令进行循
30、环判断。开始设定置位个数地址+1当前内容置位设置片内起始地址是否已达置位次数?结束YN3 3、程序流程图设计、程序流程图设计 置位程序流程如右图所示3.2.3 3.2.3 置位程序的设计置位程序的设计机器语言、高级语言与汇编语言 汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。 使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言
31、编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。汇编语言伪指令汇编语言伪指令是为汇编语言提供某些信息的指令,不能命令CPU执行某种操作,也没有对应的机器代码。ORG:汇编程序起始;END:汇编程序结束;EQU(=):等值;DATA:数据地址赋值;DB:定义字节;DW:定义字;DS:定义空间;BIT:位地址符。4 4、汇编源程序设计、汇编源程序设计 ORG 0030H MOV R0,#0D8H;置位次数设置(256-40=0D8H) MOV R1,#20H;指向置位开始地址SETD: MOV
32、 A,#0FEH;将累加器A置位 MOV R1,A;将累加器的内容送入地址 INC R1;指向下一个地址 INC R0;次数加1 CJNE R0,#00H,SETD;是否达到置位次数,否继续置位 SJMP $ END 5 5、调试与仿真调试与仿真 点击桌面图标,启动KeilKeil程序,执行菜单命令 “ProjectProject” “New New Project.Project.创建“置位程序置位程序”项目,并选择单片机型号为AT89C51AT89C51; 执行菜单命令“FileFile” “NewNew”创建文件,输入汇编(或C语言)源程序,保存为“dpj置位程序k置位程序置位程序.AS
33、M.ASM” ; 在“ProjectProject” 栏的File项目管理窗口中右击文件组,选择“Add Files toSource Group1Add Files toSource Group1”将源程序“置位程序置位程序.ASM.ASM” 添加到项目中。 执行菜单命令“Project” “Options for Target target 1 ”,在弹出的对话框中选择“Output”选项卡,选中“Create HEX File”; 执行菜单命令“Project” “Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“置位程
34、序置位程序.HEX6 6、原理图的设计原理图的设计 在桌面上双击图表“isis”,isis”,打开ISIS 7.8Professional 窗口; 单击菜单命令“File” “New Design”,新建一个DEFAULT 模板,保存文件名为“dpj置位程序p置位置位.DSN”.DSN”; 在器件选择按钮“DEVICES”中单击“P”按钮,或执行菜单命令”Library” “Pick Devices/Symbol”,添加如下表所示的元件。注意:ISIS中的单片机的型号必须与在Keil中选择的型号完全一致。单片机AT89C51瓷片电容CAP 30pF晶振CRYSTAL 12 MHz电阻 RES按
35、钮BUTTON 在ISIS原理图编辑窗口中放置元件,再单击工具箱的“元件终端”,图标,在对象选择器中单击“POWER”和“GROUND”放置电源和地。放置好元件后,布好线。在左键双击各元件,设置相应元件参数,完成电路图的设计,如右图 所示。 7 7、在在ProteusProteus中中调试程序调试程序左键双AT89C51单片机,在弹出的对话框中进行设置,在“Program File”项中,必须选择在Keil中生成的十六进制文件“置位程序.HEX” 单击按钮“ ”进入程序调试状态,并利用“Debug”菜单中打开“8051 CPU Registers”和“8051 CPU Internal Mem
36、ory”窗口; 执行菜单命令“Debug” “Step Into”或按F11,单步运行程序,可在这两个窗口中看到各寄存器及存储单元的变化。 若程序运行完后,ACC中的内容为FEH,R1的地址48H;由于源程序中R1的设置初值地址为20H,这说明执行了40次(48H-20H=28H=40),20H40H的单元内容均为FEH。.4 片内清零程序的设计片内清零程序的设计1 1、设计要求、设计要求 将片内从40H开始的连续30地址内容清零。2 2、设计分析、设计分析 将片内连续地址内容清零可首先设定起始地址并指定清零个数,然后使用DJNZ指令进行循环判断。3 3、程序流程图设计、程序流
37、程图设计开始设置清零次数地址+1当前地址内容清零设置片内起始地址是否已达次数?结束NY4 4、汇编程序设计、汇编程序设计 ORG 0030H MOV R0,#30;清零次数设置 MOV R1,#40H;指向清零开始地址CLEAR: CLR A;将累加器A清零 MOV R1,A;将累加器的内容送入地址 INC R1;指向下一地址 DJNZ R0,CLR ;是否达到清零次数,否,继续清零 SJMP $ END5 5、调试与仿真调试与仿真 点击桌面图标,启动KeilKeil程序,执行菜单命令 “ProjectProject” “New New ProjectProject”创建“dpj片内清零片内清
38、零”项目,并选择单片机型号为AT89C51AT89C51。 执行菜单命令“FileFile” “NewNew”创建文件,输入汇编源程序,保存为“dpj片内清零k片内清零片内清零.ASM.ASM” 。 在“ProjectProject” 栏的File项目管理窗口中右击文件组,选择“Add Add Files toSource Group1Files toSource Group1 ”将源程序“片内清零片内清零.ASM.ASM” 添加到项目中。执行菜单命令“Project” “Options for Target target 1 ”,在弹出的中选择“Output”选项卡,选中“Create HE
39、X File”。执行菜单命令“Project” “Build Target”,编译源程序。如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“片内清零片内清零.HEX。如果如果ProteusProteus已进入调试状已进入调试状态,可执行菜单命令:态,可执行菜单命令:“Debug”“Start/Stop DebugSesson”,按F11键,单步运行程序.在“Memory”窗口的“Adress”栏中键入“D:40H”可查看相应地址内容为零。6 6、原理图的设计原理图的设计 在桌面上双击图表“isis”,isis”,打开ISIS 7 Professional 窗口; 单
40、击菜单命令“File” “New Design”,新建一个DEFAULT 模板,保存文件名为“dpj片内清零p片内清零片内清零.DSN”.DSN”. 在器件选择按钮“DEVICES”中单击“P”按钮,或执行菜单命令“Library” “Pick Devices/Symbol”,添加如下表所示的元件。单片机AT89C51瓷片电容CAP 30pF晶振CRYSTAL 12 MHz电阻 RES按钮BUTTON在ISIS原理图编辑窗口中放置元件,再单击工具箱的“元件终端”图标,在对象选择器中单击“POWER”和“GROUND”放置电源和地。放置好元件后,布好线。再左键双击各元件,设置相应元件参数,完成电
41、路图的设计。 7 7、在在ProteusProteus中中调试程序调试程序左键双AT89C51单片机,在弹出的对话框中进行设置,在“Program File”项中,必须选择在Keil中生成的十六进制文件“片内清片内清零零.HEX”单击按钮“ ”进入程序调试状态,并利用“Debug”菜单中打开“8051 CPU Registers”和“8051 CPU Internal Memory”窗口,执行菜单命令“Debug” “Step Into”或按F11,单步运行程序,可在这两个窗口中看到各寄存器及存储单元的变化。 单片机是有点意思,但还是有点难;单片机是有点意思,但还是有点难; 由于这一节讲的程序
42、设计主要与内存打交道还是有点抽象,不由于这一节讲的程序设计主要与内存打交道还是有点抽象,不太好理解,也不太容易掌握!太好理解,也不太容易掌握! 但也不要着急,但也不要着急, 随着本课程的逐步深入,随着本课程的逐步深入, 你会逐步了解和掌握单片机的相关知识,你会逐步了解和掌握单片机的相关知识, 很快地你就会沉浸在单片机应用系统开发的喜悦之中!很快地你就会沉浸在单片机应用系统开发的喜悦之中!3.3.1 I/O口在口在MCS-51单片机中的引脚位置单片机中的引脚位置3.3.2 I/O口在口在MCS-51单片机中的作用单片机中的作用3.3.3 I/O口内部电路结构及作用口内部电路结构及作用3.3.4
43、P1口的应用口的应用(1)3.3.5 P1口的应用口的应用(2)3.3 3.3 并行输入输出端口(并行输入输出端口(I/OI/O) I/O口: 单片机I/O(Input/Ouput)端口,称为I/O接口(简称为I/O口)或称为I/O通道或I/O通路。 MCS-51系列单片机有4个双向8位I/O口(P0P3),共32根I/O引线。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS123456789101112131415
44、16171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0.1 I/OI/O口在口在MCS-51MCS-51单片机中的引脚位置单片机中的引脚位置 I/O端口是单片机与外围器件或外部设备实现控制和信息交换的桥梁。数据总线(DB)8位,由P0提供;地址总线(AB)16位,由P2提供高8位,P0提供低8位;控制总线(CB)12位, 控制线+P3.DBA
45、B地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.3P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P0.43 3. .3 3.2 .2 I/OI/O口在口在MCS-51MCS-51单片机的作用单片机的作用3 3. .3.3 3.3 I/OI/O口内部电路结构及作用口内部电路结构
46、及作用(1)I/O(1)I/O口内部电路结构口内部电路结构组成:组成: 1个锁存器(即特殊功能寄存器, 8个锁存器构成P0P3); 1个驱动器(P0口:2个); 2个三态缓冲器(P3口:3个)。P0P0口口: : 1个锁存器(即8个锁存器构成特殊功能寄存器P0); 2个驱动器: 2个场效应管组成驱动电路; 2个三态缓冲器; 1个与门; 1个反相器; 1个模拟转换开关:MUX。VCCP0.X锁存器读锁存器地址/数据控制CBD读引脚写锁存器内部总线QQMUXT2P0.XT1CL&(2)(2)地址地址/ /数据数据(AB/DB)(AB/DB)分时复用功分时复用功能能: :当PO口作为地址/数据(AB
47、/DB)分时复用总线时,分为两种情况: 1 1)从)从P0P0口输出地址或数据口输出地址或数据 控制信号应为高电平“1”( CB=1 ) 转换开关MUX把反相器的输出端与T2 接通,同时把与门打开: 输入AB/DB=1,T1(+),T2(-), 输出1; 输入AB/DB=0 ,T1(-),T2(+),输出0; 2 2)从)从P0P0口输入数据口输入数据 引脚信息通过“读引脚”缓存器进入内部总线。VCCP0.X锁存器读锁存器地址/数据控制CBD读引脚写锁存器内部总线QQM UXT2P0.XT1CL&(3)(3)通用通用I/OI/O接口功能接口功能: :当PO口作为通用I/O接口时,也分为两种情况
48、: 1 1)从)从P0P0口输出数据口输出数据 控制信号应为低电平“0”( CB=0 ) 转换开关MUX把输出端与锁存器 接通,同时与门输出为0,使T1截止: 当写脉冲加在锁存器时钟端CLK时,与内部 总线相连的D段数据取反后出现在Q端,又 经T2反相,正好是内部总线的数据。 CB=0,作I/O口线,T1(-),需外接上拉电阻 2 2)从)从P0P0口输入数据口输入数据 引脚信息通过“读引脚”缓存器进入内部总线!输入数据时,由于引脚状态无法确定,应先向口写“1”,使T1、T2均截止,引脚处于高阻状态,才能正确输入数据。VCCP0.X锁存器读锁存器地址/数据控制CBD读引脚写锁存器内部总线QQM
49、UXT2P0.XT1CLK& (4 4) I/O I/O操作操作写操作(作为输出口使用):写操作(作为输出口使用): 指令:MOV P0, A ;P0(A) 实现: D=1,T2(-),P0.X =1 D=0,T2(+),P0.X =0 读操作(作为输入口使用)读操作(作为输入口使用)读锁存器:读锁存器: P P为目的操作数为目的操作数的指令,如:ANL P0, #0FH; 指令执行过程:读 修改 写; 避免锁存器与引脚数据不同时(如负载为三极管),出现错误操作。读引脚:读引脚: 先写先写11,再读,再读 P P为源操作数为源操作数的指令,如:MOV P0, #0FFH;先写1MOV A, P
50、0;再读 避免锁存器D=0时, 引脚信号嵌位在0VCCP0.X 锁存器读锁存器地址/数据控制CBD读引脚 写锁存器内部总线QQMUXT2P0.XT1CL&VCCVCCP0.X锁 存器DCLQQT2(+)10 (5 5)其它各)其它各I/OI/O口结构及作用口结构及作用I/OI/O口,准双向口口,准双向口,P0,P0需外接上拉电阻需外接上拉电阻外部总线扩展外部总线扩展P0:DB, AB(低8位)P2:AB(高8位)P3:CB VCCP1.X锁存器读锁存器D读引脚写锁存器内部总线QQTP1.X内部上拉电阻CLP1口VCCP2.X锁存器 读锁存器地址控制D 读引脚 写锁存器内部总线QQMUXT内部上
51、拉电阻CLP2.XP2口VCCP3.X锁存器读锁存器第二输出功能D 读引脚 写锁存器内部总线QQT内部上拉电阻第二输入功能CLP3.XP3口3.3.4 P13.3.4 P1口的应用(口的应用(1 1)1 1、设计要求、设计要求 P1口为准双向I/O,每一位口线都能独立作为输入、输出线。设计程序,当按下按钮时,P1.1控制发光二级管点亮,否则,P1.0控制发光二极管点亮。2 2、设计分析、设计分析 最小的单片机系统+发光二极管(P1.0)+发光二级管( P1.1 )3 3、系统原理图设计、系统原理图设计 单片机AT89C51瓷片电容CAP 30pf晶振CRYSTAL 12MHz电阻RES按钮BU
52、TTON发光二极管LED-BIBY(BLUE)发光二极管LED-BIGY(GREEN)4 4、程序流程图设计、程序流程图设计结束按钮是否被按下P1口置为FFH开始P1.0效,控制蓝色发光二极管亮P1.1有效,控制绿色发光二极管亮NY5 5、源程序设计(汇编)、源程序设计(汇编) ORG 0030H MOV A,#0FFH MOV P1,A ;将p1口全置1 JNB P1.2,LOOP1 ;p1.2是否为低电平LOOP: CLR P1.0 ;不是低电平,p1.0驱动蓝色发 光二 极管点亮 LCALL EXITLOOP1: CLR P1.1 ;为低电平,p1.1驱动绿色发光 二极管点亮EXIT:
53、NOP END6 6、源程序设计(、源程序设计( C C语言)语言)#include reg51.h #define uint unsigned int#define uchar unsigned charsbit DIPswitch=P12;sbit blueLED=P10;sbit greenLED=P11;void main(void) P1=0XFF; while(1) if(DIPswitch=1) blueLED=0;greenLED=1; else greenLED=0;blueLED=1;7 7、系统调试与仿真、系统调试与仿真 (1)keil c 调试; (2)proteus调
54、试; (3)联合调试; (4)调试结果。 3.3.5 P13.3.5 P1口的应用(口的应用(2 2)1 1、设计要求、设计要求 在某控制系统中,当系统发生故障时,能产生声光报警,直至技术人员将故障排除。使用单片机P1口实现该报警功能。2 2、设计分析、设计分析 最小的单片机系统+麦克风(声、P1口)+发光二级管( P1口)3 3、系统原理图设计、系统原理图设计单片机AT89C51瓷片电容CAP30pf晶振CRYSTAL12 MHz电解电容 CAP-ELEC电阻RES按钮BUTTON发光二极管LED-BIRG三极管2N2905开关SWITCH麦克风SOUNDER4 4、程序流程图设计、程序流程
55、图设计 是否产生报警?P1.1控制红色发光二极管闪亮开始P1口置为FFHP1.7产生脉冲发出声音结束YN5 5、源程序设计(汇编)、源程序设计(汇编) ORG 0030H MOV A,#0FFH ;将P1口全置1 MOV P1,A LOOP: JB P1.0,EXIT ; P1.0是否为高电平(1) CPL P1.1 ;P1.1闪烁(取反) CLR P1.7 ; P1.7控制麦克风发生 LCALL DELAY SETB P1.7 LCALL DELAY AJMP LOOP DELAY: MOV R7,#200 ;延时子程序D1: MOV R6,#248D2: DJNZ R6,$ DJNZ R7
56、,D1 RETEXIT: NOP END6 6、源程序设计(、源程序设计( C C语言)语言)#include reg51.h#define uint unsigned int#define uchar unsigned charsbit DIPswitch=P10;sbit redLED=P11;sbit sounder=P17;void delay(void) /延时 unsigned char i; for(i=0;i125;i+) ; void main(void) P1=0XFF; while (1) if(DIPswitch=0) redLED=redLED;sounder=0;d
57、elay(); sounder=1;delay(); else ; 7 7、系统调试与仿真、系统调试与仿真 (1)keil c 调试; (2)proteus调试; (3)联合调试; (4)调试结果分析: 系统发生故障时的运行结果。 单片机还是很容易设计的,单片机还是很容易设计的, 随着学习的逐步深入,随着学习的逐步深入, 你会很快地沉浸在单片机应用系统开发的乐趣之中!你会很快地沉浸在单片机应用系统开发的乐趣之中!3.4 3.4 定时器定时器/ /计数器计数器3.4.1 定时器定时器/计数器概述计数器概述3.4.2 定时器定时器/计数器的构成计数器的构成3.4.3 定时器定时器/计数器计数器的用
58、法的用法3.4.4 定时器定时器/计数器计数器的控制的控制3.4.5 定时器定时器/计数器计数器的应用的应用(1)3.4.6 定时器定时器/计数器计数器的应用的应用(2)定时器/计数器是MCS-51单片机的重要功能模块之一。在检测、控制及智能仪器等应用中,常用定时器作实时时钟来实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲驱动步进电机。计数器主要用于外部事件的计数。MCS-51单片机内部有两个16位定时/计数器T0和T1,它们既可用作定时器,也可用作计数器,应用哪种,可以通过编程来设定。定时器/计数器在MCS-51单片机中的引脚位置:T0:P3.4、T1:P3.5P1.0P1.1P1.2
59、P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.03 .1 定时器定时器/ /计数器计数器概述概
60、述3.4.2 3.4.2 定时器定时器/ /计数器计数器的构成的构成两个定时器两个定时器/计数器(计数器(T0和和T1)。每个定时器/计数器都是由两个8位计数器构成的16位计数器,分别由特殊功能寄存器TH0、TL0和TH1、TL1组成,最大计数值:216=65536 。寄存器寄存器TCON。TCON为控制寄存器,用来控制两个定时器/计数器的启动/停止。寄存器寄存器TMOD。TMOD为工作方式控制寄存器,用来设置定时器/计数器的工作方式。3.4.3 3.4.3 定时器定时器/ /计数器计数器的用法的用法 (1)定时器的用法)定时器的用法 定时器的功用是用来确定时定时器的功用是用来确定时间间。如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省恩施市2025-2026学年上学期期末八年级数学试卷(无答案)
- 广东省东莞市常平镇2025-2026学年九年级上学期1月期末历史试卷(含答案)
- 五年级测试卷及答案
- 文员考试试题及答案
- 《遇见未知的自我》读后感范本
- 2022-2023学年山东省东营市垦利区九年级物理第一学期期末调研试题含解析
- 2022届高考数学基础总复习提升之专题突破详解专题10三角函数的图象与性质含解析
- 六盘水中考满分作文赏析:书给了我力量
- 22春“安全工程”专业《安全检测及仪表》在线作业含答案参考2
- 师德以身作则演讲稿
- 2025-2026年苏教版初一历史上册期末热点题库及完整答案
- 规范园区环保工作制度
- 药理学试题中国药科大学
- 卓越项目交付之道
- (人教版)八年级物理下册第八章《运动和力》单元测试卷(原卷版)
- 2026届新高考语文热点冲刺复习 赏析小说语言-理解重要语句含意
- 2026届杭州学军中学数学高三上期末综合测试模拟试题含解析
- 创世纪3C数控机床龙头、高端智能装备与产业复苏双轮驱动
- (新版!)“十五五”生态环境保护规划
- 教培行业年终述职
- 2025中国西电集团有限公司招聘(35人)笔试备考试题附答案
评论
0/150
提交评论