单片机技术与项目训练 课件全套 韦龙新 第1-9章 单片机初步认识- 单片机串行总线通信设计_第1页
单片机技术与项目训练 课件全套 韦龙新 第1-9章 单片机初步认识- 单片机串行总线通信设计_第2页
单片机技术与项目训练 课件全套 韦龙新 第1-9章 单片机初步认识- 单片机串行总线通信设计_第3页
单片机技术与项目训练 课件全套 韦龙新 第1-9章 单片机初步认识- 单片机串行总线通信设计_第4页
单片机技术与项目训练 课件全套 韦龙新 第1-9章 单片机初步认识- 单片机串行总线通信设计_第5页
已阅读5页,还剩491页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机初步认识第1章单片机自诞生以来至今已经有五十多年的历史。从最初的4位微处理器发展到现在8位、16位和32位单片机。单片机的应用范围也逐渐扩大,几乎涵盖了人们日常生产生活当中各个领域,从家用电器到通信设备,从交通工具、医疗仪器到商用支付和娱乐产品,随处可见单片机的身影。单片机的应用如此之广,我们应该如何学习了解它呢?本章将从单片机发展历史、内部组成和工作原理,以及存储器的结构、单片机引脚、时钟和复位电路进行介绍,让大家对单片机有一个初步的认识。引言目录单片机概述1单片机的内部结构2本章小结4单片机的引脚及其功能3本章习题5行业PPT模板/hangye/1.1单片机概述1.1.1单片机简介单片微型计算机(SingleChipMicrocomputer,SCM)简称单片机,也叫微控制器(MicroControllerUnit,MCU),它不是一台机器,而是一块集成电路芯片。它是采用超大规模集成电路制造工艺,把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、中断系统、定时/计数器、通信接口和普通I/O口等集成到一块硅片(晶体芯片)上构成的一个微型的、完整的计算机系统。与计算机相比,单片机只缺少了键盘、鼠标等I/O设备。经典51AVRPICSTM32STCTIMSP4301.1.1单片机简介单片机的特点(1)高集成度,体积小,高可靠性。(2)控制功能强。(3)低电压,低功耗,便于生产便携式产品。(4)易扩展。(5)高性价比。单片机应用领域:广泛应用于工业控制、仪器仪表、家用电器、医用设备、航空航天、汽车电子、工业机器人、电子玩具等领域1.1.2单片机的发展历史单片机的发展经历了探索、完善、MCU化(过渡)、百花齐放4个阶段。1.芯片化探索阶段(1976—1978年)20世纪70年代,美国仙童半导体公司首先推出了第一款8位单片机F-8;随后,Intel公司推出了影响面更大、应用更广的MCS-48系列单片机。MCS-48系列单片机的推出标志着在工业控制领域,进入智能化嵌入式应用的芯片形态计算机的探索阶段。这个阶段的单片机的特点是片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM;只有并行接口,无串行接口;有1个8位的定时/计数器,有2个中断源;片外寻址范围为4KB,芯片引脚为40个。1.1.2单片机的发展历史2.结构体系的完善阶段(1978—1982年)在MCS-48系列单片机探索成功的基础上Intel公司很快推出了完善的、典型的MCS-5l系列单片机。MCS-51系列单片机的推出标志着SCM体系结构的完善,成为SCM的经典体系结构。MCS-51系列单片机的特点是片内包括8位的CPU,4KB或8KB的ROM,128B或256B的RAM,4个8位的并行口、1个全双工串口,2个或3个16位的定时/计数器,5~7个中断源;片外寻址范围可达64KB,芯片引脚为40个。代表产品有英特尔公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。1.1.1单片机简介3.从SCM向MCU过渡的阶段(1982—1990年)1982年,Intel公司推出了16位的MCS-96单片机,将一些用于测控系统的模数转换器(ADC)、程序运行监视器(WDT)、脉宽调制器(PWM)、高速I/O口纳入片中。与此同时,Intel公司将MCS-51系列单片机的内核结构开放,允许其他公司采用此内核结构进行单片机的设计,这些单片机统称为8051单片机(之后由于CMOS工艺的改进,称为80C51)。随着单片机内、外围功能电路的增强,强化了智能控制器特征,MCU就成为单片机较为准确的表达名词。1.1.1单片机简介4.MCU的百花齐放阶段(1990—至今)1990年,Intel公司推出了i960系列的32位单片机,引起计算机界的轰动,成为单片机发展史上又一个重要的里程碑。2000年,Cygnal公司推出了C8051F系列单片机,采用单周期指令运行方式,其单周期指令的运行速度相比于8051提高了12倍。C8051F采用与MCS-51完全兼容的CIP51内核,将模拟和数字电路混合集成设计,包含ADC、DAC电路,成为最早的SoC(SystemonChip,片上系统)的典型代表。C8051F的推出也标志着单片机迈进了SoC时代。单片机发展到这一阶段,表明其已成为工业控制领域普遍采用的智能化控制工具,小到玩具,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融电子、商用电子、办公自动化、工业机器人、军事和航空航天等领域。1.1.3单片机的发展趋势1.CMOS化CMOS电路的特点是低功耗、高密度、低速度、低价格。2.低功耗单片机的电流已达微安级,甚至在1μA以下,如STM8L101系列单片机的最小工作电流为0.3μA。3.低电压几乎所有的单片机都有WAIT、STOP等省电运行方式,允许使用的电压范围越来越大,低电压供电的单片机电源下限已可达1V以下,如TMS430L092的工作电压位0.9~1.5V(工作频率为1MHz时)。4.低噪声与高可靠性增强单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求。5.大容量目前,单片机内的ROM最大可达512KB,RAM最大可达8KB。1.1.3单片机的发展趋势6.高性能主要是改进CPU的性能,提高指令运算速度和系统控制的可靠性。现在,指令运算速度最高已达100MIPS(MillionInstructionPerSeconds,兆指令每秒),并加强了位处理功能、中断和定时控制功能。这类单片机的运算速度比标准的单片机高出10倍以上。7.外围电路内装随着单片机集成度的不断提高,有可能把众多的外围功能部件集成在片内。除了一般必须具有的CPU、ROM、RAM、定时/计数器等,片内集成的部件还有ADC、DMA控制器、以太网控制器等。8.串行扩展技术在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。I2C、SPI、USB、CAN等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。9.指令集开源随着开源技术的不断发展,CPU的内核指令集也逐渐走向开源化,比较知名的就是RISC-V。它基于精简指令集计算原理建立了开放指令集架构(ISA),V表示第五代,由美国加利福尼亚大学伯克利分校于2010年开始启动。RISC-V是完全开源的,它采用BSD(BerkeleySoftwareDistribution)开源协议,任何公司都可以采用该结构进行设计。1.1.4主流的单片机产品1.AT89S与AVR单片机Atmel公司生产的具有FlashROM的增强型51系列单片机目前在市场上仍然十分流行,其中AT89S系列十分活跃,AT89S系列是8位Flash单片机,与8051系列单片机兼容,采用静态时钟模式。AT90系列单片机是Atmel在20世纪90年代推出的单片机,是增强精简指令集(RISC)结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机,与PIC类似,其显著的特点为高性能、高速度、低功耗。2.PIC单片机MicroChip单片机的主要产品是PIC16F系列、18F系列的8位单片机,其突出的特点是体积小、功耗低、精简指令集(RISC)、运行速度高,抗干扰性好、可靠性高、有较强的模拟接口、代码保密性好、价格低、大部分芯片有其兼容的Flash程序存储器,适用于用量大、价格敏感的产品。3.STC单片机STC单片机是深圳市宏晶科技有限公司设计的51内核单片机,目前在国内8位单片机市场的占有率很高。STC单片机指令为复杂指令集,其优点是加密性强,很难解密或破解,超强抗干扰能力,超低功耗,价格低,适用各种领域的设备控制。由于它的下载程序简单,在学校的教学中使用非常广泛,基本上取代了Atmel公司的AT89/90系列单片机。1.1.4主流的单片机产品4.恩智浦单片机恩智浦单片机有两个系列,一个是原飞利浦的51LPC系列,它是基于80C51内核的单片机,嵌入了掉电检测、模拟及片内RC振荡器等功能,使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求。另一个系列是飞思卡尔单片机,于2015年并入恩智浦。飞思卡尔单片机源于摩托罗拉半导体,主要应用在汽车、网络、工业、消费电子领域,尤其在汽车电子领域占有较大的市场份额。单片机从8位到32位都有。5.德州仪器单片机德州仪器提供了TMS370和MSP430两大系列通用单片机。TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位单片机,特别适用于要求低功耗的场合。6.STM单片机STM单片机是意法半导体推出的系列单片机,拥有众多品种,从稳健的低功耗8位单片机STM8系列到基于各种ARMCortex-M0和M0+、Cortex-M3、Cortex-M4、Cortex-M7内核的32位闪存微控制器STM32系列,为嵌入式产品开发人员提供了丰富的MCU选择资源。1.1.4主流的单片机产品7.英飞凌单片机英飞凌的前身是西门子集团的半导体部门。英飞凌8位单片机能实现高性能的电机驱动控制,在严酷环境下(高温、EMI、振动)具有极高的可靠性。英飞凌8位单片机主要有XC800系列、XC886系列、XC888系列、XC82x系列、XC83x系列等。英飞凌的MCU用在汽车、工业类上面的居多,消费类的较少。8.瑞萨单片机恩智浦单片机有两个系列,一个是原飞利浦的51LPC系列,它是基于80C51内核的单片机,嵌入了掉电检测、模拟及片内RC振荡器等功能,使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求。另一个系列是飞思卡尔单片机,于2015年并入恩智浦。飞思卡尔单片机源于摩托罗拉半导体,主要应用在汽车、网络、工业、消费电子领域,尤其在汽车电子领域占有较大的市场份额。单片机从8位到32位都有。9.其他国内的单片机国内的8位单片机多数是采用MCS-51内核设计的,部分采用RISC结构。设计厂家众多,如我国台湾地区的合泰半导体(Holtek)、新唐科技(Nuvoton)、义隆电子(Emc)、松翰科技(Sonix)、凌阳科技(Sunplus)等,我国大陆地区的中颖电子、兆易创新、华润微电子、沁恒微电子、乐鑫科技、芯海科技、华大半导体等。1.2单片机的内部结构1.2.1单片机内部组成MCS-51单片机由CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、定时/计数器、内部总线和中断系统等组成。组成框图如下所示。1.2.1单片机内部组成

