




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习情景一 单片机知识概述学习目标: 掌握单片机的概念及特点 了解(单片机)冯诺依曼结构和哈佛结构的差异 了解AT89S52单片机结构,掌握内部数据存储器的空间分配和SFR 掌握AT89S52单片机的外部引脚功能及单片机最小应用系统 掌握单片机集成开发环境Keil C51、在线下载软件ISP的使用方法技能要求: 利用AT89S52单片机制作一个简单的实用电路 会使用相应软件对程序进行仿真和调试项目一 一只会闪光的灯第一部分 项目要求组装一个单片机的最小系统,用以控制一只发光二极管(LED)闪光。第二部分 相关知识一、单片微型计算机单片机已不局限于在高端产品中应用,随着单片机性价比的不断提高,应用范围不断扩大。单片机可参考的资料、案例日益丰富,开发平台的日臻完善。因此,将会在新产品开发及老产品改造中更广泛地使用单片机技术。(一) 单片机的概念与特点单片微型计算机简称为单片机。它是微型计算机发展中的一个重要分支,它以其独特的结构和性能,越来越广泛的应用到工业、农业、国防、网络、通信以及人们日常工作、生活领域中。1什么是单片机单片机(Single Chip Computer)又称单片微控制器(Microcontroller),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就构成了一台计算机。单片机主要由中央处理器CPU、存储器(数据存储器RAM、程序存储ROM)、输入/输出接口、定时器/计数器等部分组成。它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。将单片机装入各种智能化产品中,便成为嵌入式微控制器(Embedded Microcontroller)。2单片机的特点一块单片机就是一台计算机。由于计算机的特殊结构,具有如下特点:体积小、重量轻;电源单一、功耗低(突出特点 );许多单片机可在2.2V的电压下工作,有的能在1.2V或0.9V电压子下工作,功耗降为A级。功能强、价格低,有优异的性能价格比;全部集成在芯片上,布线短,合理,集成度高;数据大部分在单片机内传递,运行速度快,抗干扰能力强,可靠性高。(二) 单片机的体系结构单片机的体系结构有两种,一是传统的冯诺依曼(John Von Neumann)结构;另一种是哈佛(Harvard)结构。1冯诺依曼结构计算机的组成结构多数是冯诺依曼型的,即:它是执行存储在存储器中程序而工作的。计算机执行程序是自动按序进行的,毋需人工干预,程序和数据由输入设备输入存储器,执行程序所获得的运算结果由输出设备输出。因此,计算机通常有运算控制部件、存储器部件、输入设备和输出设备四部分组成,如图1.1所示。图1.1 冯诺依曼型的计算机组成框图2哈佛结构图1.2为哈佛结构示意图。下面结合图1.2简单地介绍其结构特点。CPU数据存储器程序存储器图1.2 哈佛结构的示意图数据与程序分别存于两个存储器中,是哈佛结构的重要特点。由图1.2可见系统有两条总线,也就是数据总线和指令传输总线完全分开。哈佛结构的优点是,指令和数据空间是完全分开的,一个用于取指令,另一个用存取于数据。所以与常见的冯诺依曼结构不同的第一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但低档、中档和高档系列的指令总线位数分别为12、14和16位。第二点是:由于可以对程序和数据同时进行访问,CPU的取指和执行采用指令流水线结构,如图1.3所示,当一条指令被执行时允许下一条指令同时被取出,使得在每个时钟周期可以获得最高效率。周期0周期1周期2周期3周期4取指0执行0取指1执行1取指2执行2取指3执行3图1.3 指令流水线结构示意图而在指令流水线结构中,取指和执行在时间上是相互重叠的,所以才可能实现单周期指令。只有涉及到改变程序计数器PC(Program Counter)值的分支程序指令时,才需要两个周期。在后面的学习中,重点介绍的AT89S52单片机采用的就是哈佛结构。二、 单片机的应用单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。特别是它应用面广,控制能力强,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。单片机主要可用于以下几方面:1家用电器已广泛应用于家用电器的自动控制中。如:洗衣机、空调机、电冰箱、彩色电视机、录像机、VCD、音响设备、手机和BP机等。单片机的使用提高了家用电器的性能和质量,降低家用电器的生产成本和销售价格。2智能卡尽管目前使用的各种卡主要是磁卡和IC卡,但是,带有CPU和存储器的智能卡,已经并将日益广泛用于金融卡、通信、信息、医疗保健、社会保险、教育、旅游、娱乐和交通等各个领域。3智能仪器仪表单片机体积小,耗电少 ,被广泛用于各类仪器仪表。如:智能电度表,智能流量计、气体分析仪、智能电压电流测试仪和智能医疗仪器等。单片机使仪器仪表走向了智能化和微型化,使仪器仪表的功能和可靠性大大提高。4网络与通信许多型号的单片机都有通信接口可方便地进行机间通信,也可方便地组成网络系统。如:单片机控制的无线遥控系统,列车无线通信系统和串行自动呼叫应答系统等。5工业控制单片机可以构成各种工业测控系统,数据采集系统。如:数控机床、汽车安全技术检测系统,报警系统和生产过程自动控制等。三、 单片机的发展单片机自问世以来,性能不断提高和完善,其资源不仅能满足很多应用场合的需要,而且具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、网络系统、汽车工业、国防工业、高级计算器具、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统,单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大、抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促进了单片机技术的发展。单片机的发展主要经历了3个阶段(Intel公司)。第1阶段(1971-1978年):初级单片机阶段,以MCS48系列为代表。有4位、8位CPU,并行I/O口,8位定时器/计数器,无串行口,中断处理比较简单,RAM、ROM容量较小,寻址范围不超过4KB。第2阶段(1978-1983年):单片机普及阶段,以MCS51系列为代表。是8位CPU,片内RAM、ROM容量加大,片外寻址范围可达64KB,增加了串行口,多级中断处理系统,16位定时器/计数器。第3阶段(1983年以后):16位单片机阶段,以MCS96系列为代表。是16位CPU,片内RAM、ROM容量进一步增大,增加了AD/DA转换器,8级中断处理功能,实时处理能力更强,它允许用户采用面向工业控制的专用语言,如C语言等。总之,单片机发展可归结为以下几个方面:l 增加字长,提高数据精度和处理的速度;l 改进制作工艺,提高单片机的整体性能;l 由复杂指令集CISC转向简单指令集RISC技术;l 多功能模块集成技术,使一块“嵌入式”芯片具有多种功能;l 微处理器与DSP技术相结合;l 融入高级语言的编译程序;l 低电压、宽电压、低功耗。目前,国际市场上8位、16位单片机系列已有很多,32位的单片机也已经进入了实用阶段。随着单片机的技术的不断发展,新型单片机还将不断涌现,单片机技术正以惊人的速度向前发展着。四、 AT89S52系列单片机结构AT89S52是一个低功率,高性能的CMOS 8位微控制器并且在系统中集成了8K字节的可编程闪存。AT89S52兼容标准80C51指令集和引脚。AT89S52是一个功能强大的微控制器,具有较高的性价比,可在许多嵌入式控制中应用。(一) AT89S52单片机的结构AT89S52单片机是在一块芯片中集成了CPU,8K字节的闪存,256字节内存,32个输入/输出线,看门狗定时器,两个数据指针,三个16位定时器/计数器,6矢量两个级别的中断结构,一个全双工串行口,片内振荡器和时钟电路。此外,AT89S52设计与静态逻辑操作下降到零频率,并支持两种软件可选的省电模式:闲置模式和断电模式。AT89S52单片机内包含下列几个部件: 一个8位CPU; 一个片内振荡器及时钟电路; 8K字节可重复擦写的Flash闪速存储器 三级加密程序存储器; 2568字节内部RAM; 3个16位定时器/计数器; 32条可编程的I/O线(四个8位并行I/O端口); 一个可编程全双工串行口; 具有8个中断源、两个优先级嵌套中断结构。AT89S52基本结构如图1.4所示。1CPUCPU是单片机的核心部件。它由运算器和控制器等部件组成。(1)运算器运算部件以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器、程序状态字PSW以及十进制调整电路和布尔处理器等许多部件组成的。l 8位算术和逻辑运算的ALU单元可以对4位(半字节)8位(一字节)和16位(双字节)数据进行操作。完成算术四则运算和逻辑运算、为、位操作及循环移位等逻辑操作,操作结果的状态信息送至状态寄存器(PSW)。l 累加器ACC,在指令中用助记符A来表示A是一个8位寄存器,是CPU中工作最繁忙的寄存器。在算数逻辑运算中,用来存放一个操作数或运算结果(包括中间结果)。在与外部存储器和I/O接口打交道时,完成数据传送。l 寄存器B 可作通用寄存器。在乘、除运算中使用。作乘法运算时,寄存器B用来存放乘数以及积的高位字节;作除法运算时,寄存器B用来存放除数以及余数;不作乘、除运算时,寄存器B可作通用寄存器使用。图1.4 AT89S52基本结构l 程序状态字寄存器PSW(程序状态标志寄存器)是8位寄存器。用于存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。PSW的各位定义如表1.1所示。表1.1 PSW各位定义位 序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OVP位地址D7HD6HD5HD4HD3HD2HD1HD0H CY:进位标志位在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。 AC:辅助进位标志进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置“0”。在进行十进制调整指令时,将借助AC状态进行判断。 F0:用户标志位该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。 RS1和RS0:寄存器区选择控制位该两位通过软件置“0”或“1”来选择当前工作寄存器区。如表1.2所示。CPU通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区。例如: SETB PSW3 CLR PSW4 ;选定第区SETB PSW4 CLR PSW3 ;选定第2区SETB PSW3 SETB PSW ;选定第区不设定为第0区,也叫默认值,这个特点使MCS-51具有快速现场保护功能。特别注意的是,如果不加设定,在同一段程序中R0 - R7只能用一次,若用两次程序会出错。表1.2 工作寄存器选择RS1RS2寄存器组片内RAM地址00第0组00H-07H01第1组08H-0FH10第2组10H-17H11第3组18H-1FH OV:溢出标志位当执行算术指令时,在带符号的加减运算中,OV1表示有溢出(或借位)。反之,OV0表示运算正确,即无溢出产生。 P:奇偶标志位用以表示累加器A中1的个数的奇偶性,它常常用于手机间通信。若累加器中1的个数为奇数则P1,否则P0。l 布尔处理器完成布尔代数逻辑运算。(2)控制器控制器是CPU的大脑中枢,是计算机的指挥控制部件。它由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、数据指针(DPTR)、堆栈指针(SP)以及定时与控制电路等部件组成。对来自存储器中的指令进行译码,通过定时控制电路在规定的时刻发出各种操作所需的控制信号,使各部分协调工作,完成指令所规定的功能。l 程序计数器PC是16位专用寄存器,寻址范围为64KB。用于存放CPU执行的下一条指令的地址,具有自动加1的功能。当一条指令按照PC所指的地址从程序存储器中取出后,PC会自动加1,指向下一条指令。l 指令寄存器IR和指令译码器ID指令寄存器IR是8位寄存器,用于暂存待执行的指令,等待译码;指令译码器ID对指令寄存器中的指令进行译码,即将指令转变为所需的电平信号。根据译码器输出的电平信号,再经定时控制电路定时产生执行该指令所需要的各种控制信号。l 数据指针DPTR是16位专用寄存器。它可以对64K的外部数据存储器和I/O口进行寻址。也可作为两个8位寄存器。它用作外部数据存储器的地址指针。l 堆栈指针SP是8位特殊功能寄存器。在片内RAM(128字节)中开辟栈区,并随时跟踪栈顶地址,它按先进后出的原则存取数据,上电复位后,SP指向07H。2存储器及特殊功能寄存器AT89S52内部有两个独立的存储器空间:64KB的程序存储器空间和64KB的数据存储器空间。(1) 程序存储器=0:片内ROM不起作用。完全执行片外程序存储器指令,外部ROM的地址为0000H 0FFFH,可达64KB。=1:执行片内程序存储器指令,地址为0000H 1FFFH;当指令地址超过1FFFH后,自动转向片外ROM取指令,2000FFFFH。(2) 数据存储器分为内部数据存储器和外部数据存储器。l 内部数据存储器AT89S52有256字节的片内RAM,地址空间为00HFFH。其中,低128B(地址为00H 7FH)是真正的RAM区;高128B(地址为80H FFH)与片内特殊功能寄存器(SFR)区(80HFFH)地址完全重合。但在物理上是完全独立的。单片机采用不同的寻址方式,以区分这两个重叠的逻辑地址空间。访问(80HFFH)区间的SFR时,只能用直接寻址方式。如MOV 0A0H,#Data指令的目的操作数是直接地址,将立即数#Data送入SFR中的0A0H单元中。访问(80HFFH)区间的片内RAM时,只能间接寻址方式。如MOV R0,0A0HMOV R0,#Data指令的目的操作数是间接地址,将立即数#Data存入片内RAM的0A0H单元中。栈堆操作是间接寻址的典型例子,因为栈指针SP内为栈顶单元地址。片内RAM 80HFFH空间也可用作栈区空间。AT89S52片内共有32个特殊功能寄存器。表1.3列出了SFR的地址及复位值。表1.3 AT89S52 SFR的地址及复位值序 号地 址符 号复位值说 明180HP0FFHP0口锁存寄存器281HSP07H堆栈指针382HDP0L00H数据指针DPTR0低8位483HDP0H00H数据指针DPTR0高8位584HDP1L00H数据指针DPTR1低8位685HDP1H00H数据指针DPTR1高8位787HPCON0XXX0000B电源控制寄存器888HTCON00H定时器0和1的控制寄存器989HTMOD00H定时0和1的模式寄存器108AHTL000H定时器0低8位118BHTL100H定时器1低8位128CHTH000H定时器0高8位138DHTH100H定时器1高8位148EHAUXRXXX0 0XX0B辅助寄存器1590HP1FFHP1口锁存寄存器1698HSCON00H串行口控制寄存器1799HSBUFXXXX XXXXB串行数据缓冲寄存器180A0HP2FFHP2口锁存寄存器190A2HAUXR1XXXX XXX0B辅助寄存器1200A6HWDTRSTXXXX XXXXBWDT复位寄存器210A8HIE0X00 0000B中断允许控制寄存器220B0HP3FFHP3口锁存寄存器230B8HIPXX00 0000B中断优先级控制寄存器240C8HT2CON00H定时器2控制寄存器250C9HT2MODXXXX XX00B定时器2模式寄存器序 号地 址符 号复位值说 明260CAHRCAP2L00H定时器2捕捉/重装寄存器低8位270CBHRCAP2H00H定时器2捕捉/重装寄存器高8位280CCHTL200H定时器2低8位290CDHTH200H定时器2高8位300D0HPSW00H程序状态字310E0HACC00H累加器320F0HB00HB寄存器在80HFFH地址空间,SFR并没有完全被占用。对于余留的空间,用户不可使用。l 外部数据存储器地址范围为0000HFFFFH,可达64KB。用MOVX指令进行访问。(二) AT89S52单片机引脚功能AT89S52的引脚和封装共有四种,如图1.5所示。下面以40引脚塑料双列直插式封装(PDIP)芯片为例,介绍各个引脚功能。(1) 电源引脚VCC和GND GND(20):接地端。 VCC(40):正常操作时为+5V电源。通常在Vcc和GND引脚之间接0.1高频滤波电容。(2) 外接晶振引脚XTAL1和XTAL2 XTAL1(19):内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2(18):内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。(3)控制或与其它电源复用引脚RST,ALE/,和/Vpp RST(9):当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位。 ALE/(30):地址锁存允许/编成脉冲输入。在访问外部程序存储器和外部数据存储器时,该引脚输出一个地址锁存脉冲ALE,其下降沿可降低8位地址所存于片外地址锁存器中。在编程时,向该引脚输入一个编程负脉冲。正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。 (29):外部程序存储器读选通信号输出端,低电平有效。在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。在访问外部数据存储器时,无效。 /Vpp(31):内部程序存储器和外部程序存储器选择端。当/Vpp为高电平时,访问内部程序存储器,当/Vpp为低电平时,则访问外部程序存储器。在Flash编程时,该引脚可连接21伏的编程电源Vpp。a) 40引脚塑料双列直插式封装(PDIP) b) 44引脚薄型四方扁平封装(PLCC)c) 42引脚塑料双列直插式封装(PDIP) d) 44引脚塑料无引线芯片载体封装(TQFP)图1.5 AT89S52的引脚和封装(4)输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0口(3239):一个8位漏极开路型双向I/O口。当用做通用I/O口时,每个引脚可驱动8个TTL负载;当用做输入时,每个端口首先置1。在访问外部存储器时,它是分时传送的低字节地址和数据总线,此时,P0口内含上拉电阻。 P1口(18):一个带有内部提升电阻的8位准双向I/O口。当用做通用I/O口时,每个引脚可驱动8个TTL负载。当用作输入时,每个端口首先置1。P1.1和P1.2引脚也可用做定时器2的外部计数输入(P1.0/T2)和触发器输入(P1.1/T2EX) P2口(2128):一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动四个TTL负载。当用作输入时,每个端口首先置1。 P3口(1017):一个带有内部提升电阻的8位准双向I/O口。能驱动四个TTL负载。当用作输入时,每个端口首先置1。P3口还用于第二功能请参看表1.4。表1.4 P3口的第二功能引 脚第二功能说 明P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2INT0外部中断0请求输入端P3.3INT1外部中断1请求输出端P3.4T0定时器0计数脉冲输入端P3.5T1定数器1计数脉冲输入端P3.6WR外部RAM写选通输出端P3.7RD外部RAM读选通输出端(三) AT89S52单片机最小应用系统1单片机最小系统所谓最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机,晶振电路和复位电路。(1)晶振电路AT89S52片内有一个由高增益反相放大器构成的振荡电路。XTAL1和XTAL2分别为振荡电路的输入输出端。其振荡电路有两种组成方式:片内振荡器和片外振荡器。片内振荡器如图1.6(a)所示。在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz12MHz之间。XTAL2XTAL1GND89S52(a)片内振荡器组成(b)片外振荡器组成XTAL2XTAL1GND89S52NC外部时钟信号图1.6 AT89S52振荡器电路片外振荡器如图1.6(b)所示。XTAL1是外部时钟信号的输入端,XTAL2可悬空。由于外部时钟信号经过片内一个2分频的触发器进入时钟电路,因此对外部时钟信号的占空比没有严格要求,但高、低电平的时间宽度应不小于20 ns。(2)CPU时序的概念CPU的时序是指CPU在执行指令过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的相互关系。时序常用定时单位来说明。振荡周期,时钟周期,机器周期,指令周期。l 振荡周期也称时钟周期, 是指晶体振荡器直接产生的振荡信号的周期。是振荡频率的倒数。l 时钟周期时钟周期又称状态周期,用S表示。是振荡周期的二倍。每个时钟周期分为P1和P2两个节拍,P1拍节完成算术逻辑操作,P2节拍完成内部寄存器间数据的传递。S=2个振荡周期l 机器周期是机器的基本操作周期。1个机器周期=6个时钟周期=12个振荡周期l 指令周期执行一条指令所占用的全部时间。一个指令周期通常由14个机器周期组成。AT89S52系统中,有单周期指令、双周期指令和四周期指令。例如:外接晶振频率为fosc=12 MHZ,则四个基本周期的具体数值为: (1) 振荡周期=1/12 s。 (2) 时钟周期=1/6 s。 (3) 机器周期=1 s。 (4) 指令周期=14 s(3)复位电路AT89S52单片机的复位电路如图1.7所示。在RST输入端出现高电平时实现复位和初始化。 VCCRST 89S52GNDVCCRST89S52GND+5V10F8.2K+5V10F1K5.1K按键(a)上电自动复位电路(b)手动复位电路图1.7 复位电路在振荡运行的情况下,要实现复位操作,必须使RST引脚至少保持两个机器周期(24个振荡器周期)的高电平。CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RST端电平变低。复位期间不产生ALE及PSEN信号。复位后,各内部寄存状态见表1.3。图1.7(a)为上电自动复位电路。加电瞬间,RST端的电位与Vcc相同,随着RC电路充电电流的减小,RST的电位下降,只要RST端保持10毫秒以上的高电平就能使AT89S52单片机有效地复位,复位电路中的RC参数通常由实验调整。当振荡频率选用6MHz时,C选22uF,R选1K,便能可靠地实现加电自动复位。图1.7(b)为人工复位电路。2单片机最小系统常用控制器件单片机最小系统只是单片机能工作的最低要求,它不能对外完成控制任务,实现人机对话。要进行人工对话还要一些输入、输出部件,作控制时还要有执行部件。常见的输入部件有开关、按钮、键盘、鼠标等,输出部件有指示灯、数码管、显示器等,执行部件有继电器、电磁阀等,下面只介绍几个简单的部件。(1) 继电器继电器是用低电压控制高电压的器件,它分为线圈、铁芯、衔铁、触点,触点有常开触点、常闭触点之分。在开关特性上有单刀单置、双刀单置、单刀双置、双刀双置、单刀多置、双刀多置之别。图1.8(a)为继电器的符号,图中只列了四种类型的继电器,方框为线圈,圆圈为触点,直线为刀。左下图为单刀单置,右下图为单刀双置,左上图为双刀双置,右上图为双刀单置。工作过程是:线圈得电时,常开触点闭合,常闭触点断开;线圈失电时,常开触点断开,常闭触点闭合。电路连接时,单片机的一个输出口线接线圈的一端,线圈的另一端接符合线圈电压标准的电源,以单刀单置为例,将220V相线断开接触点两端(相当于在相线上接一个开关),220V线上再接电器设备。这样我们只要用软件控制单片机的该输出口线为低电平时,线圈得电,常开触点闭合,电器设备工作(设定低电平工作);用软件控制单片机的该输出口线为高电平时,线圈失电,常开触点断开,电器设备停止工作(设定高电平停止)。 (a) 继电器 (b)光耦符号图1.8 继电器和光耦符号(2) 光耦光耦在电路中起隔离作用,由光作为信号传递媒介,将单片机和外部设备在电器隔离。有三极管型光耦(又分带基极型和不带基极型)、可控硅型光耦(又分单向可控和双向可控)。如图1.8(b)所示光耦的工作过程是:有电流通过内部发光管,发光管发光,所对应的内部三极管导通;无电流通过内部发光管,发光管不发光,所对应的内部三极管断开。一般接法是内部发光管阳极接高电平(电源正极),与单片机同电源。阴极接单片机的某一输出口线,内部三极管对外的两端接外部设备,这就将单片机和外部设备在电气上分隔开。当用软件控制单片机的该输出口线低电平时,内部发光管发光,所对应的内部三极管导通,外部设备就工作(设定低电平工作),用软件控制单片机的该输出口线高电平时,内部发光管就不发光,所对应的内部三极管不导通,外部设备就停止(设定高电平停止)。 (3) 指示灯相当一个二极管,加正向电压发光,反之不发光,一般接法是阳极接高电平,电源正极,阴极接单片机的某一输出口线,当该输出口线为低时,指示灯亮,该输出口线为高时,指示灯不亮。这样我们只要编程控制单片机的该输出口,就可控制指示灯亮或灭。第三部分 项目实施一、项目实施分析(一)硬件电路闪光灯电路是AT89S52单片机的一种最简单电路,它包含3个部分:晶振电路,上电复位电路和用户电路。闪光灯电路原理图见图1.9。由于只使用内程序存储器,AT89S52的EA端接电源正端。选用驱动能力较强的P0口中的第一个端口P0.0控制一只LED。当P0.0输出为“1”时,LED无电流不发光。当P0.0输出为“0”时,流过LED的电流为89S52图1.9 闪光灯电路原理图LED的控制方法:P0.0=1LED灭P0.0=0LED亮(二)软件设计单片机控制系统与传统的模拟和数字控制系统的最大区别在于,单片机系统除了硬件以外还必须有程序支持,闪光灯电路所使用的程序清单如下。 ORG 0000HL1:CPLP0.0 MOVR6,#00H ;1个机器周期L2:MOVR7,#00H ;1个机器周期L3:NOP ;1个机器周期 DJNZR7,L3 ;2个机器周期DJNZR6,L2 ;2个机器周期SJMP L1 ;2个机器周期END总延时时间:(1+1+2)256+1+2 256=262912个机器周期 振荡频率=6MHz 1个机器周期=2S则延时时间: 2S262912=525824S=525.824mS 振荡频率=12MHz 一个机器周期=1S则延时时间: 1S262912=262912S=262.912mS 调整R6和R7的值,可改变延时时间。二、项目实施要求(一)工具器材要求直流电源5V/500、 面包板、跳线、元器件1套见表1.5。表1.5 元器件清单序号元器件数量数值作用1R1110K复位电阻2R21510LED限流电阻3C1110F复位电容4C2、C3230pF振荡电容5J112MHz晶振6IC11AT89S52单片机芯片7D01红色5显示器件8SA01开关复位开关(二)实施步骤1在用户板上按图1.9所示的电路原路图安装元器件,元器件清单见表1.4。2检查无误后接通电源,观察LED显示情况。3分析程序中是哪一条指令使LED的状态发生变化(闪光)的。4画出流程图。5计算延时时间并编写一个延时2ms的程序。三、成绩评定小题分值 40 10 10 20 20总分小题得分项目二 熟悉Keil开发平台第一部分 项目要求掌握Keil C51 Vision2集成开发环境的基本使用方法;学会使用汇编语言进行程序编辑、汇编与模拟仿真调试的过程;学会在线下载和编程器的使用。第二部分 相关知识一、 单片机集成开发环境所有的计算机只能识别和执行二进制代码,而不能识别我们熟知的语言,因此,对于已写好的单片机源程序汇编语言(或C语言),必须翻译成单片机可识别的目标代码,然后转载到单片机的程序存储器中进行调试,这种翻译工具称为编译器。本教材推荐使用Keil C51中的编译软件uVision作为编译器工具。KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,编译后生成的汇编代码,到Keil C51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。uVision for Windows是一个标准的Windows应用程序,它是C51的一个集成软件开发平台,具有源代码编辑、project管理、集成的make等功能,它的人机界面友好,操作方便。uVision2集成开发环境集成了一个项目管理器,一个功能丰富、有错误提示的编辑器,以及设置选项,生产工具,在线帮助等。利用uVision2创建用户源代码并把它们组织到一个能确定用户目标应用的项目中去。uVision2自动编译,汇编,连接用户的嵌入式应用,并为用户的开发提供了环境。(一)keil 51 windows集成开发平台的使用1keil 51 windows集成开发平台介绍打开Keil 51文件,然后双击setup.exe进行安装,在提示选择Eval或Full方式时,选择Eval方式安装,有2K大小的代码限制。选Full方式安装,代码量无限制。程序安装完成后桌面上会出现Keil uVision2图标,双击该图标便可启动程序,启动后的程序如图1.10所示。主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试(DEBUG/调试)工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等4本操作。建造工具拦主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试(DEBUG/调试)工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,可以在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。如果通过则可以生成HEX”格式的目标文件,用于仿真或烧录芯片MCS-51单片机软件Keil 51开发过程为:l 建立一个工程项目,选择芯片,确定选项。l 建立汇编源文件或源文件。l 用项目管理器生成各种应用文件。l 检查并修改源文件中的错误。l 编译连接通过后进行软件模拟仿真。l 编译连接通过后进行硬件模拟仿真。l 编程操作。工具栏菜单栏源文件编辑窗口工程窗口输出窗口l 应用。图1.10 Keil uVision2 启动后的界面2导入需要仿真的程序 如何把ASM格式文件导入KEIL中以及如何编译,操作过程过程如下:(4) 建立一个工程项目如图1.11所示。单击“工程”菜单,在弹出的下拉菜单选中“New Project(新工程)”选项,屏幕显示如图1.12所示。在文件名中输入一个项目名“流水灯”,选择保存路径(可在“我的文档”中先建立一个同名的文件夹),单击保存。图1.11 新建一个工程项目图1.12 新建工程(5) 芯片选择在弹出的“Selecl Device for Target Target1(为目标target选择设备)对话框中用鼠标单击Atmel选择“89C52”单片机后按确定。如1.13图所示:图1.13 芯片选择(6) 属性设置选择主菜单栏中的“Project”,选中下拉菜单中“Options for Target Target1”,出现图1.14所示的界面,在晶体Xtal(晶振频率)(MHz)栏中选择仿真器的晶振频率,软件默认为24MHz,我们设定晶振频率为11.0592MHz,因此要将24.0改为11.05920。图1.14 Options for Target Target1界面然后单击输出“Output”页面,在“Creat Hex File(建立hex格式文件)”前打勾选中,如图1.15所示。其它采用默认设置,然后点确定。 图1.15 Output 界面接下来单击“Debug(调试)”页面,选中“UseKeil Monitor-51 Driver(使用Keil Monitor-51 Driver)”选项,然后单击“Settings(设置)”。如图1.16所示。图1.16 Debug 界面(7) 建立源程序文件单击“File(文件)”菜单,在下拉菜单中选择“New(新建)”,然后在编辑窗口中输入源程序,如图1.17所示。图1.17 建立源程序文件界面图1.18 添加文件到组界面1(8) 添加文件到当前项目组中单击工程管理器中“Target1”前的“+”号,出现“Source Group1”后再单击,加亮后右击。在出现的下拉窗口中选择“Add Files to Source Group1(增加文件到Source Group1)”,如图1.18所示,在增加的文件窗口中选择刚才以ASM格式编辑的文件流水灯.ASM,鼠标单击“Add”按钮,这时流水灯.asm文件便加入到Source Group1这个组里了,然后关闭此对话框窗口。如图1.19所示。图1.19 添加文件到组界面2(9) 编译文件选取择主菜单栏中的“Project(工程)”,在下拉菜单中选中“Rebuild all target files(重新构造所有目标文件)”,这时输出窗口出现源程序的编译结果,如图1.20所示,如果编译出错,将提示错误的类型和行号。如果出现错误,我们可以根据输出窗口的提示修改源程序,直至编译通过为止,编译通过后将输出一个以HEX为后缀名的目标文件,如流水灯HEX。图1.20 编译文件界面(二)Keil 程序调试1程序调试时的常用窗口Keil 软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)串行窗口(Serial Window)等。进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。图1.21 调试程序窗口如图1.21所示是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。进入调试程序后,输出窗口自动切换到Command页。该页用于输入调试命令和输出调试信息。(10) 存储器窗口存储器窗口中可以显示系统中各种内存中的值,通过在Address后的编缉框内输入“字母:数字”即可显示相应内存值。字母C:代码存储空间D:直接寻址的片内存储空间I:间接寻址的片内存储空间X:扩展的外部RAM空间“数字”:想要查看的地址。例如输入D:0即可观察到地址0开始的片内RAM单元值键入C:0即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份。第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式显示、选中Double项则将相邻8字节组成双精度形式显示。第一部份又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsigned和Signed后分别有三个选项:Char、Int、Long,分别代表以单字节方式显示、将相邻双字节组成整型数方式。右键可以修改指定空间的内容,在“间格处”右击即可。如图1.22所示。图1.22 存储器窗口(11) 工程窗口寄存器页图1.23是工程窗口寄存器页的内容,寄存器页包括了当前的工作寄存器组和系统寄存器,系统寄存器组有一些是实际存在的寄存器如A、B、DPTR、SP、PSW 等,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用鼠标单击然后按下F2键,即可修改该值。(12) 观察窗口观察窗口是很重要的一个窗口,工程窗口中仅可以观察到工作寄存器和有限的寄存器如A、B、DPTR 等,如果需要观察其它的寄存器的值或者在高级语言编程时需要直接观察变量,就要借助于观察窗口了。其它窗口将在下面的实例中介绍。2各种窗口在程序调试中的用途打开一个已经编译通过的单片机项目,选择Debug下面的Start/Stop Debu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国际贸易经济师职业资格认证考试试题及答案解析
- 2025年热线中心考试模拟题
- 幼儿园小不点教学课件
- 2025年安全员证考试重点案例及答案
- 教学设计与课件制作讲座
- 2025年宠物店员初级面试常见问题集
- 2025年工程造价工程师专业知识考核试题及答案解析
- 课与课件融合
- 2025年财务管理专业求职面试指南与模拟题答案
- 2025年新媒体运营师中级考试知识点详解与模拟题
- 校园安全工作专题培训会
- 《大数据基础》 课件 项目一 走进大数据
- 橡皮障隔离术知情同意书
- 临床医学内科学-消化系统疾病-肠结核和结核性腹膜炎
- 营区物业服务投标方案(技术标)
- 小学语文人教版一年级上册《我上学了单元整备课》word版教案
- 高效能人士七个习惯
- 血浆置换在危重病人中的应用教学课件
- 六年级上册科学全册练习题(2022年新教科版)
- 沉井下沉纠偏措施
- 教师专业发展与名师成长(学校师范专业公共课)
评论
0/150
提交评论