单片机教案2.docx

上传人:b****5 文档编号:12278381 上传时间:2023-04-17 格式:DOCX 页数:20 大小:40.72KB
下载 相关 举报
单片机教案2.docx_第1页
第1页 / 共20页
单片机教案2.docx_第2页
第2页 / 共20页
单片机教案2.docx_第3页
第3页 / 共20页
单片机教案2.docx_第4页
第4页 / 共20页
单片机教案2.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

单片机教案2.docx

《单片机教案2.docx》由会员分享,可在线阅读,更多相关《单片机教案2.docx(20页珍藏版)》请在冰豆网上搜索。

单片机教案2.docx

单片机教案2

常州轻工职业技术学院

单片机原理及应用课程授课教案NO3

授课日期

授课班级

课题

指令系统

授课类型

讲授

授课时数

教学

目的

(1)了解指令系统的概述

(2)熟悉寻址方式(3)掌握MCS-51系列单片机指令

重点

难点

寻址方式、MCS-51系列单片机指令

寻址方式

教具

挂图

多媒体课件

教学

过程分配

主要教学内容

教学方法

的运用

20分钟

 

10分钟

 

10分钟

 

5分钟

 

5分钟

 

10分钟

 

5分钟

 

5分钟

 

10分钟

 

10分钟

 

第二章MCS-51单片机指令系统

一.指令的表达形式

1.二进制代码(机器码)指令

2.助记符(汇编语言)指令

助记符指令:

MOVA,#30H

二进制代码指令:

0111010000110000

助记符指令必须转换成二进制代码指令才能存入存储器。

二、汇编语言指令格式

操作码[第一操作数][,第二操作数][,第三操作数]

(1)操作码:

用来规定指令进行何种操作,是指令中不能空缺的部分。

(1)操作数:

表示参与指令操作的数据或数据所在的地址。

为可选项。

有两个操作数时,前一个为目的操作数,后一个为源操作数。

三.指令中有关操作数符号的说明

Rn——工作寄存器R0~R7(n=0、1、2…7)。

Ri——工作寄存器R0和R1(i=0或1)。

Direct——内部RAM的单元地址,地址范围为00~FFH。

#data——8位立即数,即常数。

#data16——16位立即数。

addr16——16位目的地址。

Addrll——11位目的地址。

四.MCS-51单片机指令系统

MCS—51的指令按功能分为五大类:

数据传送、算术运算、逻辑运算、控制转移和位操作指令。

(一)数据传送类指令

注意:

源操作数在传送前后保持不变。

1.内部数据传送指令

【例2-1】设(30H)=40H,(40H)=10H,(P1)=0CAH,试判断下列程序执行后的结果。

MOVR0,#30H;R0←#30H

MOVA,@R0;A←(30H),(A)=40H

MOVR1,A;R1←(A),(R1)=40H

MOVB,@R1;B←(40H),(B)=10H

MOV@R1,P1;(R1)←(P1),(40H)=0CAH

MOVP2,P1;P2←(P1),(P2)=0CAH

结果是:

(A)=40H,(B)=10H,(40H)=0CAH,(P2)=0CAH

2.外部数据传送指令

此类指令完成对片外RAM单元中数据的读/写操作。

注意:

用R0和R1间接寻址时,要占用P2寄存器放外部RAM的高8位地址,R0和R1放低8位地址。

使用时,要先将低8位地址送入Ri(R0或R1),高8位地址送入P2寄存器,然后再用上述指令。

【例2-2】将片外RAM1000H单元中的内容送到2000H单元。

方法一MOVDPTR,#1000H;DPTR←#1000H

MOVXA,@DPTR;A←((DPTR))

MOVDPTR,#2000H;DPTR←#2000H

MOVX@DPTR,A;(DPTR)←(A)

方法二MOVP2,#10H;P2←#10H

MOVR0,#00H;R0←#00H

MOVXA,@R0;A←((R0))

MOVP2,#20H;P2←#20H

MOVX@R0,A;(R0)←(A)

注意:

在两个片外RAM单元之间是不能直接进行数据的传送的,必须经过片内的累加器A来间接地传送。

3.访问程序存储器的传送指令(查表指令)

MOVCA,@A+PC;PC←(PC)+1,A←((A)+(PC))