8051单片机的内部资源包括:(1)一个8位CPU。(2)128Byte(字节,简写B)内部RAM数据存储器,21个专用寄存器。(3)4KB内部掩膜ROM程序存储器。(4)2个16位可编程定时器/计数器。(5)32个(4×8位)双向可独立寻址的I/O口。(6)1个全双工UART(异步串行通信口)。(7)5个中断源、两级中断优先级的中断控制器。(8)时钟电路,外接晶振和电容可产生3.5MHz~12MHz的时钟频率。(9)可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路。(10)布尔代数处理器,具有位寻址能力。单片机内部结构细化框图8051单片机的内部结构图CPU1.中央处理器(CPU)CPU是单片机的核心部件。它由运算器和控制器等部件组成。(1)运算器运算器由8位算术逻辑运算单元ALU(ArithmeticLogicUnit)、8位累加器A(Accumulator)、8位寄存器B、程序状态字寄存器PSW(ProgramStatusWord)、8位暂存寄存器TMP1和TMP2等组成。(2)控制器接受来自程序存储器的指令,并对指令进行译码,发出指令功能所需的各种控制命令,控制各部分协调工作。控制器包括:程序计数器PC(ProgramCounter)、指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)、堆栈指针SP、数据指针DPTR、定时控制逻辑和振荡器OSC等电路。指令执行过程:CPU根据PC中的地址从程序存储器(ROM)中读取指令代码送入IR,经ID译码后,定时和控制逻辑电路在OSC的配合下对译码后的信号进行分时,发出相应的控制信号,完成指定的操作。1.2.1单片机内部组成2.片内数据存储器片内数据存储器包括片内RAM和特殊功能寄存器SFR。片内RAM为单片机内部数据存储器,主要用于存储运算的中间结果;SFR主要用于控制、管理和存储单片机的工作方式、状态结果。3.片内程序存储器片内程序存储器(ROM)为单片机内部程序存储器。主要用于存放程序、原始数据和表格等信息。4.并行I/O口P0~P3口是4个8位并行I/O口,单片机在与外部存储器及I/O端口设备交换信息时,必须由P0~P3口完成。这些端口既可作为输入,又可作为输出。但通常P0口作为8位数据总线/低8位地址总线复用口,P2口常用作高8位地址总线,而P3口的各个管脚多以第二功能输入或第二功能输出形式出现。因此,在一般情况下P1口的8个管脚作为通用I/O口。1.2.1单片机内部组成5.定时器/计数器定时器/计数器用于定时和对外部事件进行计数,以实现定时或计数功能。当它对具有固定时间间隔的单片机内部时钟电路提供的机器周期信号进行计数时,它是定时器;当它对外部事件数字化处理后所产生的脉冲进行计数时,它是计数器。6.中断系统8051单片机有5个中断源,即2个外部中断源、2个定时器/计数器中断源和1个串行中断源,全部中断源可设定为高低2个优先级。中断处理系统灵活、方便,使单片机处理问题的灵活性和实时性大大提高。7.串行口8051单片机有1个全双工异步通信的串行口,用以实现单片机和其他设备之间的串行数据传送,既可以异步通信,也可同步移位传送数据。8.时钟电路CPU执行指令的一系列动作都是在时序电路的控制下一拍一拍有序进行的,时钟电路用于产生单片机中最基本的时间单位。8051内置时钟处理电路,可外接3.5MHz~12MHz的晶振。1.2.1单片机内部组成8051单片机把数据存储器和程序存储器严格区分开,各自占用不同的存储空间。程序存储器和数据存储器的结构分别如图所示。从物理地址空间看,8051单片机有4个存储器地址空间,即片内程序存储器和片外程序存储器,以及片内数据存储器和片外数据存储器。从逻辑上划分,8051单片机有3个存储器地址空间,即内外统一编址的64KB的程序存储器地址空间、片内256B的数据存储器地址空间、片外数据存储器64KB地址空间。1.2.2存储器结构1.2.2存储器结构1.程序存储器标准的8051单片机程序存储器地址范围是0000H~FFFFH,共64KB的空间,用指令MOVC进行访问。ROM的0000H单元是特殊的地址单元,它是系统程序的起始地址。用户程序的第一条指令应放置在0000H单元中。低4KB程序可存储在片内ROM中,也可存储在片外ROM中。片外ROM的低4KB地址与片内ROM重叠,执行选择由/EA引脚来控制,如所示。EA=0(低电平),从片外ROM中的0000H单元开始执行程序;EA=1(高电平),从片内ROM的0000H单元开始执行程序,当(PC)>0FFFH(4KB)时,自动转到片外ROM中执行程序。1.2.2存储器结构除0000H单元外,其他的0003H、000BH、0013H、001BH和0023H特殊单元分别对应5个中断源的中断子程序的入口地址。0003H~000AH:外部中断0(INT0)的中断地址区。000BH~0012H:定时/计数器0(T0)的中断地址区。0013H~001AH:外部中断1(INT1)的中断地址区。001BH~0022H:定时/计数器1(T1)的中断地址区。0023H~002AH:串口(TI,RI)中断地址区。1.2.2存储器结构2.数据存储器(1)片内数据存储器片内数据存储器的大小为256B,地址范围是00H~FFH;用指令MOV进行访问。它又分为两部分:低128B(00H~7FH)为真正的片内数据存储器RAM区,高128B(80H~FFH)为SFR区。低128B包括3部分:00H~1FH,共32B,由4个通用工作寄存器区组成;20H~2FH为位寻址区,包含128个可寻址位;30H~7FH为数据缓冲区,如图所示。1.2.2存储器结构①工作寄存器区00H~1FH是工作寄存器区,按地址由低到高分为4组,即0组、1组、2组、3组,具体分布如表所示。每组有8个8位寄存器,地址由低到高依次命名为R0~R7,即R0的地址为00H、R1地址为01H、依次类推,R7的地址为07H。当前工作寄存器只能选用一个组,由PSW中的RS0和RS1位确定。复位初始化值RS0=0、RS1=0,即使用的是0组,为默认工作寄存器组地址范围工作寄存器组别18H~1FH3组(R0~R7)工作寄存器组10H~17H2组(R0~R7)工作寄存器组08H~0FH1组(R0~R7)工作寄存器组00H~07H0组(R0~R7),默认工作寄存器组1.2.2存储器结构②位寻址区工作寄存器区上面的16个单元(20H~2FH)构成固定的位寻址区。每个单元有8位,16个单元共128位,每位都有一个位地址,如表所示。该区域有位操作指令,可进行位寻址、位操作。若程序中没有位操作,则该区的地址单元可作它用。字节地址(地址单元)位地址MSBLSBD7D6D5D4D3D2D1D02FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201001.2.2存储器结构③数据缓冲区在片内数据存储器RAM中,30~7FH单元一般可作数据缓冲区用,用于存放各种数据和中间结果。但要注意:没有使用的工作寄存器区中的地址单元和位寻址区中的地址单元都可用作数据缓冲区用。④堆栈区堆栈区是在片内数据存储器RAM中开辟的一片特殊数据存储区,是CPU用于暂时存放数据的特殊“仓库”。用堆栈指针指向堆栈栈顶地址。堆栈的最低地址叫栈底。堆栈区的特殊性在于栈底可根据片内数据存储器的使用情况由指令设定,堆栈存取数据遵守“先进后出”的原则.复位后栈底为07H,即(SP)=07。(2)片外数据存储器若片内RAM不够用,则可扩展片外数据存储器RAM,最大范围为0000H~FFFFH,共64KB。片外RAM有部分地址(00H~FFH)与内RAM是重叠的。在单片机的汇编语言中,片内、外RAM以不同的指令操作码进行区分,即片内RAM传送指令用MOV表示,片外RAM传送指令用MOVX表示。1.2.3SFR(特殊功能寄存器)SFR也称专用寄存器,用来存放相应功能部件的控制命令、状态或数据的区域。8051单片机内的端口锁存器、程序状态字PSW、定时/计数器、累加器、堆栈指针、数据指针,以及其他控制寄存器等都是SFR。它们离散地分布在片内RAM的高128B(80H~FFH)中,共21个(字节)。SFR的分布情况如表所示。其中有些既可字节寻址又可位寻址,有些只可字节寻址。凡是地址能被8整除(地址末位为0或8)的SFR既可字节寻址又可位寻址;否则,只字节寻址。可位寻址的SFR的每一位都有位地址,有的还有位名称。对累加器ACC和PSW,还可对其位编号进行操作。例如,ACC.7是位编号,代表累加器ACC的最高位,其位地址是E7H;PSW.0是位编号,代表PSW的最低位,其位地址是D0H,位定义名为P,编程时三者都可使用。SFR符号名称MSB位地址与位名称LSB字节地址D7D6D5D4D3D2D1D0P0:P0口P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.080H87H86H85H84H83H82H81H80HSP:堆栈指针

