项目2单片机应用技能实训C语言教案Word文件下载.docx

上传人:b****5 文档编号:20656447 上传时间:2023-01-24 格式:DOCX 页数:27 大小:34.47KB
下载 相关 举报
项目2单片机应用技能实训C语言教案Word文件下载.docx_第1页
第1页 / 共27页
项目2单片机应用技能实训C语言教案Word文件下载.docx_第2页
第2页 / 共27页
项目2单片机应用技能实训C语言教案Word文件下载.docx_第3页
第3页 / 共27页
项目2单片机应用技能实训C语言教案Word文件下载.docx_第4页
第4页 / 共27页
项目2单片机应用技能实训C语言教案Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

项目2单片机应用技能实训C语言教案Word文件下载.docx

《项目2单片机应用技能实训C语言教案Word文件下载.docx》由会员分享,可在线阅读,更多相关《项目2单片机应用技能实训C语言教案Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

项目2单片机应用技能实训C语言教案Word文件下载.docx

复习提问

1、MCS-51单片机由哪几部分组成?

2、MCS-51单片机有多少个I/O口引脚?

提问导思

导入

夜晚的商业街上,各种各样的广告彩灯光彩夺目,变幻无穷,非常好看。

那么功能强大的单片机是否能完成广告彩灯的控制任务呢?

本项目的任务就是制作一个用单片机控制的广告灯电路。

为完成项目制作,先进行相关基本知识的学习。

启发学习积极性

讲授新课

一、MCS-51单片机并行接口

1、P0口的结构和工作原理

P0口每一位的结构如图2-2所示,它由一个输出锁存器,上下两个三态缓冲器,一个输出驱动电路和一个输出控制电路组成。

图2-2P0口的结构

从P0口输出数据的方法有两种,一种是执行以P0口为目的操作数的数据传送指令来实现,另一种是执行以P0口位为目的操作数的位操作指令来实现。

分别举例如下:

P0=0x66;

//将立即数66H送到P0口

P0_0=0;

//将P0.0清0。

P0口的主要功能如下:

(1)作为通用I/O端口输出数据。

使用时注意外接上拉电阻。

该功能在前面已介绍过。

(2)作为通用I/O端口输入数据。

在输入数据时,要先向锁存器写“1”。

(3)扩展外部设备时,作为低8位地址线和8位数据线分时复用。

2、P1口的结构和工作原理

P1口每一位的结构如图2-13所示。

由P1口的结构图可以得知P1口的主要功能是:

由于P1口已有内部上拉电阻,输出数据时不必外接上拉电阻。

图2-13图2-14

3、P2口的结构和工作原理

P2口的位结构如图2-14所示,P2口的主要功能是:

输出数据时可以不外接上拉电阻。

(3)系统扩展外部设备时,作为高8位地址总路线使用。

4、P3口的结构和工作原理

图2-15

P3口的位结构如图2-15所示,P3口的主要功能如下:

(1)作为通用I/O接口输出数据,输出数据时可以不外接上拉电阻。

(2)作为通用I/O接口输入数据。

同样,在输入数据时,要先向锁存器写“1”。

(3)每位都有专有的第二功能(替代的输入或输出)。

二、项目相关C语言指令

下面我们进行C语言相关知识的介绍,以便顺利地编写项目应用程序。

1、KeilC的预处理命令

预处理命令是指先经过预处理处理器处理过后,才进行编译的命令。

通常,预处理命令放在整个程序的开头。

(1)文件包含命令

#include是一个文件包含命令,其功能是将一些必要的头文件加入到程序体中。

例如:

#include<

reg51.h>

//将头文件reg51.h加入到程序体中。

(2)宏定义命令

#define是一个宏定义命令,它常用来指定常数、字符串或者宏函数的代用标识符。

其指令格式如下。

#define代名词常数(字符串或者宏函数)

#defineoutputsP0//定义使用outputs代替P0。

定义后,当程序中用P0口输出时,如P0=0xFF就可以用outputs=0xFF代替。

2、KeilC的循环指令

