(完整版)单片机电子教案_第1页
(完整版)单片机电子教案_第2页
(完整版)单片机电子教案_第3页
(完整版)单片机电子教案_第4页
(完整版)单片机电子教案_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、第1讲单片机应用概述教学目的:1、初步了解单片机的发展历史,基础知识以及应用范围;2、通过演示单片机产品的实物来激发学生的学习兴趣;3、了解单片机的发展方向和主流技术。重点、难点:1、单片机的概念和特点;2、单片机的主要发展方向和主流技术;3、几种常见的单片机产品。教学方式、步骤:一、课程介绍、学习的目标、学习本课程的方法1、课程介绍单片机是当今信息时代的产物,自20世纪70年代问世以来,以实时控制能力强,成本低,体积小,受到人们的重视和关注,应用很广,发展很快。尤其在电子产品、工业控制等领域的应用广泛,已对人类社会产生了巨大的影响。单片机技术开发和应用水平已成为衡量一个国家工业化发展水平的标

2、志之一。由于单片机的广泛使用使得社会对掌握单片机技术的人才的需求在不断增加,目前全国普通工科大学均已经将单片机课列为必修的专业(基础)课程。2、学习的目标通过对孝感周边相关电子企业(亚光电子公司、。六六集团、四四。四厂等)的毕业生跟踪调查和人才需求调研,相关工作岗位都对单片机应用能力都提出了一定的要求。且不同的岗位对单片机应用能力要求的高低不同。要求较高的岗位如电路联调岗和电子线路设计助理工程师岗,对单片机的应用能力要求如下:掌握常见单片机芯片及外围芯片的功能和引脚分布;理解掌握单片机系统结构、存储器结构、指令系统,中断、定时器、串行口、接口技术等重要概念和基本知识;具备一定的电子线路基本知识

3、,能看懂典型单片机外围硬件的原理图,并具备相应的硬件线路调试的基本技能;能看懂程序流程图,掌握程序调试的基本技能;具有基本的单片机编程能力;掌握单片机软硬件联调的基本技能;掌握单片机产品开发的基本流程和工艺。课程标准:作为一门核心的专业基础课程,本课程的专业目标定位为:通过基于实际工作过程(项目制作)的项目导向、任务驱动的理论实践一体化教学模式,教、做、学三者合一,使学生在做中学,学中做,在理解掌握单片机系统结构、存储器结构、指令系统,中断、定时器、串行口、接口技术和单片机初步应用知识的基础上,掌握智能电子应用相关岗位所需要的单片机应用系统的初步的应用分析和软硬件设计能力,掌握基本的编程和程序

4、调试能力,掌握单片机典型外围硬件线路的分析与初步设计能力、硬件调试能力,掌握单片机系统的安装和软硬件联调、故障诊断维护技能,掌握单片机产品开发的基本流程和工艺。在以上述单片机应用能力培养为主线的教学过程中,还要注重学生职业能力的培养,使学生毕业后能够直接适应单片机相关岗位的工作。3、学习本课程的方法(1)要学习别人成熟的设计思想,教学上采用:“授人以渔”的方法。(2)单片机中很多内容可采用:记忆-理解-练习使用-再理解记忆-最后熟练使用的过程。(3)当前单片机相关产品系列和型号很多,摆在初学者面前的问题是学习什么机型、怎样学习效果更好?建议读者选取资料多,应用较广的一种系列芯片的单片机进行研究

5、。掌握相应的技术后再学习别的单片机则会事半功倍。二、内容:1、单片机的基础知识,分类和典型应用1.1定义:随着大规模集成电路技术和计算机技术的飞速发展,把计算机的运算器和控制器(即CPU),存储器(程序存储器和数据存储器)和多种接口集成在一块芯片上,称为微处理器Microprocessor)。也叫微控制器,在我国习惯上又叫单片机。单片机的主要应用领域(1)智能化产品单片机与传统的机械产品相结合,使传统的机械产品结构简单化,控制智能化,构成新一代的机、电一代化产品。目前,广泛用于工业自动控制,如数控机床、可编程顺序控制、电机控制、工业机器人,离散与连续过程自动控制等;家用电器,如微波炉、电视机、

6、录像机、音响设备、游戏机等;办公设备,如传真机、复印机、数码相机等;电讯技术如调制解调器、声像处理、数字滤波、智能线路运行控制;在电传、打印机设计中由于采用了单片机,取代了近千个机械部件;用单片机控制空调机,使制冷量无级调节的优点得到了充分的发挥,并增加了多种报警与控制功能;用单片机实现了通信系统中的临时监控、自适应控制、频率合成、信道搜索等,构成了自动拨号无线电话网、自动呼叫应答设备及程控调度电话分机等等。(2)智能化仪表单片机引入到已有的测量、控制仪表后,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展,并使监测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用。同时成本

7、低,提高了性能价格比,长期以来测量仪器中的误差修正、线性化处理等难题也可迎刃而解。单片机智能仪表的这些特点不仅使传统的仪器、仪表发生根本的变革,也给传统的仪器、仪表行业技术改革带来了曙光。(3)智能化测控系统测控系统特点是工作环境恶劣,各种干扰繁杂,而且往往要求控制实时,要求检测与控制系统工作稳定、可靠、抗干扰能力强。单片机最适合应用于工业控制领域,可以构成各种工业检测控制系统。例如,温室人工气候控制、电镀生产线自动控制系统等。在导航控制方面,如在导弹控制、鱼雷制导、智能武器装置、航天导航系统等领域中也发挥着不可替代的作用。(4)智能化接口通用计算机外部设备上已实现了单片机的键盘管理、打印机、