81HDPL:数据指针低字节

82HDPH:数据指针低字节

83HPCON:电源控制SMOD∕∕∕GF1GF0PDIDL87HTCON:定时/计数器控制TF1TR1TF0TR0IE1IT1IE0IT088H8FH8EH8DH8CH8BH8AH89H88HTMOD:定时/计数器方式控制GATEM1M0GATEM1M089HTL0:定时/计数器0低字节

8AHTL1:定时/计数器1低字节

8BHTH0:定时/计数器0高字节

8CHTH1:定时/计数器1高字节

8DH1.2.3SFR(特殊功能寄存器)SFR符号名称MSB位地址与位名称LSB字节地址D7D6D5D4D3D2D1D0P1:P1口P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.090H97H96H95H94H93H92H91H90HSCON:串口控制SM0SM1SM2RENTB8RB8TIRI98H9FH9EH9DH9CH9BH9AH99H98HSBUF:串口数据缓冲器

99HP2:口P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0A0HA7HA6HA5HA4HA3HA2HA1HA0HIE:中断允许控制器EA∕ET2ESET1EX1ET0EX0A8HAFHAEHADHACHABHAAHA9HA8HP3:P3口P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0B0HB7HB6HB5HB4HB3HB2HB1HB0HIP:中断优先级控制∕∕PT2PSPT1PX1PT0PX0B8H∕∕BDHBCHBBHBAHB9HB8HPSW:程序状态字CyACF0RS1RS0OVF1PD0HD7HD6HD5HD4HD3HD2HD1HD0HACC:累加器ACC.7ACC.6ACC.5ACC.4ACC.3ACC.2ACC.1ACC.0E0HE7HE6HE5HE4HE3HE2HE1HE0HB:寄存器B.7B.6B.5B.4B.3B.2B.1B.0F0HF7HF6HF5HF4HF3HF2HF1HF0HMCS-51单片机内部寄存器的地址并不是连续编排的,而是中间留有一部分空余的地址未使用。这主要是为了确保可位寻址的SFR的字节地址与其最低位地址保持一致,如P0口的字节地址为80H,其最低位P0.0的地址也是80H。这样,位地址的编排就规律了很多,也便于人们查找和记忆。1.2.3SFR(特殊功能寄存器)主要的SFR介绍(1)累加器ACC(Accumulator):助记符(意义:帮助记忆的符号)为A,是一个最为常用的SFR。许多指令的操作数都取自它,许多运算的结果也存放在其中。(2)B寄存器(BRegister):在乘除法指令中使,也可作为一般寄存器使用。(3)PSW:8位的标志寄存器,用来存放指令执行后的有关状态,其各位定义如下表所示。RS1RS0工作寄存器的组号R0~R7地址00000H~07H01108H~0FH10210H~17H11318H~1FHPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CACF0RS1RS0OV-PRS1和RS0:工作寄存器组选择位。如下表所示,它们用于设定当前使用的工作寄存器的组号。复位后RS1和RS0初始化为0,即选择的是0组,这时R0~R7的地址分别为1.2.3SFR(特殊功能寄存器)(4)堆栈指针(SP,StackPointer)堆栈是在片内数据存储器RAM中开辟的一片特殊数据存储区。系统复位后,SP的初始值为07H,使得堆栈存放数据的地址由08H开始。由于08H~1FH单元分属于工作寄存器区的组1~组3。若程序设计中这些组全要用到,则要把SP的值设置为1FH或更大的值。(5)数据指针(DPTR,DataPointer)。DPTR是一个16位的SFR,由两个8位寄存器DPH(高8位)和DPL(低8位)组成。它既可作为一个16位寄存器DPTR来处理,又可作为两个独立的8位寄存器DPH和DPL来处理。DPTR主要用来存放16位地址。SFR数量较多,但他们总是和一些功能部件有关。各功能部件对应的SFR如下:①CPU:ACC、B、PSW。②存储器:SP、DPTR。③I/O口:P0、P1、P2、P3。④中断系统:IP、IE。⑤定时/计数器:TMOD、TCON、TH0、TL0、TH1、TL1。⑥串口:SCON、SBUF。⑦电源:PCON。1.3单片机的引脚及其功能8051单片机最常见的封装是标准型DIP(双列直插)40脚。凡封装相同的51系列单片机,其引脚定义和功能均与8051基本兼容,使用时绝大部分器件可以互换。图(a)、(b)所示分别为标准型DIP40脚封装的逻辑功能图与实际引脚排列图。MCS-51单片机引脚的功能描述如表1-7所示。引脚分为端口线、电源线和控制线三类。1.3.1引脚功能1.3.1引脚功能1.电源线GND:接地引脚。VCC:正电源引脚,接+5V电源。2.I/O口线单片机共有4组I/O口,分别为P0~P3,每组有8个端口,因此,单片机共有32个I/O口,每个I/O口都可以单独控制,其具体功能如表1-6所示。不同组的I/O口的用法稍有不同。P1口只可以作为普通I/O口;P0口既可以作为普通I/O口,又可以作为低8位地址线和数据线;P2口既可以作为普通I/O口,又可以作为高8位地址线;P3口身兼两种功能,既可以作为普通I/O口,又具有外部中断、外部脉冲计数、串口功能。1.3.1引脚功能3.控制线(1)RST/Vpd引脚。RST/Vpd引脚是复位信号/备用电源线引脚。当8051单片机通电时,在RST引脚上出现24个时钟周期以上的高电平,系统即初始复位。(2)ALE/PROG引脚。ALE/PROG引脚是地址锁存允许/编程引脚。当访问外部程序存储器时,ALE引脚的输出用于锁存地址的低位字节,以便P0口实现地址/数据复用。当不访问外部程序存储器时,ALE引脚将输出一个1/6时钟频率的正脉冲信号。其第二功能是对EPROM型芯片进行编程和校验时,此引脚传送52ms宽的负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器把指令码放到P0口上,由CPU读入并执行。(3)EA/VPP引脚。是允许访问片外程序存储器/编程电源引脚。对于片内无程序存储器的MCS-51单片机(如8031),引脚必须接地;对于片内有程序存储器的MCS-51单片机(如8051),引脚必须接高电平。其第二功能是片内EPROM编程/校验时的电源线,在编程时,VPP引脚需要加上21V的编程电压。(4)PSEN引脚。在执行访问片外ROM的指令MOVC时,8051单片机自动在PSEN引脚产生一个负脉冲,用于对片外ROM的选通。在其他情况下,该引脚均为高电平封锁状态。1.3.2时钟和复位1.时钟单片机作为一个微型计算机,由数字电路组成,其内部各个模块通过总线连接,必须有时钟脉冲才能工作。单片机执行指令的过程可分为取指令、分析指令和执行指令3步,每步又由许多微操作组成,这些微操作必须在一个统一时钟控制下才能被正确地顺序执行。(1)时钟方式。单片机内部有振荡电路,XTAL1引脚为片内振荡电路的输入端,XTAL2引脚为片内振荡电路的输出端。8051单片机的时钟有两种方式,一种是片内时钟振荡方式(内部时钟方式),但需要在XTAL1和XTAL2引脚外接石英晶体(频率为3.5~12MHz)与振荡电容,振荡电容的容量一般取10~30pF,典型值为30pF,如图(a)所示;另外一种是外部时钟方式,即将XTAL1引脚接地,外部时钟信号从XTAL2引脚输入,如图(b)所示。1.3.2时钟和复位(2)单片机内部的时间基准。振荡周期:为单片机提供时钟信号的振荡源的周期,也称为时钟周期或节拍(用P)表示。状态周期:单片机执行指令时从一种状态转换到另一种状态所需的时间。一个状态周期由两个时钟周期组成,又称为由两个节拍组成,每个节拍需要一个时钟周期。即一个状态周期有两个节拍,前半周期相应的节拍定义为P1,后半周期对应的节拍定义为P2。单片机就是按照这样的节拍有节奏地完成取指令、分析指令、执行指令等一系列工作的。机器周期:单片机完成一项基本操作所需的时间。单片机在每个机器周期内完成一项基本操作,如取指令、读或写数据等。1个机器周期包括12个时钟周期,分为6个状态,即S1~S6。每个状态周期完成一项微操作,直至指令执行完成。指令周期:CPU执行一条指令所需的时间(一般用机器周期表示)。单片机有单机器、双机器周期和四机器周期指令。四机器周期指令只有乘法和除法两条指令,其余均为单机器周期或双机器周期指令。1.3.2时钟和复位各个周期时间的计算:当单片机外接晶振为12MHz时,即fosc=12MHz,则各个周期的计数如下:振荡周期:Tosc=1/fosc=1/12μs状态周期:Ts=2×Tosc=1/6μs机器周期:T=12×Tosc=1μs对应的单周期指令、双周期指令和四周期指令的指令周期分别为1μs、2μs、4μs。1.3.2时钟和复位