MOVCA,@A+DPTR;A←((A)+(DPTR))

其功能是到程序存储器中查表格数据送入累加器A。

程序存储器中除了存放程序之外,还会放一些表格数据,又称查表指令。

指令中的操作数为表格数据。

前一条指令将A中的内容与PC的内容相加得到16位表格地址;后一条指令是将A中的内容与DPTR中的内容相加得到16位表格地址。

4.数据交换指令

数据交换是在内部RAM单元与累加器之间进行,有字节和半字节交换两种。

(1)字节交换指令

XCHA,Rn

XCHA,direct

XCHA,@Ri

(2)半字节交换指令

XCHDA,@Ri

5.堆栈操作指令

在片内RAM的00H~7FH地址区域中,可设置一个堆栈区,主要用于保护和恢复CPU的工作现场。

(1)进栈指令

PUSHdirect;SP←(SP)+1;

(SP)←(direct);

(2)出栈指令

POPdirect;direct←((SP));

SP←(SP)-1;

二、算术运算类指令

注意大部分指令的执行结果将影响程序状态字PSW的有关标志位。

如果把参加运算的两个操作数看作是无符号数(0~255),加法运算对CY标志位的影响如下:

(1)若结果的第7位向前有进位(C7’=1),CY=1

(2)若结果的第7位向前无进位(C7’=0),CY=0

【例2-3】设有两个无符号数放在A和R2中,设(A)=0C6H(198),(R2)=68H(104),

执行指令:

ADDA,R2

试分析运算结果及对标志位的影响。

解:

写成竖式

(A)11000110198

(R2)+01101000+104

(A)100101110302

结果是:

(A)=2EH,CY=1。

【例2-4】设有两个16位无符号数,被加数存放在内部RAM的30H(低位字节)和31H(高位字节)中,加数存放在40H(低位字节)和41H(高位字节)中。

试写出求两数之和,并把结果存放在30H和31H单元中的程序。

参考程序为:

MOVR0,#30H;地址指针R0赋值

MOVR1,#40H;地址指针R1赋值

MOVA,@R0;被加数的低8位送A

ADDA,@R1;被加数与加数的低8位相加,和送A,并影响CY标志

MOV@R0,A;和的低8位存30H单元

INCR0;修改地址指针R0

INCR1;修改地址指针R1

MOVA,@R0;被加数的高8位送A

ADDCA,@R1;被加数和加数的高8位与CY相加,和送A

MOV@R0,A;和的高8位存31H单元

(二)减法指令

1、带借位减法指令

该组指令的功能是从累加器A减去源操作数及标志位CY,其结果再送累加器A。

CY位在减法运算中是作借位标志。

SUBB指令对标志位的影响如下:

(1)若第7位向前有借位(C7’=1),则CY=1;

(2)若第7位向前无借位(C7’=0),则CY=0,

【例2-5】在A和R3中存有两个无符号数,设(A)=98H,(R3)=6AH,CY=1,执行指令:

SUBBA,R3

分析执行结果及对标志位的影响

解:

(A)1001100098H

(R3)–011010106AH

CY–1–1

(A)001011012DH

结果是:

(A)=2DH,CY=0

2、减1指令

指令操作机器码

DECA;A←(A)-100010100

DECRn;Rn←(Rn)-100011rrr

DECdirect;direct←(direct)-100010101direct

DEC@Ri;(Ri)←((Ri))-10001011i

(四)乘法指令

指令操作机器码

MULAB;BA←(A)Х(B)10100100

指令的功能是把累加器A和寄存器B中两个8位无符号整数相乘,并把乘积的高8位存于寄存器B中,低8位存于累加器A中。

乘法运算指令执行时会对标志位产生影响:

CY标志总是被清0,即CY=0;OV标志则反映乘积的位数,若OV=1,表示乘积为16位数;若OV=0,表示乘积为8位数。

(五)除法指令

指令操作机器码

DIVAB;A商,B余←(A)÷(B)10000100

指令的功能是把累加器A和寄存器B中的两个8位无符号整数相除,所得商的整数部分存于累加器A中,余数存于B中。

除法指令执行过程对标志位的影响:

CY位总是被清0,OV标志位的状态反映寄存器B中的除数情况,若除数为0,则OV=1,表示本次运算无意义,否则,OV=0。

