单片机教案设计第二学期.docx
- 文档编号:24090892
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:25
- 大小:253.13KB
单片机教案设计第二学期.docx
《单片机教案设计第二学期.docx》由会员分享,可在线阅读,更多相关《单片机教案设计第二学期.docx(25页珍藏版)》请在冰豆网上搜索。
单片机教案设计第二学期
DP801单片机教学活动
校本课程(2011——2012第二学期)
海淀区第二实验小学
2012.3
第一课重复与调用
活动:
让0号灯闪5次。
方法一:
15
这种方法简单,但使得程序冗长,浪费时间。
如果闪的次数更多,实现起来困难。
方法二:
用调用子程序的方法(33)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
调用
12
00~99(地址)
DY
N
返回
13
---
FH
调用指令功能:
用于调用子程序。
把程序中需要多次重复的一段程序作为子程序,需要的时候只要用调用指令就可以了。
返回指令功能:
由子程序返回到主程序中调用指令的下一条去执行。
是子程序结束的标志。
将方法一中需要重复的程序(0号灯闪1次)作为子程序,写在主程序的后面,在主程序中连续调用5次,即可以实现让0号灯闪5次的效果,大大简化了程序。
如下图所示:
主程序一定从起始单元地址输入,然后再输入子程序。
主程序与子程序之间可以空若干个单元,主程序以15为结束标志,子程序以13为结束标志。
这种方法可以大大简化程序。
【练习】
1.让4号灯闪5次。
2.让2号灯与3号灯交替闪4次。
3.让6个发光二极管由前向后,再由后向前来回跑3次。
4.顺序点亮0至5号发光二极管,再逆序关闭这6个发光二极管,循环6次。
第二课多子程序调用
活动:
让0号灯闪3次,然后1号灯闪3次,再让2号灯闪3次。
当程序中出现多个子程序时,主程序从起始单元地址输入,然后输入子程序,多个子程序之间没有先后次序,执行的顺序由主程序来决定,每个子程序都以13为结束标志。
【练习】
1.让0号灯闪1次,让1号闪2次,让2号闪3次,让3号闪4次,让4号闪5次,让5号闪6次。
2.让0、3号灯交替闪3次,然后1、4号交替闪3次,再2、5号交替闪3次,大循环。
第三课数码管的显示
1.显示指令(55)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
显示
05
00~01
XS
N
显示指令功能:
可以开关数码管。
N为00表示关闭;N为01表示打开。
当执行关数码管指令后,尽管看不到,但送给数码管的数都是有效的,当再执行开数码管指令后,数码管显示最后一次送给它的数。
这条指令是为了节省电源而设置的。
【例1】关闭数码管5秒钟。
0.0.0500
020501
15
【例2】让数码管亮5秒钟,灭5秒钟,循环3次。
0.0.1210
1210
1210
15
1.0.0501
020501
0500
020501
13
试一试:
例1与例2中,用奏乐指令来代替延时可以吗?
(不可以)
【例3】将0号灯点亮5秒钟,同时关闭数码管。
0.0.0500
0000
020501
15
试一试:
此例题用奏乐指令来代替延时可以吗?
(可以)说明,奏乐指令不能直接与显示指令搭配使用。
2.送数指令(44)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
送数
04
00~99
SS
N
送数指令功能:
将数送到数码管上显示。
在DP—801单片机中,只有一个存放数据的单元,就是数码管,因此所有数的操作都是对数码管进行的。
【例4】将30送到数码管上显示5秒钟。
0.0.0430
020501
15
问题1:
执行此程序后,数码管上不显示30,而是显示时间倒计时。
因为延时指令有占用数码管的优先权,此时要想达到延时的效果,只能用奏乐指令。
【例5】将30送到数码管上显示5秒钟后,关闭数码管。
0.0.0430
030009
0.5.0500
030009
1005
15
问题2:
数码管一直显示30,不执行关闭数码管指令,显然此时用奏乐指令不行,还得用延时指令。
0.0.0430
030009
0.5.0500
020501
1005
15
结论:
通过此例题说明,当使用送数指令时,不能用延时指令,因为数码管会被占用进行倒计时,此时需要用奏乐指令来延时。
【练习】
1.设计一个十进制和四位二进制对照程序,数码管上显示十进制数,用0、1、2、3这四个灯表示二进制数,灯亮表示“1”,灯灭表示“0”。
十进制数
二进制数
00
0000
01
0001
02
0010
03
0011
04
0100
05
0101
06
0110
07
0111
08
1000
09
1001
10
1010
11
1011
12
1100
13
1101
14
1110
15
1111
2.让0号灯亮0.4秒,然后让1号灯亮0.6秒,最后让2号灯亮0.8秒,循环,在程序运行过程中数码管一直处于关闭状态。
3.让6个发光二极管从前向后,再从后向前循环跑,延时0.2秒,在程序运行过程中数码管一直处于关闭状态。
第四课单片机变成计算器
1.加数指令(45)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
加数
06
00~99
JS
N
加数指令功能:
将数码管上的数当成被加数,N为加数,相加的结果送数码管显示。
【例1】计算33+56=?
,结果显示6.4秒。
0.0.0433
0656
030009
15
【例2】计算23+36+19=?
,结果显示4秒。
0.0.0423
0636
0619
030005
030008
15
当用奏乐指令代替延时指令时,注意时间的表示
代码
时间
00
0.1秒
01
0.2秒
02
0.3秒
03
0.4秒
04
0.6秒
05
0.8秒
06
1.6秒
07
2.4秒
08
3.2秒
09
6.4秒
如延时4秒,可以用两条奏乐指令拼凑时间:
030005
030008
【例3】制作一个计数器,让它从0开始每次增加1,延时1秒。
0.0.0400
030003
030004
0601
1002
15
试一试:
如果和超过了99,会出现什么情况?
当超过99时,高位数码管采用十六进制表示,能表示的最大的数为F9(159)。
【例4】制作一个计数器,让它显示0号灯闪的次数。
0.0.0400
0601
0000
030002
0100
030002
1002
15
2.减数指令(52)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
减数
07
00~99
JIS
N
减数指令功能:
将数码管上的数当成被减数,N为减数,相减的结果送数码管显示。
【例5】计算56-30=?
,结果显示3秒。
0.0.0456
0730
030004
030007
15
【例6】计算56-30+19=?
,结果显示6.4秒。
0.0.0456
0730
0619
030009
15
【例7】制作一个计数器,让它从99开始每次减1,延时0.8秒。
0.0.0499
030005
0701
1002
15
【练习】
1.让6个发光二极管同时闪,利用数码管计闪的次数。
2.让发光二极管从5跑到0号,边跑边奏乐,从中音6到中音1,同时数码管上显示相应的音符。
3.让0号与3号发光二极管交替闪,在数码管上显示相应的发光二极管的代码。
如亮0号灯就显示00,亮3号灯就显示03,循环5次。
4.让6个发光二极管循环跑起来(从0跑到5,再跑回0),在数码管上显示相应的发光二极管的代码。
如亮0号灯就显示00,亮1号灯显示01……。
循环3次。
5.让发光二极管从0跑到5号,边跑边奏乐,从中音1到中音6,奏中音7时,关闭所有发光二极管,奏高音1时,点亮所有发光二极管;再奏中音7,关闭所有发光二极管,再让发光二极管从5跑到0号,从中音6到中音1,同时数码管上显示相应的音符,如奏中音1就显示01。
6.顺序点亮0至5号发光二极管,再逆序关闭这6个发光二极管,同时数码管上显示相应的发光二极管的代码,如亮0号灯就显示00,亮1号灯就显示01,循环。
第五课数相等转指令
1.(51)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
数相等转
11
(00~99)(00~99)
SDZ
NM
数相等转指令功能:
比较数码管上的数与N是否相等,若相等,则转到地址M去执行指令,否则执行下一条指令。
【例1】让5号发光二极管闪10次,利用数码管计数。
流程图
Y
N
【例2】让2号与3号发光二极管交替闪90次,且用数码管计数。
【练习】
1.顺序点亮0至5号发光二极管,再逆序关闭这6个发光二极管,循环20次,数码管计数。
2.让6个发光二极管从前向后,再从后向前循环跑25次,数码管计数。
3.0、1与5、4交替闪,1、2与3、4交替闪,循环10次,用数码管计数。
4.0、5号交替闪,1、4号交替闪,2、3号交替闪,循环16次,数码管计循环的次数,循环结束后数码管一直处于关闭状态。
5.0、5号同闪,1、4号同闪,2、3号同闪,0、5号同闪,1、4号同闪,循环13次,数码管计循环的次数,循环结束后数码管一直处于关闭状态。
6.让0号灯与5号灯交替闪3次,在数码管上显示相应的发光二极管的代码。
如亮0号灯就显示00,亮5号灯就显示05,循环5次。
7.让0、3号灯交替闪3次,然后1、4号交替闪3次,再2、5号交替闪3次,同时数码管上显示相应的发光二极管的代码,循环3次。
第六课奏乐指令
1.奏乐指令(24)
指令名称
机器码
助记符
操作码
操作数
操作码
操作数
奏乐
03
音高音长
ZY
NM
奏乐指令功能:
从喇叭插座上输出音频信号,能演奏3组音程,N为音高,即:
低音01——07
中音11——17
高音21——27
休止符00
M为音长
006十六分音符100毫秒=0.1秒
016八分音符200毫秒=0.2秒
026.八分符点音符300毫秒=0.3秒
036四分音符400毫秒=0.4秒
046.四分符点音符600毫秒=0.6秒
056-二分音符800毫秒=0.8秒
066---全音符1.6秒
072.4秒
083.2秒
096.4秒
10长期发音
11停止发音
【练习】
1.1155665|4433221|
2.333|333|35123-|444.4|433|55421-|
3.25同时0号灯闪,模仿救护车警笛声。
.
4.356–0|352–0|3561-|65–|132-|235–0|
236–0|612–3-|21651-|
演奏1个音的时间内,1个灯完成闪的动作。
0000
031100
0311010100
031100
第七课奏乐与闪灯
【练习】用奏乐指令延时,发音配合灯闪。
1.0、1同闪→1、2同闪→2、3同闪→3、4同闪→4、5同闪→3、4同闪→2、3同闪→1、2同闪→0、1同闪,循环3次。
2.0、1、2同闪→1、2、3同闪→2、3、4同闪→3、4、5同闪→2、3、4同闪→1、2、3同闪→0、1、2同闪,循环3次。
3.2、5同闪→1、4同闪→0、3同闪→1、4同闪→2、5同闪,循环4次。
4.0、1、2依次闪,5、4、3依次闪,交替闪5次。
5.0、1与5、4交替闪,1、2与3、4交替闪,循环10次,用数码管计数。
6.0、3交替闪→1、4交替闪→2、5交替闪→1、4交替闪→0、3交替闪,循环30次,数码管计数,然后6个发光二极管同闪10次,计数。
7.0、1、2依次闪,5、4、3依次闪,循环10次,计数,然后0至5至0依次闪,循环20次,计数。
第八课加数指令综合练习
【例1】画流程图,判断5号灯闪的次数。
①0.0.0400
0.2.0601
0005
030002
0105
030002
1120M
1002
M:
15
②0.0.0401
0.2.0005
030002
0105
030002
0601
1120M
1002
M:
15
③0.0.0401
0.2.1120M
0005
030002
0105
030002
0601
1002
M:
15
④0.0.0400
0.2.0601
1120M
0005
030002
0105
030002
1002
M:
15
结论:
通过这四段程序,我们会发现后三种程序都少执行了一次闪的动作。
因为执行加数指令之后,就直接进行判断,当数码管上显示20时,直接跳出循环,没有再执行闪的动作。
【例2】0号灯闪2次的时间内,1号灯闪6次,循环10次,数码管计数。
分析:
1.此题可以用数相等转与子程序的调用配合完成。
2.0号灯闪2次的时间内,1号灯闪6次,可以看成0号灯闪1次的时间内,1号灯闪3次,重复执行两次。
因此可以把它作为子程序。
3.主程序则用数相等转指令来完成循环10次,计数,循环的内容为两次调用子程序,流程图如下:
0.0.0400
0.2.0601
12M
12M
1110N
1002
N:
15
M:
0000
……
13
4.在子程序中要实现0号灯闪1次的时间内,1号灯闪3次的任务,就要掌握时间的分配。
分配的方法有多种,如下图所示:
分配方案一:
0号灯亮时,1号灯闪1次,0号灯灭时,1号灯闪2次。
分配方案二:
0号灯亮时,1号灯闪2次,0号灯灭时,1号灯闪1次。
分配方案三:
0号灯亮时,1号灯闪1次半,0号灯灭时,1号灯闪1次半。
【例2】让0号、3号灯同闪3次,1号、4号灯同闪4次,2号、5号灯同闪5次,循环。
【练习】
1.数码管从00开始计数,每次增加1,延时1秒,到60后再递减,每次减1到00,循环。
2.0、3号同闪3次,1、4号同闪3次,2、5号同闪3次,循环20次,数码管计循环的次数,循环结束后数码管一直处于关闭状态。
3.0、1同闪→1、2同闪→2、3同闪→3、4同闪→4、5同闪→3、4同闪→2、3同闪→1、2同闪→0、1同闪,循环15次,数码管计循环的次数,循环结束后数码管一直处于关闭状态。
第九课综合练习
1.0、3交替闪→1、4交替闪→2、5交替闪→1、4交替闪→0、3交替闪,循环30次,数码管计数,然后6个发光二极管同闪10次,数码管计数。
2.0、1、2依次闪,5、4、3依次闪,循环10次,数码管计数,然后0至5至0依次闪,循环20次,数码管计数。
3.0、1、2同闪→1、2、3同闪→2、3、4同闪→3、4、5同闪→2、3、4同闪→1、2、3同闪→0、1、2同闪,循环8次,数码管计循环的次数,循环结束后数码管一直处于关闭状态。
4.让发光二极管按0-5-4-1-2-3-4-1-0-5的顺序跑,同时数码管上显示相应的发光二极管的代码,循环3次。
5.让发光二极管按2-3-4-1-0-5-4-1-2-3的顺序跑,循环3次,在程序运行过程中数码管一直处于关闭状态。
6.让0号灯闪3次,然后从0跑到5,再让5号灯闪3次,再从5跑到0,同时数码管上显示相应的发光二极管的代码,循环3次后数码管一直处于关闭状态。
7.2、3号交替闪,1、4号交替闪,0、5号交替闪,循环3次后数码管一直处于关闭状态。
8.2、5同闪→1、4同闪→0、3同闪→1、4同闪→2、5同闪,循环4次,奏乐,同时数码管上显示演奏的音符。
9.0、1、2依次闪,5、4、3依次闪,两组交替闪5次,奏乐,同时数码管上显示演奏的音符。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 教案设计 第二 学期