单片机应用技能实训教案项目2Word格式.docx
《单片机应用技能实训教案项目2Word格式.docx》由会员分享,可在线阅读,更多相关《单片机应用技能实训教案项目2Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
复习提问
1、MCS-51单片机由哪几部分组成?
2、MCS-51单片机有多少个I/O口引脚?
提问导思
导入
夜晚的商业街上,各种各样的广告彩灯光彩夺目,变幻无穷,非常好看。
那么功能强大的单片机是否能完成广告彩灯的控制任务呢?
本项目的任务就是制作一个用单片机控制的广告灯电路。
为完成项目制作,先进行相关基本知识的学习。
启发学习积极性
讲授新课
一、MCS-51单片机并行接口
1、P0口的结构和工作原理
P0口每一位的结构如图2-2所示,它由一个输出锁存器,上下两个三态缓冲器,一个输出驱动电路和一个输出控制电路组成。
从P0口输出数据时,CPU自动给出控制信号为“0”,控制MUX使锁存器的
与T2栅极相连,控制信号为“0”也同时封锁与门,T1截止。
当要输出的数据为“0”时,内部总线数据为“0”→锁存器的
为“1”→T2栅极为“1”→T2漏极为“0”,引脚P0.x输出为“0”,引脚上数据与内部总线数据一致。
当要输出的数据为“1”时,内部总线的数据为“1”→锁存器的
为“0”→T2栅极为“0”→T2截止,由于T1、T2都截止,所以引脚上数据变为悬浮态与内部总线数据不一致。
当外接上拉电阻(如图中虚线部分)时,引脚上数据与内部总线数据就一致了,所以,当把P0口作为输出口使用时,要外接上拉电阻。
从P0口输出数据的方法有两种,一种是执行以P0口为目的操作数的数据传送指令来实现,另一种是执行以P0口位为目的操作数的位操作指令来实现,分别举例如下。
MOVP0,#66H;
将立即数66H送到P0口
MOVP0,A;
将累加器A中的数据送到P0口
SETBP0.0;
将P0.0位置1
P0口的主要功能如下:
(1)作为通用I/O端口输出数据。
使用时注意外接上拉电阻。
该功能在前面已介绍过。
(2)作为通用I/O端口输入数据。
输入数据的路径是:
外部引脚P0.x→下三态缓冲器→内部数据总线。
在输入数据时,为避免T2对引脚数据的影响,应使T2截止,即先向锁存器写“1”。
(3)扩展外部设备时,作为低8位地址线和8位数据线分时复用。
此时,CPU自动给出控制信号为1,使MUX开关接非门与地址/数据线连接,此时引脚P0.x输出就与地址/数据线一致了。
2、P1口的结构和工作原理
P1口每一位的结构如图2-13所示,它由一个输出锁存器,两个三态缓冲器,一个输出驱动电路组成。
由P1口的结构图可以得知P1口的主要功能是:
由于P1口已有内部上拉电阻了,所以,输出数据时不必外接上拉电阻。
输入数据的路径与P0口相似。
在输入数据时,要先向锁存器写“1”。
3、P2口的结构和工作原理
P2口的位结构如图2-14所示,它由一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路组成。
MUX开关在控制信号的作用下可以分别接通锁存器输出(用于数据输入/输出)或地址线(作为系统的数据总线和高8位地址总线)。
P2口的主要功能是:
输出数据时可以不外接上拉电阻。
(3)系统扩展外部设备时,作为高8位地址总路线使用。
4、P3口的结构和工作原理
P3口的位结构如图2-15所示,它由一个输出锁存器,上下两个三态缓冲器,一个输出驱动电路和替代输入/输出电路组成。
P3口的主要功能如下:
(1)作为通用I/O接口输出数据。
由于P2口有内部上拉电阻,输出数据时可以不外接上拉电阻。
(2)作为通用I/O接口输入数据。
同样,在输入数据时,要先向锁存器写“1”。
(3)每位都有专有的第二功能(替代的输入或输出)。
当P3口各位用作替代的专用功能时,锁存器输出Q为“1”,打开与非门,使替代输出功能信号从与非门以及输出场效应管T送至端口引脚;
输入时,端口引脚信号通过缓冲器和替代输入功能端到相应的控制电路。
二、项目相关指令
1、指令格式
MCS-51单片机的汇编语言程序每行只能写一条指令,每条指令的格式如下:
标号:
操作码操作数;
注释
(1)标号:
标号是一个名字,由英文字母和数字等符号组成,用来表示某一条指令的地址。
标号位于一条指令的开始,必须由英文字母开头,冒号结束。
不必要时,标号可以省略。
(2)操作码:
操作码部分是指令或伪指令的助记符,用来表示指令的性质,指明指令的功能。
(3)操作数:
操作数给出的是参与操作的数据或这些数据的地址,它位于操作码之后,与操作码用空格分开,两个操作数之间用逗号分隔。
(4)注释:
注释部分是用来对指令或程序段的功能、性质进行说明的部分,以便于阅读和理解。
它由分号引导开头,后面可以为任意字符。
不必要时,注释部分可以省略。
2、相关指令
(1)数据传送类指令
①MOVA,#data;
A←data
②MOVRn,#data;
Rn←data
③MOVdirect,#data;
direct←data
具体使用举例如下:
MOVA,#30H;
将立即数30H送到累加器A中。
MOVR2,#36H;
将立即数36H送到工作寄存器R2中。
MOV30H,#66H;
将立即数66H送到内部数据存储器的30H单元。
④MOVdirect,A;
direct←(A)
使用举例如下:
MOV31H,A;
将A中的数据送到内部数据存储器31H单元。
将A中的数据送到特殊功能寄存器P0口。
(2)位操作类指令
①CPLbit;
bit←(
)
bit是位的地址,可用位的名称来代替,如P0.0、P0.1。
举例:
CPLP0.0;
将P0.0取反。
(3)控制转移类指令
①LJMPaddr16;
PC←addr16
该指令是无条件长转移指令。
addr16是16位程序存储器地址,常用标号代替。
例如LJMPMAIN的功能是转移到标号为“MAIN”处执行相应指令。
②DJNZRn,rel;
Rn←(Rn)-1,若(Rn)≠0则PC←(PC)+rel
该指令是条件转移指令。
rel为转移偏移量,使用时用标号代替。
若Rn内容减1后非0则转移到rel指向的地址去执行,否则顺序执行。
该指令常用在编写指定循环次数的循环程序中。
例如下面的循环程序可用于软件延时程序。
MOVR7,#200
LOOP:
DJNZR7,LOOP
③LCALLaddr16;
PC←(PC)+3,(SP)←(PC),PC←addr16
该指令是长调用指令,调用首地址为addr16的子程序,使用时addr16常用标号代替,例如LCALLDELAY为调用首地址为标号“DELAY”的子程序。
④RET;
子程序返回
该指令是子程序返回指令,功能返回到调用它的那条子程序调用指令的下面继续执行。
该指令放在子程序的最后。
(4)逻辑运算类指令
①RLA;
将A中的各位循环左移一位
设(A)=01001001B,执行RLA后,(A)=10010010B
(5)伪指令
①ORGaddr16;
汇编起始指令
所谓伪指令,并不是单片机本身的指令,不要求CPU进行任何操作,也不占用程序存贮器空间。
ORG指令是用来指明后面程序或数据的存放起始地址,它总是出现在每段程序的开始,举例如下:
ORG0000H
LJMPSTART;
本条指令存放在从0000H地址开始的连续单元中
ORG0030H;
MOVA,#66H;
本条及之后的指令存放在从0030H地址开始的连续单元中
MOVP0,A
…
②END;
汇编结束指令
该指令只放在应用程序的最后,作为汇编结束命令。
可用多媒体展示图2-2或画在黑板上
参照图2-2介绍其工作原理,重点是如何作用。
多媒体展示图2-13或画在黑板上,重点介绍使用方法。
同上
相关指令作为重点进行讲授,除教案中的使用举例之外,还要再通过更多的例子让学生练习以达到理解和灵活运用指令编写程序的目的。
课堂小结
1、MCS-51单片机并行接口结构原理及使用方法。
P0口用于输出时,注意外接上拉电阻,P1~P3口可直接用于输出。
P0~P3口用于输入时,要先向端口写1再输入。
2、项目相关指令的作用及应用。
数据传送指令4条、位操作指令1条、控制转移指令4条、逻辑运算指令1条、伪指令2条。
课后作业
自我测评1题、2题、3题、5题。
任务2广告灯电路的硬件、软件设计
广告灯电路的硬件、软件设计
讲授、讨论
1、掌握单片机并行接口用于输出时与外部电路的连接方法。
2、了解发光二极管工作原理,理解广告灯电路构成,掌握单片机控制广告灯电路的整体构成。
3、理解应用程序的一般结构,掌握广告灯程序的编程思路。
4、理解程序流程图的作用,掌握流程图的画法。
1、单片机并行接口用于输出时与外部电路的连接及整体电路构成。
2、应用程序的的编程思路。
1、对电路构成的理解和应用。
2、灵活应用指令进行程序设计。
1、使用发光二极管模拟广告灯,复习发光二极管特点。
2、I/O端口控制发光二极管接线方法、亮灭控制原理及元件参数选择。
3、在老师引导下,由同学或大家一起画出项目电路原理图。
4、应用程序的一般结构。
5、广告灯电路程序设计。
6、程序流程图绘制。
1、检查学生出勤情况并做好记录。
2、调整学生的注意力,为上课作准备。
1、将单片机P0口用于输出时,需要注意什么?
2、发光二极管的特点?
经过前面的相关知识学习,我们已经可以设计制作用发光二极管广告灯电路了,下面我们根据发光二极管特点及所学相关知识来设计广告灯电路。
首先看发光二极管与单片机的连接方法。
一、广告灯电路设计
1、发光二极管与单片机的连接
由于单片机I/O端口输出高电平时的驱动能力较小,所以常使用低电平驱动方式,即将发光二极管通过限流电阻接于电源正极和单片机I/O端口引脚之间,如图所示。
当端口输出0时,发光二极管点亮,当端口输出1时,发光二极管熄灭。
2、广告灯电路原理图设计
根据上述接线原理,可设计出由P0口输出控制8个发光管模拟广告灯的电路原理图。
3、元件选择
本项目涉及到的元件选择主要有发光二极管和限流电阻两种元件。
发光管的选择主要考虑颜色、亮度和直径;
限流电阻的选择依据是发光管的工作电压和工作电流。
请同学们来选择。
二、应用程序设计
1、应用程序的基本结构
为了使应用程序清晰明了,方便编写和修改,一般可按下面结构编写程序。
ORG0000H;
复位入口地址
转移到程序初始化部分START
ORG0003H;
外部中断0的中断服务程序入口地址
LJMPPINT0;
转移到外部中断0的中断服务程序PINT0
ORG000BH;
定时器T0的中断服务程序入口地址
LJMPPTF0;
转移到T0的中断服务程序PTF0
……
START:
MOVA,#0FEH;
初始化程序部分
MAIN:
……;
主程序部分
LJMPMAIN;
循环执行主程序
DELAY:
MOVR7,#20;
子程序
RET
PINT0:
PUSHACC;
中断服务程序
RETI
END
(1)复位入口地址
0000H称为复位入口地址,因为系统复位后,单片机从0000H单元开始读取指令执行程序,但实际上3个单元并不能存下一个完整的程序,使用时应当在复位入口地址存放一条无条件转移指令如“LJMPSTART”,以便转移到指定的程序执行(标号为“START”处)。
(2)中断入口地址
一般在入口地址存放一条无条件转移指令如“LJMPPINT0”,而将实际的中断服务程序存放在后面的其他空间(标号为“PINT0”处)。
不使用中断时,可省略。
(3)初始化程序
初始化程序主要对一些特定的存储单元设置初始值或执行特定的功能,如开中断、设置初值、实时器设置,置计数初值等。
一般该部分程序只在系统复位后执行一次,然后直接进入主程序。
所以初始化程序必须放在主程序之前。
(4)主程序
主程序一般为死循环程序。
CPU运行程序的过程,实际就是反复执行主程序的过程,因此,实现了随时接收输入和不停地将新的结果输出的功能。
(5)子程序
在主程序中,如果要经常执行某段功能程序,可以将该段功能程序单独书写,这就是子程序。
在主程序需要的时候,只要调用子程序即可。
子程序可以放在初始化和主程序构成的程序段之外的任何位置,但习惯上将子程序放在主程序之后的任何位置。
子程序必须由子程序返回指令“RET”结束。
(6)中断服务程序
中断服务程序又叫中断服务子程序,是指响应“中断”后执行的相应处理程序。
中断服务程序类似于子程序,习惯上也是放在主程序之后的任何位置。
在汇编程序中,数值既可以使用二进制,也可以使用十进制和十六进制。
后面跟“B”的表示二进制数,后面跟“D”的表示十进制数(对于十进制数“D”可以省略),后面跟“H”的表示十六进制数,在程序中一般使用十六进制数。
2、项目程序设计
根据发光管控制原理,依据相关指令设计8个发光管反复亮灭参考程序如下:
转移到主程序MAIN
ORG0030H;
主程序起始地址
MOVP0,#00H;
8个二极管点亮
LCALLDELAY;
调用延时子程序
MOVP0,#0FFH;
8个二极管灭
MOVR7,#200;
延时子程序
LOOP1:
MOVR6,#0FFH
LOOP2:
DJNZR6,LOOP2
DJNZR7,LOOP1
RET;
返回
END;
结束
三、程序流程图绘制
对于较简单的程序,经过构思后,可以直接编写源程序,而对于较复杂的程序设计,往往不能直接完成源程序的编写,为了能把复杂的工作条理化、直观化,通常在编写程序之前先设计流程图。
所谓流程图,就是用矩形框、菱形框和半圆弧形框来表示求解某一特定问题或实现某一特定功能的步骤或过程。
这些矩形、菱形、半圆弧开框通常用箭头线连接起来,以表示实现这些步骤或过程的顺序,这样的图形称为流程图。
有了流程图以后,就可以按流程图中提供的步骤或过程选择合适的指令,一步一步地编写程序。
例如软件延时子程序流程图如图2-17所示。
老师直接在黑板上绘制。
老师和同学共同完成电路原理图设计
由同学选择,老师指导。
重点介绍复位功能使用
简单介绍
重点介绍
的用法
用多媒体展示图1-5
图多媒体展示图1-6
展开介绍复位电路工作原理
在老师引导下与同学一起完成应用程序设计。
时间允许时,可由同学设计其它广告变化程序。
可用多媒体展示图2-17,最好画在黑板上。
1、发光管亮灭控制方法。
2、广告灯电路整体构成。
3、应用程序的一般结构。
4、广告灯电路应用程序设计。
5、程序流程图绘制。
自我测评6题、7题。
任务3广告灯电路的计算机仿真
广告灯电路的计算机仿真
老师演示、学生练习
机房、多媒体、相关课件
1、广告灯电路设计的计算机仿真验证。
2、提高仿真软件proteus的使用熟练程度。
3、提高汇编软件keil的使用熟练程度。
4、熟练相关指令的使用及广告灯电路应用程序。
1、提高工具软件的使用熟练程度。
2、广告灯电路设计的计算机仿真验证。
1、对仿真验证步骤的深入理解。
2、仿真电路运行出错时的修改调试。
1、proteus仿真电路绘制步骤。
2、用keil进行程序汇编步骤。
3、课件演示广告灯电路运行效果。
4、布置练习作业,学生进行练习并验证电路效果,老师进行指导。
1、proteus基本操作有哪几步?
2、用keil进行程序汇编有哪几步?
展示在上次课完成的广告灯电路原理图。
接下来我们就要用计算机仿真验证电路设计的正确性和运行效果。
一、使用proteus绘制仿真电路图的步骤
1、将所需元器件加入到对象选择器窗口
AT89S51用AT89C51代替,红色发光二极管、黄色发光二极管、绿色发光二极管的英文符号分别是“LED-RED”、“LED-YELLOW”、“LED-GREEN”;
电阻、电容、电解电容、按键、晶振的英文符号分别是“RES”、“CAP”“CAP-ELEC”、“BUTTON”、“CRYSTAL”。
2、放置元器件至图形编辑窗口
3、移动、删除对象和调整对象朝向
4、放置电源及接地符号
5、元器件之间的连线
6、编辑对象的属性设置元件参数
二、使用keil进行程序汇编的步骤
1、源文件的建立
点击菜单“File--New…”或者点击工具栏的新建文件按钮
,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序。
输入完源程序后,保存该文件,注意必须加上扩展名asm
2、建立工程文件
点击“Project--NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,---。
3、工程的设置(针对我们的单片机制作项目进行简单设置)
工程建立好以后,首先右击左边Project窗口的Target1,弹出下拉菜单,点击Optionfortarget‘target1’即出现对工程设置的对话框。
设置对话框中的OutPut页面,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。
4、编译、连接
在设置好工程后,即可进行编译、连接。
点击Buildtarget按钮
,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码。
编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现。
三、布置作业学生练习,老师指导,
1、单片机控制广告灯电路设计的仿真验证。
2、观察现实中广告灯的变化情况,通过改写程序,完成不同的灯光效果。
比一比,看谁制作的变化效果又多又好。
3、本项目中采用低电平驱动,是否能采用高电平驱动,试一试,想想为什么?
利用多媒体或机房相关软件进行操作演示。
讲解各步骤的含义。
1、proteus的基本操作步骤。
2、keil的操作步骤。
3、单片机控制广告灯电路的仿真验证。
技能反复训练与思考题2题、4题。
自我测评8题。
任务4广告灯电路的制作与调试
单片机控制广告灯电路的制作与调试
学生动手操作、老师指导
万用表、电烙铁等
实训设备、最小应用系统制作成品
单片机芯片及相关电子元件采购、准备。
1、熟练使用万能板制作项目硬件的步骤。
2、掌握相关元件测试的方法。
3、掌握使用相关工具进行电路制作的操作方法。
4、掌握使用仪表进行电路测试方法,提高仪表使用的熟练程度。
5、掌握单片机控制广告灯电路构成及硬件、软件调试。
1、掌握使用万能板制作单片机项目的操作步骤。
2、掌握相关元件的测试方法。
3、掌握单片机控制广告灯电路构成及硬件、软件调试。
1、项目硬件的电路接线图绘制。
2、电路调试中的故障查找。
1、强调实训室操作规程,注意操作安全。
2、单片机控制广告灯电路各元件及使用工具简介。
3、学生进行元件测试及元件布局设计并绘制电路接线图。
4、分组进行硬件电路制作。
5、分组进行硬件电路调试。
6、根据硬件电路实际对应用程序进行修改并进行运行调试。
1、单片机最小应用系统用到了哪些外围元件?
2、按键的测试方法?
强调操作纪律及操作安全注意事项。
简单介绍发光管测试方法,项目硬件制作的步骤,期望同学们能在2学时中见证我们的设计成果。
由学生分组展开实际操作。
建议每组2个,最好每组不超过3人。
项目制作
一、认识项目相关元件及元件测试
本项目制作在项目1基础上完成(上次没有完成的,加快速度赶上)。
本项目的相关元件除项目1所用元件外,增加了一些电阻和发光管。
由学生识别各相关元件并用万用表对相关元件进行测试。
二、元件布局设计及电路接线图
1、布局设计
由学生依据电路原理图,并根据电路元件实际进行电路布局设计。
元件布局设计时应考虑方便接线,并兼顾美观大方。
2、绘制电路接线图
各小组根据所设计的布局图并依据电路原理图进行电路接线图绘制,接线图必须按元件的实际位置绘制,接线图绘制完成后,要妥善保存。