2.复位复位是令单片机初始化的操作,其主要功能是初始化单片机的工作状态。单片机在启动时需要复位。例如,把PC的值初始化为0000H,即(PC)=0000H。这样,单片机在复位后就从程序存储器ROM的0000H单元开始执行程序。另外,当程序运行出错或操作错误而使系统处于死锁状态时,也需要复位使单片机重新开始工作。除PC初始化外,复位操作还对其他属于片内数据存储器RAM的SFR块中的SFR有影响,如表所示。寄存器复位时的内容寄存器复位时的内容ACC00HTL000HB00HTH000HPSW00HTL100HSP07HTH100HDPTR0000HSCON00HP0~P3FFHSBUF不定IP×××00000BIE0××00000BTMOD00HPCON0×××0000BTCON00H——1.3.2时钟和复位3.控制线(1)复位条件。由于RST引脚是复位信号的输入端所以要实现复位操作,必须使RST引脚上至少保持2个机器周期的高电平,并从高电平变为低电平,完成复位。(2)复位电路。复位方式有上电自动复位、按键复位等,如图所示。上电自动复位电路是通过外部复位电容充电来实现的。上电瞬间,RST引脚的电位与VCC相同,随着充电电流的减小,此引脚电位将逐渐下降,如图(a)所示。按键复位是通过按键使复位引脚经电阻R(200Ω左右)与Vcc电源接通来实现的,如图(b)所示。在按下复位按键时,使RST引脚为高电平;当复位按键被松开后,RST引脚逐渐降为低电平,复位结束。(a)(b)1.4本章小结本章主要介绍了单片机的发展历史及其内部组成和工作原理,以及存储器的结构与单片机外部引脚即时钟和复位电路。本章的重点是单片机存储器的结构,包含程序存储器和数据存储器,而数据存储器又是本章的难点,特别是各个数据存储区的地址分布范围,以及它们的功能。此外,理解单片机的各个时钟周期的定义、区别与联系对于学习单片机的工作过程,了解其工作原理也很重要。1.5本章习题1.什么是单片机?它的主要特点有哪些?2.单片机有哪几个发展阶段?3.MCS-51系列单片机在片内集成了哪些主要逻辑部件?各个逻辑部件的主要功能是什么?4.MCS-51系列单片机的引脚中有多少个I/O?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?5.8051单片机的控制总线信号有哪些?各有何作用?6.8051单片机有多少个SFR?SFR中的哪些寄存器可位寻址?7.8051单片机的P0~P3口在结构上有何不同?在使用上有何特点?8.8051片内数据存储器RAM有多少字节?存储空间地址范围为多少?9.8051片内RAM低128单元划分为哪3个主要部分?各部分的主要功能是什么?10.开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?11.MCS-51单片机的时钟周期,机器周期,指令周期是如何定义的?当主频为12MHz时,一个机器周期是多长时间?执行一条最长的指令需要多长时间?12.8051单片机复位后,各寄存器的初始状态如何?复位方法有几种?问答题部分单片机开发语言及工具的使用第2章单片机开发人员首要面临的选择是采用什么编程语言及工具进行开发。就开发语言而言,主要有两种类型:汇编语言和高级语言。目前,汇编语言由于编程复杂,难以掌握,维护起来非常困难,已经很少使用,更多的是采用高级语言来编程。目前,针对单片机开发,使用最广泛的高级语言就是C语言,使用本书应具备C语言编程基础知识。本章介绍单片机C51语言的使用方法,同时对编程开发工具软件Keil和单片机运行仿真软件Proteus的使用方法进行介绍。引言目录单片机C51语言与标准C语言的区别1Keil软件4C51程序实例2本章小结5Proteus软件3本章习题6行业PPT模板/hangye/2.1单片机C51语言与标准C语言的区别2.1单片机C51语言与标准C语言的区别单片机C51语言是8051单片机应用开发中最常使用的程序设计语言,它在标准C语言的基础上,针对8051内核硬件的特点进行了扩展,能直接对8051单片机硬件进行操作,既有高级语言易读、开发效率高的优点,又有低级语言执行效率高的优点,已然成为最适合51单片机应用开发的实用高级语言。C51语言在语法规范、程序结构与设计方法上都与标准C语言基本相同,但在库函数、数据类型、变量存储模式等方面与标准C语言存在一些差别。2.1单片机C51语言与标准C语言的区别(1)库函数有差异。标准C语言的库函数是按通用微型计算机来定义的,C51语言的有些库函数是按照8051单片机的特点来定义的。C51有丰富的可直接调用的库函数,灵活使用库函数可使程序代码简单、结构清晰,并且易于调试和维护。每个库函数都在相应的头文件中给出了函数原型声明,用户如果需要使用库函数,就必须在源程序的开始处用预处理命令“#include”将有关的头文件包含进来。(2)数据类型有区别。针对8051单片机的特点,C51语言在标准C语言的基础上增加了4种数据类型,它们是bit、sfr、sfr16和sbit。(3)变量存储模式不一样。标准C语言最初是为通用计算机设计的,在通用计算机中,只有一个程序和数据统一寻址的内存空间,而C51语言中的变量存储模式与8051单片机的各种存储器紧密相关。(4)数据存储类型不同。8051单片机的存储区可分为内部数据存储区、外部数据存储区和程序存储区。(5)标准C语言没有处理单片机中断的定义,而C51语言中有专门的中断函数。2.1单片机C51语言与标准C语言的区别任何程序设计都离不开对于数据的处理,一个程序如果没有数据,它就无法工作。数据在计算机内存中的存放情况由数据结构决定,C语言的数据结构是以数据类型出现的,数据类型可分为基本数据类型和复杂数据类型,复杂数据类型由基本数据类型构造而成。C语言中的基本数据类型有char、int、short、long、float和double。对于C51编译器,short与int相同,double与float相同。1.char(字符类型)char有signedchar和unsignedchar之分,默认为signedchar。char类型数据的长度均为1B,用于存放一个单字节数据。对于signedchar类型数据,其字节中的最高位表示该数据的符号,“0”表示正数,“1”表示负数(负数用补码表示),所能表示的数值范围是‒128~127。unsignedchar类型数据是无符号字符数据,其字节中的所有位均用来表示数据的数值,所能表示的数值范围是0~255。2.1单片机C51语言与标准C语言的区别2.int(整型)int有signedint和unsignedint之分,默认为signedint。int类型数据的长度均为2B,用于存放一个双字节数据。signedint类型数据是有符号整数,字节中的最高位表示数据的符号,“0”表示正数,“1”表示负数,所能表示的数值范围是‒32768~32767。unsignedint类型数据是无符号整型,所能表示的数值范围是0~65535。3.long(长整型)long有signedlong和unsignedlong之分,默认为signed。long类型数据的长度均为4B。signedlong类型数据是有符号的长整数,字节中的最高位表示数据的符号,“0”表示正数,“1”表示负数,所能表示的数值范围是‒2147483648~2147483647。unsignedlong类型数据是无符号整数,所示表示的数值范围是0~4294967295。4.float(浮点型)float类型数据占4B,共32位,包含1位符号位、8位阶码(指数部分),以及23位尾数。它是符合IEEE754标准的单精度浮点型数据,在十进制形式中有7位有效数字。2.1单片机C51语言与标准C语言的区别5.*(指针型)指针型数据不同于以上4种基本数据类型,它本身是一个变量,但在这个变量中存放的不是普通的数据,而是指向另一个数据的地址。指针变量也要占据一定的内存单元,在C51编译器中,指针变量的长度一般为1~3B。指针变量也具有类型,其表示方法是在指针符号“*”的前面冠以数据类型符号。6.bit(位标量)bit是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义数组。7.sfr(特殊功能寄存器)sfr也是C51编译器的一种扩充数据类型,利用它可以访问8051单片机的所有内部SFR。sfr类型数据占用一个内存单元,其取值范围是0~255。2.1单片机C51语言与标准C语言的区别8.sfr16(16位特殊功能寄存器)sfr16类型数据占用两个内存单元,取值范围是0~65535。9.sbit(特殊功能寄存器中可寻址位)sbit也是C51编译器的一种扩充数据类型,利用它可以访问8051单片机内部数据存储器RAM的SFR中的可寻址位。2.1单片机C51语言与标准C语言的区别下表列出了C51编译器能够识别的数据类型。2.1单片机C51语言与标准C语言的区别在C语言程序的表达式或变量赋值运算中,有时会出现运算对象的数据类型不一致的情况。C语言允许任何标准数据类型之间的隐式转换。隐式转换按以下优先级别自动进行:bit→char→int→long→floatsigned→unsigned其中,箭头方向仅表示数据类型级别的高低(转换时由低向高进行),而不表示数据转换时的顺序。变量是一种在程序执行过程中不断变化的量。但是在使用一个变量之前,必须先对该变量进行定义,指出它的数据类型和存储模式,以便编译系统为它分配相应的存储单元。在C51编译器中,对变量进行定义的格式如下:[存储类型]数据类型[存储器类型]变量名表;其中,“存储类型”和“存储器类型”是可选项。变量的存储类型有4种:自动(auto)、外部(extern)、静态(static)和寄存器(register)。在定义一个变量时,如果省略存储类型选项,则该变量将为自动变量。2.1单片机C51语言与标准C语言的区别在定义一个变量时,除了需要说明其数据类型,C51编译器还允许说明变量的存储器类型。对于每个变量,C51编译器可以准确地赋予其存储器类型,从而可使之能够在单片机系统内准确地定位。下表列出了C51编译器能够识别的存储器类型。2.1单片机C51语言与标准C语言的区别定义变量时如果省略了“存储器类型”选项,则按编译模式Small、Compact或Large所规定的默认存储器类型确定变量的存储区域。C51编译器的3种储存模式(默认的存储器类型)对变量的影响如下。(1)Small:变量被定义在8051单片机的内部RAM中,因此对这种变量的访问速度最快。另外,所有的对象(包括堆栈)都必须嵌入内部数据存储器,而堆栈长度是很重要的,实际的堆栈长度取决于不同函数的嵌套深度。(2)Compact:所有变量被定义在分页寻址的片外RAM中,每页片外RAM的长度为256B。对变量的访问是通过寄存器间接寻址(MOVX@Ri)进行的,变量的低8位地址由R0或R1确定,变量的高8位地址由P2口确定。采用Compact编译模式与定义变量时指定pdata存储器类型具有相同的效果。(3)Large:变量被定义在片RAM中(最大可达64KB),使用数据指针来间接访问变量。这种访问数据的方法的效率最低,尤其在对2个或多个字节的变量进行操作时,将增加程序的代码长度。采用Large编译模式与定义变量时指定xdata存储器类型具有相同的效果。2.2C51程序实例2.2.1应用程序框架C51语言是一种结构化程序设计语言,其程序写法与标准C语言类似,程序主体由若干函数(Function)组成,其主体内容须以大括号{}来包含。对于一个完整的程序,无论它有几个函数,其中必定有一个名为main()的函数,程序总是从它开始执行的。在单片机的开发中,开发人员必须认真考虑应用程序架构,应尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。程序架构对于系统整体的稳定性和可靠性是非常重要的,合适的程序架构便于开发。常用的应用程序架构有3种,即顺序执行法、时间片轮询法和操作系统。(1)顺序执行法比较简单,通常在对实时性和并行性要求不太高的情况下使用,程序按从上往下的执行顺序来编写即可,不需要考虑具体架构,其代码结构如下:2.2.1应用程序框架2.2.1应用程序框架(2)时间片轮询法介于顺序执行法和操作系统之间,通常与操作系统一起出现,即多数时候在操作系统中应用此方法,本书在第5章中将具体介绍和使用此法。时间片轮询法主要是利用定时器来实现的,定时器可以多处复用,用来实现不同的定时。定时器产生一个特定的定时周期,给每个需要执行的任务设置好执行周期,然后定时器按周期进行计时,一旦到了不同的执行周期,就执行相应的任务。(3)单片机中采用的操作系统是嵌入式操作系统,负责嵌入式系统的全部软/硬件资源的分配、任务调度,控制、协调并发活动,主要分为全能操作系统(RichOS)和实时操作系统(Real-TimeOperatingSystem,RTOS)两类。RichOS是运行功能非常齐全的操作系统,RTOS是运行功能紧凑、具有很强的实时性的操作系统。RTOS的有效使用可以极大地提高系统性能,并简化开发难度,减少开发人员的工作量,从根本上清除编程的障碍。对于8051单片机,因为其内部资源较少,而RTOS会占用较多资源,所以不适合采用。通常情况下,8051单片机多采用顺序执行法和时间片轮询法两种程序架构。2.2.2一个简单的单片机程序接下来看一个利用8051单片机控制单个LED闪烁的程序。程序按照项目开发的格式规范来编写,在程序的开头做好程序名称、程序功能、入口参数及返回值等的说明,在程序体中对关键的语句添加注释说明。这是一个标准的格式规范,使用和维护起来都比较方便,建议程序都参照本格式来编写。2.2.2一个简单的单片机程序2.2.2一个简单的单片机程序该程序采用的是顺序执行法的程序架构,实现了单片机对单个LED闪烁的控制。2.3Proteus软件Proteus是英国LabCenterElectronics公司开发的EDA软件。它运行于Windows操作系统上,能够实现从原理图设计、电路仿真到PCB设计的一站式作业,真正实现了电路仿真软件、PCB设计软件和虚拟模型仿真软件的三合一。Proteus的软件仿真相比于其他软件最大的优势在于它能仿真大量的单片机芯片(如MCS-51系列、PIC系列等),以及单片机外围电路(如键盘、LED、LCD等)。它主要由ISIS和ARES两部分构成。•ISIS——智能原理图输入系统,系统设计与仿真的基本平台。•ARES——高级PCB布线编辑软件。引言2.3.1Proteus8软件界面及功能1.Proteus8软件界面双击桌面上的Proteus8Professional图标或选择屏幕左下方的“开始”→“所有程序”→“Proteus8Professional”→“Proteus8Professional”选项,进入Proteus工作主页面,如图2-1所示。图2-1Proteus工作主页面2.3.1Proteus8软件界面及功能进入Proteus工作主页面后,单击“开始设计”面板中的“打开示例工程”按钮,打开一个示例工程,如图2-2所示。图2-2打开示例工程2.3.1Proteus8软件界面及功能进入ProteusISIS工作界面,如图2-3所示。ProteusISIS工作界面是一种标准的Windows界面,包括标题栏、菜单栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择窗口、状态栏、图形编辑窗口。图2-3ProteusISIS工作界面2.3.1Proteus8软件界面及功能2.Proteus软件功能简介Proteus软件功能强大,融合了Multisim、Protel的功能,能够实现从原理布图、代码调试到单片机与外围电路混合协同仿真和PCB设计的整个设计过程,能够完成模拟电子、数字电子、单片机及嵌入式的虚拟仿真。它的主要功能特点如下。(1)智能原理布图。(2)基于SPICE模型实现数字/模拟电路的混合仿真。(3)支持各种主流单片机仿真,如8051、8086、MSP430、AVR、PIC、ARM。(4)支持通用外设模型,如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS-232虚拟终端、电子温度计等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过计算机串口与外部电路实现双向异步串行通信。2.3.1Proteus8软件界面及功能2.Proteus软件功能简介Proteus软件功能强大,融合了Multisim、Protel的功能,能够实现从原理布图、代码调试到单片机与外围电路混合协同仿真和PCB设计的整个设计过程,能够完成模拟电子、数字电子、单片机及嵌入式的虚拟仿真。它的主要功能特点如下。(5)支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。(6)支持第三方的软件编译和调试环境,如Keil、MPLAB(PIC系列单片机的C语言开发软件)等。(7)拥有丰富的虚拟仪器,操作面板逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等,能对电路原理图的关键点进行虚拟测试2.3.2单片机最小系统仿真图的绘制1.新建工程文件单击“新建”图标或在“开始设计”面板中单击“新建工程”按钮,弹出“新建工程向导:开始”对话框,如图2-4所示。图2-4“新建工程向导:开始”对话框2.3.2单片机最小系统仿真图的绘制1.新建工程文件在图2-4中选择合适的保存路径与名称(注意扩展名是否为.pdsprj),单击“下一步”按钮,进入原理图创建对话框,如图2-5所示。图2-5原理图创建对话框2.3.2单片机最小系统仿真图的绘制1.新建工程文件在图2-5中选择合适的原理图设计模板(通常选择“DEFAULT”模板),单击“下一步”按钮,进入PCB布版设计创建对话框,如图2-6所示。图2-6PCB布版设计创建对话框2.3.2单片机最小系统仿真图的绘制1.新建工程文件在图2-6中选择合适的PCB设计模板,如果只绘制原理图并仿真,就可以选择“不创建PCB布板设计”单选按钮(默认设置)。单击“下一步”按钮,进入固件创建对话框,如图2-7所示。图2-7固件创建对话框2.3.2单片机最小系统仿真图的绘制1.新建工程文件在图2-7中,若选择“创建固件项目”单选按钮,则可用ProteusVSMStudio来编写程序代码。本书选择用Keil软件来编写程序代码,故此处选择“设有固件项目”单选按钮。单击“下一步”按钮,进入工程创建总结对话框,如图2-8所示。图2-8工程创建总结对话框2.3.2单片机最小系统仿真图的绘制1.新建工程文件在工程创建总结对话框中可以看到之前设置的详细信息,确认无误后单击“完成”按钮即可创建工程,进入新建的ISIS工作界面,如图2-9所示。图2-9新建的ISIS工作界面2.3.2单片机最小系统仿真图的绘制2.绘制仿真图工程创建后,开始绘制单片机最小系统仿真图,如图2-10所示。该电路包含单片机AT89C52,由晶振X1和电容C1、C2构成的单片机时钟电路,以及由电阻R1、电容C3和按键开关S1构成的复位电路。图2-10单片机最小系统仿真图2.3.2单片机最小系统仿真图的绘制2.绘制仿真图(1)将需要用到的元器件加载到对象选择窗口中。单击对象选择按钮后,弹出“PickDevices”对话框,在“Category”列表框中找到“MircoprocessorIcs”选项,单击它,在对话框的右侧可以看到大量常见的各种型号的单片机。例如,要寻找单片机AT89C52,可以使用鼠标滚动查找,找到后,双击它。这样,在左侧的对象选择窗口中就有AT89C52了。如果知道元器件的名称或型号,则可以在“Keywords”文本框中输入AT89C52,系统在对象库中进行搜索,并将搜索结果显示在“Showinglocalresults”列表框中,如图2-11所示。在“Showinglocalresults”列表框中,双击“AT89C52”一栏即可将AT89C52加载到对象选择窗口内。2.3.2单片机最小系统仿真图的绘制图2-11加载AT89C522.3.2单片机最小系统仿真图的绘制2.绘制仿真图(1)将需要用到的元器件加载到对象选择窗口中。同样,在“Keywords”文本框中输入“CRYSTAL”,在“Showinglocalresults”“列表框中双击“CRYSTAL”一栏即将晶振加载到对象选择窗口内,如图2-12所示。经过前面的操作,已经将AT89C52、晶振加载到了对象选择窗口内,现在还缺少CAP(电容)、CAPPOL(极性电容)、RES(电阻)、BUTTON(轻触开关),接下来只要依次在“Keywords”文本框中输入“CAP”、“CAPPOL”、“RES”和“BUTTON”,并在“Showinglocalresults”列表框中把需要用到的元器件加载到对象选择窗口内即可。在对象选择器窗口内,单击“AT89C52”对象,可以在预览窗口中看到AT89C52的实物图,且绘图工具栏中的元器件按钮处于选中状态。同样,单击“CRYSTAL”和“BUTTON”对象,也能看到对应的实物图,相应的按钮也处于选中状态,如图2-13所示。2.3.2单片机最小系统仿真图的绘制图2-12加载晶振2.3.2单片机最小系统仿真图的绘制图2-13在预览窗口中可以看到实物图2.3.2单片机最小系统仿真图的绘制2.绘制仿真图(2)将元器件放置到图形编辑窗口中。在对象选择窗口内,选中“AT89C52”对象,如果元器件的方向不符合要求,则可使用预览对象方向控制按钮进行操作。例如,用按钮对元器件进行顺时针旋转,用按钮对元器件进行逆时针旋转,用按钮对元器件进行左右反转,用按钮对元器件进行上下反转。元器件的方向符合要求后,将鼠标指针置于图形编辑窗口中元器件需要放置的位置,单击此位置,出现紫红色的元器件轮廓符号(此时还可对元器件的放置位置进行调整)。再次单击,元器件被完全放置(放置元器件后,如果还需要调整其方向,则可单击需要调整的元器件,并单击鼠标右键,利用右键菜单进行调整)。同理,将晶振、电容、电阻、轻触开关放置到图形编辑窗口中,如图2-14所示2.3.2单片机最小系统仿真图的绘制图2-14放置元器件后的图形编辑窗口2.3.2单片机最小系统仿真图的绘制2.绘制仿真图(2)将元器件放置到图形编辑窗口中。在图2-14中,元器件已编号,参数也已修改。修改的方法是:在图形编辑窗口中,双击元器件,在弹出的“编辑元件”对话框中进行修改。现在以电阻为例进行说明,如图2-15所示。把“元件位号”文本框中的值改为R1,把“Resistance”文本框中的值改为10k。修改好后单击“确定”按钮,这时编辑窗口就有了一个编号为R1,阻值为10kΩ的电阻。只需重复以上步骤就可编辑其他元器的参数。图2-15修改元件参数2.3.2单片机最小系统仿真图的绘制2.绘制仿真图(3)元器件与元器件的电气连接。Proteus具有自动连线路功能(WireAutoRouter),当将鼠标指针移动至连接点时,鼠标指针处出现一个红色框,如图2-16所示。此时单击,移动鼠标指针至晶振的其中一个引脚,出现红色框时再次单击,完成连线,如图2-16所示。同理,可以完成其他连线。图2-16电气连接2.3.2单片机最小系统仿真图的绘制2.绘制仿真图(4)放置电源端子和接地端子。单击绘图工具栏中的按钮,使之处于选中状态。选中“POWER”对象,放置一个电源端子;选中“GROUND”对象,放置一个接地端子。放置好后完成连线,如图2-10所示。至此,单片机最小系统仿真图便绘制完成,接下来就需要编写程序并下载到单片机中验证电路的功能是否正常了。2.4

