单片机原理及应用(第1~6章汪书56学时)课件.pptx

上传人(卖家):晟晟文业 文档编号:5020905 上传时间:2023-02-03 格式:PPTX 页数:178 大小:1.17MB
下载 相关 举报
单片机原理及应用(第1~6章汪书56学时)课件.pptx_第1页
第1页 / 共178页
单片机原理及应用(第1~6章汪书56学时)课件.pptx_第2页
第2页 / 共178页
单片机原理及应用(第1~6章汪书56学时)课件.pptx_第3页
第3页 / 共178页
单片机原理及应用(第1~6章汪书56学时)课件.pptx_第4页
第4页 / 共178页
单片机原理及应用(第1~6章汪书56学时)课件.pptx_第5页
第5页 / 共178页
点击查看更多>>
资源描述

1、1第一讲第一讲内容:概念、数制、转换、编码、重点:微机的三总线结构20.1微型计算机概述1.微型机结构 (投影片):丁元杰图1-1 用三类总线,将三类大规模继电路芯片连成一体。三类总线:数据 地址 控制。三类芯片:微处理器(MPU或CPU):由算式逻辑运算单元、控制器单元、寄存器组、内部总线组成。存储器芯片:I/O接口电路芯片:以上构成,称为微型机的主机。主机+I/O外设+电源+系统软件(操作系统)称为微型机系统。32.分类:按组装形式和规模分:单板机、个人计算机(PC)、单片机。按CPU同时处理的二进位数量分:8位、16位、32位、64位等。3.微机系统的主要指标 主频(时钟周期):单位HZ

2、。指令执行时间:表明执行一条指令所需的平均时间。一般用指令执行速度 (MIPS,每秒运行多少百万条指令)来代替。指令执行速度,取决于:主频、指令系统、CPU结构。字长:CPU一次(同时)处理的二进位数。存储容量:主机内部随机存储器(RAM)的大小。单位:字节(B),一般有:KB=210=1024B、MB=220=1024KB、GB=230=1024MB、TB=240=1024GB40.2.微机中常用的数制与编码1.常用数制 最常用的数制有:十进制、十六进制、二进制。所谓进位制就是:数码从右到左排成数位,右大左小,右边一位比左边一位大一个“权”。运算时,某位满一个“权”,就在其右位加1,本位值为

3、,结果减掉“权”后的值。(权又称位权,每一位对应一个固定的常数)任何进制的数的值都可用表示为十进制的值S,转换公式:n为正数的位数,m为小数的位数,Ki为第i位的数字,Qi为第i位的权。例1:二进制数,1011.11的十进制的值S:S=1*23+0*22+1*21+1*20+1*2-1+1*2-2=12.75 例2:十六进制数,1F6的十进制的值S:S=1*162+15*161+6*160=256+240+6=5021nmiiiQKS52.不同数制间的转换 十六进制(H)-二进制(B)例1:将二进制数1011101011.0110111B转换为十六进制数。从小数点开始,向左右4位为一组分开,每

4、组对应一位十六进制数,按8、4、2、1算出该位的数字。即:10,1110,1011.0110,111=2EB.6E 不够4位,用0填充。例2:将十六进制数1A2F.7BH转换为二进制数。例1的逆过程。十进制(D)-十六(H0或二进制(B)例:将十进制数115.58,转换为二进制数。整数部分用短除法,从底到顶取余数,从左到右排位。小数部分用乘2取整法,从底到顶取整数,从左到右排位。6第二讲第二讲内容:编码、二进制运算、符号数表示、指令执行重点:二进制运算、指令执行73.微机中常用的编码 用一个二进制串,即“数据“来表示一个信息。所谓“编码”,就是构成数据的方法。BCD码(对十进制数的表示)用4位

5、二进制位串表示1个十进制的数字(09)。4位二进制串可表示16个数字符号,在10进制中就多出6个字符。一般用8421的方法来计算一4位二进制串的数值,即用“0000”表示0,用“0001”表示1,用“0010”表示2,以此类推。显然,“1010-1111”这6个代码应属于非法。例1:十进制数2538的BCD码为:0010,0101,0011,1000 BCD码调整:由于计算机只能进行二进制运算,因此,在运算过程中,出现非法码时,应用软件进行调整(加6),最后结果才能按BCD码的规定输出十进制数。例2:178+65=243 0 0 0 1 0 1 1 1 1 0 0 0 +)0 0 0 0 0

