内容正文:
《单片机技术及应用》(高教版第四版) 教案
课 题
制作动态显示广告屏
课 型
理论
课 时
2
授课班级
授课时间
授课教师
教材分析
任务二为 “显示控制技术” 模块的进阶实践章节,聚焦 “LCD12864 动态滚动广告屏制作” 目标,系统讲解 Z 地址计数器原理(6 位循环控制起始行)、动态滚动逻辑(起始行地址 0XC0 自增 / 自减)及编程实现(主函数中循环调整 writeCon (0xc0+i))。教材采用 “知识储备(Z 计数器→滚动原理)→工具准备→编程→仿真” 递进结构,通过 “静态显示(任务一)→动态滚动(任务二)” 的技术链,将硬件控制(LCD12864 与单片机连接)与软件逻辑(地址动态调整)深度融合。作为动态交互显示的入门任务,本节是前序 “静态显示” 的技术延伸,为后续任务三 “图片右移” 及多方向滚动、变速显示等复杂功能奠定基础,是培养学生嵌入式系统动态控制能力的核心实践环节。
学情分析
学生已掌握任务一 “静态显示广告屏” 的核心技能(如 LCD12864 字模写入、命令发送),但对动态滚动的底层原理(Z 地址计数器控制起始行、DDRAM 循环显示 64 行)及编程逻辑(起始行地址 0XC0 的自增 / 自减)认知较浅。部分学生能完成静态数据写入(writeHZ/writeAscii 函数),但易混淆动态显示中 “地址连续变化” 与静态 “固定地址写入” 的差异,导致滚动卡顿或方向错误;Z 计数器的 6 位循环机制(0~63)常因未理解 “完成一行扫描后自动加 1” 的特性,出现滚动范围超出 DDRAM 容量的问题;编程中,延时函数(delayms (10))与滚动速度的匹配需反复调试,学生可能因参数设置不当(如延时过短)导致画面闪烁。需通过对比任务一代码(固定地址)与任务二循环控制(for (i=0;i<0xc0))、Z 计数器原理演示(64 行循环机制)及 “仿真 - 调试 - 优化” 实践,强化动态显示控制能力。
学习目标
知识目标:
1. 了解 Z 地址计数器的作用及与液晶屏动态显示的关系。
2. 掌握制作动态显示广告屏所需的工具与材料准备和工作准备。
技能目标:
1. 能够编写实现液晶屏内容向上或向下滚动的主程序代码。
2. 完成编译程序并进行仿真调试,观察动态显示效果。
情感目标:
增强技术应用与实操能力,在专业领域实践中熟练掌握核心技能与操作流程。
学习重难点
重点:
1. 理解 Z 地址计数器对液晶屏动态显示的控制原理。
2. 编写主程序实现液晶屏内容的滚动显示。
3. 完成仿真调试程序,观察动态显示效果。
难点:
1. 掌握通过控制起始行地址实现滚动显示的编程逻辑。
2. 调试程序以确保滚动显示效果正常。
教学方法
案例分析、讲授法、小组讨论法
课前准备
1.查找相应网站资料,课堂演示使用。
2.学生课前预习。
教学媒体
电子课件、多媒体视频
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
【课程导入】
在广告展示中,动态显示能够吸引更多的注意力。今天我们将学习如何使用 LCD12864 液晶显示模块制作一个动态显示广告屏,实现内容的向上或向下滚动。
【新知识传授】
· Z 地址计数器
Z 地址计数器是一个 6 位计数器,用于显示行扫描同步显示。
完成一行扫描后,Z 地址计数器自动加 1,指向下一行扫描数据,复位后 Z 地址计数器为 0。液晶显示模块的起始行就是由地址计数器控制的,即 DDRAM 的数据起始行开始。LCD12864 液晶显示模块的 DDRAM 共有 64 行,液晶屏可以循环滚动显示 64 行。因此只要控制起始行地址 0XCO 自增或者自减即可。
· 显示数据RAM(DDRAM)
DDRAM 是存储图形显示数据的。数据为 1 表示显示选择,数据为0表示显示非选择。DDRAM 与地址和显示位置的关系见 DDRAM 地址表。
· XY地址计数器
XY地址计数器是一个 9位计数器。高 3位是 X地址计数器,低 6位为Y地址计数器,XY地址计数器实际上是作为 DDRAM 的地址指针,X地址计数器为 DDRAM 的页指针,Y地址计数器为 DDRAM 的 Y地址指针。
· X地址计数器是没有记数功能的,只能用指令设置。
· Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加 1,Y地址指针从 0~63。
2.引导学生带着问题去课本寻找答案,明确本节课的学习内容。
3.展示本讲学习目标。
1. 接收并查看本节课堂任务书。
2. 了解学习目标,带着目标进行学习。
3. 观察生活中常见的多媒体信息形式,思考其背后的技术支撑。
4. 针对教师给出的问题,初步发表个人见解。
5. 目标明确:跟随教师引导,明确本节课学习目标。
1.以提问的方式导入课程,让学生带着问题有针对性的进行学习。
2.通过任务实施,调动学生积极性。
活动二:
调动思维
探究新知
【新知识传授】
· 任务需求
实现液晶屏幕显示的内容整体向上或者向下滚动。
· 工具与材料准备
① 软件:Protel DXP 2004、Proteus 7.4、Keil uVision2、EasyPRO Programmer、流程图绘制软件。
② 硬件:计算机 1 台、编程器 1 台、最小系统电路板 1 块、杜邦线若干、电池盒 1 个、LCD12864 液晶显示模块 1 个。
· 穿好工作服,戴好防静电手环,穿绝缘胶鞋。
· 清洁工作台面,清理工作区域,工具、仪器仪表摆放整齐有序。
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 阅读探究:阅读课本相关内容,探究多媒体技术的产生背景。
2. 概念理解:理解多媒体、多媒体技术和多媒体系统的定义,并尝试用自己的话复述。
3. 要点记录:记录多媒体技术强调的要点,加深理解。
1. 了解学生现有知识储备。
2. 巩固练习。
活动三:
调动思维
探究新知
【新知识传授】
· 编程
· 主程序代码
void main() //主函数
{
uchar i;
init12864(); //初始化LCD12864
clear();
writeAscii(0, 16, shuzi_ZM[0]); //1
writeAscii(0, 24, shuzi_ZM[1]); //9
writeAscii(0, 32, shuzi_ZM[2]); //4
writeAscii(0, 40, shuzi_ZM[3]); //9
writeAscii(0, 48, shuzi_ZM[4]); //-
writeAscii(0, 56, shuzi_ZM[5]); //2
writeAscii(0, 64, shuzi_ZM[6]); //0
writeAscii(0, 72, shuzi_ZM[7]); //1
writeAscii(0, 80, shuzi_ZM[8]); //9
writeHZ(2, 16, hanzi_ZM[0]); //壮
writeHZ(2, 32, hanzi_ZM[1]); //丽
writeHZ(2, 48, hanzi_ZM[2]); //7
writeHZ(2, 64, hanzi_ZM[3]); //0
writeHZ(2, 80, hanzi_ZM[4]); //年
writeHZ(4, 16, hanzi_ZM[5]); //奋
writeHZ(4, 32, hanzi_ZM[6]); //斗
writeHZ(4, 48, hanzi_ZM[7]); //新
writeHZ(4, 64, hanzi_ZM[8]); //时
writeHZ(4, 80, hanzi_ZM[9]); //代
writeAscii(6, 16, shuzi_ZM[9]); //c
writeAscii(6, 24, shuzi_ZM[10]); //o
writeAscii(6, 32, shuzi_ZM[11]); //m
writeAscii(6, 40, shuzi_ZM[12]); //e
writeAscii(6, 48, shuzi_ZM[13]); //
writeAscii(6, 56, shuzi_ZM[14]); //o
writeAscii(6, 64, shuzi_ZM[15]); //n
· 代码解释
1 初始化函数
在主程序中调用的init12864()函数用于初始化LCD12864,使液晶显示模块进入正常工作状态。
2 清屏函数
clear()函数用于清除液晶屏上的显示内容,为后续显示做准备。它通过循环向 DDRAM 写入 0x00 来清除显示。
3 写字符和写汉字函数
writeAscii()函数用于在液晶屏上显示字符字。它们根据传入的坐标和字模数据,将相应的内容显示在指定位置。
writeHZ()函数用于在液晶屏上显示汉字。它们根据传入的坐标和字模数据,将相应的内容显示在指定位置。
4 延时函数
delayms()函数用于实现毫秒级的延时,在滚动显示过程中起到控制滚动速度的作用。其实现是通过嵌套循环来实现一定时间的延时。
writeCon()函数用于向 LCD12864 写入指令,如设置起始行地址等。通过设置不同的指令参数,可以控制液晶屏的显示行为。
5 写指令函数
· 仿真调试程序
① 启动仿真软件 Proteus 7.4,新建一个仿真文件 “制作动态显示广告屏.DSN”。
② 单击元件选择按钮 “P”,从元件库中选择需要的元件:排阻 (RP1) 1 个、液晶显示模块 (LCD12864) 1 个、电位器 (RV2) 1 个和单片机芯片 (AT89C51) 1 块。
③ 根据电路原理图绘制仿真电路图 (省略复位和时钟电路),添加电源 (VCC) 和地端,修改元件标号和标称值。
④ 双击芯片 AT89C51,在弹出的对话框中加载 HEX 文件 (制作动态显示广告屏.HEX),修改时钟频率为 12 MHz。
⑤ 单击仿真按钮,观察仿真效果,如图所示。
⑥ 按 Ctrl + S 组合键保存文件。
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 应用列举
2. 影响分析
3. 创新思考
1. 引导学生主动思考,发散思维,参与课堂。
2. 培养学生发现问题,解决问题的能力。
3. 了解相关知识。
4. 辩论形式让学生参与并归纳总结。
活动四:
巩固练习
素质提升
【随堂检测】
1 Z 地址计数器的作用是什么?
2 在主程序中,如何实现液晶屏内容的向上滚动?
3 在仿真调试时,若滚动显示不正常,可能的原因有哪些?
4 在编程中,延时函数delayms()的作用是什么?
5 简述编程主程序的主要功能。
6 简述实现液晶屏动态显示的原理。
【分组讨论】
讨论如何进一步优化动态显示广告屏的显示效果。分析在不同场景下,动态显示广告屏的应用策略。
1. 答案交流
2. 话题讨论
3. 效率分析
4. 挑战探讨
5. 总结汇报
知识检测与巩固
课堂小结
作业布置
课堂小结
作业布置
复习本节课内容,预习下节课内容。
板书设计
1. Z 地址计数器
2. 工具与材料准备
3. 编程
4. 仿真调试程序
教学反思
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$