8、绘图仪、扫描仪、磁盘驱动器、UPS等,并实现了图形终端和智能终端。2、单片机的发展方向和几种较为典型的单片机产品单片机的发展趋势CPU的改进存储器的发展片内I/O的改进外围电路内装化器件集成度的不断提高,把众多的外围功能部件集成在片内系统的单片化。低功耗化CMOS化CHMOS工艺。总之,向高性能、高速、低压、低功耗、低价格、外围电路内装化方向发展。典型的单片机产品Intel公司在单片机的早期开发中,一直处于领先地位。因此我们以Intel公司的产品为例,介绍其较流行的三种系列产品的功能。MCS-48系列单片机MCS-51系列单片机如ATMEL公司AT89C51AT89C52等MCS-96系列单片

9、机另外,还有Philips公司各系列单片机、PIC(MICROCHIP公司)系列单片机、ST公司系列单片机、Motorola单片机等。3、单片机应用和开发系统的知识三、演示:1、常见的单片机的不同形式的实物外形生物组织摊烤片机YT-7C型2、自主开发的亚光电子单片机产品脱水机ZT-12P23、其他单片机应用实物使用教具:多媒体、单片机产品实物。第2讲51单片机的结构与引脚教学目的:1、熟悉51单片机的发展历史;2、了解51单片机的结构;3、学习51单片机的引脚及其功能;4、了解常见的51系列单片机和增强型单片机重点、难点:1、51单片机的内部构造;2、51单片机的引脚及其功能;3、增强型单片机

10、的功能和特点。教学方式和步骤:一、复习:单片机的概念和组成二、授课内容:1、51单片机的发展历史和特点单片机的发展历史单片机的初级阶段:1976年Intel公司推出了8位的MCS-48系列的单片机,以其体积小、重量轻、控制功能齐全和低价格的特点,得到了广泛的应用,为单片机的发展奠定了坚实的基础。单片机的发展阶段:80年代初,Intel公司推出了8位的MCS-51系列的单片机高性能单片机发展阶段:随着控制领域对单片机性能要求的增加,出现了16位的单片机,而且芯片内部也增加了其他的性能。如Intel的MCS-96系列单片机,在单片机内部集成了A/D转换器、PWM输出。单片机的特点:单片机具有集成度

11、高、体积小、功耗低、系列齐全、功能扩展容易、使用灵活方便、抗干扰能力强、性能可靠、价格低廉等特点。用行话讲叫“性/价”比高.2、51单片机的结构2.1MCS-51的核心电路UAH地址apoPJQFtt施晶剧I週心癡涮哥存器罚冲iis罰和冇存購瑶时卿则nrms位:亠!IM|!一Oi4MjiLi一丰卜环卜甘卜4vFUvj%0PlFP3QF3F单片机8051内部结构框图一个8位CPU;一个片内振荡器和时钟电路;4K字节片内部程序存储器ROM;128字节片内部数据存储器RAM;可寻址64K外部程序存储器;可寻址64K外部数据存储器;21个特殊功能寄存器(专用寄存);32条可编程的I/O线(4个8位并行

12、I/O端口);两个16位定时器/计数器;一个可编程全双工串行口;具有5个中断源,两个优先级嵌套中断结构。单片机各功能部件由内部总线联系在一起。简化结构如下图所示时部裁旌定时!计鬱器内諏脚癖然CPU(运算腔吿I器外邮够揭存储黑RAM超V夔口PlP3P2P0时斡源COSC)厚行170撞口中斷歪瓯MCS-51单片机结构框图2.2中央处理单元CPUCPU是单片机的核心部件,如上图所示,各方框表示功能部件,可以看出本单片机是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成各种运算,实现对单片机各功能部件的指挥和控制任务,它是由运算器和控制器等部件组

13、成的。各功能部件实际上是CPU的有机组成部分,各功能部件通过运行程序相联系(1)运算器运算器的功能是进行算术运算和逻辑运算,它还包含一个布尔处理器,用来处理位的操作。运算器模块包括算术和逻辑运算部件ALU、布尔处理器,累加器ACC、B寄存器、暂存器TMP1和TMP2、程序状态字寄存器PSW和十进制数调整电路等。1、累加器ACC是一个最常用的专用寄存器。大部分单操作数据指令的操作数取自累加器。很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器A或AB寄存器对中。指令系统中用A作为累加器的助记符。2、B寄存器3、程序状态字PSW程序状态字记录程序状态信息

14、,反映程序运算结果的特征,它是一个8位寄存器。其中PSW的1位未用,格式如下:(按D7DO顺序排列)CyAcFORSRSOV-P10Cy(PSW.7)进位标志。在执行某些算术和逻辑指令时,当运算结果的最高位有进位或借位时,Cy将被硬件置位,否则就被清零。不同的是在布尔处理机中,它被认为是位累加器,可由软件置位或清零。AC(PSW.6)辅助进位标志。在进行加法或减法操作中,当低4位数向高4位数有进位或借位时,AC将被硬件置位,否则就被清零。AC被用于十进制调整。FO(PSW.5)用户定义标志。可由用户让其记录程序状态,用作标记,即用软件使其置位或复位。RS1、RSO(PSW.4,PSW.3)工作