6、1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 +)0 1 1 0 0 1 1 0 (加6调整)0 0 1 0 0 1 0 0 0 0 1 1 ASCII码(对文字符号的表示)80.3计算机(二进制)运算基础 1.加法:0+0=0,0+1=1+0=1,1+1=0(进位)。其它算数运算(减、乘、除)均可化为加法运算。2.逻辑“与”(乘):00=0,10=01=0,11=1。工程口诀:“用0清零,用1保持。”例:对数据11010101的高4位清零,低4为保持不变。操作:1101010100001111=000001010100010193.逻辑“或”:01=10=11=

7、1,00=0。工程口诀:“用1置1,用0保持。”例:对数据11010101的高4位置1,低4为保持不变。操作:1101010111110000=111101014.逻辑“异或”:相同为0,不同为1。0100111101001110102.指令执行过程 指令:叫计算机硬件完成一独立动作的命令。不同类的计算机硬件,完成的独立动作是不同的,即指令系统是不同的。指令格式:由操作码和操作数(地址码)两部分组成。执行过程:取指令、分析指令、执行指令。(投影片):张慰兮P30图1-8 (多媒体动画片):问题:1)取指令的过程涉及哪些部件?程序计数器PC、地址寄存器MAR、地址译码器MAD、数据寄存器MDR、

8、数据总线DB、CPU内部总线、指令寄存器IR、指令译码器ID。2)分析指令的目的是什么?根据操作码,从(预先设计好的)指令(时序)系统中,选出相应的时序。3)执行指令的本质?就是将选中的指令时序通过微操作控制器去控制相应的门电路的启、闭,最终完成该指令要求的动作。11第四讲第四讲内容:MCS-51的结构重点:存储器、T/C121.1单片机概述 单片机:将微机的三大类部件,集成在一块芯片内。1.发展 第一阶段(1974-1976):低集成度,实际上是两片。第二阶段(1976-1978):8位,真正的单片机,性能较低,无通信功能(无串口)。Inter公司MCS-48。第三阶段(1978-1983)

9、:8位,高性能,具有通信功能。NCS-51。第四阶段(1983-):更高性能的16位机,MCS-96。按用户需求生产的8位机。2.发展趋势 高集成度、低功耗。3.内部结构 复位 中断 电源4.单片机的特点 体积小:可靠性高:不易受外界干扰,同时对外界的干扰也小。功能强:特别是实时控制功能。使用方便:性价比高:外部定时元件系统时钟定时 器/计 数器串行I/O并行I/ORAMCPU131.2 MCS-51系列单片结构 1.组成(9大部分)(本讲只简介CPU)P6图1.1 CPU、T/C、ROM、RAM、时钟电路、并行口、串行口、中断系统、总线。可认为是由单总线(数据、地址、控制信息均由一条总线传输

10、)连接的微机系统。14CPU:8位,专用布尔处理器。运算器 a.逻辑部件:ALU b.布尔处理器:位处理器,PSW字中的C位作为其累加器。c.累加器A:8位,累加器,存放操作数、运算的中间结果、乘法结果的低8位、被除数、除法结果的商等。累加器B:8位寄存器,存放乘法中的一个乘数、除法中的除数、除法结果的余数等。用户可操作(可寻址)。d.两个暂存器15控制器 a.时钟及复位电路 b.定时控制逻辑电路 c.指令存储及指令译码器 d.程序指针PC:16位,程序计数器,存放将要执行的指令(所在ROM单元的地址),内容自动加1,从而实现程序的自动执行。用户不能对其操作。e.数据指针DPTR:16位地址寄

11、存器,访问外部数据存储器时作地址指针。也可分为两个8位寄存器(DPH高8位、DPL低8位)使用。f.堆栈指针SP g.程序状态字PSW:8位,存放程序运行过程中的状态。16名称名称 进位位进位位 辅助进辅助进位位位位 用户标志用户标志位位 寄存器选择位寄存器选择位 溢出标志溢出标志位位 奇偶标志奇偶标志位位 位位地地址址 PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CACF0RS1RS0OCPD7D6D5D4D3D2D1D0 含含义义D7位进、位进、借位时为借位时为1,否则为否则为0。位操作时,位操作时,作为累加作为累加器。器。D3位有进、位有进、借位时为借

12、位时为1,否则,否则为为0。供用户程供用户程序使用。序使用。00:0号寄存器组号寄存器组01:1号寄存器组号寄存器组10:2号寄存器组号寄存器组11:3号寄存器组号寄存器组带符号数带符号数的加、减的加、减运算时,运算时,结果超结果超8位位表示的范表示的范围时置围时置1。乘法结果乘法结果有高有高8位时位时置置1。除数为除数为0时时置置1。累加器中有累加器中有奇数个奇数个1时时置置1。程序状态字PSW:172.时钟、状态、机器周期 时序的概念:为完成指令,需按顺序驱动各种门电路,驱动信号间的关系,称为时序。每条指令都有响应的时序对应。时序定时单位 1)节拍(P):振荡脉冲的周期,单位是秒。两个节拍