Keil软件要使用汇编语言或C语言,需要使用编译器,以便把写好的程序编译为机器码,只有这样才能把HEX可执行文件写入单片机。Keil是众多单片机应用开发软件中最优秀的软件之一,针对不同类型单片机(MCU),Keil推出了四大IDE:KeilMDK-Arm、KeilC51、KeilC251和KeilC166。其中,KeilC51针对的是51系列单片机,它支持众多不同公司的MCS-51架构的芯片,集编辑、编译、仿真等于一体,界面友好,易学易用,在调试程序、软件仿真方面也有很强大的功能;KeilMDK-Arm是针对Cortex和Arm设备的开发环境,用来开发ARM和STM32系列单片机,如果再安装KeilC51,就可以用来开发8051单片机了。具体安装过程可参考官网上的资料。引言2.4.1Keil软件界面及功能双击桌面上的KeiluVision5图标或选择屏幕左下方的“开始”→“所有程序”→“KeiluVision5”选项,进入Keil工作界面,如图2-17所示。图2-17Keil工作界面2.4.1Keil软件界面及功能Keil工作界面也是一种标准的Windows界面,主要包括菜单栏、工具栏、工程窗口、编辑窗口、消息窗口和状态栏。Keil工作界面在编辑状态与调试状态下存在一定的差异,主要体现在工具栏上。在编辑状态下,工具栏包含文件工具栏(FileToolbar)和编译工具栏(BuildToolbar);在调试状态下,工具栏包含文件工具栏(FileToolbar)和调试工具栏(DebugToolbar)。KeilC51的主要功能特点如下。• 行业标准的KeilC编译器、宏汇编器、调试器和实时内核支持所有的8051衍生产品。• μVision5IDE集成开发环境、调试器和仿真环境。• 提供丰富的库函数。• μVision调试器可精确模拟8051的片上外设,包括I2C、CAN、UART、SPI、中断、I/O口、A/D转换器、D/A转换器和PWM模块。2.4.2单个LED控制程序设计本节以控制单个LED闪烁为例来演示如何通过Keil新建工程、添加源程序文件、编译等。1.新建工程先建立一个空文件夹,把工程文件放到里面,以避免与其他文件混合。如图2-18所示,这里新建了一个名为Project的文件夹。图2-18新建Project文件夹2.4.2单个LED控制程序设计1.新建工程启动KeiluVision5,出现启动画面,如图2-19所示。图2-19启动界面2.4.2单个LED控制程序设计1.新建工程进入Keil工作界面后,选择“project”→“NewuVisionProject…”选项,新建一个工程,如图2-20所示。图2-20新建工程2.4.2单个LED控制程序设计1.新建工程在弹出的对话框中,将工程放在刚才建立的Project文件夹下,给这个工程命名后保存,不需要填后缀名,默认的工程后缀合为.uvporj,如图2-21所示。图2-21保存工程2.4.2单个LED控制程序设计1.新建工程单击“保存”按钮后会弹出另一个对话框,在CPU类型列表框中找到并选中Atmel下的AT89C51或AT89C52,如图2-22所示。图2-22选择芯片2.4.2单个LED控制程序设计1.新建工程单击“OK”按钮,弹出一个提示框,如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论