15、寄存器组选择控制位。可以用软件置位或清零,以确定当前工作寄存器组。O(PSW.2溢出标志位。在对有符号数作加减运算时,用C6表示D6位向D7位的进位或借位,用C7表示D7位向更高位的进位或借位,则OV标志可由下式求得:OV=C6C7。OV=1表示加减运算的结果超出了目的寄存器A所能表示的带符号数的范围(-128+127)。无符号数乘法指令MUL的执行结果也会影响溢出标志。若置于累加器A和寄存器B的两个数的乘积超过255时(8位数),OV=1,否则OV=O。此积的高8位放在B内,低8位放在A内。因此,OV=O时,只要从A中取得乘积即可,否则还要从B中取得乘积的高8位。除法指令DIV也会影响溢出标

16、志,当除数为O时,OV=1,否则OV=O。(PSW.0)奇偶标志。每个指令周期都由硬件来置位或清零,以表示累加器A中有1的位数的奇偶数。若1的位数为奇数,则P置位,否则清零。该标志位对串行通信中的数据传输有重要意义。和数学中的数据本身的奇偶性有区别。当A=1O1O1OOOB时,因数中是三个1使P置位。在数据传输时,当把一批数的P位和原8位放在一起构成9位数,这批9位数中1的个数应全为偶数。接收端如收到的数没有偶数个1则认为出错。(2)控制器控制器部件是由指令寄存器、程序计数器PC,定时与控制电路等组成的。指令寄存器和译码指令寄存器中存放指令代码。程序计数器PC程序计数器PC用来存放即将要执行的

17、指令地址,共16位,可对64K程序存储器直接寻址。定时与控制电路定时与控制电路是产生CPU操作时序的,它是单片机的心脏。控制各种操作的时间。8051芯片内部有一个反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入端和输出端。放大器可以产生自激振荡,此时时钟由内部方式产生。当XTAL1接地,XTAL2接外部振荡器时,时钟由外部方式产生。2.38051内部ROM存储器ROM:ReadOnlyMemory一般用于存放程序和表格等不常改变的数据8051单片机的ROM是掩摸ROM容量:4096byte(212)地址范围:0000H1FFFH2.48051内部的RAM存储器RAM:Ra

18、ndomAccessMemory一般用于存放程序执行过程中产生的大量的临时数据,相当于PC的内存8051单片机的内部RAM:容量:128字节地址范围:00H7FH3、51单片机的引脚及功能pin丹门时钟端P1.0匚P1.1匚Pl,2匚P1.3EP14E卩1.5LPl曲匚、P17匚fAST匚f(HD)P3.0E(TXD)PS.1匚丽而P3.2匚(iNTi)P3.S匚(TO)P3rd匚(Ti)P3.5匚仲帀)P3.6rkRD)P3.7匚XTAL2匚XTAL1匚一.GNDE14023933Q437S35635734a33932IC311t361229132&2?1E26览551724柏2319222

19、021iIPo.3AD旬PQ5AD5P0.6IAD6VCCVPO.O卫DOP0.1AD1E/WPPALE/PROGP2.7:A15)P2,eiA1iPa4(Ai2)P2.3A11)P2.2(A10)P2.1:A9)二IP2.0iA8)I4VCC(+W)pnn巴口4、当前51单片机的发展方向和常见的51系列单片机5、增强型51单片机三课后小结使用教具:多媒体,51单片机产品实物。第3讲8051单片机的存储器教学目的:1、初布了解8051单片机内部存储器的结构;2、掌握8051单片机内部ROM的结构和资源分配情况3、掌握8051单片机内部RAM的结构和资源分配情况4、内部低128B、SFP区的特点

20、及使用方法。教学重点、难点:1、8051单片机内部存储器的结构特点、资源分配几访问方式2、8051单片机内部ROM程序入口区的特点和使用方法;3、8051单片机内部RAM的结构;4、内部低128B、SFP区的特点及访问方式。教学方式与程序:复习:授课内容:1、单片机内部的存储器结构存储器是计算机的重要硬件之一,单片机存储器结构有两种类型:一种是程序存储器和数据存储器统一编址,属于普林斯顿结构,另一种是程序存储器和数据存储器分开编址的哈佛结构。MCS-51采用的是哈佛结构。存储器具有的特点程序存储器和数据存储器截然分开,各有自己的寻址系统,控制信号和特定的功能。程序存储器只存放程序和始终要保留的

21、常数,数据存储器通常用来存放程序运行中所需要的大量数据。单片机中与存储器有关的名称有:程序存储器和数据存储器、内部存储器和外部存储器、字节地址和位地址。存储器有一定的容量,常把一个8位二进制数作基本单位,叫作字节。存储器有很多字节单元,也用二进制数来标识,叫地址。这些存储器空间的地址多数从零开始编址。8位地址00HFFH,十六位地址0000HFFFFH。由于每一位十六进制数可直接换成四位二进制数(如0H0000B、9H1001B、FH1111B,其中H代表十六进制数标识符,B代表二进制数标识符),以后我们也把两位十六进制数说成是8位二进制数工作寄存器以RAM形式组成,I/O接口也采用存储器方式