三、逻辑运算类指令

在MCS—51指令系统中,逻辑运算类指令有25条,可实现与、或、异或等逻辑运算操作。

这类指令有可能会影响CY和P标志位的状态。

(一)累加器A的逻辑操作指令

1、累加器A清0

CLRA;A←00H

2、累加器A取反

CPLA;A←(

3、累加器A循环左移

RLA

利用左移指令,可实现对A中的无符号数乘2的目的。

4、累加器A带进位循环左移

RLCA

 

7、累加器A半字节交换

SWAPA

(二)逻辑指令

【例2-10】将工作寄存器R2中数据的高4位和R3中的低4位拼成一个数,并将该数存入30H。

MOVRO,#30H;R0作地址指针

MOVA,R2

ANLA,#OFOH;屏蔽低4位

MOVB,A;中间结果存B寄存器

MOVA,R3

ANLA,#OFH;屏蔽高4位

ORLA,B;组合数据

MOV@RO,A;结果存30H单元。

【例2-11】分析下列程序的执行结果。

MOVA,#77H;(A)=77H

XRLA,#0FFH;(A)=77H⊕FFH=88H

ANLA,#0FH;(A)=88H∧0FH=08H

MOVP1,#64H;(P1)=64H

ANLP1,#0F0H;(P1)=64H∧F0H=60H

ORLA,P1;(A)=08H∨60H=68H

 

指令系统简介

讲解

板书

 

板书

 

举例讲解

 

举例

 

讲解

 

讲解

 

讲解

 

举例

 

讲解

 

举例

 

讲解

 

举例

 

 

 

授课教师

常州轻工职业技术学院

单片机原理及应用课程授课教案NO4

授课日期

授课班级

课题

指令系统

授课类型

讲授

授课时数

教学

目的

(1)了解指令系统的概述

(2)熟悉寻址方式(3)掌握MCS-51系列单片机指令

重点

难点

寻址方式、MCS-51系列单片机指令

寻址方式

教具

挂图

多媒体课件

教学

过程分配

主要教学内容

教学方法

的运用

10分钟

 

15分钟

 

20分钟

 

10分钟

 

5分钟

 

10分钟

 

10分钟

 

10分钟

 

四、控制转移类指令

转移指令的功能是通过修改程序计数器PC的值,使程序执行的顺序发生变化,从而改变程序执行的方向。

1.无条件转移指令

无条件转移指令是使程序无条件转移到指定的地址去执行。

LJMPaddr16;PC←addr1600000010a15~a8a7~a0

AJMPaddr11;PC←(PC)+2a10a9a800001a7~a0

PC10~0←addr11

SJMPrel;PC←(PC)+2+rel10000000rel

JMP@A+DPTR;PC←(A)+(DPTR)01110011

2.条件转移指令

条件转移指令要求对某一特定条件进行判断,当满足给定的条件,程序就转移到目标地址去执行,条件不满足则顺序执行下一条指令。

可用于实现分支结构的程序。

这类指令中操作数都为相对寻址方式,目标地址的形成与SJMP指令相类似。

当满足转移范围的条件下,均可用“addr16”代替“rel”。

【例2-17】将片内RAM的40H单元开始的数据块传送到片外RAM的1000H开始的单元中,当遇到传送的数据为零则停止传送。

START:

MOVR0,#40H;片内RAM数据块首址

MOVDPTR,#1000H;片外RAM数据块首址

LOOP:

MOVA,@R0;取数

JZABD;等于零,结束

MOVX@DPTR,A;不为零,送数

INCR0;地址指针加1

INCDPTR;地址指针加1

SJMPLOOP;转LOOP,继续取数

ABD:

SJMPABD;踏步

2、比较转移指令

【例2-13】当Pl口输入数据为55H时,程序继续运行,若不为55H则程序进入等待状态。

程序如下:

WAIT:

MOVA,P1;A←(P1)

CJNEA,#55H,WAIT;(A)≠55H,转向WAIT;(A)=55H,则顺序执行

……

【例2-17】某温度控制系统中,温度的测量值T存在累加器A,温度的给定值Tg存在60H单元。

要求:

T=Tg时,程序返回(符号地址为FH);

T>Tg时,程序转向降温处理程序(符号地址为JW);

T<Tg时,程序转向升温处理程序(符号地址为SW),试编制程序。

相应的程序如下:

CJNEA,60H,L00P;T≠Tg,转向L00P

AJMPFH;T=Tg,转向FH

LOOP:

JCSW;T

AJMPJW;T>Tg,转向JW

3、循环转移指令

【例2-15】将片内RAM的30H~39H单元置初值00H~09H。

MOVR0,#30H;设定地址指针

MOVR2,#0AH;数据区长度设定

MOVA,#00H;初值装入A

LOOP:

MOV@R0,A;送数

INCR0;修改地址指针

INCA;修改待传送的数据

DJNZR2,LOOP;未送完,转LOOP地址继续送,否则传送结束

HERE:

SJMPHERE;踏步

(三)子程序调用和返回指令

1、调用指令

LCALLaddr16;addr16:

子程序入口地址

ACALLaddr11

RET;从子程序返回到主程序的断点地址。

RETI;从中断服务程序返回到主程序的断点地址。

NOP;PC←(PC)+100000000

空操作指令是单字节指令。

该指令执行时不进行任何有效的操作,但需要消耗一个机器周期的时间,所以在程序设计中可用于短暂的延时。

五、位操作指令

在MCS-51存储器中有两个可位寻址的区域,可利用位操作指令对这些位进行单独的操作。

存储器中的两个位寻址区的分布是:

(1)片内RAM的20H~2FH区域;

(2)特殊功能寄存器中地址可被8整除的单元。

位操作指令中,bit是位变量的位地址,可使用四种不同的表示方法,下面以CY位为例进行说明。

(1)位地址(如:

D7H)

(2)位定义名(如:

CY)

(3)寄存器名.位(如:

PSW.7)

注意:

累加器必须表示成:

ACC.0~ACC.7。

(4)字节地址.位(如:

D0H.7)

标志位CY在位操作指令中称作位累加器,用符号C表示。

1.位传送指令

MOVC,bit;CY←(bit)

MOVbit,C ;bit←(CY)

2.置位和清零指令

CLRC;CY←0

CLRbit;bit←0

SETBC;CY←1

SETBbit;bit←1

【例2-15】SETBRS1

CLRRS0;设定工作寄存器2区为当前工作区

3.位逻辑运算指令

ANLC,bit;CY←(CY)∧(bit)

ANLC,/bit;CY←(CY)∧(

ORLC,bit;CY←(CY)∨(bit)

ORLC,/bit;CY←(CY)∨(

CPLC;CY←(

CPLbit;bit←(

【例2-17】用编程的方法实现图2-2所示电路的功能。

 

程序清单:

   MOVC,P1.1

     ORLC,P1.2

     ANLC,P1.0

     MOVP1.3,C

 

简单讲解

 

板书

 

举例

 

举例

 

讲解

 

讲解

 

讲解

 

讲解

 

举例讲解

 

 

授课教师

常州轻工职业技术学院

单片机原理及应用课程授课教案NO__5_

授课日期

授课班级

课题

实验一:

单片机认识实验

授课类型

讲授

课时数

2

教学

目的

1、掌握WAVE6000软件的使用

2、熟悉MCS-51系列单片机的指令系统。

重点

难点

传送及算术指令的功能、用途

进一步理解寻址方式

教具

挂图

 

教学过程

时间分配

教学方法的应用

10分钟

10分钟

准备工作检查和明确实验要求

一、实验目的:

1、掌握WAVE6000软件的使用

2、熟悉MCS-51系列单片机的指令系统。

二、实验仪器:

PC机(WAVE6000软件)

三、实验内容:

在PC机上使用WAVE6000软件,分别输入下面两段程序并调试执行

程序1MOV30H,#40H

MOVR0,#30H

MOVA,@R0

MOVR1,A

MOVDPTR,#1000H

MOVX@DPTR,A

程序2

MOVA,60H

XCHA,70H

MOV60H,A

讲解

 

20分钟

四、实验说明

(一)WAVE6000软件菜单命令说明(MCS-51系统)

1.FILE菜单(ALT-F)[文件]

File\Open(F3)[打开文件…]

打开一个编辑窗口,出现对话框,如图2.3.5所示,在输入框中输入要打开的文件名,或在列表框找到该文件后按下鼠标按钮,单击OK按钮表示打开一个新的编辑窗口;单击Replace按钮表示替代当前编辑窗口中的内容。

File\Save(F2)[存盘]

将当前编辑窗口中的文件存到磁盘上。

File\Saveas[换名存盘]

更换文件名后再存盘。

File\LoadOBJas[调入机器码]

将目标代码从磁盘上调入,操作与File\SaveOBJas相仿。

2.Edit(ALT-E)[编辑]

Edit\Cut[剪切]

删除程序中选定的正文,并将其置于裁剪板ClipBoard窗口中。

Edit\Copy[复制]

保留选定的正文,同时将它拷贝到ClipBoard窗口中,再用地Edit\Paste条命令将裁剪板中的内容复制在光标处。

Edit\Paste[粘贴]

将裁剪板中的内容插入到当前窗口的光标位置,裁剪板中的内容不变。

利用裁剪板和本命令可实现文本块的移动和复制。

Edit\Clear[删除]

删除程序中选定的正文,但不将其置于裁剪板中。

3.Run菜单(ALT-R)[运行程序]

Run\Programreset(CTRL-F2)[程序复位]

中止当前调试过程,将CPU复位。

如果是用Run\Run调试程序,则要用Ctrl+C,来中止正在运行的程序。

Run\Gotocursor(F4)[执行到光标处]

程序从当前指针PC一直执行到光标所在的位置。

如果光标所在的行不包含可执行语句,将显示警告信息:

‘Nocodegenerateonthisline’。

Run\Traceinto(F7)[跟踪执行]

跟踪执行程序。

由用户控制一步一步地执行程序,碰到过程调用时仍将一步一步地执行程序中的每条语句,而不是一步执行完整个过程。

Run\Stepover(F8)[单步执行]

单步执行程序与跟踪执行相仿,不同的是当碰到过程调用时,一步执行完整个过程。

Run\Exec[自动单步执行]

放慢程序执行的速度,以用户可以查看的速度一步一步的自动执行程序。

 

讲解

 

40分钟

 

10分钟

Run\Run(CTRL-F9)[全速执行]

从当前PC处,全速执行程序。

Run\SetPC[设置PC]

将程序PC值,设置为光标所在的行的PC值。

4.Assemble[汇编]

Assemble\Assemble(ALT-F9)[汇编]

汇编当前窗口中的文件。

Assemble\Make(F9)[汇编主文件]

如果用户程序是由多个文件构成,其中有一个应为主文件,由它用INCLUDE伪指令引用其他的文件。

按F9后,不论当前窗口是否为主文件,汇编总从主文件开始.主文件由Option\MainFile命令设定。

Assemble\List[生成列表文件]

汇编源程序并生成列表文件,后缀为.LST。

列表文件是一种同时包含有源程序、地址码、机器码的文件,对于调测,尤其是仿真器独立调测是必不可少的。

Assemble\Disassemble[反汇编]

打开一个对话框,在FileName中填入文件名,在Startaddress,EndAddress中填入始末地址,按ENTER键开始反汇编。

反汇编生成两种格式的文件:

WithLabel:

带标号反汇编,缺省文件扩展名为.ASM。

Withaddress:

带地址,机器码反汇编,缺省文件扩展名为.DIS。

(二)软件使用方法及步骤

1.新建文件(*.ASM)

2.设置仿真器类型,仿真头类型,CPU类型.

3.输入(或调入)汇编语言源文件.

4.编译(或汇编)源文件

集成环境首先对源程序进行汇编,若发现错误,立即返回编辑状态,并打开一个错误信息窗口,用户可按提示修改源程序,若无错误则返回编辑窗口等待调试。

5.单步或全速调试程序

6.检查运行结果

五、实验步骤

1、启动WAVE6000软件

2、输入练习程序

3、保存程序

4、汇编源程序

5、程序执行前的检查

6、运行,调试程序

单步法运行程序

断点法运行程序

连续法运行程序

8、检查运行结果

 

六、实验结果

程序1

地址

运行前内容

运行后内容

30H

1000H

程序2

地址

运行前内容

运行后内容

60H

70H

授课教师

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1