项目精选单片机应用技能实训C语言教案.docx
- 文档编号:28557689
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:88
- 大小:112.28KB
项目精选单片机应用技能实训C语言教案.docx
《项目精选单片机应用技能实训C语言教案.docx》由会员分享,可在线阅读,更多相关《项目精选单片机应用技能实训C语言教案.docx(88页珍藏版)》请在冰豆网上搜索。
项目精选单片机应用技能实训C语言教案
单片机应用技术实训(C语言)授课设计—项目6
项目6数字时钟电路制作
任务1项目有关知识学习
一、案头
任务项目有关知识学习
授课时间年月日授课班级
授课形式讲解、讨论授课时数2课时
授课用具授课资源项目制作成品、课件
课前准备
授课目标1、认识并行通信与串行通信。
2、理解串行口构造,工作方式。
3、掌握串行口工作方式0的应用。
4、认识LED数码管构造及显示方式。
授课重点1、串行口控制寄存器的作用与用法。
2、串行口工作方式0的应用。
授课难点1、对串行口发送启动和接收启动的理解。
授课过程1、经过对生活中数字时钟的讨论,引出项目任务。
2、LED数码管构造及显示方式。
3、并行通信与串行通信。
4、MCS-51单片机串行口的构造。
5、用于串行口的专用寄存器介绍。
6、串行口工作方式0的应用。
授课后记
二、授课推行过程
推行环授课内容
节
导学方法
组织教
1、检查学生出勤情况并做好记录。
互动沟通
学
2、调整学生的注意力,为上课作准备。
复习提
1、MCS-51准时器有哪几种工作方式?
提问导思
问
2、怎样用准时器来达成数字时钟的准时?
本项目的终极目标是制作一个单片机控制的LED数码
管静态显示数字时钟电路。
导入在项目5中学习了单片机的准时器,本项目要用准时启迪学习
器准时,用数码管显示时间,最少要用4个数码管,每积极性
个数码管占用8位,4个LED数码管占用4个I/O端口。
所以,在本项目中要扩展用于显示电路的输出端口。
下
面,我们在进行项目制作从前,学习LED数码管构造原
理以及MCS-51单片机的串行口。
讲授新一、LED数码管构造及工作原理
课
1、LED数码管构造
平时使用的是七段LED显示器,这种显示器由8个发
光二极管组成,有共阴极和共阳极两种,如图6-3所
示。
图6-3数码管构造
2.LED数码管工作原理
共阴极LED数码管的8个发光二极管的阴极连在一
起,接公共端COM。
使用时公共端接地,当发光二极管
的阳极为高电平时,发光二极管点亮。
共阳数码管则与
之相反。
从管脚a~g及dp输入不同样的8位二进制数,可显
用多媒体
展示图
6-3。
提问学生
其他数字
的段码。
介绍连结
方法并说
明静态显
示的优缺
点。
介绍连结
方法并说
明动向显
示不同样的数字或字符,把控制数码管显示不同样字符的8
示的优缺
位二进制数称为段码。
比方:
关于共阳极数码管,若要
显示0,其段码为C0H。
点。
二、LED数码管的显示方法重点说明
SCON的
数码管的显示方式有静态显示和动向显示两种。
使用。
1、静态显示
对方式0
静态显示是指数码管显示某一字符时,相应的发光二的发送与
极管恒定导通或恒定截止。
这种显示方式的各位数码管接收详尽
相互独立,公共端恒定接地(共阴极)或接正电源(共说明。
阳极)。
每个数码管的8个字段分别与一个8位I/O口
用多媒体
相连。
显现课件
2、动向显示
图6-5
动向显示是一位一位地轮流点亮各位数码管,这种逐简单介绍
位点亮显示器的方式称为位扫描。
平时,各位数码管的集成电路
相应段选线并联在一同,由一个8位的I/O口控制;各芯片
位数码管的位选线(公共阴极或阳极)由其他的I/O口74LS164
线控制。
工作特
三、MCS-51单片机串行接口点。
1、并行通信和串行通信对应用程
序进行介
并行通信是指将组成数据字节的各位同时发送或接
绍,延时
收,不宜用于远距离通信。
程序由学
串行通信是组成数据的字节中的各位按次次逐一传生进行编
送的方式,最少只要3根传输线即可,如图8-2所示。
写。
串行通信适用于远距离通信,但通信的传达速度较低。
图6-4串行通信
2、MCS-51单片机串行接口
MCS-51单片机的串行接口由串行口缓冲寄存器
SBUF、串行口控制寄存器SCON和电源控制寄存器PCON
组成,经过引脚TXD(P3.1)、RXD(P3.0)来达成串行
数据的发送和接收与外界进行串行通信。
(1)串行口缓冲寄存器SBUF
SBUF是按字节寻址的专用寄存器,它用来寄存将要
发送或接收到的数据。
在物理上有两个独立的SBUF寄
存器,一个用于发送,一个用来接收。
(2)串行口控制寄存器SCON
SCON是一个能够位寻址专用寄存器,它用于串行口
的方式选择、发送、接收控制及保留串行口的状态信息
等。
SCON中各位的名称如表6-2所示。
SCOND7D6D5D4D3D2D1D0
位
位名SM0SM1SM2RENTB8RB8TIRI
称
SCON中各位的定义以下:
SM0、SM1:
串行口工作方式选择位。
4种不同样取值对
应4种工作方式如表6-3所示。
SM2:
在方式2、3中用作多机通信控制位。
REN:
赞同接收控制位。
REN=0时禁止接收,REN=1时
赞同接收。
TB8:
发送数据的第九位。
RB8:
接收数据的第九位。
TI:
发送中止恳求标志位。
RI:
接收中止恳求标志位。
(3)电源控制寄存器PCON
PCON对串行口的影响是经过其SMOD位改变串行口的
波特率。
SMOD位位于PCON的最高位,即PCON.7,当
SMOD=1时串行口的波特率是SMOD=0时的两倍(方式0
除外)。
PCON在单片机复位时,SMOD=0。
二、MCS-51单片机串行口工作方式0的应用
1、串行口方式0的发送与接收
串行口工作方式0是8位同步移位寄存器方式。
串行
数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由
TXD(P3.1)引脚输出。
方式0主要用于I/O端口的扩
展。
(1)方式0的发送
方式0的发送操作是在TI=0的情况下,执行以SBUF
为目的字节的数据传达指令开始的。
比方:
SBUF=a;
8位数据发送达成后,由硬件将TI置1,向CPU恳求
中止。
若中止不开放,TI可作为发送达成的查问标志
位。
TI=1后,必定用软件将其清0,以便再次发送数据。
(2)方式0的接收
方式0的接收操作是在RI=0的条件下,由REN置1
指令来启动接收。
收到8位数据后,由硬件将RI置1,
向CPU恳求中止。
若中止不开放,RI可作为接收达成的查问标志位。
RI=1后,必定用软件将其清0,以便再次接收数据。
2、方式0应用举例
例1:
使用串入并出芯片74LS164与单片机相连,
使用串行口方式0扩展8位并行输出,接线表示图如图
6-5所示。
8位并行输出接8个发光二极管,要求控制
8个发光二极管屡次亮灭。
程序设计以下(采用查问方式):
图6-5方式0扩展并行输出
#include
#defineucharunsignedchar
voiddelay_ms(ucharxms);//定义延时函数
/*******以下是主函数****************/
voidmain()
{
uchara=0xff;
SCON=0;//置串行口方式0,有关标志位、控制
位清0。
while
(1)
{
SBUF=a;//启动串行发送
while(!
TI);//等待串行发送达成
TI=0;//TI清0,准备再次发送数据
a=~a;
delay_ms(200);
}
}
课堂小1、LED数码管构造原理及显示方式。
结
2、并行通信、串行通信的见解。
3、MCS-51单片机串行口构造及SCON各位作用。
4、串行口方式0应用举例。
课后作自我测评1题、2题、3题、4题。
业
任务2数字时钟电路硬件、软件设计
一、案头
任务数字时钟电路硬件、软件设计
授课时间年月日授课班级
授课形式讲解、讨论授课时数2课时
授课用具授课资源课件、单片机应用制作成品
课前准备
授课目标1、掌握串行口工作方式0的应用。
2、掌握数字时钟电路的整体组成。
3、掌握C语言数值计算的方法。
4、理解应用程序的编程思路。
授课重点1、串行口工作方式0的应用。
2、应用程序的编程思路及有关指令使用。
授课难点1、应用程序的编写思路及有关程序。
授课过程1、复习提问串行口方式0的主要应用。
2、介绍项目任务要求。
3、依照项目任务要求引导设计硬件电路。
4、C语言数值计算方法。
4、应用程序流程图绘制。
5、应用程序设计。
授课后记
二、授课推行过程
推行环授课内容
节
导学方
法
组织教
1、检查学生出勤情况并做好记录。
互动交
学
2、调整学生的注意力,为上课作准备。
流
复习提
1、串行口控制寄存器SCON各位的作用?
提问导
问
2、怎样用方式0扩展并行输出?
思
导入
在学习了串行口构造及方式0应用后,我们应用串行口方式0扩展4个并行输出口来输出显示时间,项目要求以下:
启发学习积极性
(1)用4个LED数码管采用静态显示,分别显示时和分,用一个发光二极管表示秒。
(2)用两个按键,一个用来调小时,一个用来调分钟。
讲授新
一、数字时钟电路设计
老师和
课
1、数字时钟电路组成方案设计
同学共
同讨论
依照项目要求,本项目硬件由按键电路(调时)、单
电路构
片机最小应用系统、扩展输出电路和数码管显示电路构
成方案。
成。
重点是扩展输出电路组成。
扩展输出用芯片74HC595
老师讲
来达成。
解
2、电路设计
74HC593
依照电路组成方案设计,对各组成部分进行设计。
关
与单片
键是扩展输出及显示电路的设计。
硬件电路原理图如图
机的连
6-7所示。
接及扩
展级连
图6-7数字时钟电路原理
方法。
2、元件选择
老师和
(1)复习晶振电路元件及复位电路元件的选择。
同学共
(2)复习发光二极管电路元件选择。
同在黑
板上绘
(3)数码管的选择。
制电路
二、应用程序编写
原理图。
1、C语言数值计算的方法。
对自述
运算可
(1)算术运算
算术运算常用的有:
+、-、*、/、%五种。
“/”是除
法运算,即两个整数相除,商仍为整数,舍去小数部分
(余数)。
“%”为取模运算(取余运算),参加运算的两
个整数,结果为两个数相除此后的余数。
比方:
unsignedinta,b,c,d;
a=12;b=8;
c=a/b;//结果是c=1。
多举几
个例子。
在老师
引导下
由同学
老师共
同完成
流程图
绘制。
d=a%b;//结果是d=4。
在老师
(2)复合运算
C语言中的复合运算符使得语句的书写更为简短,符号左则的变量既是源操作数又是目的操作数。
比方:
unsignedchara=0x01,b=0x02,c=0x03,d=0x04;
a/=b;//a=a/b=0
b+=0x01;//b=b+1=0x03
c|=0x80;//c=c|0x80=0x83
d<<=1;//d=d<<1=0x08
2、应用程序流程图绘制
依照项目要求,分别绘制主程序和中止服务程序流程
图如图6-8所示。
图6-8程序流程图
引导下
与同学
一起完
成应用
程序设
计。
延时子
函数、调
小时子
函数、调
分钟子
函数由
学生独
立达成。
3、程序设计
依照流程图编写程序,参照程序以下:
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharhour=12,min=0,sec=0;//定义小时、分
钟、和秒变量
ucharcont_1s;//定义1S准时次
数变量
sbitS1=P1^0;//定义S1键
sbitS2=P1^1;//定义S2键
sbitxskzw=P2^1;//定义显示控制
位
sbitled=P2^0;
uchardisp_buf[4];//定义显示缓冲
单元
ucharcode
tab[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0xff};//定义段码表
/**********以下是初始化函数************/
voidstart()
{
TMOD=0x11;//准时器工作方式
TL0=(65536-20000)%256;//置准时器初值,一次
准时20ms
TH0=(65536-20000)/256;
SCON=0x00;//串行口初始化
cont_1s=50;//置1S准时次数
EA=1;//开放中止
ET0=1;//开准时器中止
TR0=1;//启动准时器T0
}
/**********以下是时间显示函数*********/
voidsjxs()
{
uchari,tmp;//定义中间变量
xskzw=0;//控制位清0,准备串行发送显
示段吗
for(i=0;i<4;i++)//循环发送4位
{
tmp=disp_buf[i];//显示数据送tmp
SBUF=tab[tmp];//查显示段吗送SBUF进行串
行发送
while(TI==0);//等待发送完
TI=0;//为下次发送做好准备
}
xskzw=1;//控制地址1,将显示段吗送出显示当
前时间
}
/**********下以是数据办理函数*********/
voidsjcl(ucharin1,in2)
{
ucharfen,shi;
shi=in1;
fen=in2;
disp_buf[0]=fen%10;//分钟个位
disp_buf[1]=fen/10;//分钟十位
disp_buf[2]=shi%10;//小时个位
disp_buf[3]=shi/10;//小时十位
}
/***以下是准时器TO中止函数,用于产生时、分、秒
信号***/
voidsz()interrupt1
{
TL0=(65536-20000)%256;//重装准时器初值
TH0=(65536-20000)/256;
cont_1s--;//1S准时中止次数减1
if(cont_1s==0)
//
到1s
准时了吗?
{
cont_1s=50;
//
重置cont_1s
led=1;
//
秒闪烁灭
sec++;
//
秒加1
if(sec==60)
//
到60秒否?
{
sec=0;
//
到60
秒则秒清0
min++;
//
分钟加1
if(min==60)
//
到60
分否?
{
min=0;
//
到60
分钟则分清0
hour++;
//
小时加1
if(hour==24)
hour=0;
//
//
到24小时否?
到24小时则小时清
0
}
}
sjcl(hour,min);
sjxs();
//
//
调用数据办理函数
调用时间显示函数
}
elseif(cont_1s==25)//
到
0.5S
延时了吗?
led=0;
//
秒闪烁亮
}
/*********以下是主函数***************/
voidmain()
{
start();//调用初始化函数
while
(1)//大循环
{
if(S1==0)
{
delay_ms(10);//若S1按下则调用10ms延时函
数去颤动
if(S1==0)
txs();//S1仍旧按下则调用调小时函数
}
if(S2==0)//若S2按下则调用10ms延时
函数去颤动
{
delay_ms(10);
if(S2==0)//S2仍旧按下则调用调分钟
函数
tfz();
}
}
}
4、可否需要去颤动办理?
课堂小1、数字时钟电路设计。
结
2、C语言数值计算的方法。
3、应用程序设计,重点是程序流程图设计。
课后作自我测评5题、6题。
业
任务3数字时钟电路的计算机仿真
一、案头
任务防盗报警器电路的计算机仿真
授课时间年月日授课班
级
授课形式老师演示、学生练授课时2课时
习数
授课用具教学资机房、有关课件
源
课前准备
授课目标1、数字时钟电路设计的计算机仿真考证。
2、提高工具软件的使用熟练程度。
3、熟练C语言有关指令的使用及电路应用程序设计。
授课重点1、数字时钟电路设计的计算机仿真考证。
2、程序编写与改正。
授课难点1、仿真电路运行出错时的改正调试。
授课过程1、proteus仿真电路绘制步骤复习。
2、用keil进行程序汇编步骤复习。
3、部署练习作业,学生进行练习并考证电路收效,老师进行指
导。
授课后记
二、授课推行过程
实施环节
授课内容
导学方
法
组织教
1、检查学生出勤情况并做好记录。
互动交
学
2、调整学生的注意力,为上课作准备。
流
复习提问
1、本项目设计的数字时钟电路都有哪些功能?
提问导
思
导入
刚才同学们对数字时钟电路的功能作了表达,下面就依照前一次课进行的电路设计及程序编写,用计算机仿真考证本次项目设计的正确性和运行收效。
启发学
习积极
性
讲授新
一、使用proteus绘制仿真电路图的步骤
利用多
课
参照图6-7绘制仿真电路图。
媒体或
机房相
1、将所需元器件加入到对象选择器窗口
关软件
AT89S51用AT89C51代替,红色发光二极管的英文符
进行操
号是“LED-RED”;电阻、电容、电解电容、按键、晶作演示。
振的英文符号分别是“RES”、“CAP”“CAP-ELEC”、讲解个
“BUTTON”、“CRYSTAL”;绿色数码管的英文符号是步骤的
“7SEG-COM-CAT-GRN”。
含义。
2、放置元器件至图形编写窗口
3、搬动(删除)对象和调整对象朝向
4、放置电源及接地符号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 精选 单片机 应用 技能 语言 教案