22、工作。工作寄存器、I/O口锁存器和数据存储器RAM在单片机中统一编址。具有一个功能很强的布尔处理器,可寻址位空间有256位。MCS-51具有的存储器编址空间MCS-51单片机寄储器结构如图所示。有六个编址空间,有四个物理存储器空间:即由PC作地址指针的片内4K(OOOOH-OFFFH)程序存储器。片外4K+60K(0000H-FFFFH)程序存储器。由数据指针作地址的片外64K数据存储器。片内8位地址的128字节RAM(00H-7FH)和特殊功能寄存器(80H-FFH)。程序存储器,片内4K程序存储器空间,其地址为0000H0FFFH,外部EPROM也从0000H开始编址。在地址0000H0F

23、FFH区间,地址有重叠,由EA引脚信号来控制内、外程序存储器的选择。EA=0时,不管PC值的大小,CPU总是访问外部程序存储器。对于8031芯片,其内部没有程序存储器,必然外接EPROM,所以EA必须接地,即EA=0时。外部程序存储器从0000H开始编址,寻址范围64K。当EA=1时,先执行内部4K程序,满4K后接着执行外部程序。程序存储器以16位的程序计数器PC作为地址指针可寻址64K字节空间范围,PSEN作为程序存储器的读选通信号。程序存储器也存放程序所需要的常数。单片机以指令形式的不同来区分是访问程序存储器,还是访问数据存储器,凡是从程序存储器的常数表中取数据时,都要用查表指令MOVC形

24、式。2、8051单片机内部ROM结构、地址分布、资源利用复规口就冲馭口T冲瞅口:號I中断扎口T1中断扎口串口中断扎口51系列单片机程序存储器的管理:每个ROM单元(byte)对应一个唯一的16bit地址编码(Address)CPU要到某个ROM单元去取指令,是通过把地址写入一个16bit的特殊功能寄存器一一程序计数器PC(ProgramCounter)来实现,因此,51系列单片机的地址的编码范围(通常称为寻址范围):0000000000000000B1111111111111111B(二进制)0000HFFFFH(十六进制)065535(十进制)通常习惯说51系列单片机的ROM寻址范围是64K

25、PC的值是CPU根据用户程序的运行流程自动装载的,它的值代表单片机下一条要执行的指令在ROM中的存放位置,用户不能直接对PC进行操作3、8051单片机的内部RAM的结构內那KAM外部SAMOfFKFHOOFFH003QH泗dH51系列单片机数据存储器的管理:51系列单片机对数据存储器RAM的管理是通过16bit的特殊功能寄存器DPTR(DataPointer)来实现,每个RAM单元(byte)也对应一个特定的地址编码(Address),因此,51系列单片机的地址的编码范围(通常称为寻址范围):0000000000000000B1111111111111111B(二进制)0000HFFFFH(十

26、六进制)065535(十进制)因此51系列单片机的RAM寻址范围也是64K51系列单片机ROM和RAM的地址编码范围都是0000HFFFFH,但由于在寻址时硬件电路上有区别,所以不会混淆。51系列单片机中,单片机外接的接口芯片如A/D、D/A等都有互不相同的地址,这些地址都是占用单片机外部RAM的地址编号。4、内部低128B、SFP区的地址分布、访问方式MCS-51内部有128个字节的数据存储器RAM,它们可以作为数据缓冲器、堆栈、工作寄存器和软件标志等使用。CPU对内部RAM有丰富的操作指令。在编程时经常用到它们,内部RAM地址为00H7FH,不同的地址区域内,规定的功能不完全相同。28字节

27、地址空间的RAM中不同的地址区域功能分配为:工作寄存器区(00H-1FH)、位地址区(20H-2FH)、堆栈和缓冲区(30H-7FH)、特殊功能寄存器SFR区(80HFFH),下面分别说明。工作寄存器区单片机的内部工作寄存器以RAM形式组成,即工作寄存器包含在内部数据存储器中。地址为00H1FH单元,内部RAM的低32字节分成4个工作寄存器区,每一个区有8个工作寄存器,编号为R0R7。位寻址空间CPU不仅对内部RAMR20H2FH这16个单元有字节寻址功能,而且具有位寻址功能(可以单独读写某一位)。给这128位赋以位地址为00H7FH,CPU能直接寻址这些位。位地址空间字节地址寄存器名位地址2

28、FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H2

29、7H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H堆栈和数据缓冲区原则上MCS-51单片机的堆栈可以设在内部RAM的任意区域内,但是一般设在30H7FH的范围内。栈顶的位置由堆栈指针SP指出。特殊功能寄存器SFR(专用寄存器)区MCS-51单片机内除程序计数器(PC)和4个工作寄存器区外,所有其它寄存器如I/O口锁存器、定时器、数据地址指针,各种控制寄存器都是以特殊功能寄存器(SFR)

30、的形式出现的。8051有21个特殊功能寄存器,它们离散地分布在80HFFH的地址空间内,并允许像访问内部RAM一样方便地访问特殊功能寄存器。使用教具:多媒体第4讲8051单片机的时钟、时序和复位教学目的:1、熟悉8051单片机内部时钟电路的结构;2、掌握单片机时序、复位的概念、复位的特点及实现方法。重点、难点:1、8051单片机时钟电路的构成、时序;2、单片机复位的概念及特点。教学方式与程式:复习:授课内容:1、8051单片机时钟电路的构成CPU的功能,总的来说,就是以不同的方式,执行各种指令。不同的指令其功能各异。有的指令涉及到CPU各寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能