13、为一个状态(S)。例:振荡频率为12MHZ,则一拍为1/12MHZ(秒)。2)机器周期:6个状态为一个机器周期。即一个机器周期包含12拍 (S1P1、S1P2S6P2)。定时/计数器,以机器周期为最小定时单位。例:振荡频率为12MHZ,则一个机器周期为(1/12MHZ)26=1/1M=1微秒。3)指令周期:执行一条指令所需要的时间,以机器周期为单位。MCS-51的指令,最短的为一个机器周期,最长的四个机器周期。183.MCS-51单片机的引脚 P10 图1.6 两大类:I/O引脚 控制信号引脚,其中,P3口引脚既是I/O引脚(第一功能),又是控制信号引脚(第二功能)。要求同学着重理解P3口的各

14、控制引脚的功能。19独立信号引脚 脚号名称第一功能第二功能符号有效说明符号有效说明30地址锁存控制ALE1控制外部地址锁存器,将P0口输出的地址数据锁存到锁存器中。PROG0EPROM编程脉冲输入端29读扩展ROMPESN0读外部ROM无31选扩展ROMEA0仅对外部ROM操作VPP EPROM编程脉冲输入端9复位RST1复位VPD 备用电源XTAL1(19)、XTAL2(18):外接晶体端。VSS(20):地线。VCC(40):+5V电源。20P3口第二功能 实际应用时,应先保证P3口的第二功能使用,剩下的线才可供I/O使用。P9 表1.321第五讲内容:MCS-51存储器组织重点:类型、功

15、能、地址范围221.3 MCS-51五个独立的存储器空间 (具有独立的寻址能力,硬件空间随型号而不同):1.64KB的程序存储空间(ROM),单元(字)地址范围:0000hFFFFH。2.128B内部RAM空间,单元(字)地址范围:00H7FH。3.128B内部特殊功能寄存器空间(SFR),单元(字)地址范围:80HFFH。4.128位的位寻址空间,位地址范围:00HFFH。(个存储单元)5.64KB外部数据存储器空间,单元(字)地址范围:0000hFFFFH。MCS-51存储器结构,参见:P10,图1.6231.程序存储器(ROM)MCS-51机的片内部程序存储器,寻址范围4K(0000H0

16、FFFH),每单元存放8位,即1个字节。存放程序及常数。MCS-51单片机,规定了6个专用的ROM地址,0000H为复位地址,其它5个为中断地址,参见:P10,表1.4242.片内数据存储器 数据存储器,寻址范围256(0000H00FFH),每单元存放8位,即1个字节。存放用户数据、中间结果及缓冲区。ROM、RAM的地址分配图:P10,图1.6 RAM一般分为两部分,低地址(00H7FH)128个单元,称为用户数据RAM区,存放用户的数据,根据对其使用的方式不同,又可分为三部分:工作寄存器区:(P11 表1.5)片内地址,00H1FH,共32个单元,分为4个区,每区个单元,分别用R0R7表示

17、,区域的选择,由PSW字的RS0、RS1(PSW.3、PSW.4)决定。位寻址区:(P12 表1.7)片内地址,20H2FH,共16个单元,位地址,00H7FH)。数据缓冲区:片内地址,30H7FH,共64个单元。25高地址(80HFFH)128个单元,称为特殊功能寄存器(SFR),用以辅助硬件完成系统任务,一般说来用户不能用来存放数据。P13 表1.8特别说明:1.程序中可使用“符号”、“地址”等不同的表示法来寻址。可位寻址的单元,也可整体的单元寻址。2.堆栈是一种数据结构,具有“后进先出”的操作特点。主要用来保护中断现场。在程序中第一次给堆栈指针(SP)赋值 (RAM单元地址),就定义了一

18、个堆栈。MCS-51的堆栈属向上生长型,其进栈进栈(PUSH)操作为:“先SP加1,后写入数据”。出栈出栈(POP)操作为:“先读出数据,后SP减1”。一般将堆栈建在30H以后的RAM区内。栈底无数据。26第六讲内容:I/O端口、工作方式重点:I/O口271.4 MCS-51的I/O端口(硬件电路图参见张慰兮等书)有4个双向并行(每个8条线)输入/输出口,P0、P1、P2、P3。1.P0口 无外部扩展时,P0口作为双向I/O口。作为输出(内部到外部)时,指令的写信号加在锁存器的CP端,内部总线上的数据写入锁存器,经T2驱动,数据在引脚上出现,脚上的数据与内部总线上的一样。(同学自己理解)。作为