当我们需要将程序流程控制在某个指定的循环里面时,就会用到循环指令,直到符合指定的结束条件才会结束循环。

KeilC提供了for语句、while语句、do-while语句几种循环指令。

(1)计数循环

for语句是一个计数循环语句,其格式如下。

for(表达式1;

表达式2;

表达式3)

{

语句;

}

其中表达式1是循环的初始值,表达式2是判断的条件,表达式3是循环变量增值,其中"

;

"

为分隔符,不能被省略。

举例说明一下。

for(inti=0;

i<

8;

i++)

{

该语句先给i置0,大括号中的语句循环执行8次后,i不小于8,循环结束。

当循环语句中的条件判断部分缺省时,无论另外两个表达式怎样,这个for循环语句成为死循环。

若该循环只需要执行一条指令时,可省略大括号。

P0=i;

//P0=i循环执行8次。

若循环未达到跳出条件而需要强制跳出时,可在循环内加入其他条件和break指令。

i++)

if(sw==0)break;

//当sw=0时,跳出循环体。

(2)前条件循环

while语句将判断条件放在语句开始,称为前条件循环,其特点是先判断再执行。

使用格式如下:

while(表达式)

语句;

其中表达式是循环语句的判断条件,当条件满足时,循环执行大括号中的语句;

当条件不满足时,循环结束。

当表达式条件始终满足时,该语句成为无限循环。

与for循环语句一样,若大括号内只有一条指令,则可以省略大括号。

(3)后条件循环

dowhile语句将判断条件放在后面,称为后条件循环,其特点是先执行再判断。

格式如下:

do{

}while(表达式);

在这个循环语句里,会先执行一次循环后,再判断表达式条件是否成立,若成立则继续执行循环体语句,若不成立则跳出该循环语句。

三、指令周期与延时估算

1、几个概念

(1)时钟周期:

单片机时钟振荡电路的振荡周期。

(2)机器周期:

单片机执行一种基本操作所用的时间,1个机器周期等于12个振荡周期。

(3)指令周期:

单片机执行一条指令所用的机器周期数。

设单片机系统晶振频率fsoc=6MHz,则机器周期为:

机器周期=

=

=2

2、延时程序的延时时间粗略计算

根据for语句和while语句的特点,我们可以利用它们编写简单的延时程序,来满足粗略的延时要求。

以6MHZ晶振为例。

(1)利用for语句进行简单延时。

Voiddelay(intx)

inti,j;

for(i=0;

x;

i++)//计数x次,延迟约xms

for(j=0;

j<

60;

j++);

//计数60次,延迟约1ms

(2)利用while语句进行延时。

Voiddelay(unsignedchari)

while(--i);

//约延迟i*4?

s

一般来说,我们用for语句来进行相对较长的时间延迟,而用while语句来进行时间相对较短的延迟。

使用多媒体展示图2-2。

参照图2-2介绍其工作原理。

说明为什么接上拉电阻,输入数据为什么是先写1。

使用多媒体展示图2-13,重点介绍使用方法。

同上

相关指令作为重点进行讲授,除教案中的举例之外,还要再通过更多的例子让学生练习以达到理解和灵活运用指令编写程序的目的。

对while语句也要根据学生的理解情况进行相适应的举例说明。

课堂小结

1、MCS-51单片机并行接口结构原理及使用方法。

P0口用于输出时,注意外接上拉电阻,P1~P3口可直接用于输出。

P0~P3口用于输入时,要先向端口写1再输入。

2、相关C语言指令:

#include命令、#define命令、for语句、while语句。

3、指令周期与延时估算。

课后作业

自我测评1题、2题、3题、4题。

任务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、项目程序设计

考虑到本项目要求广告灯有的两种变化效果,现设计第一种变化为8个彩灯反复亮灭,第二种为流水灯效果。

参考程序如下:

(1)控制8个彩灯反复亮灭

//定义8051寄存器的头文件

voiddelay(int);

//声明延时函数

/******以下是主程序***************/

main()//主程序开始

P0=0xFF;

//给P0口赋初值,全灭

while

(1)//进入死循环

P0=~P0;

//P0口取反