31、部件的关系;有的则与外部器件(如外部存储器)有关系。CPU是通过复杂的时序电路完成不同的指令功能的。事实上,控制器按照指令的功能发出一系列在时间上有一定次序的电脉冲信号,控制和启动一部分逻辑电路,完成某种操作。在什么时刻发出什么控制信号,去启动何种部件动作,这就是CPU的时序。CPU芯片设计一旦完成,“时序”就固定了,因而时序问题是CPU的核心问题之一。时钟可看成是主频,时序可看成是完成一个操作各部分电路产生的脉冲对照图。1.1振荡器和时钟电路MCS-51片内有一个高增益反相放大器,其输入端(XTAL1)和输出端(XTAL2)用于外接石英晶体和微调电容,构成振荡器,如图所示。电容C2和C3对频

32、率有微调作用,电容容量的选择范围一般为30pF士10pF。振荡频率的选择范围为1.212MHz。在使用外部时钟时,8051XTAL2用来输入外时钟信号,而XTAL1则接地。单片机内部的时间单位MCS-51完成一个基本操作叫机器周期,其一个机器周期包含12个时钟周期,分为6个状态:S1S6.每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为SIP1,SIP2,S6P2。每个时钟单片机完成一拍操作,当用6MHZ晶体时一个机器周期为2ySF2TO51JS2;53tS4JS5iS&|SI|P1P2|P1J3P1P2IP2tPLT2|PlP2iPlP振荡脉冲LrVdirLTLrA

33、LE址H寫令ro-対指命T5EH;AS-itJsX1AS-AL5振荡周期=振荡频率(石英晶体频率fosc)的倒数机器周期机器周期是单片机应用中衡量时间长短的最主要的单位1机器周期=12x1/fosc指令周期执行一条指令所需要的时间,单位:机器周期2、单片机内部指令执行的时序单片机执行各种操作时,CPU都是严格按照规定的时间顺序完成相关的工作,这种时间上的先后顺序成为时序。V丁机霸两聊31*32;3S;34t35*96JWWUWVWLTaaclJLL!rLsTL!rL!_rL1111I1ETIIT!FlF2ALE1JT卞机器罔厢kSI|S2|Sa;S4(35严JUUUUUUUUUW涣EJ-LSr

34、LSrLjfLSfLSrL丁1?Ti、Y-T单周期指令的操作时序双周期指令的操作时序PlY2-ALEIL1JU.Virlk_Mmjitir_v./If1n11*180H,跳转到DAYUBUDENG:SETBFLAG0;置位标志位FLAG0DAYU:SETBFLAG1;置位标志位FLAG1在上面这个程序片段中,带下划线的操作数指明了程序跳转的目的位置,这个目的位置的PC相对于下一条程序语句的PC不得超出-128+127字节的范围。4.7特定寄存器寻址例:INCA;累加器内容加1.INCDPTR;数据指针DPTR的内容加1.累加器A和数据指针DPTR这两个使用最频繁的寄存器又称为特定寄存器,故称特

35、定寄存器寻址.第6讲指令功能及汇编语言程序设计(一)教学目的:1、设计范例循环彩灯的制作2、数据传送类指令3、控制转移指令4、延时程序的概念和程序设计5、子程序的概念和程序设计6、循环程序的概念和程序设计重点、难点:1、设计范例循环彩灯的制作2、数据传送类指令3、控制转移指令4、延时程序的概念和程序设计5、子程序的概念和程序设计6、循环程序的概念和程序设计教学方式和步骤:一、复习:单片机的指令系统和寻址方式二、授课内容:1、设计范例循环彩灯的制作彩灯循环亮硬件原理图JJT伽J5旳*他呛IFJDPOT附眄MlPMEESET7KDm?RVLTP闿BWDTJLPitPMF材tnFMFHMLPan彩灯

36、循环亮硬件分析此电路核心件是MCS-51单片机(AT89C51)。包括时钟电路、复位电路及输出电路。用P1口作输出口,直接驱动8只发光二极管。发光二极管是一种把电能转换成光能的半导体器件它由PN节组成,在正向偏置的条件下导通,此时会发射出一定波长的光1.2软件设计(程序)STAT:MOVA,#01H;高电平对应的发光二极管亮LOOP:MOVP1,A;从P1口输出到发光二极管MOVR1,#10DEL1:MOVR2,#200DEL2:MOVR3,#126DEL3:DJNZR3,DEL3DJNZR2,DEL2DJNZR1,DEL1RLALJMPLOOP;左移一位,下一个发光二极管亮END彩灯循环亮软

37、件分析此程序包含了传送类指令、控制转移类指令、移位指令此程序包含了延时程序、循环程序2、指令讲解(数据传送类指令和控制转移指令)2.1传送类指令(1)片内数据传送指令(16条)此类指令参入的源操作数和目的操作数有#data/A/Rn/Ri/direct五个,其不同组合,共有15条指令(2)片外数据传送指令(4条)当你想把一个数送到单片机外部扩展RAM的某个单元或外部扩展I/O口某个端口,或者你想从该单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。MOVXA,Ri;A(Ri)片外MOVXRi,A;(Ri)片外AMOVXA,DPTR;A(DPTR)片夕卜MOVXDPTR,A;(D

38、PTR)片外A单片机与外部数据存储器数据传送采用两种寻址方式,这两种寻址形式都是间接寻址。一种是单字节寻址Ri,一种是双字节寻址DPTR,另一个操作数是A.共有4条指令。(3)数据交换指令(5条)指令:XCHA,byte功能:交换累加器与字节变量中的数据。XCH指令把指定字节的内容装入累加器A中,同时把累加器中原来的内容写入指定的字节中。源操作数有Rn/direct/Ri,目的操作数是A,共三条指令。例2.5设RO寄存器内容为20H,累加器A内容为3FH,内部RAM的20H单元内容为75H,若执行指令:XCHA,RO则结果为:(20)=3FH,(A)=75H指令:XCHDA,Ri功能:低半字节