19、输入(外部到内部)时,锁存器CP端无脉冲,数据无法写入。指令的读信号打开三态门,使引脚与内部总线连通。有外部扩展时,此时P0口复用作为地址总线和数据总线。(同学自己理解引脚上的数据与内部总线(地址/数据线)上的数据的一致性。)2.P1口 作为双向I/O口。3.P2口 无外部扩展时,作为双向I/O口。有外部扩展时,作为高8位地址总线。根据寻址范围的需要,可任选P2口中的 若干条作为高地址线。例:外部扩展RAM为2K,问需几条P2 口作地址线。寻2K范围共需11条地址线 (211=2K),P0口有8条,故需3条P2口的线。4.P3口 第一功能,作为双向I/O口。第二功能。(引脚一节已介绍,P9 表

20、1.3)281.5 MCS-51单片机的工作方式 1.复位方式:系统恢复到初始状态。主要部件的初始状态值:P7 表1.2 2.程序执行方式:基本工作方式,程序总是从ROM的0000H开始执行,并自动执行,直到程序完。一般在ROM的0000H单元放一条无条件转移指令。3.单步执行方式:利用机器的外部中断功能来实现。用户需自己设计中断电路和编写中断程序。4.掉电和低功耗方式:掉电:外电中断时,利用VCC端的滤波电容供电(可维持几毫秒),执行“掉电中断程序”(用户自编),完成信息道RAM的转存和备电源的启动。低功耗:掉电保护方式和待机方式两种属于低功耗方式,它们由PCON (电源控制寄存器)控制。待

21、机方式:CPU不工作(相关部件SP、PC、PSW、ACC、通用寄存器保持原状态),中断功能保持。掉电方式:单片机停止工作,只有RAM内容保存。29习题1:P16 1,2,4,5,6,7,8,9,10,11,12,1330第七讲内容:指令概念、注记符、寻址方式重点:寻址方式312.1指令格式及寻址方式 1.指令及表示法(概念前面已经介绍)两部分组成:操作码 操作数,操作数,操作数。中的内容表示可选,即操作数是可选的。操作数可以是实际要参加操作的数值,也可是存放操作数的存储单元的地址。表示方法有:机器码:二进制串。计算机只能读懂机器码。注记符:用类英文单词表示操作码,用16进制数或默认符号(存储单

22、元名等),表示操作数。例如:将累加器中的内容加20(十进制数)单元中大内容。机器码:00100100 00010100 注记符:ADD A,14H 指令的字节数 MCS-51以字节(8位)为操作单位,分为单、双、三字节指令。单字节指令,只有操作码。由于8位二进码可表示256个状态,而MCS-51的指令系统只有111条指令,因此可用一些操作码来表示对一些默认操作数(存储单元)的操作,即指令是单字节的(没有操作数部分)。指令周期(执行该指令所需的时间)MCS-51以机器周期为时间单位。有单、双、四周期指令。322.寻址方式 寻址的概念:指令的执行,关键是寻找操作数,根据冯渃依曼原理,数据必需是放在

23、存储器中的,因此,寻找操作数,就变为寻找存放数的存储单元 (即单元地址)。寻找存储单元地址的不同方法,称为寻址方式。MCS-51有7种寻址方式。把在指令中直接给出的,参加操作的数,称为“立即数”。由于立即数由指令给出,因此,存放在ROM中。(指令中常用符号P19,同学自读1分钟)注释方法:例如,80H A,表示将数80H送入A中。而(80H)A,表示将地址为80H单元中的内容送入A中。R0 A,表示将寄存器R0中的内容送入A。而(R0)A,表示将R0中的内容作为存放操作数的单元地址。33立即寻址:用于对ROM 区寻址。指令中直接给出参加操作的数,可以是8位(#data8),或16 位(#dat

24、a16)。从ROM中取数,放入累加器A。例:MOV A,#3BH;3BHA,把数3BH放入累加器A。ROM ACC3BH2000H 74H 2002H 2001H 3BH34直接寻址:用于对内部RAM区寻址。指令中直接给出存放操作数的单元地址。例:MOV A,3BH;(3BH)A,把3BH单元中放的数68H放入累加器。内部RAM ACC 68H3BH 68H 注意:1.本方式的寻址范围:片内256个RAM单元(8位地址)。2.对特殊功能寄存器,指令中的地址可使用物理、符号地址。例:MOV A,SP MOV A,81H;SP的单元地址为81H。3.单元地址与位地址的区别。例:MOV A,20H;

