单片机应用技术.docx
- 文档编号:8020438
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:41
- 大小:278.16KB
单片机应用技术.docx
《单片机应用技术.docx》由会员分享,可在线阅读,更多相关《单片机应用技术.docx(41页珍藏版)》请在冰豆网上搜索。
单片机应用技术
山东交通职业学院
《单片机应用技术》教案
专业:
机电一体化技术
教学课题
第3章单片机并行I/O端口应用
任务3控制8个LED发光二极管闪烁
学时
2
教学目的及要求
1.掌握单片机的输出接口的电路形式及应用;
2.掌握单片机的内部硬件资源;
3.理解并运用相关指令。
教学重点
单片机的内部硬件资源、运用相关指令。
解决措施
利用实物的讲解,使学生更深入更形象的了解和掌握单片机。
教学难点
掌握广告灯电路的制作和相应电路的程序编写。
解决措施
利用仿真实例,使学生更深入更形象的了解和掌握单片机。
教具及参考资料
《单片机应用技术(C语言版)》
课型
单一型
板
书
设
计
教学内容
教学方法及手段
时间
分配
[导入新课]:
单片机输出控制电路是单片机应用系统中最基本、最简单的应用,在几乎所有的单片机系统中都要用到。
例如数控系统的报警指示灯,工作台的定位指示等等。
制作单片机输出控制电路是学习单片机的重要一步,掌握其制作将对今后学习单片具有重要意义。
[讲授内容]:
步骤一:
了解MCS-51单片机I/O口
MCS-51系列单片机有4个8位并行输入/输出接口:
P0口、P1口、P2口和P3口,共计32根输入/输出线,作为与外部电路联络的脚。
这4个接口可以并行输入或输出8位数据,也可以按位使用,即每1位均能独立作为输入或输出用。
每个口都可作为通用I/O接口,但其功能又有所不同。
单片机中有多种开关信号输入方式,其中,通过I/O引脚输入开关信号是常用的一种方式。
当作为输入口时,必须先把端口置“1”,此时锁存器的为“0”,使输出级的场效应管V2处于截止状态,引脚处于悬浮状态,可以作高阻输入。
否则,如果此前曾经输出锁存过数据“0”,输出级的场效应管V2则处于导通状态,引脚相当于接地,引脚上的电位就被钳位在低电平上,使输入高电平时而得不到高电平,读入的数据是错误的,还有可能烧坏端口。
如要把端口置“1”,可执行如下指令:
SETBP1.X;置位P1.X(X代0~7)
MOVP1,#0FFH;将P1口全部置位
步骤二:
认识LED接口电路
LED发光二极管是几乎所有的单片机系统都要用到的,最常见的LED发光二极管主要有红色、绿色、蓝色等单色发光二极管,另外还有一种能发红色和绿色光的双色二极管,如图2-1所示。
驱动LED,可分为低电平点亮和高电平点亮两种。
由于P1~P3口内部上拉电阻较大,约为20~40k,属于“弱上拉”,因此P1~P3口引脚输出高电平电流IOH很小(约为30~60A)。
而输出低电平时,下拉MOS管导通,可吸收1.6~15mA的灌电流,负载能力较强。
因此两种驱动LED的电路在结构上有较大差别。
在如图所示的电路中,对VD1、VD2的低电平驱动,是可以的,而对VD3、VD4的高电平驱动是错误的,因为单片机提供不了点亮LED的输出电流。
正确的高电平驱动电路如图2-2(b)所示。
【练一练】搭建单片机硬件电路
步骤三:
认识汇编语言程序结构及相关指令
1.汇编语言程序结构
(1)指令的基本格式
MCS-51单片机指令主要由标号、操作码、操作数和注释四个部分组成,其中方括号括起来的是可选部分,可有可无,视需要而定
START:
MOVA,#7FH;将立即数送累加器A
[标号]<操作码>[操作数][注释]
1)标号:
标号是指令的符号地址,有了标号,程序中的其它语句就可以访问该语句。
有关标号的规定如下:
①标号是由不超过8位的英文字母和数字组成,但头一个字符必须是字母。
②不能使用系统中已规定的符号,如:
MOV、DPTR等。
③标号后面必须有跟英文半角冒号(:
)。
④同一个标号在一个程序中只能定义一次,不能重复定义。
2)操作码:
指明语句执行的操作内容,是以助记符表示的。
3)操作数:
用于给指令的操作提供数据或地址。
在一条语句中,操作数可能有0个、1个、2个或者是3个,各操作数之间用英文半角逗号(,)隔开。
4)注释:
对语句的解释说明,提高程序的易读性。
注释前必须加英文半角分号(;)。
(2)汇编程序的基本结构
为了使程序结构清晰明了,方便修改、维护,一般可按下面结构书写程序。
ORG0000H;复位入口地址
LJMPSTART;转移到程序初始化部分START
ORG0003H;外部中断0入口地址
LJMPWAIBU0;转移到外部中断0的服务程序WAIBU0
ORG000BH
RETI
……
START:
MOVA,#7FH;初始化程序部分
……
MAIN:
MOVP1,A;主程序部分
……
LJMPMAIN;循环执行主程序
DELAY:
MOVR0,#0FFH;子程序
……
RET
WAIBU0:
PUSHA;中断服务程序
……
RETI
步骤四:
编写发光二极管点亮的程序
1.发光二极管的点亮
欲点亮某只二极管,只需使与之相连的口线输出低电平即可。
如点亮从高位到低位的第1、3、5、7只二极管,实现的方法有字节操作和位操作两种。
方法一(字节操作):
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN
MAIN:
MOVP1,#55H;将立即数55H(即二进制数01010101B)送到P1口
LJMPMAIN;循环执行主程序
方法二(位操作):
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN
MAIN:
MOVP1,#0FFH;熄灭所有的灯(该句可省略,因复位后为0FFH)
CLRP1.7;点亮第1位
CLRP1.5;点亮第3位
CLRP1.3;点亮第5位
CLRP1.1;点亮第7位
LJMPMAIN;循环执行主程序
2.发光二极管的闪烁
欲使某位二极管闪烁,可先点亮该位,再熄灭,然后循环。
程序如下:
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN
MAIN:
CLRP1.7;点亮第1位
SETBP1.7;熄灭第1位
LJMPMAIN;循环执行主程序
但实际运行这个程序发现第1位一直在亮,原因是单片机执行一条指令速度很快,大约1μm(具体时间和时钟与具体指令的指令周期有关)。
也就是说二极管确实在闪烁,只不过速度太快,由于人的视觉暂留现象,主观感觉一直在亮。
解决的办法是在点亮和熄灭后都要加入延时。
方法一(字节操作):
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN:
MOVP1,#7FH;点亮第1位
LCALLDELAY;调延时子程序
MOVP1,#0FFH;熄灭第1位
LCALLDELAY;调延时子程序
LJMPMAIN;循环执行主程序
DELAY:
MOVR0,#0FFH;延时子程序
LOOP2:
MOVR1,#0FFH
LOOP1:
DJNZR1,LOOP1
DJNZR0,LOOP2
RET
方法二(位操作):
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN:
CPLP1.7;P1.7取反
LCALLDELAY;调延时子程序
LJMPMAIN;循环执行主程序
DELAY:
MOVR0,#0FFH;延时子程序
LOOP2:
MOVR1,#0FFH
LOOP1:
DJNZR1,LOOP1
DJNZR0,LOOP2
RET
[课堂小结]:
单片机输出控制电路是单片机应用系统中最基本、最简单的应用,在几乎所有的单片机系统中都要用到。
本堂课主要讲授了日常生活和生产中单片机的输入输出接口,介绍了简单的LED接口,搭建了LED闪烁平台。
学习汇编语言指令是重点也是难点。
演示法讨论法
讲授法
实际操作
实际操作
实际操作
讲授法分析法
10分钟
45分钟
35分钟
35分钟
45分钟
10分钟
巩固练习及作业布置
掌握汇编语言的结构和一些简单的编程指令。
教学后记
加深对指令的理解
教学课题
第3章单片机并行I/O端口应用
任务3控制8个LED发光二极管闪烁
学时
2
教学目的及要求
1.掌握单片机存储器的结构和类型;
2.掌握音频接口电路;
3.熟悉相关指令。
教学重点
单片机的存储器结构和类型。
解决措施
利用实物的讲解,使学生更深入更形象的了解和掌握单片机。
教学难点
数据存储器和程序存储器的区别。
解决措施
利用仿真实例,使学生更深入更形象的了解和掌握单片机。
教具及参考资料
《单片机应用技术(C语言版)》
课型
单一型
板
书
设
计
教学内容
教学方法及手段
时间
分配
[导入新课]:
单片机的I/O口作为输出口,驱动扬声器发出不同频率、不同长短的音频。
例如,数控机床上、生产流水线上报警声音指示,汽车报警器等等。
[讲授内容]:
一、预备知识:
1.片内数据存储器和片内程序存储器
片内数据存储器(内部RAM)和片内程序存储器(内部ROM)是供用户使用的重要单片机硬件资源。
(1)片内数据存储器
什么是存储器呢?
打个比方来说:
存储器就象一栋楼,假如这栋楼共有128层,每层有8个房间,每个房间可以存放1位二进制数。
我们可以给每个楼层编号,0层、1层、……、127层,每层楼就相当于一个存储单元,楼层号就相当于单元地址,用十六进制表示就是00H、01H、……、7FH。
每层楼的每个房间就相当于一位。
在片内数据存储器中,有的单元只能8位同时存入或者8位同时取出,这种操作叫字节操作;有的单元既能字节操作,又能对该单元的每1位单独操作,这种操作叫位操作。
要想进行位操作,通常要给位分配一个地址,这个地址叫做位地址,就好象再给每层楼的每个房间再编个号,如0号、1号、……、7号,用十六进制表示也是00H、01H、……、07H。
虽然位地址和字节地址的表示方法相同,但由于对位操作的指令和对字节操作的指令不同,所以在程序中并不会造成混淆。
片内数据存储器即所谓的内部RAM,主要用于数据缓冲和中间结果的暂存。
其特点是掉电后数据即丢失。
MCS-51单片机内部有256个数据存储器单元,通常把这256个单元按其功能分为两部分:
低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。
其中低128单元是供用户使用的数据存储器单元,按用途可把低128单元分为三个区域,如图2-15所示
寄存器区
地址为00H~1FH的空间为寄存器区,共32个单元,分成4个组,每个组8个单元,符号为R0~R7,通过RS1和RS0的状态选定当前寄存器组,如图2-14中表格所示。
任一时刻,CPU只能使用其中的一组寄存器。
位寻址区
地址为20H~2FH的16个单元空间称为位寻址区,这个区的单元既可以字节操作,也可以对每1位单独操作(置“1”或清“0”),所以每一位都有自己的位地址。
通常在使用中,“位”有两种表示方式。
一种是以位地址的形式,如图2-14中表格所示,例如25H单元的第0位的位地址是28H;另一种是以单元地址加位的形式表示,例如同样的25H单元的第0位表示为25H.0。
用户RAM区
地址为30H~7FH的80个单元空间是供用户使用的一般RAM区,对于该区,只能以单元的形式来使用(即字节操作)
特殊功能寄存器区
内部数据存储器的高128单元的地址为80H~FFH,在这128个单元中离散的分布着若干个特殊功能寄存器(简称SFR),也就是说其中有很多地址是无效地址,空间是无效空间。
这些特殊功能寄存器在单片机中起到非常重要的作用。
下面对一些常见的特殊功能寄存器做一简单介绍。
其余的在相关项目应用时介绍
1)累加器Acc
累加器Acc简称A,是所有特殊功能寄存器中最重要、使用频率最高、最繁忙的寄存器,常用于存放参加算术或逻辑运算的两个操作数中的一个,运算结果最终都存在A中,许多功能也只有通过A才能实现。
2)B寄存器
B寄存器也是CPU内特有的一个寄存器,主要用于乘法和除法运算。
也可以作为一般寄存器使用。
3)程序状态字寄存器PSW
程序状态字寄存器有时也称为“标志寄存器”,由一些标志位组成,用于存放指令运行的状态。
内部8位的具体定义如表2-7所示
B7
B6
B5
B4
B3
B2
B1
B0
Cy
AC
F0
RS1
RS0
OV
-
P
4)数据指针DPTR
数据指针DPTR是单片机中唯一一个用户可操作的16位寄存器,由DPH(数据指针高8位)和DPL(数据指针低8位)组成,既可以按16位寄存器使用,也可以将两个8位寄存器分开使用。
二、音频接口电路
在单片机系统中经常使用蜂鸣器或扬声器作为声音提示、报警及音乐输出等。
单片机音频接口电路如图2-16所示。
蜂鸣器是一种一体化结构的电子讯响器,采用直流驱动,使用中只需加直流电压(由单片机输出高电平)即可发出单一频率的音频。
驱动扬声器则需要20Hz~20KHz的音频信号才能使其发出人耳听到的声音。
单片机的端口只能输出数字量,单片机可以输出由高电平和低电平组成的方波,方波经放大滤波后,驱动扬声器发声。
声音的单调高低由端口输出的方波的频率决定。
技能实训制作音频控制电路
一、硬件电路制作
电路原理图
二、程序编写
1.单频率声音
ORG0000H;复位入口地址
LJMPMAIN;转移到主程序MAIN
MAIN:
CPLP1.0;P1.0取反
LCALLDELAY;调延时子程序
LJMPMAIN;循环执行主程序
DELAY:
MOVR0,#07H;延时子程序
LOOP2:
MOVR1,#1FH
LOOP1:
DJNZR1,LOOP1
DJNZR0,LOOP2
RET
请同学修改延时时间,听音调的变化。
2.双音报警声
本程序可模拟出非常急促的双音报警声。
ORG0000H
LJMPMAIN
MAIN:
MOVR0,#0FFH
LOOP1:
CPLP1.0
LCALLDELAY1
DJNZR0,LOOP1
MOVR0,#0FFH
LOOP2:
CPLP1.0
LCALLDELAY2
DJNZr0,LOOP2
LJMPMAIN
DELAY1:
MOVR6,#07H
D1:
MOVR7,#20H
DJNZR7,$
DJNZR6,D1
RET
DELAY2:
MOVR4,#07H
D2:
MOVR5,#50H
DJNZR5,$
DJNZR4,D2
RET
[课堂小结]:
本堂课主要讲授了单片机存储器的结构和音频接口电路,重点内容是单片机存储器的类型和结构,如果通过汇编语言程序使音频发生。
演示法讨论法
讲授法
实际操作
讲授法分析法
20分钟
75分钟
80分钟
10分钟
巩固练习及作业布置
课后题1、2题
教学后记
同学对存储器的结构认识不是很深入,应加深理解。
教学课题
第3章单片机并行I/O端口应用
任务4模拟汽车转向灯控制
学时
2
教学目的及要求
熟悉单片机定时/计数器结构及定时器工作方式设定、初始值设置等基本应用方法
教学重点
掌握C语言控制单片机定时器的基本技能
解决措施
模拟仿真,实际操作
教学难点
掌握C语言控制单片机定时器的基本技能
解决措施
模拟仿真,实际操作
教具及参考资料
《单片机应用技术(C语言版)》
课型
单一型
板
书
设
计
教学内容
教学方法及手段
时间
分配
[导入新课]:
复习:
单个LED闪烁的电路制作,单个LED闪烁的程序编写。
任务1中的LED闪烁是不受控制的,实际生活中我们一般需要根据某些条件来决定LED是否闪烁。
汽车转向灯控制方式:
驾驶员操作命令
无操作
右转向操作
左转向操作
故障紧急操作
转向灯状态
左转灯
灭
灭
闪烁
闪烁
右转灯
灭
闪烁
灭
闪烁
[讲授内容]:
采用两个发光二极管来模拟汽车左转灯和右转灯,用单片机的P1.0,P1.1引脚控制发光二极管的亮、灭的状态;用两个连接到单片机P3.0,P3.1引脚的波动开关S0,S1,模拟驾驶员发出左转、右转命令。
对应关系如下:
驾驶员操作命令
未发出指令
右转向操作
左转向操作
故障紧急操作
P3口状态
P3.0
1
1
0
0
P3.1
1
0
1
0
一、硬件电路设计
二、程序流程
C语言小知识
在程序中用sbit定义可位寻址变量。
P1端口是可以位寻址的,所以定义:
SbitP1_0=P1^0//定义可位寻址变量P1_0对应P1口的P1.0位
也可以直接用P1.0位的位地址来进行定义:
SbitP1_0=0x90
三、程序设计
#include
sbitP1_0=P1^0;//定义P1.0引脚位名称为P1_0
sbitP1_1=P1^1;//定义P1.1引脚位名称为P1_1
sbitP3_0=P3^0;//定义P3.0引脚位名称为P3_0
sbitP3_1=P3^1;//定义P3.1引脚位名称为P3_1
voiddelay(unsignedchari);
voidmain()
{bitleft,right;//定义位变量left、right表示左、右状态
while
(1)
{left=P3_0;//读取P3.0引脚的状态并赋值给left
right=P3_1;//读取P3.1引脚的状态并赋值给right
P1_0=left;//将left的值送至P1.0引脚
P1_1=right;//将right的值送至P1.1引脚
delay(200);
P1_0=1;//将P1.0引脚置1输出(熄灭LED)
P1_1=1;//将P1.1引脚置1输出(熄灭LED)
delay(200);
}
}
[课堂小结]:
本堂课主要讲授了模拟汽车转向灯控制的硬件电路和软件程序,重点内容是利用PROTUES软件进行系统的仿真。
演示法分析法
任务导入
引导分析
讲授
学生操练
讲授
学生练习
分析总结
20分钟
15分钟
20分钟
25分钟
10分钟
巩固练习及作业布置
教学后记
学生应加强对仿真软件的使用
教学课题
第3章单片机并行I/O端口应用
任务4模拟汽车转向灯控制
学时
2
教学目的及要求
熟悉单片机定时/计数器结构及定时器工作方式设定、初始值设置等基本应用方法
教学重点
掌握C语言控制单片机定时器的基本技能
解决措施
模拟仿真,实际操作
教学难点
掌握C语言控制单片机定时器的基本技能
解决措施
模拟仿真,实际操作
教具及参考资料
《单片机应用技术(C语言版)》
课型
单一型
板
书
设
计
教学内容
教学方法及手段
时间
分配
[导入新课]:
复习:
单个LED闪烁的电路制作,单个LED闪烁的程序编写。
任务1中的LED闪烁是不受控制的,实际生活中我们一般需要根据某些条件来决定LED是否闪烁。
汽车转向灯控制方式:
驾驶员操作命令
无操作
右转向操作
左转向操作
故障紧急操作
转向灯状态
左转灯
灭
灭
闪烁
闪烁
右转灯
灭
闪烁
灭
闪烁
[讲授内容]:
扩展知识:
一、表达式语句和复合语句
表达式语句是用表达式加上;组成,一般形式如下:
P1=0x00;
P1_0=left;
x=y+z;
i++;
在C语言中有一个特殊的表达式语句,称为空语句。
空语句中只有一个分号“;”,程序执行空语句时需要占用一条指令的执行时间,但是什么也不做。
在C51程序中常常把空语句作为循环体,用于消耗CPU时间等待事件发生的场合。
for(k=0;k
把多个语句用大括号{}括起来,组合在一起形成具有一定功能的模块,这种由若干条语句组合而成的语句块称为复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。
复合语句在程序运行时,{}中的各行单语句是依次顺序执行的。
在C语言的函数中,函数体就是一个复合语句。
if语句中的“表达式”通常为逻辑表达式或关系表达式,也可以是任何其他的表达式或类型数据,只要表达式的值非0即为“真”。
以下语句都是合法的:
if(3){……}
if(x=8){……}
if(P3_0){……}
在if语句中,“表达式”必须用括号括起来。
在if语句中,花括号“{}”里面的语句组如果只有一条语句,可以省略花括号。
如“if(P3_0==0)P1_0=0;”语句,但是为了提高程序的可读性和防止程序书写错误,建议读者在任何情况下,都加上花括号。
If(p3_0==0)
{P1_0=0}
二、选择语句
if-else语句的一般格式如下:
if(表达式)
{
语句组1;
}
else
{
语句组2;
}
if-else语句执行过程:
当“表达式”的结果为“真”时,执行其后的“语句组1”,否则执行“语句组2”
三、循环语句
多分支选择的switch语句,其一般形式如下:
switch(表达式)
{
case常量表达式1:
语句组1;break;
case常量表达式2:
语句组2;break;
……
case常量表达式n:
语句组n;break;
default:
语句组n+1;
}
该语句的执行过程是:
首先计算表达式的值,并逐个与case后的常量表达式的值相比较,当表达式的值与某个常量表达式的值相等时,则执行对应该常量表达式后的语句组,再执行break语句,跳出switch语句的执行,继续执行下一条语句。
如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句组。
一个循环体内又包含另一个完整的循环结构称为循环的嵌套。
内嵌的循环中还可以嵌套循环,这就是多层循环。
三种循环(while循环、do-while循环和for循环)可以互相嵌套。
[课堂小结]:
本堂课主要讲授了模拟汽车转向灯控制软件程序中的复合语句、表达式语句、循环语句等,重点内容是灵活运用各种语句进行编程。
演示法分析法
引导分析
讲授
学生操练
讲授
学生练习
分析总结
20分钟
15分钟
20分钟
25分钟
10分钟
巩固练习及作业布置
利用选择语句编写汽车转向灯程序
教学后记
学生应加强对仿真软件的使用
教学课题
第3章单片机并行I/O端口应用
任务5流水灯控制
学时
2
教学目的及要求
通过8个LED发光二极管顺序点亮的流水灯控制系统的设计与制作,了解C语言的数据类型、常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 应用技术