39、数据交换,执行操作(A3-0)(Ri)3-0)说明:累加器A中的低4位与由指定的寄存器间接寻址的内部RAM单元的低4位数据进行交换。该指令不影响各寄存器的高4位,也不影响标志位。例设RO内容为20H,累加器内容为36H,内部RAM的20H单元内容为75H,若执行指令XCHDA,RO其结果为(20H)=0111011=76H(A)=00110101B=35H指令:SWAPAA的高四位和其低四位交换,如:当A内容为36H时执行SWAPA后A为63H堆栈指令指令PUSHdirect功能:把程序的中间数据送入堆栈,称为进栈。说明:首先栈指针自动加I,执行(SP)-(SP)+1将栈指针移向堆栈中的无数据

40、字节,然后将直接地址(direct)单元的内容送入SP所指向的栈单元中,执行(SP)(direct),不影响标志位。例设堆栈指针为09H,数据指针内容为0123H,试分析下列指令的执行结果。PUSHDPLPUSHDPH执行结果为:(0AH)=23H,(0BH)=01H,(SP)=0BH指令:POPdirect功能:把堆栈中的中间数据送入目的字节,称为出栈。说明:读出由栈指针寻址的内部RAM单元内容。送到指定的直接寻址的字节单元,然后栈指针自动减1,即执行操作:(direct)(SP),(SP)(SP)-1;指令执行不影响标志位。例设(SP)=32H,内部RAM的31H,32H单元中的内容分别为

41、23H,01H,试分析下列指令的执行结果。POPDPHPOPDPL执行结果为(DPTR)=0123H,(SP)=30H。2.2控制转移指令(1)长转移指令LJMP目标语句说明:目标语句可以是程序存储器64KB空间的任何地方。(2)绝对转移指令AJMP目标语句例:4002HLJMPMM4600HMM:MOVA,#00H注意:目标语句必须和当前语句同页。在51单片机中,64KB程序存储器分成32页,每页2KB(7FFH)。(3)短跳转指令SJMP目标语句(rel)例:4060HSJMPLOOP4090HLOOP:MOVA,#0FFH注意:短跳转的目标语句地址必须在当前语句向前127(7FH)字节,

42、向后128(80H)字节,否则在进行程序编译时会出错。(4)减1条件转移指令组DJNZRn,目标地址(rel);如果(Rn)-l丰0,则程序跳转到目标语句,否则顺序执行下一条语句。DJNZdirect,目标地址(rel);如果(direct)-l丰0则程序跳转到目标语句,否则顺序执行下一条语句。例:将8031内部RAM的40H4FH单元置初值A0HAFH。程序为:MOVRO,#40H;RO赋值,指向数据单元MOVR2,#10H;R2赋值,为传送字节数MOVA,#0A0H;A赋值LOOP:MOVRO,A;开始传送INC,RO;修改地址指针INCA;修改传送数据DJNZR2,LOOP;未传送完,继

43、续循环传送RET;否则,传送结束3、程序设计方法的介绍(延时程序、子程序、循环程序)延时程序延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。例1:当前fosc=12MHz,试计算下面延时程序的延时时间。因为fosc=12MHz,故T机=12/fosc=1usDEL1:MOVR3,#10;1个机器周期DEL2:NOP;1个机器周期NOP;1个机器周期DJNZR3,DEL2;2个机器周期t1=(IT机+1T机+2T机)x10+1T机=41us例2:来看看下面这个程序能够实现的延时时间:T机=12/fosc=12/12MHz=1usDEL:MOVR5,#50DEL1:MOVR

44、4,#100DEL2:NOPNOPDJNZR4,DEL2DJNZR5,DELt1=(1T机+1T机+2T机)x100+1T机=401ust2=(t1+2T机)x50+1T机=12182us=20.151ms则部分范例程序为:ORG0000HMAIN:MOVP1,#0F9HDEL:MOVR7,#10DEL1:MOVR6,#123DEL2:MOVR5,#200DEL3:NOPNOPDJNZR5,DEL3DJNZR6,DEL2DJNZR7,DEL1MOVP1,#0A4HDEL:MOVR7,#10DEL1:MOVR6,#123DEL2:MOVR5,#200DEL3:NOPNOPDJNZR5,DEL3D

45、JNZR6,DEL2DJNZR7,DEL1MOVP1,#0B0H这样一来,程序显得有些冗长,对于这种在一个程序中反复出现的程序段,我们可以采用子程序的结构来实现。子程序在程序中反复多次执行的程序段,可编写为子程序,在使用时通过主程序调用就可以使用它。这样不但可以减少编程工作量,也缩短了程序的长度。开始Ji送丄的段码王送2的段勰王延对1秒11速3肉毂码1延时1秒1f隹q旳啟鹄rV迭5旳股谓L延时1打ORG0000HMAIN:CLRP3.2MOVP0,#0F9HLCALLDELMOVP0,#0A4HLCALLDELMOVP0,#0B0HLCALLDELMOVP0,#99HLCALLDELMOVP0