25、(20H)A,8位操作,20H为单元地址。MOV C,20H;(20H)C,1位操作,20H为位地址。35寄存器寻址:指令中直接给出某工作寄存器的内容(用R0R7表示),把它作为操作数。工作寄存器在RAM中的地址是00H1FH,共32个,分为4组。首先用程序选中寄存器组(置程序状态字PSW的RS0、RS1两位的值),然后根据指令中的符号R0R7,即可取出指定的操作数。例:选定工作组0,MOV A,R0;R0A将R0中的内容送入A。RS1 RS034HR0(00H)34H内部RAMPSW 0 036寄存器间接寻址:用于对内部、外部RAM区寻址。寄存器中的内容是存放操作数的单元地址。本法中,只能使

26、用R0、R1两个工作寄存器和DPTR(16位地址指针寄存器)。例:MOV A,R0;(R0)A30H56HRAM56H30HR0ACC37变址寻址:用于对ROM 区寻址。将指针寄存器DPTR或程序地址寄存器PC作为基址寄存器,将A作为偏移量寄存器,二者内容相加,作为ROM单元的地址,该单元的内容为操作数。例:MOV A,#0E0H;MOV DPTR,#2000H;MOV A,A+DPTR;(A+DPTR)A2000HE0H1FHDPTR(A)执行前(A)执行后 20E0H1FHROM38相对寻址:PC中的内容,加上指令中给的数据,之和作为ROM单元的地址,该单元的内容为操作数。指令中的数据为带

27、符号数(补码形式)。例:SJMP 54H;跳转指令,54H前虽然没有#号,但应看成是放在ROM单元内的立即数。ROM80H54H2000H2001H2002H2056HRel=54hpc=2002h相加转移39位寻址:对内部RAM的位寻址区寻址。指令中直接给出位地址。位操作中的累加器是PSW中的进位标志位C。请同学熟悉7种寻址方式各自的寻址空间:寻址方式寻址方式 相关寄存器相关寄存器 寻址空间寻址空间 立即寻址 ROM 直接寻址 内部RAM和SFR 寄存器寻址 R0R7,DPTR,A 寄存器间接寻址 R0,R1 内部RAM R0,R1,DPTR 外部RAM 变址寻址 A+PC,A+DPTR R

28、OM区 相对寻址PC+rel ROM区 位寻址 CY,SFR 内部RAM的20H2FH,SFR40第八讲内容:数据传送指令重点:内、外数据传送指令412.2.1数据传送指令 注:.指令中若有两个操作数,左边为目的操作数,右边为源操作数。.数据传送指不影响PSW字的内容。只有以A为目的数的指令影响PSW的奇偶位。4类:内部、外部、堆栈操作、数据交换 在以后的指令介绍过程中,将以一个简单而典型的控制电路作为例子的基础,请同学认真理解该电路:P22 图2.1421.内部数据传送:片内RAM的数据,送往片内RAM。以A为目的操作数的指令(4条)。MOV A,以直接地址direct为目的操作数的指令(5

29、条)。MOV direct,已寄存器Rn为目的操作数的指令(3条)。MOV Rn,以Ri为目的操作数的指令(3条)。MOV Ri,MCS-51内部数据传送的方法如图:P26 图2.143P23 例:2.1、2.3控制电路:P24 图2.2控制要求:VD0VD4发光,VD5VD7熄灭;将内部RAM 30H的数据通过 LED显示出来。控制程序:ORG0000H;MOVP1,#1FH;(1F)16=(00011111)2END;例:2.3,P26例:2.4,P2644P24 思考题2-2:参考程序:MOVA,R6;MOV030H,A;MOVA,R7;MOVR6,A;MOVR7,030H452.外部数

30、据传送:片内、片外RAM的数据,送往片外RAM。片外ROM的数据,送往片内RAM。片外RAM与A间的数据传送(只能寄存器间接寻址)。MOVX A,;外到内。MOV X ,A;内到外。例2.5,P28思考题2-3:P25 将外部RAM的0010H单元中的内容 送给外部RAM的0100H单元。MOVDPTR,#0010H;MOVXA,DPTR;MOVDPTR,#0100H;MOVXDPTR,A;思考题2-4:P25 将外部RAM的0010H单元中的内容与 外部RAM的0200H单元的内容互换。MOVDPTR,#0010H;MOVXA,DPTR;MOV030H,A;MOVDPTR,#0200H;MO

31、VXA,DPTR;MOVDPTR,#0010H;MOVXDPTR,A;MOVDPTR,#0200H;MOVA,030H;MOVXDPTR,A;46外部ROM的数据,传往A(只能是变址寻址)。因为是对ROM只读(ROM地址只能作源),故常称为查表指令。MOVC A,A+思考题2-5:P25 预先将以度为单位的值放在ROM中(用DB指令),然后用MOVC指令查找。47堆栈操作 PUSH direct;SP先加1,后压数进栈。POP direct;先读出数据,后SP减1。要使用堆栈,首先用MOV SP,#0XXH指令设置栈底,一般XX取30H。例2.6,P25,参见P26 图2.348数据交换指令

