任务一 制作静态显示广告屏(2)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂

2025-08-25
| 10页
| 43人阅读
| 1人下载
精品

内容正文:

《单片机技术及应用》(高教版第四版) 教案 课 题 制作静态显示广告屏(2) 课 型 理论 课 时 2 授课班级 授课时间 授课教师 教材分析 内容为 “单片机应用技术” 课程的核心实践项目,以 “LCD12864 静态显示广告屏制作” 为任务驱动,整合电路设计(Protel 绘图)、硬件焊接、C51 编程(字模数据编写、显示函数设计)及仿真验证(Proteus 观测效果)等技能。教材采用 “任务实施” 递进结构:绘制原理图→焊接→编程→仿真,通过代码示例(如 delayms 延时函数、writeHZ 写汉字函数)及元件库说明(如 Header20 的查找路径)强化理论与工程实践结合。作为前序 “单片机基础” 的延伸,本节为后续动态显示(文字滚动、闪烁)及智能终端开发奠定基础,重点培养学生硬件开发、软件调试及系统集成能力,是提升计算机应用专业学生工程实践素养的关键环节。 学情分析 学生已掌握单片机基础编程(如 C51 循环语句)及基础电路知识(如元件识别、Protel 软件操作),但对 LCD12864 液晶模块的核心技术(地址定位、16x16 汉字 / 8x16 数字的字模显示原理)、时序控制(如写指令 / 数据函数的 E 引脚高低电平切换)及仿真调试(Proteus 加载 HEX 文件、观察显示效果)理解较浅。部分学生能操作 Protel 绘制简单原理图,但易因元件库查找(如 “Miscellaneous Connectors.IntLib” 中的 Header20)或布局不合理导致焊接接触不良;编程中,字模数据的存储与调用(hanzi_ZM/shuzi_ZM 数组)需结合显示函数(writeHZ/writeAsci)逻辑,可能因地址计算错误(如 y 坐标超出 64 需切换 CS1/CS2)出现文字错位。需通过 “原理解析 - 操作示范 - 实践纠错” 强化关键技能,突破字模显示与时序控制瓶颈。 学习目标 知识目标: 1. 掌握绘制 LCD12864 液晶显示模块电路原理图的方法。 2. 学会焊接 LCD12864 液晶显示模块电路。 技能目标: 1. 能够根据需求编写 C51 源程序并编译生成 HEX 文件。 2. 完成 LCD12864 液晶显示模块的仿真调试程序。 情感目标: 增强岗位适配与环境适应能力,在职业转换中快速掌握新技能并融入团队。 学习重难点 重点: 1. 绘制 LCD12864 液晶显示模块电路原理图。 2. 编写 C51 源程序实现文字显示。 3. 仿真调试程序的操作流程。 难点: 1. 理解 LCD12864 的地址定位和字模显示原理。 2. 调试程序以实现正确的文字显示效果。 教学方法 案例分析、讲授法、小组讨论法 课前准备 1.查找相应网站资料,课堂演示使用。 2.学生课前预习。 教学媒体 电子课件、多媒体视频 教学过程 教学环节 教师活动设计 学生活动设计 设计意图 活动一: 创设情境 生成问题 【课程导入】 在信息展示的场景中,静态显示广告屏有着广泛的应用。今天我们将学习如何使用 LCD12864 液晶显示模块制作一个静态显示广告屏,显示特定的数字、英文和汉字。 【新知识传授】 · 绘制 LCD12864 液晶显示模块电路原理图 · 焊接 LCD12864 液晶显示模块电路 (1) 启动与新建文件 ① 启动 Protel DXP 2004,新建一个电路原理图文件,其文件名为 “LCD12864 液晶显示模块电路原理图.SchDoc”。 (2) 查找与拖入元件 (3) 绘制电路 (4) 保存文件 ② 从元件库 “Miscellaneous Connectors.IntLib” 中查找 “Header20” (液晶接口),拖入工作窗口。 ③ 从元件库 “Miscellaneous Devices.IntLib” 中查找 “Res2”(3 个电阻)、“Res Pack”(排阻)、“RPot SM”(滑线变阻器),拖入工作窗口。 ④ 在自制元件库中新建一个元件 “AT89C51”,然后添加到工作窗口中。 2.引导学生带着问题去课本寻找答案,明确本节课的学习内容。 3.展示本讲学习目标。 1. 接收并查看本节课堂任务书。 2. 了解学习目标,带着目标进行学习。 3. 观察生活中常见的多媒体信息形式,思考其背后的技术支撑。 4. 针对教师给出的问题,初步发表个人见解。 5. 目标明确:跟随教师引导,明确本节课学习目标。 1.以提问的方式导入课程,让学生带着问题有针对性的进行学习。 2.通过任务实施,调动学生积极性。 活动二: 调动思维 探究新知 【新知识传授】 · 搭接电路 ① 根据 LCD12864 液晶显示模块电路原理图选取元件,用万用表测量元件的好坏。 ② 绘制元件布局图,在万能电路板上按布局图依次进行元件的排列、插装。 ③ 按工艺要求焊接元件,背面用直径为 0.5 - 1mm 的导线连接,直到所有的元件连接并焊完为止。 · 绘制程序流程图 2. 教师操作演示 3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。 1. 阅读探究:阅读课本相关内容,探究多媒体技术的产生背景。 2. 概念理解:理解多媒体、多媒体技术和多媒体系统的定义,并尝试用自己的话复述。 3. 要点记录:记录多媒体技术强调的要点,加深理解。 1. 了解学生现有知识储备。 2. 巩固练习。 活动三: 调动思维 探究新知 【新知识传授】 · 编程 ① 启动 Keil uVision2,新建一个工程文件 “LCD12864 液晶显示模块.uV2”。 ② 新建一个 C51 源程序文件 “LCD12864 液晶显示模块.C”,根据程序流程图,输入下面的 C51 源程序。 (1) 字模数据部分 uchar code hanzi_ZM[][32] = {     /*-- 文字:壮 --*/     /*-- 新宋体12;此字体下对应的点阵为:宽x高=16x16 --*/     0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x20, 0x18, 0xC7, 0x44, 0x44,  0x44, 0x44, 0xFC, 0x44, 0x44, 0 x44, 0x44, 0x04, 0x00, 0x00,     /*-- 文字:丽 --*/     /*-- 新宋体12;此字体下对应的点阵为:宽x高=16x16 --*/     0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x04, 0xFF, 0x04, 0x04,  0x04, 0x04, 0x04, 0x04, 0x00,     0x80, 0x84, 0x44, 0x44, 0x24, 0x14, 0x0C, 0x07, 0x0C, 0x14, 0x24,  0x44, 0x44, 0x84, 0x80, 0x00,     // 其他汉字字模数据...}; uchar code shuzi_ZM[][16] = {     /*-- 文字:1 --*/     /*-- 新宋体12;此字体下对应的点阵为:宽x高 = 8x16 --*/     0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F,  0x20, 0x20, 0x00, 0x00,     /*-- 文字:9 --*/     /*-- 新宋体12;此字体下对应的点阵为:宽x高 = 8x16 --*/     0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x31, 0x22,  0x22, 0x11, 0x0F, 0x00,     // 其他数字和英文字母字模数据...}; (2) 延时函数与写数据、写指令函数 void delayms(uint x)  //毫秒延时函数 {     uchar i;     while (x--)         for (i = 0; i < 123; i++); } void writeData(uchar x)  //写数据 {     rs = 1; //数据     wr = 0; //写     P0 = x; //将x写入LCD12864中     _nop_();     E = 1; //使能端有效     _nop_(); E = 0; //使能端无效 } (3) 定位函数与清屏函数 void lcd_xy(uchar x, y) //定位 {     if (y < 64) //若列小于64在左半屏显示 {         CS1 = 1; //左半屏片选有效         CS2 = 0; //左半屏片选无效         writeCon(0x40 | y); //写入y地址     }  else  //若列小于64在左半屏显示 {         CS1 = 0; //左半屏片选无效         CS2 = 1; //左半屏片选有效         writeCon(0x40 | (y - 64));     }     writeCon(0xb8 | x); //写入x地址 } void clear() {     uint i, j;     CS1 = CS2 = 1;     for (i = 0; i < 8; i++) //开显示  {         writeCon(0xb8 + i); //页地址         writeCon(0x40); /列地址         for (j = 0; j < 64; j++) {             writeData(0x00); //送数据         }     }} (4) 初始化函数 void init12864() //初始化LCD12864  {     RST = 0; //LCD12864复位     delayms(15);     RST = 1;     writeCon(0x3e); //关显示     writeCon(0xb8); //页地址初始化从0页开始     writeCon(0x40); //列地址初始化从列开始     writeCon(0xc0); //显示开始线从第一行开始     writeCon(0x3f); //开显示 } (5) 写汉字和写字符函数 void writeHZ(uchar x, y, uchar code *p) //写一个汉字16*16  {     uint t = 0;     uchar i, j;     for (i = x; i < x + 2; i++)  //显示一个汉字占两页 {         for (j = y; j < y + 16; j++) //显示一个汉字占16列  {             lcd_xy(i, j); //定位坐标位i页j列             writeData(p[t++]); //输出正常字模数据         } }} void writeAsci(uchar x, y, uchar code *p) //写一个字符8*16   {     uint t = 0;     uchar i, j;     for (i = x; i < x + 2; i++)  {         for (j = y; j < y + 8; j++)  //显示一个字符占8列 {             lcd_xy(i, j);             writeData(p[t++]);         }     }} (6) 主函数 void main() {     init12864();     clear();     writeAscii(0, 16, shuzi_ZM[0]);     writeAscii(0, 24, shuzi_ZM[1]);     writeAscii(0, 32, shuzi_ZM[2]);     writeAscii(0, 40, shuzi_ZM[3]);     writeAscii(0, 48, shuzi_ZM[4]);     writeAscii(0, 56, shuzi_ZM[5]);     writeAscii(0, 64, shuzi_ZM[6]);     writeAscii(0, 72, shuzi_ZM[7]);     writeAscii(0, 80, shuzi_ZM[8]);     writeHZ(2, 16, hanzi_ZM[0]);     writeHZ(2, 32, hanzi_ZM[1]);     writeHZ(2, 48, hanzi_ZM[2]);     writeHZ(2, 64, hanzi_ZM[3]);     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]);     writeAscii(6, 24, shuzi_ZM[10]);     writeAscii(6, 32, shuzi_ZM[11]);     writeAscii(6, 40, shuzi_ZM[12]);     writeAscii(6, 48, shuzi_ZM[13]);     writeAscii(6, 56, shuzi_ZM[14]);     writeAscii(6, 64, shuzi_ZM[15]);     while (1);} (7) 编译生成 HEX 文件 编译生成 HEX 文件 “LCD12864 液晶显示模块.HEX”。 · 仿真调试程序 ① 启动仿真软件 Proteus 7.4,新建一个仿真文件 “LCD12864 液晶显示模块.DSN”。 ② 单击元件选择按钮 “P”,从元件库中选择需要的元件:排阻 (RP1) 1 个、液晶显示模块 (LCD12864) 1 个、电位器 (RV2) 1 个和单片机芯片 (AT89C51) 1 块。 ③ 根据电路原理图绘制仿真电路图 (省略复位和时钟电路),添加电源 (VCC) 和地端,修改元件标号和标称值。 ④ 双击芯片 AT89C51,在弹出的对话框中加载 HEX 文件 (LCD12864 液晶显示模块.HEX),修改时钟频率为 12 MHz。 ⑤ 单击仿真按钮,观察仿真效果,如图所示。 ⑥ 按 Ctrl + S 组合键保存文件。 2. 教师操作演示 3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。 1. 应用列举 2. 影响分析 3. 创新思考 1. 引导学生主动思考,发散思维,参与课堂。 2. 培养学生发现问题,解决问题的能力。 3. 了解相关知识。 4. 辩论形式让学生参与并归纳总结。 活动四: 巩固练习 素质提升 【随堂检测】 1  在绘制 LCD12864 液晶显示模块电路原理图时,从哪个元件库中查找 “Header20” 元件? 2  在编程中,延时函数 delayms 的作用是什么? 3  在仿真调试程序时,需要选择哪些元件? 4  在写汉字函数 writeHZ 中,一个汉字显示占多少页和多少列? 【分组讨论】 介绍如何对静态显示广告屏进行改进,实现动态显示效果,如文字滚动、闪烁等。 1. 答案交流 2. 话题讨论 3. 效率分析 4. 挑战探讨 5. 总结汇报 知识检测与巩固 课堂小结 作业布置 课堂小结 作业布置 复习本节课内容,预习下节课内容。 板书设计 1. 绘制 LCD12864 液晶显示模块电路原理图 2. 焊接 LCD12864 液晶显示模块电路 3. 搭接电路 4. 绘制程序流程图 5. 编程 6. 仿真调试程序 教学反思 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务一 制作静态显示广告屏(2)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
1
任务一 制作静态显示广告屏(2)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
2
任务一 制作静态显示广告屏(2)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。