46、,#92HLCALLDELSJMPMAINDEL:MOVR7,#10DJNZR7,DEL1RETEND循环程序在程序中需要反复执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。结构流程图一般如下图所示:循环初始化:用于设计循环初值、循环次数循环体:程序中反复执行的内容循环控制:用于判断循环是否结束(通常采用次数递减的方法)开始总便均显示完驷应直初君战恶陆定嵋坏反裁点亮一个二祕育状态下移1位延对一段时何ORG0000HMAIN:MOVA,#01H;初始状态MOVR0,#08;共8位L1:MOVP1,A;D1发光LCALLDEL;延时子程序RLA;状态

47、下移1位DJNZR0,L1;循环判断SJMPMAIN;循环4、程序设计一般步骤(1)分析课题,确定解决方案和算法(2)分配系统资源及存储单元;(3)绘制程序流程图;(4)设计程序,并反复调试和修改。彩灯循环设计幵始將第一个二粧音点亮将第二牛二鬣管点亮将第匹*二融營点亮将鴛丑个二巫營克亮将籌七小一蜒營点亮将篙八牛二巒晉点亮ORG0000HMAIN:MOVP1,#80H;D7发光MOVP1,#40H;D6发光MOVP1,#20H;D5发光MOVP1,#10H;D4发光MOVP1,#08H;D3发光MOVP1,#04H;D2发光MOVP1,#02H;D1发光MOVP1,#01H;D0发光SJMPMA

48、IN;循环択斋下移1位延时一段时间点蔬一亍二槻肯ORG0000HMAIN:MOVA,#01H;初始状态MOVR0,#08;共8位L1:MOVP1,A;D1发光LCALLDEL;延时子程序RLA;状态上移1位DJNZR0,L1;循环判断SJMPMAIN;循环三课后小结第7讲Keil软件的使用教学目的:Keil软件的使用与程序的调试操作重点、难点:Keil软件的使用与程序的调试操作教学方式和步骤:一、复习:汇编语言程序设计二、授课内容:1、Keil软件系统概述KeilC51KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性

49、、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。当前提倡用C51开发单片机。KeiluVision2KeiluVision2是优秀的单片机开发软件之一,读者可以向Keil公司代理周立功网站索取并下载得到,解压后在Windows下运行软件包中的WINSetup.exe安装,在桌面上有KeiluVision2图标,点击后出现如图7.13所示界面,图7.14是该软件的一个汉化版界面图。该集成软件

50、开发平台,具有汇编语言和C语言源代码编辑、编译、仿真于一体,它的人机界面友好,操作方便,是51单片机开发者的首选。2、KeilVision2软件的运行主要任务的操作过程(1)点击软件图标开机,运行KeiluVision2;(2)创建工程;鼠标左键单击主菜单“Project”项目命令菜单鼠标左键单击子菜单“NewProject”创建新项目弹出“CreatNewProject”对话框Window格式文件对话框,用鼠标在“保存在”下拉框选择你要保存的文件夹(比如“我的文档”)。在“文件名”文本框处用键盘敲入你给这个工程起的工程名(如“test1”)。鼠标左键单击“保存”按键。弹出SelectDevi

51、ceforTargetTarget1对话框公司和CPU型号选择。用鼠标在左边列表框“DataBase”区双击ATMEL或单击ATMEL前的“+”号,ATMEL子选项展开选公司ATMEL,用鼠标左键单击“89C52”选择项目所用CPU,用鼠标左键单击“确定”按键完成项目创建。(3)建立汇编程序源程序并编译过程鼠标左键单击菜单“File”主菜单中的文件菜单,鼠标左键单击菜单“New”新建文件。在出现的文本窗口(Text1)中用键盘键入你的汇编程序。鼠标左键单击菜单File。Saveas在新建的文档中键入你的汇编程序名称。弹出SaveAs对话框。用鼠标在保存在下拉框选择你要保存的文件夹(比如我的文档

52、)。在“文件名”文本框处用键盘敲入你给汇编程序文件名(如test1.asm)注意同时输入扩展名,并且是认可的扩展名。鼠标左键单击“保存”按键例如使P1.0输出高低电平的源程序:ORG8000HLOOP:SETBP1.0LCALLDELAYCLRP1.0LCALLDELAYAJMPLOOPDELAY:MOVR7,#0F0HLOD1:MOVR6,#0F0HLOD2:DJNZR6,LOD2DJNZR7,LOD1RETEND在左边资源管理器用鼠标左键双击“Target1”或单击“Target1”前的“+”号,鼠标右键单击SourceGroup。弹出“AddfiletoGroupSourceGroup1

53、”新建文件加入到项目组中。“文件类型”选“asmsourcefile(*.a*)”:选择文件类型C语言或汇编等。找到“test1.asm”文件,鼠标左键单击该文件,找到刚才输入的文件鼠标左键单击Add加入工程项目中,鼠标左键单击“Close”:关闭对话框。编译修改过的程序:鼠标左键单击主菜单“Project”,鼠标左键单击子下拉菜单中的“Builttarget”:编译文件、生成应用文件。输出窗口显示“”test1“-0Errors(s),0Warning(s)”:完成编译,没有误如有错误,点击输出窗口中的提示行,鼠标会跳到源程序所在窗口中的错误处则根据提示修改源程序,然后再编译。用上述方法也可