32、1)全字节交换:XCHA,2)低半字节交换:XCHD A,Ri;SWAPA 例2.7,P26 初始状态:累加器 A的RAM单元地址为E0H,内容为79H。0号工作区工作寄存器R0的RAM地 址为00H,内容为20H。XCH A,R0 ;(A)20H,(R0)79H XCH A,R0 ;(A)85H,(R0)20H,(20H)79H XCHD A,R0 ;(A)75H,(R0)20H,(20H)89H SWAP A ;(A)97HRAM单元地址内部RAM单元中的内容00H(R0)20H20H85H21HE0H(累加器A)79H492.2.2算数运算指令1.加法指令 有三类,注意对PSW字的影响。

33、两个操作数(源操作数、A中内容)的加:ADD A,;影响PSW。三个操作数(源操作数、A中内容、PSW字的进位位C)的加:ADDC A,;影响PSW。加1:INC;不影响PSW字的内容。只有以A的内容影响PSW的奇偶位。例2.8,P28 程序状态字PSW:Cy Ac F0 RS1 RS0 OV P 两个无符号数相加时,若Cy置位,说明“和”大于(FFH)。两个有符号数相加时,当D6位(有进位时表为C6=1)或D7位(有进位时表为C7=1)中 只有位产生进位时(C7异或C6等于1),溢出位OV置位,说明产生溢出 (即大于或小于),其结果错误。思考题2-7:P28 解:D7 D6 D5 D4 D3

34、 D2 D1 D0 0 1 1 1 1 0 0 1 079H=(121)10 1 0 0 1 0 1 1 1 097H=(152)10 1 0 0 0 1 0 0 0 0 0110H=(272)10 (121)10+(151)10=(272)10 CY=1(D7位有进位),Ac=1(D6位有进位),OV=0(C7异或C6等于,无溢出,说明结果正确,P=1(A有奇数个1)例2.9,P28 (带进位位加法ADDC,即三操作数加法)502.减法指令:SUBB A,;A中为被减数,Cy作为减数之一,当被减数大于等于减数时,Cy为,当被减数小于减数时,Cy为。影响PSW字,同加法一样。例2.10,P29

35、 分析执行以下指令后,PSW格位的状态。SETBC;MOVA,#48H;SUBB#5CH;作为无符号数,作减法:0 1 0 0 1 0 0 0 (A)=48H=(72)100 1 0 1 1 1 0 0 减数=5CH=(92)10 -1 减数CY=1 1 1 1 1 0 1 0 1 1 (A)=EBH 作为有符号数,作加法:0 1 0 0 1 0 0 0 (A)=48H=(72)10,正48H的补码 1 0 1 0 0 1 0 0 加数=-5CH=(92)10,负5CH的补码 +1 1 1 1 1 1 1 1 加数CY=-1 负1的补码 1 1 1 1 0 1 0 1 1 (A)=EBH=-1

36、5H=(-21)10 显然结果是唯一的。513.BCD调整:DB A;本指令只能跟在加法指令后,不能跟在减法指令后。4.乘除指令 乘:MUL AB;存于A、B寄存器中的两个无符号数相乘,积的高8位在B中,低8位在A中。执行后对PSW的影响:Cy=0;积超过0FFH(此时B内不为),OV=1,否则为。除:DIV AB;A中为被除数,B中为除数。商在A中,余在B中。执行后对PSW的影响:Cy=0;B=0时,OV=1(除数为,无意义),否则为。52思考题2-8:P31MUL1:MOV R0,#045H ;取存积最低字节的单元地址。MOV A,040H ;被乘数低字节取入A。MOV B,042H ;乘

37、数低字节取入B。MUL AB ;两低字节相乘。MOV R0,A ;积的最低字节存入45H单元。MOV R3,B ;两低字节相乘后积的高字节暂存于R3。MUL2:MOV A,040H ;被乘数高字节取入A。MOV B,042H ;乘数低字节取入B。MUL AB ;乘数低字节与被乘数高字节相乘。ADD A,R3 ;乘数低字节与被乘数高字节相乘之积的低字节与 ;两低字节相乘之积的高字节相加。MOV 044H,A ;加得的结果(积之次低字节)暂存于44H单元。MOV A,B ;乘数低字节与被乘数高字节之积的高字节取入A。ADDC A,#00H ;将前面相加的进位加入积的最高字节 ;(如果有的话)。MO

38、V 043H,A ;将积的最高字节存入43H单元。53习题:P61一,填空题:全部54第九讲第九讲内容:逻辑运算、转移指令重点:逻辑运算指令552.2.3逻辑运算指令1.与、或、异或指令:(自学)。工程口诀:“与”,用1保持,用0清0。“或”,用0保持,用1置1。“异或”,相同为0,相反为1。运算结果放在目的操作数中。2.移位指令:注意,移位方向(左、右),是否含进位位。例2.17:P34 控制电路:图2.1 控制要求:LED按给定规律循环发光。控制程序:ORG000HMOVA,#0C0HLOOP:MOVP1,AACALLDELAYRRASJMPLOOPDELAY:END思考题2-12:P35

39、 解:将指令RR A,变为RL A,即可改变循环方向。将初值0C0H变为F0H,即可变为个相邻灯亮。VD7VD6VD5VD4VD3VD2VD1VD0562.2.4控制转移指令 用来修改PC(程序计数器)的内容,以该变程序执行的顺序。1.无条件转移 (自学)执行后,程序无条件转移到指令提供的地址上去。(以下所有地址参数,均可是某条目标语句的标号。)LJMP addr16 ;长转移。可寻址64KROM。Addr16 PC。AJMP addr11 ;短转移。可寻址(含PC+2单元地址在内的)2KROM。;PC+2 PC,addr11 PC10-0,PC15 11不变。SJMP rel ;相对转移。r

40、el为带符号8位数。;可寻址以PC+2单元为中心的上、下各128单元ROM。;PC+2 PC,PC+rel PC。JMP A+DPTR ;变址寻址转移。A+DPTR PC。DPTR为基址,;实现多路转移(散转)。572.条件转移 (以下所有地址参数,均可是某条目标语句的标号。)累加器A判0转移 JZ rel;为0转移 JNZ rel;不为0转移 比较转移(左边的数右边的数,则转移,相等则顺序执行。)CJNE A,#data,rel;CJNE A,diret,rel;CJNE Rn,#data,rel;CJNE Ri,#datd,rel;注意:1)执行条件是,当前语句的PC-125目标语句的PC

41、当前语句的PC130。2)影响PSW的Cy位:左操作数右操作数,则Cy=0。左操作数右操作数,则Cy=1。例2.19,P37,循环控制转移(左边的数减1不为0,则转移。)DJNZ Rn,rel;DJNZ direct,rel;58思考题2-13:P37 片外,个连续单元,所置的数也是连续的。MOV DPTR,#01020H;MOV R2,#1EH;个数。CLR A ;LOOP:;位置。MOVX DPTR,A;INC DPTR;INC A;DJNZ R2,LOOP;SJMP$;若将DJNZ语句放在位置处,会是什么情况?59 3.子程序调用及返回 调用返回过程和断点保存 见张慰兮P106,图4-1