delay(500);

//延时约0.5s(6MHZ晶振)

}//主程序结束

/*******以下是延时子函数************/

voiddelay(intx)//延时函数开始

//声明变量i,j

i++)//计数x次,延迟约xms(6MHZ晶振)

//计数60次,延迟约1ms(6MHZ晶振)

}//延时函数结束

(2)控制8个彩灯产生流水灯效果

2、应用程序的基本结构

为了使应用程序清晰明了,方便编写和修改,我们通过本项目8个彩灯反复亮灭的例程来说明一下应用程序的基本结构。

//预处理命令,定义8051寄存器的头文件

//声明延时子函数

main()//主函数

while

(1)//while循环

delay(500);

//在主函数中调用延时子程序

voiddelay(intx)//延时子程序

{

//声明整型变量i,j

(1)一个C语言源程序可以由一个或多个源文件组成。

每个源文件可以由一个或多个函数组成。

(2)一个源程序不论由多少个文件组成,都有一个且只有一个main()函数即主函数。

在对程序进行编译时,编译程序会找到main()函数作为程序的入口来编译程序。

(3)源程序中可以有预处理命令("

#include"

命令只是其中的一种),预处理命令通常放在源文件或源程序的最开始头。

(4)每个声明以及每一个语句都必须用分号结尾。

但预处理命令,函数头和大括号"

{}"

后不可以有分号。

标示符、关键字之间必须至少加一个空格来间隔。

C程序的结构相对比较灵活,在学习的过程中会详细了解到它的构成。

三、程序流程图绘制

对于较简单的程序,经过构思后,可以直接编写源程序,而对于较复杂的程序设计,往往不能直接完成源程序的编写,为了能把复杂的工作条理化、直观化,通常在编写程序之前先设计流程图。

所谓流程图,就是用矩形框、菱形框和半圆弧形框来表示求解某一特定问题或实现某一特定功能的步骤或过程。

这些矩形、菱形、半圆弧开框通常用箭头线连接起来,以表示实现这些步骤或过程的顺序,这样的图形称为流程图。

有了流程图以后,就可以按流程图中提供的步骤或过程选择合适的指令,一步一步地编写程序。

例如软件延时子程序流程图如图2-17所示。

图2-17延时子程序流程图

老师直接在黑板上绘制。

老师和同学共同完成电路原理图设计

由同学选择,老师指导。

在老师引导下与同学一起完成应用程序设计。

对于流水灯效果程序主要由学生来完成设计。

时间允许时,可由同学设计其它广告变化程序。

可用多媒体展示图2-17,时间允许可画在黑板上。

1、发光管亮灭控制方法。

2、广告灯电路整体构成。

3、应用程序的一般结构。

4、广告灯电路应用程序设计。

5、程序流程图绘制。

自我测评5题、6题。

任务3广告灯电路的计算机仿真

广告灯电路的计算机仿真

老师演示、学生练习

机房、多媒体、相关课件

1、广告灯电路的计算机仿真验证。

2、提高仿真软件proteus的使用熟练程度。

3、提高汇编软件keil的使用熟练程度。

4、熟练相关指令的使用及广告灯电路应用程序。

1、提高工具软件的使用熟练程度。

2、广告灯电路设计的计算机仿真验证。

1、对仿真验证步骤的深入理解。

2、仿真电路运行出错时的修改调试。

1、proteus仿真电路绘制步骤。

2、用keil进行程序编译步骤。

3、课件演示广告灯电路运行效果。

4、布置练习作业,学生进行练习并验证电路效果,老师进行指导。

1、proteus基本操作有哪几步?

2、用keil进行程序汇编有哪几步?

展示在上次课完成的广告灯电路原理图。

接下来我们就要用计算机仿真验证电路设计的正确性和运行效果。

一、使用proteus绘制仿真电路图的步骤

1、将所需元器件加入到对象选择器窗口

广告灯电路硬件如图2-4所示。

AT89S51用AT89C51代替,红色发光二极管、黄色发光二极管、绿色发光二极管的英文符号分别是“LED-RED”、“LED-YELLOW”、“LED-GREEN”;

电阻、电容、电解电容、按键、晶振的英文符号分别是“RES”、“CAP”“CAP-ELEC”、“BUTTON”、“CRYSTAL”。

图2-4广告灯电路原理图

2、放置元器件至图形编辑窗口

3、移动、删除对象和调整对象朝向

4、放置电源及接地符号

5、元器件之间的连线

6、编辑对象的属性设置元件参数

二、使用keil进行程序汇编的步骤

1、源文件的建立

点击菜单“File--New…”或者点击工具栏的新建文件按钮

,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入C语言源程序。

输入完源程序后,保存该文件,注意必须加上扩展名asm

2、建立工程文件

点击“Project--NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,---。

3、工程的设置(针对我们的单片机制作项目进行简单设置)

工程建立好以后,首先右击左边Project窗口的Target1,弹出下拉菜单,点击Optionfortarget‘target1’即出现对工程设置的对话框。

设置对话框中的OutPut页面,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的目标文件,文件的扩展名为.hex),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。