54、打开已有的汇编程序进行修改和编译设置参数用鼠标左键单击主菜单“Project”项目和项目命令菜单用鼠标左键单击子菜单“OptionsforTargetTarget1”设置对象或文件工具选项窗口。弹出“OptionsforTargetTarget1”对话框。在“Target”标签下修改“Xtal(Mhz)”为“11.0592”。在“Output”标签下,选中“CreateHEXfile”(如果你要生成hex文件用编程器写到目标板)3、菜单和工具栏4、软件调试与使用操作过程5、思考题三、课后小结第8讲指令功能及汇编语言程序设计(二)教学目的:1、熟悉51单片机控制转移类指令的特点及使用2、了解51

55、单片机子程序的设计方法3、掌握51单片机的数码管循环显示4、理解延时程序的设计和延时时间的计算方法重点、难点:1、51单片机的数码管循环显示2、51单片机指令的功能及汇编语言程序设计3、指令延时计算方法教学方式和步骤:一、复习:单片机指令系统二、授课内容:1、设计范例数码管循环显示要求在数码管上循环显示数字15。pinpi.iPl.2Pl.3.Pl.4Fl5Pl.6Pl.7MCS51卑片机P血Q4-5V1234JDFY范例分析:硬件分析数码管采用共阳极结构。软件设计设计中要求循环显示15,很显然应采用循环的方法来实现,最简单的方法是将15的段码依次由P0口送出。准备程序0000HMAIN;CL

56、RPS;2MOVPO,#0F3HMOVPO,#0AHMQVP0?#OBOHMOVMOVPO,#92且SJMPMAIbT2、控制转移类指令的特点及使用(1)长转移指令LJMPAddr16功能:长距离无条件转移指令说明:三字节指令,它直接将指令中的16位常数装入PC,使程序无条件转移到指定的地址处执行。目标语句可以是程序存储器64KB空间的任何地方。(2)绝对转移指令AJMPaddr11例:4002HAJMPMM4600HMM:MOVA,#00H注意:目标语句必须和当前语句同页。在51单片机中,64KB程序存储器分成32页,每页2KB(7FFH)。(3)短跳转指令SJMP目标语句(rel)例:40

57、60HSJMPLOOP4090HLOOP:MOVA,#0FFH注意:短跳转的目标语句地址必须在当前语句向前127(7FH)字节,向后128(80H)字节,否则在进行程序编译时会出错。(4)变址寻址转移指令JMPA+DPTR该指令主要用于多分支的跳转程序设计。跳转的目标地址是累加器A和数据指针DPTR之和,它可以是64KB存储空间的任何地方。例根据标志单元R2中的内容,分别转各个处理程序。程序如下:PJ1:MOVDPTR,#TAB1CLRCMOVA,R2ADDA,R2;(R2)256时,16位数据指针高8位加1NADD:JMPA+DPTRTAB1:LJMPPRG0;转处理程序0的首地址LJMPR

58、RG1LJMPRRGn减1条件转移指令组DJNZRn,目标地址(rel);如果(Rn)-10,则程序跳转到目标语句,否则顺序执行下一条语句。DJNZdirect,目标地址(rel);如果(direct)-10,则程序跳转到目标语句,否则顺序执行下一条语句。例将8031内部RAM的40H4FH单元置初值A0HAFH。程序为:START:MOVRO,#40H;RO赋值,指向数据单元MOVR2,#10H;R2赋值,为传送字节数,十六进制数MOVA,#0A0H;给A赋值LOOP:MOVRO,A;开始传送INC,RO;修改地址指针,准备传下一数地址INCA;修改传送数据值DJNZR2,LOOP;如果未传

59、送完,则继续循环传送RET;当R2的值减为0时,则传送结束3、延时程序的设计和延时时间的计算方法延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。例1:设计一延时程序,延时时间为1ms(fosc=12MHz)。例2:设计一延时250ms的程序已有上例所举延时1ms子程序,调用250次,即得延时250ms子程序DELAY2:MOVR3,#FAHDEL3:ACALLDELAY1DEL2:NOPNOPDJNZR3,DEL3RET本段程序延时的时间为:1+(2+993+2)250+2=249253us误差不到1ms思考:如何设计延时1s程序?4、子程序的设计方法子程序:在程序中反

60、复多次执行的程序段,可编写为子程序,在使用时通过主程序调用就可以使用它。这样不但可以减少编程工作量,也缩短了程序的长度。4.2子程序的使用:子程序调用:指令:ACALLxxx;绝对调用,2KB范围LCALLxxx;长调用,64KB范围(2)子程序返回:指令:RET;子程序返回指令RETI;中断子程序返回指令ORG2000HMAIN:CLRP3.2MOVP0,#0F9HLCALLDELMOVP0,#0A4HLCALLDELMOVP0,#0B0HLCALLDELSJMPMAINDEL:MOVR7,#10DEL1:MOVR6,#123DJNZR7,DEL1RETEND5、循环程序设计的基本方法循环程

温馨提示

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

评论

0/150

提交评论