42、1。注意:LCALL调用指令和RET返回指令必须成对使用。中断程序的最后一条指令必须是RETI返回指令。4.空操作 NOP;不执行任何操作,只占用CPU一个机器周期。2.2.5 位操作指令 1.位传送 2.位置1/位清0 3.位(逻辑)运算 4.位测试转移注意:PSW字的进位位Cy,相当于累加器A的功能。60习题:P62 二,程序阅读全做61第十讲第十讲内容:汇编程序设计基础重点:汇编语言格式622.3汇编语言程序设计基础1.汇编语言概念:用助记符(准英文单词)表示操作码,用字母或16进制数字表示操作数。(用汇编语言写的)源程序,只有通过事先写好的称为“汇编程序”的软件翻译成 (用机器语言即0

43、、1串表示的)目标程序后,才能被计算机执行。源程序(汇编语言源程序)汇编程序(完 成 翻译工作)目标程序(机 器 语言程序)632.汇编语言格式 标号:操作码 操作数,操作数;注释 中的内容,可选。标号:以字母开头,不多于8个字母或数字,(除汇编语言系统中的保留字符)序列。标号的实际含义,表示本行指令所在ROM的单元的相对起始地址。在转移指令中,可作为相对地址(rel)。操作码:准英文单词。操作数:立即数或单元地址。地址可用物理地址、符号地址。注释:用户自加的说明,汇编时,计算机不与理会。643.伪指令:控制汇编过程的指令,不被翻译成机器码,因此不占用ROM,不被执行。汇编起始指令 标号:OR

44、G addr16 定义本指令汇编以后的目标程序存放的起始ROM地址。例:ORG 2000H START:MOV A,#34H 汇编结束指令 标号:END 汇编程序遇到本指令后停止汇编。一个源程序,只能有一个END指令。赋值指令 名称 EQU 数或汇编符号 用左边的名称代替右边的数或汇编符号 (例:R0、R1、PSW,不是任意符号)。本指令应放在程序的最开始。赋值的“名称”不能在表达式中出现。例:KG EQU R2 FM EQU R3 IO EQU R4 数据、地址赋值指令 名称 DATA 表达式 用左边的名称,代替右边的表达式。表达式中不应有汇编符号。本指令中的名称可先使用,后定义(可出现在源

