项目9单片机应用技能实训(C语言)教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技能实训(C语言)教案—项目9
项目9 点阵LED屏显示电路制作
任务1 项目相关知识学习
二、教学实施过程
实施环节教学内容导学方法组织教学1、检查学生出勤情况并做好记录。
2、调整学生的注意力,为上课作准备。
互动交流
复习提问1、项目8中数码管的显示方式是动态显示还是静态显示?
2、以同学们的理解,LED屏是什么?
本项目的终极目标是制作一个单片机控制的LED屏显示电路。
提问导思
导入在项目6和项目8中,用数码管来显示数字,也可以用来显示一些字符,但是,显示字符时有一定局限性,所以,当要显示一
些英文字符时,考虑用LED屏。在进行项目制作之前,学习LED
屏的相关知识。启发学习积极性
讲授新课一、LED点阵显示模块的结构、工作原理及显示方式
1、LED点阵显示模块结构及工作原理
LED点阵显示模块是一种能显示图形、字符和汉字的显示器件。一个LED点阵显示模块一般由8×8个LED发光二极管方阵组成,其外形如图9-2所示。8×8LED点阵显示模块原理结构如图9-3所示。我们可以把每一个LED发光点理解为一个像素,8×8点阵显示屏可以显示在64像素范围内的任何图形。
图9-3 图9-2
2、LED点阵显示模块的显示方式
LED点阵显示模块的显示方法必须采用动态扫描方式,一般采用逐行扫描。以图9-3所示为例,一幅图形的每行由一个8位二进制数据构成,将这些数据称为显示数据点阵码。比如显示字符“O”的点阵码为:3CH、42H、42H、42H、42H、42H、42H、3CH (如图9-4所示)。一般显示汉字采用的是16×16的点阵模式或者更多,但是原理是相同的。用多媒体展示图9-2、图9-3。对照图9-3介绍其工作原理。
细致说明点阵码的含义。
图9-4
3、LED显示模块与单片机的连接
一个8×8LED显示模块与单片机的连接需要两个并行端口,一
个端口接行线,另一个端口接列线。用两个8×8LED显示模块可
构成8×16点阵,则要有三个并行端口与其相连,一个并行端口
接8位行线,另两个并行端口与16位列线相连。当并行端口不
够用时,可用项目十中介绍的并行I/O端口扩展方法进行端口的
扩展。图9-5是单片机与两个8×8LED显示模块的接线示意图。
图9-5
二、C51调用汇编语言子程序的方法
1、C51程序调用汇编语言子程序的编写方法
(1)先按照C语言的格式来编写汇编语言子程序架构,并将
SRC_CONTROL激活(激活方法参照项目8)。
(2)对该子程序架构进行编译后,就会在列表文件中清楚地
看到产生的汇编程序(扩展名为.SRC)。
(3)按照.SRC文件结构,重新编写汇编语言子程序。
2、在C51中调用汇编语言程序需注意事项
(1)被调用汇编语言子程序要在主程序前先进行声明。
重点说明
连接原理
及实际使
用时的注
意事项。
任务2 LED屏显示电路硬件、软件设计
二、教学实施过程
实施环节教学内容导学方法组织教学1、检查学生出勤情况并做好记录。
2、调整学生的注意力,为上课作准备。
互动交流
复习提问1、LED显示模块的显示方式如何?
2、怎样获得LED点阵码?
提问导思
导入在学习了LED屏的相关知识后,我们利用所学知识进行项目硬件电路设计。项目要求如下:
利用单片机及相关扩展芯片,制作点阵LED屏显示电路来实现
字符显示。要求用两个8×8点阵LED模块来显示“OK”两个字
符。启发学习积极性
讲授新课一、项目硬件电路设计
1、电路构成方案设计
根据项目要求,本项由两个LED模块来显示字符,需要3个端
口,使用P0、P2、P3口。本项目硬件由单片机最小应用系统、
输出驱动电路、LED点阵显示模块电路构成。
2、电路设计
根据电路构成方案,对各组成部分进行设计。难点是输出驱动
电路构成,硬件电路原理如图9-6所示。
图9-6 电路原理
3、元件选择
(1)复习晶振电路元件及复位电路元件的选择。
(2)LED点阵模块及限流电阻的选择。选用共阳模块,限流
电路R10~R25:100Ω
(3)扩展芯片选择:74HC573,上拉电阻R2~R9:10K。
二、应用程序编写
1、应用程序流程图绘制
该项目要求是开机后需显示“OK”两个字符。根据LED点阵扫
描显示原理,绘制主程序流程图如图9-7所示。老师和同学共同讨论电路构成方案。
老师和同学共讨论设计,在黑板上画出设计图如图9-6。
通过提问或讨论方式由同学进行选择。
。
图9-7
2、程序设计
根据流程图编写程序,参考程序如下:
#include
unsigned char code dzm1[8]=
{0xc3,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xc3};
unsigned char code dzm2[8]=
{0x11,0xb7,0xaf,0x9f,0xaf,0xb7,0xbb,0x18};//OK点阵吗
void delay() ; //声名延时函数
/*****以下是主函数***********/
void main()
{
unsigned char i,j;
P0=0x00; //清屏
while(1)
{
j=0x01; //指向第一行
for(i=0;i<8;i++)
{
P0=j; //输出行信号
P2=dzm1[i]; //输出相应行点阵码
P3=dzm2[i]; //输出相应行点阵码可考虑用多媒体展示图10-7。由老师进行讲解。
由老师和同学一起完成程序编写。