4、编译、连接

在设置好工程后,即可进行编译、连接。

点击Buildtarget按钮

,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码。

编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现。

三、布置作业学生练习,老师指导。

1、单片机控制广告灯电路的仿真验证。

2、观察现实中广告灯的变化情况,通过改写程序,完成不同的灯光效果。

比一比,看谁制作的变化效果又多又好。

3、本项目中采用低电平驱动,是否能采用高电平驱动,试一试,想想为什么?

利用多媒体或机房相关软件进行操作演示。

讲解各步骤的含义。

完成程序编译后,展示仿真效果。

1、proteus的基本操作步骤。

2、keil的操作步骤。

3、单片机控制广告灯电路的仿真验证。

技能反复训练与思考题2题、4题。

自我测评7题。

任务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、绘制电路接线图

各小组根据所设计的布局图并依据电路原理图进行电路接线图绘制,接线图必须按元件的实际位置绘制,接线图绘制完成后,要妥善保存。

三、按元件高低层次依次进行插装与焊接

1、限流电阻的插装与焊接

2、发光管的插装与焊接

四、电路连接

1、根据电路接线图进行各元件之间的连接。

2、完成各元件的连接后,将电源线引出或将USB座焊接在电路板上,使用电脑上的5V电源。

往届同学的制作成品如图所示。

学生制作成品图

五、硬件电路调试

1、通电之前,先用万用表检查各电源线与地线之间是否有短路现象,测试40脚IC插座各脚对地电阻值并记录,分析各电阻值是否合理。

若发现有不合理值,则要进行分析查找及处理。

2、不插单片机芯片,接通电源,检查所有插座或器件的电源端是否有符合要求的电压值,如发现电压值偏离较多,应立即中断供电并检查处理。

接地端电压是否为0V,测试40脚IC插座各脚对地电压并记录,分析各电压值是否合理。

3、在不插上单片机芯片时,模拟单片机输出低电平(将对应引脚接地),检查相应的外部电路是否正常(观察发光二极管是否点亮)。

4、插入单片机芯片,接通电源后,可以通过测试18、19、30脚的直流电位初步判定单片机最小系统是否已经正常工作。

5、用示波器测试18、19、30引脚的波形图。

方法如图所示。

波形测试图

六、写入应用程序试运行

由老师示范程序写入的操作步骤,再由学生动手实际操作,根据硬件电路实际对应用程序进行修改后,编译生成目标文件写入单片机芯片进行运行调试。

程序写入器与电路板的连接如图所示。

单片机写入程序连线图

系统运行正常后,再对应用程序进行修改,以实现更多的广告灯变化花样。

学生分组进行动手制作,老师巡回指导或示范操作。

老师进行巡回指导,在项目1制作成品基础上完成本项目。

由学生动手操作,老师进行巡回指导,必要时进行示范操作。

展示往届学生制作成品。

将所测试数据列表记录并妥善保存。

项目制作小结

1、元件测试方法。

2、电路接线图绘制很

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

当前位置:首页 > 人文社科 > 设计艺术

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

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