45、程序的任意地方)。65定义字节、字、空间指令 DB 字节常数,字节常数,字节常数 DW 字常数,字常数,字常数 将指令中给出的字节常数或字常数存放在指定的ROM单元内,一个字节常数占一个单元,一个字常数占两个单元 (高8为放低地址,低8位放高地址)DS 表达式 从指定单元开始,空出表达式给定的ROM个单元。例5-1,P113 (画存储图)位地址符号指令 名称 bit 位地址 用左边的名称,代替右边的位地址。类似EQU指令。例:D bit 20.7 ;用D表示RAM的20H的b7位。664.汇编语言程序设计的步骤 一般来说一个完整的源程序包含伪指令和指令。具体步骤,自学P45,参见图2.8。67

46、第十一讲第十一讲内容:汇编程序设计举例重点:键口控位移、查表、延时682.4 MCS-51程序举例 1.数制转换程序:P45 例2.26、例2.27(自学)2.算数和逻辑运算程序:P46 例2.28、例2.30(自学)P49 例2.31 控制键控移位(详细介绍)控制电路:P49 图2.13 控制要求:按键SW按下第一次,VD1发光,按下第二次VD1、VD2发光,第八次VD1VD7全亮,按第九次,VD1、VD2发光,依次循环。控制程序:(下页)69例2.31 控制程序SWBITP1.0 ;用P1.0口作为按键状态的输入端ORG0000HLOOP0:SETBSW ;置P1.0为高电平 MOVA,#

47、01H ;MOV R7,#07H ;循环次数LOOP1:MOVC,SW ;如果SW没按下,C=1MOV R6,#255 ;延时消抖DELAY:NOPNOPDJNZ R6,DELAYANLC,/SW ;如果SW按下,SW=0,则/SW=1,“与”的结果为1 ;(设C原为1),SW没按下,“与”的结果为0,;结果均会存回C中。JNCLOOP1 ;C不为1,表示SW没按下,重新查询SW状态。RLCA;SW按下,将低位的1状态左移,让下一LED发光。ORLA,#01;让最低位置1,即保持LED亮。MOVP1,A;输出控制信号,点亮LED。DJNZR7,LOOP0;直到7次按下。SJMPLOOP0;下一

48、轮回END703.查表程序 例2.40,P564.子程序 子程序设计注意的问题:子程的第一条指令应有标号(称为子程的入口地址)。用RET指令结束子程。子程内部转移,用相对转移指令。在子程开始保护现场(PUSH)、结尾恢复现场(POP)。主、子程序间的参数传递:入口参数:主程提供给子程的参数。出口参数:子程提供给主程的参数。参数传递的方法:用工作寄存器Rn和累加器A传递。用数据指针DPTR传递。用堆栈传递。例2.34,P53715.延时程序 (详细介绍)P55 例2.37 软件延时 关键是计算指令周期、循环次数,一个循环变量最多计256次循环,可采用 多重循环来增加延时时间。72习题:P58 2

49、.2 、73第十二讲第十二讲内容:中断基本概念重点:中断概念743.1 中断基本概念 1.中断系统:由硬件电路和软件构成。2.中断处理过程,按下述步骤进行:中断请求:由中断源(硬件或软件),向CPU发出(对专用寄存器置位)。中断响应:在满足响应条件时,CPU暂停主程的执行,转向执行,中断服务程序。具体过程:1)自动关中断:关闭中断允许触发器,防止其他中断对现有中断的干扰。中断服务程序可打开中断允许触发器,以接收新的中断请求 (中断嵌套 P61 图3.1)。2)断点保护:将断点地址(转入中断服务程序前PC中的值),推入堆栈。3)转中断服务程序:将中断服务程序的入口地址送入PC。753.中断处理:

50、执行指令指令结束否?有中断请求否?中断响应关中断找出中断申请源并保护断点转 中 断服 务 程序保护现场中断处理恢复现场开中断返回取下一条指令保护现场:将断点处的有关寄存器的值推入堆栈。中断服务:执行中断服务程序。恢复现场:将堆栈中保存的断点处有关寄存器 的值弹回到各寄存器。开中断、返回:打开中断允许触发器。将堆栈中 保存的PC值弹回PC。76第十三讲第十三讲内容:MCS-51的中断系统重点:中断控制773.2 MCS-51的中断系统(P62 图3.2)1.中断源:有5个 0号外部中断:由P3.2(引脚12)引入,请求信号可以是低电平或负跃变边沿触发方式。中断服务程序的入口地址为0003H。1号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机原理及应用(第1~6章汪书56学时)课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|