51单片机汇编语言教案单片机备课本中职篇.docx
- 文档编号:10609225
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:113
- 大小:2.14MB
51单片机汇编语言教案单片机备课本中职篇.docx
《51单片机汇编语言教案单片机备课本中职篇.docx》由会员分享,可在线阅读,更多相关《51单片机汇编语言教案单片机备课本中职篇.docx(113页珍藏版)》请在冰豆网上搜索。
51单片机汇编语言教案单片机备课本中职篇
第八九课时
教学内容
I/O口的简单应用——循环彩灯
教学重难点
1.1、I/O作为一般的输入输出口时,有何要求?
2、发光二极管工作参数
〖新课内容:
〗
一、循环彩灯硬件电路
在最小硬件系统基础上,用P1口作输出,用低电平驱动LED发光管,LED发光条件是:
电压1.8V左右,电流8~10mA。
为满足要求,电路中串接限流电阻,经计算取360Ω。
电路如图所示。
二、软件设计
软件设计是在最小软件系统基础上,根据所要求的显示方式,用位操作指令CLRP1.X/SETBP1.X,对某位口操作,也可用数据传送指令MOVP1,#DATA,对多位口同时操作。
如:
设计一个由8个小灯构成的循环彩灯,要求8个小灯依次亮灭,然后重复循环
程序为:
ORG0000H
LJMPSETUP
ORG0030H
SETUP:
CLRP1.0
SETBP1.0
CLRP1.1
SETBP1.1
CLRP1.2
SETBP1.2
CLRP1.3
SETBP1.3
………
SETBP1.7
LJMPSETUP
END
DELAY:
MOVR2,#80H
DEL1:
MOVR3,#0FFH
DEL2:
DJNZR3,DEL2
DJNZR2,DEL1
RET
三、引出指令
1、NOP空操作指令
2、循环转移指令
DJNZRn,rel;先执行RnRn-1,然后判断,若Rn=0,则程序顺序执行,
否则就转移,转移到rel处,转移范围为-128B~+127B。
DJNZdirect,rel;同上面类似。
1、用和返回指令
LCALLaddr16;长调用指令,调用子程序,子程序可在64KB空间内任意
位置,同LJMP指令。
ACALLaddr11;断调用指令,调用子程序,同LJMP指令。
RET;调用返回指令,子程序结束后,执行该指令程序将返回到调用子程
序处继续向下执行。
上面的程序也可写成:
ORG0000H
LJMPSETUP
ORG0030H
SETUP:
CLRP1.0
LCALLDELAY
SETBP1.0
CLRP1.1
LCALLDELAY
SETBP1.1
CLRP1.2
SETBP1.2
CLRP1.3
SETBP1.3
………
SETBP1.7
LJMPSETUP
DELAY:
MOVR2,#80H
DEL1:
MOVR3,#0FFH
DEL2:
DJNZR3,DEL2
DJNZR2,DEL1
RET
END
注意:
书写子程序时的注意事项
1、书写子程序一定要有名称(标号)
2、书写子程序一定要有RET返回指令
3、参数的传递
4、子程序和主程序间的关系如下图所示:
我们到上面的一段程序输入到wave仿真环境中,然后通过在线编程,把程序下载到单片机中,看实验箱上的小灯是否按照编写的程序亮灭的,也可以先通过软件仿真结果,也能判断正确与否,
执行上面的程序我们可以看出来有P1口控制的8个小灯当中,低四个先亮,亮一段时间后再灭掉,接着高个小灯再亮,亮一会,再灭,重复循环。
作业题:
在循环彩灯硬件电路的基础上,设计一个循环彩灯程序,使小灯依次点亮后熄灭,再从头开始,重复8次
反思:
本堂课内容比较有趣味性,同学们学起来感觉比较得心应手,希望以后在没有趣味的课程中也能体现出今天的这种势头。
第十课时
教学内容
LED数码管及其显示方式
教学重难点
1.了解数码管的分类与显示原理。
2.数码管电路的连接。
3.如何设置与排列数码管的显示数据,
教学过程
一、LED数码管
1.外型和引脚
LED数码管如上图所示。
正面为一个矩形,上面有七个笔画组成的8和圆点表示的小数点,共计8个,分别用a、b、c、d、e、f、g、dp代表各个笔画的名称,故又称为8“段”数码管,每一个段内部都有一个LED发光管和他们对应。
上下两头各有5个引脚。
其中有8个引脚分别和a、b、c、d、e、f、g、dp对应,两头中间引脚内部是相连的,接的是8个LED的公共端(Commonality)(即数码管的“位”),用COM表示。
2.内部结构
内部结构分为共阳型和共阴型,如上面图所示。
3.LED数码管的编码(Code)方式
从LED的内部结构看,要点亮它,跟我们前面讲的8个循环彩灯相似,8个小灯亮的方式不同,在数码管上显示不同的字符。
一般用8位二进制数代表每个段。
A为低位,Dp为高位,即:
D7D6D5D4D3D2D1D0
dp
g
f
e
d
c
b
a
如要显示0,就须把对应的a、b、c、d、e、f段的LED点亮,如果用正逻辑表示,即1亮0灭,显示0要求段的数据为3FH,同样显示其他字符也有对应数据表示。
也就是显示字符的编码。
下面为数码管的正逻辑编码:
0:
3FH;1:
06H;2:
5BH;3:
4FH;4:
66H;5:
6DH;6:
7DH
7:
07H;8:
7FH;9:
6FH。
注意:
共阴型数码管于正逻辑编码方式一致,共阳型数码管恰好相反。
二、LED数码管静态显示方式
LED数码管显示电路在单片机系统中分为静态(StaticStage)显示和动态(DynamicStage)显示。
1.特点:
(1)静态显示时数码管的段需要一个8位I/O口控制。
(2)数码管的位:
接“电源”或接“地”
(3)静态显示方式,编程简单,但占用的I/O口线较多,
(4)一般适用显示位数较少的场合。
下面是其应用的例子:
2.硬件电路(共阳型)
P1口的数码管是完整电路,其余口为示意电路。
显示程序(在四个数码管上分别显示0、1、2、3)
ORG0000H
LJMPSETUP
ORG0030H
SETUP:
MOVA,#3FH
CPLA
MOVP1,A
MOVA,#06H
CPLA
MOVP3,A
MOVA,#5BH
CPLA
MOVP0,A
MOVA,#4FH
CPLA
MOVP2,A
SJMPSETUP
END
程序执行到这里,在P1口控制的数码管上显示“0”,继续往下执行,会在P3,P0,P2口上分别显示“1”,“2”,“3”,通过在线编程,把这段程序下载到单片机上,运行会在4个数码管上显示0,1,2,3
三、LED数码管动态显示方式
1.特点:
(1)将所有数码管的所有相同的段连接在一起,8个段共8组,由一个8位的I/O口控制。
(2)每一个数码管的公共端由一位I/O口控制。
通过分时向段送数据和位控制信号,使各数码管轮流显示,这种数码管显示方式就称为动态扫描(Scan)电路。
(3)动态显示方式,编程相对复杂,但占用的I/O口线较少。
(4)一般适用显示位数较多的场合。
1.硬件电路(共阳型)
段数据由P0口输出,外接上拉电阻,位由P2.0~P2.3输出,用低电平驱动三极管,三极管输出接数码管的公共端。
作业:
假设有一数码管,他们的连接是,P1口的,P1。
7接A,依次类推,请同学们排出数码显示数据。
反思:
数码管是单片机技术中非常常见的一种显示程序设计,是其它显示程序设计的基础,学好数据管的显示后,为以后的液晶显示点阵显示打下一个好的基础,本次课程内容学生反应学起来比较吃力,可能是电子基础方面的知道忘记了。
在以后的课程中,设计得这方面的知道应该先复习一下。
第十一课时
教学内容
查表指令与程序设计
教学重难点
1.掌握查表指令的用法。
2.使用查表指令的注意事项。
教学过程
〖新课内容:
〗
LED数码管的动态显示程序,要求在数码管上显示0123
ORG0000H
LJMPSETUP
ORG0030H
SETUP:
MOVA,#3FH
CPLA
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0
MOVA,#06H
CPLA
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1
MOVA,#5BH
CPLA
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2
MOVA,#4FH
CPLA
CLRP2.3
LCALLDELAY
SETBP2.3
LJMPSETUP
DELAY:
…………
RET
END
二、引出指令
查表指令及伪指令
1.MOVCA,@A+DPTR;A------(A+DPTR)
该指令是从内部ROM中读取一个数,是当前A中的值8位和DPTR中的值16位相加得到一个16位的地址,将ROM中该地址中的数据读出送入累加器ACC。
该指令可以访问ROM中的任意一个单元。
2.MOVCA,@A+PC;A------(A+PC)
3.DB(定义字节伪指令)(D:
Define,B:
Byte)
格式:
[标号:
]DB8位二进制数表
功能:
从指定的地址单元开始,定义若干个8位内存单元的数据,数据之间用“,”隔开。
三、查表程序设计
要用到查表指令和定义的数据表格。
一般分三个步骤。
1.用DPTR作基址寄存器时
1)基址值(表格首地址)送入DPTR
2)变址值(表中要查的项与表格首地址之间的间隔字节数)送入累加器A
3)执行MOVCA,@A+DPTR;
四、查表程序设计数码管动态显示程序
上面的显示程序只能显示固定的数据,无实际意义。
下面我们利用查表指令设计一动态扫描程序。
ORG0000H
LJMPSETUP
ORG0030H
SETUP:
MOV70H,#0
MOV71H,#1
MOV72H,#2
MOV73H,#3
MAIN:
LCALLDIS
LJMPMAIN
DIS:
MOVDPTR,#TAB
MOVA,70H
MOVCA,@A+DPTR
CPLA
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0
MOVA,71H
MOVCA,@A+DPTR
CPLA
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1
MOVA,72H
MOVCA,@A+DPTR
CPLA
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2
MOVA,73H
MOVCA,@A+DPTR
CPLA
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DELAY:
MOVR2,#80H
DEL:
DJNZR2,DEL
RET
END
例:
用查表法求y=x2,设原变量x值在R0中,x取值范围为0~9,求得结果存放在R1中。
程序如下:
AA:
MOVA,R0
MOVA,@A+DPTR
MOVR1,A
RET
TAB:
DB0,1,4,9,16,25,36,49,64,81
注意:
◆表格一定要写全
◆表格中的内容之间用逗号隔开,定义表格要有规律
◆表格不能放在子程序中
表格放在子程序区,但不能放在子程序中间。
作业:
1,数码显示程序设计,书
反思:
此堂课是一门复习课,是教同学们如何用DPTR或PC与MOVC和A寄存器指令合作实现数据的读写,也称查表指令。
主要是一些常用数据要多次引用,学习比较简单,效果较好。
第十二课时
教学内容
AT89S51单片机中断系统
教学重难点
1,什么叫中断
2,51单片机的5种中断
3,中断控制的应用。
教学过程:
一、中断(Interrupt)概述
1.中断的概念
所谓中断是指CPU正在处理某件事时,外部发生了某一事件(如定时器溢出),请求(Requle)CPU迅速处理(Process),CPU暂时中断当前的工作,转入处理所发生的事件,处理完毕后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。
实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。
2.中断的调用过程
二、与中断系统有关的SFR
a)定时/计数器控制寄存器TCON(88H)
IE1
IT1
IE0
IT0
8BH
8AH
89H
88H
TCON(TimeControl)的字节地址为88H,表明该寄存器的每一位可位寻址。
其中:
IT0:
外部中断0的触发方式选择位,当IT0=0时为电平触发(LeverTriggering),IT0=1时为边沿触发(EdgeTriggering)。
IE0:
为外部中断0的标志位。
IT1:
同IT0类似。
IE1:
同IE0类似。
CPU是怎么知道中断请求的尼?
CPU会在每个机器周期的S5P2采样外部中断引脚,根据以下两种情况置中断标志:
i.当IT0=0时,CPU查到外引脚为低电平,置“1”中断标志,外引脚为高电平时清“0”中断标志。
ii.当IT0=1时,CPU是根据前后两次检查外引脚的情况判断是否有中断请求,当前一次为高,后一次为低,置“1”中断标志。
其他情况不置中断标志。
CPU响应(Respond)中断,转向执行中断服务程序时会自动由硬件清“0”中断标志。
b)中断允许控制寄存器IE(A8H)
IE的地址末位为8,说明它也可位寻址。
EA
ES
ET1
EX1
ET0
EX0
AFH
ACH
ABH
AAH
A9H
A8H
EA:
所有中断总的控制位。
(E:
EnableA:
All)
ES:
串行口中断允许位。
(E:
EnableS:
Series)
ET1:
定时/计数器1中断允许位。
EX1:
外部中断1中断允许位。
ET0:
定时/计数器0中断允许位。
EX0:
外部中断0中断允许位。
c)中断优先级控制寄存器IP(I:
Interrupt,P:
Priority)(B8H)
也可位寻址。
PS
PT1
PX1
PT0
PX0
BCH
BBH
BAH
B9H
B8H
通过对相应位设置可以改变该中断的优先级。
MCS-51中断系统只有两级优先级,在同优先级内中断的优先顺序为:
外部中断0、T0、外部中断1、T1、串行口。
低级中断可以被高级中断所打断。
MCS-51中断嵌套如下图所示:
三、中断的处理过程
中断的处理过程包括:
中断请求、中断响应、中断服务和中断返回。
1.中断请求
当某个中断源要求CPU服务时,必须发出中断请求信号。
内部中断源和外部中断源请求的方式不同。
(1)若是外部中断源,需要将请求信号加到该中断的外部引脚上,CPU会在执行指令的每个机器周期内检查外部中断引脚,有请求信号时置“1”该中断标志位。
分为两种情况。
具体上面已详细讲过。
(2)若是内部中断源,CPU内部的硬件电路会自动置位该中断标志位,具体内容我们学习定时器和串行口时再讲。
2.中断响应
有了中断请求,CPU也不一定会响应该中断,要响应中断还必须满足一定的条件。
中断响应的条件如下:
(1)该中断已“开中断”。
(2)此时CPU没有响应同级或更高级中断。
(3)当前正处在所执行指令的最后一个机器周期。
(4)正在执行的指令不是RETI或是访问IE、IP的指令。
满足上述条件CPU就会响应该中断,响应中断,在执行中断服务程序前还要执行以下几项操作:
(1)保护断点(Breakpoint)地址,将断点地址压入堆栈。
(2)撤消(Cancel)该中断源的中断请求标志(串行口除外)。
(3)关闭(Close)同级中断。
(4)将该中断源的入口地址送入PC。
执行以上几项操作后就进入执行中断服务程序。
3.中断服务
(1)保护现场(把断点地址信息压入堆栈保护)
(2)中断服务程序主体
(3)恢复现场
4.中断返回
中断服务内容完成,现场恢复,就可以回到原来被打断的地方继续运行。
这个过程通过执行RETI指令自动完成,主要做下面两项工作。
(1)恢复断点地址。
将响应中断时压入堆栈的断点地址弹出,送入PC。
(2)开放同级中断
作业:
1。
什么是中断?
2.中断服务有那些过程。
反思:
中断,在单片机技术中是非常重要的一个知识点,也是学习单片机技术的一个必需掌握的重点,本次课下来同学反应对什么是中断不懂,以后的课程中应该好好多举生活中的实例来描述中断这个词语在单片机技术中的意思。
第十三课时
教学内容:
外部中断的应用
教学重难点:
1,提供中断入口地址
2,中断的初始化(方式选择、开中断)
3,编写具体的中断服务程序。
教学过程:
一.外部中断应用的步骤:
1.硬件上要把中断请求信号加到中断引脚上。
2.软件上做三项工作
(1)提供中断入口地址
(2)中断的初始化(方式选择、开中断)
(3)编写具体的中断服务程序。
下面以一个具体的事例说明外部中断的应用。
我们以前做过的循环彩灯,现在要求通过按一个按钮,每按一次彩灯移一位。
上图为电路图。
按钮信号加到中断0的引脚P3.2,当S不按下时,P3.2引脚为高电平,按下为低电平,在按键的过程中P3.2引脚产生中断请求信号。
中断触发方式用边沿触发,程序如下:
ORG0000H
LJMPSETUP
ORG0003H
LJMPINT0P
ORG0030H
SETUP:
MOVA,#0FEH
SETBIT0
SETBEX0
SETBEA
MAIN:
SJMPMAIN
INT0P:
MOVP1,A
RLA
RETI
END
把这段程序编译之后,通过在线编程下载到单片机中,每按一下按键,彩灯会左向移动一位,通过在线编程直接演示给学生看,使学生加深对中断的理解。
作业:
1,假设用单片机统计某生产线上产品生产个数,自己设置硬件电路并设计程序完成。
反思:
在前二堂课复习了中断后,本堂课的内容是如何使用中断,同学们在对于开中断与中断程序的处理与中断入口地址有点混,下次课在复习一下应该能解决问题。
第十四课时
教学内容:
独立式键盘(Keyboard)接口电路
教学重难点:
1,掌握键盘的工作原理
2,知道键盘的常用扫描方式
3,掌握键盘编码。
教学过程:
一、概述
1、键盘作用:
在单片机系统中键盘接口是一个重要部分,键盘是人和单片机交换数据必不可少的环节,输入数据、查询结果、控制输出等。
2、键盘分类:
1)编码键盘:
如电脑键盘,编码键盘的按键产生固定的字符,是由硬件电路实现的,电路很复杂,在单片机中一般不用。
2)非编码键盘,它的按键只向单片机提供按键的状态,按键的具体功能由编程者自己定义,由程序实现。
非编码键盘根据键盘与CPU的连接方式的不同又分为独立式按键和矩阵式键盘。
3、键开关的去抖动(Quiver)问题
按键开关的闭合和松开都会产生抖动,抖动的原因是由于按键的机械触点接触不稳定造成的。
这种抖动会造成按键信号的不稳定,在处理按键功能时产生差错,因此,在实践中我们应克服按键的抖动,常用的方法有两种:
一种采用硬件去抖动电路,用双稳态电路、单稳态电路、滤波电路等。
另一种采用软件去抖动,原理是这样的,第一次检测到键按下时,调用一延时10ms程序,然后再去检测该键,确定其是否按下,按键的抖动时间一般在5~10ms之间,而人对按键的操作时间在几百ms到几秒之间。
延时10ms并不会影响对按键的判别。
二、独立式键盘接口电路
1、按键扫描的方式
1)程序扫描:
2)定时扫描:
3)中断扫描:
(建议使用)
2、独立式按键接口电路的特点
独立式按键是各按键相互独立,每个按键各占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上按键的工作状态。
他的优点是按键配置灵活,编程简单。
缺点是占用I/O口线多,适合按键数量较少的场合。
下图是一个具体的接口电路:
我们也可用中断方式来处理键盘,将上述电路改为下图,用滤波电路实现硬件去抖动
相应的中断扫描程序如下:
ORG0000H
LJMPSETUP
ORG0003H
LJMPINT0P
ORG0030H
SETUP:
SETBIT0
SETBEX0
SETBEA
MAIN:
SJMP$
INT0P:
SETBP2.4
JNBP2.4,KEY0
SETBP2.5
JNBP2.5,KEY1
SETBP2.6
JNBP2.6,KEY2
SETBP2.7
JNBP2.7,KEY2
RETI
KEY1:
。
。
。
。
。
。
RETI
KEY2:
。
。
。
。
。
。
。
RETI
KEY3:
。
。
。
。
。
。
。
。
RETI
KEY4:
。
。
。
。
。
。
。
RETI
END
同学们考虑用4个按键分别实现最后一个数码管加1、减1、四个数码管依次左移一位、四个数码管依次右移一位。
作业:
1,有一电路,P0口接了8支发光二级管,在P2.2和P2.1分别接了二个按键,当按下上一个按键时,灯亮,按另一个灯灭,试编写程序。
反思:
键盘技术是单片机中的常用人机交互接口,学好键盘技术后,有利于同学们在以后需要人机交互的程序设计中做得心应手,但是,本次课同学学习起来感觉没有办法理解去抖是什么意思。
在下次课的时候在重点复习。
第十五课时
教学内容:
行列式键盘接口电路
教学重难点:
1.行列式矩阵键盘的结构
2.行列式键盘的扫描方式
3.反线扫描法找描键盘。
教学过程:
一、行列式键盘接口电路
1、接口电路
2、工作原理
(1)将行线作为输出线,列线为输入线,在所有行线输出上0,读列线。
D7
D6
D5
D4
D3
D2
D1
D0
r7
r6
r5
r4
X
X
X
X
列线有效
行线无效
(2)将列线作为输出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 汇编语言 教案 备课 中职篇
![提示](https://static.bdocx.com/images/bang_tan.gif)