单片机技术应用 教案(机工)1-1控制单个发光二极管的亮与灭---8-2 波形发生器的制作.docx
单片机应用技术电子教案授课对象二年级第一学期的机电类专业学生授课日期第1次课教材单片机应用技术出版社机械工业出版社授课课题控制单个发光二极管的亮与灭课时安排2课时教学目标1 .知识:掌握如何用单片机控制单个发光二极管的亮与灭。2 .技能:学会用编程软件编写程序,绘图软件绘制原理图并调试成功。3 .情感:培养学生分析问题、解决问题的能力,培养学生查询资料的能力和团结协作的意识。教学重点用单片机控制单个发光二极管的亮与灭教学难点学习赋值语句在单片机编程中的运用课型新授课教学方法工程教学法教学场景机房教学用具多媒体设备、电脑教学过程教学环节教学步骤与内容教学组织 形式(全体 讲授、分组 讲授等)教学 时间导入新课复习通过前面的学习,我们已经了解了单片机的结构以及 单片机I/O 口的分布情况,也对编程软件和仿真软件有了一定 的掌握,下面我们引入一个现实的例子来学习如何控制一位发 光二极管的亮或者灭。引入新课。全体讲授10新课学习【任务描述】硬件通电或复位后,P1.0管脚控制的发光二极管点亮或熄 火。1 .假设循环体只有一句语句,大括号可以省略,假设循环体大于 一句语句,必须要用大括号将其括起来。2 .循环体中要启改变判别式变量,使判别式走向不成立的操 作语句,否那么容易造成死循环。二、函数的定义与调用编写程序的时候,常常会出现功能一样或者重复的程序段, 将这些程序段“封装”起来,并给它们分类起名,当有需要的 时候就调用它们,这就是程序中的函数。1 .函数的定义函数定义是把函数的类型、名字、参数、函数体等信息告 诉编译系统,在函数调用时系统将会对相应的信息进行调用和 计算,定义格式如下:函数类型 函数名(形式参数表);( 局部变量定义函数体例子A:定义一个函数,求两个整数的和int mun(int x,int y)定义了一个名为mun()的函数,该函数类型为整型,看两 个个整型参数x, yo inti;/局部变量i=x+y;函数体return i;)2 .函数的调用在C语言编程中,函数功能的执行是通过函数的调用来实 现的,调用的格式如下:函数名(实参列表);例子B:调用例子A的函数,对式子66+88+23=进行 求和,存于变量S中。void main()int a=66,b=88,c=23, S;S=mun(a, b);S=mun(c, S);1.8X8LED点阵的结构示意图如图5-2o图5-2 8X8LED点阵的内部结构图从图中可以看出,8X8LED点阵共由64个发光二极管组成, 每个发光二极管是放置在行线和列线的交叉点上,当对应的某 一行置1高电平,且某一列置。低电平,那么相应的发光二极管 就点亮;因此要用8X8LED点阵来显示一个字符或汉字,只需 要根据字符或汉字图形中的线条或笔画,通过点亮多个相应发 光二极管就可以了。但这要通过取模软件来完成,取出字符或 汉字需要显示线条或笔画的字模,然后由单片机控制输出驱动 显示,如上任务。但是要比拟完美的显示汉字信息或图形,单个8X8LED 点阵模块很难做到,因为LED的点数(也称为象数)不够,因 此要显示信息量大的汉字或图形,需要n多个8X8LED点阵合 拼成一个大的显示屏才行。2.8X8LED点阵的封装和引脚64个发光二极管按照行共阳、列共阴8个一组的方式封 装成一个模块,这样就有8行、8列共16个引脚。其实物图 如图5-3和电路模块符号图如图5-4o16 15 14 13 12 11 10 91 2 3 4 5 6 7 8图5-3 8X8LED点阵实物图 图5-4 8X8LED点阵符号图 但8X8LED点阵的引脚并不是很有规律,千万不要想象成1 8个引脚是行,916引脚是列。而且不同厂家产品的点阵外 部引脚排列规律还可能不一样。以下是常见的8X8LED点阵引 脚对应行、列的关系表:表5-2 8X8LED点阵模块引脚行号H0H1H2H3H4H5H6H7引脚号9148121725列号L0L1L2L3L4L5L6L7引脚 号1334106111516如你买到一块新的8X8LED点阵,可以用万用表先按表中 引脚进行检测,不同时可按型号上网查找相关资料。课堂 小结本节课重点任务是了解8x8LED点阵结构和控制原理,学会使用 8x8LED点阵显示简单。全体讲 授5课后 作业复习8x8LED点阵结构和控制原理,完成相应练习题独立完 成5教学利用工程教学,学生有明确的学习目标,根据任务完成情况及时检验学习效果。 后记单片机应用技术电子教案授课对象二年级第一学期的机电类专业学生授课日期第17课教材单片机应用技术出版社机械工业出版社授课课题控制RT1602液晶屏显示课时安排2课时教学目标L知识:掌握如何用单片机控制RT1602液晶屏显示。2 .技能:学会用编程软件编写程序,绘图软件绘制原理图并调试成功。3 .情感:培养学生分析问题、解决问题的能力,培养学生查询资料的能力和团结协作的意识。教学重点用单片机实现控制RT1602液晶屏显示教学难点RT1602液晶屏控制原理课型新授课教学方法工程教学法教学场景机房教学用具多媒体设备、电脑教学过程教学环节教学步骤与内容教学组 织形式 (全体讲授、分 组讲授 等)教 学 时 间导入新课前面我们已经学习了学习了 8x8LED点阵显示控制,如果换成RT1602液晶显 示器,如何实现呢?引入新课。全体讲 授10新课学习通过单片机控制RT1602液晶屏实现字符串和实时时钟显示。【任务分析】1 .点按KI,用于设定调节“时、分、秒”时间功能和停止、开始计 时功能。2 .点按K2,用于调节“时、分、秒”加1功能。3 .点按K3,用于调节“时、分、秒”减1功能。4 . P0 口为数据输出端直接连接液晶屏的数据端口,P2. 0和P2. 1连 接液晶屏的RS和E端。【任务实施】根据任务分析,设计出硬件电路图,在Proteus上进行绘制,然后在Keil 软件中采用C语言对单片机进行编程,使用Proteus进行仿真和调试 活动1绘制电路原理图单片机控制RT1602液晶屏实现时钟显示的电路设计如图5-5所示。 电路中KI、K2、K3分别连接P3.0、P3. 1、P3. 2作为控制按钮,用于调 节时间。P0 口输出端直接连接液晶屏的数据端DOD7。P2.0、P2.1接 RS和E端。»XT 人L 1XTZKL2RWTF>Q C M AA.e0/1/234 0 67O/XKO 1/AOQ 2 ZXK 1 O 1Q 2 W/K 1 NPN O/K1 3P2 G/K1-1PN/7/人 1。F>3 O/«XDF>3 1/TXOR9.245ZSF>31 1P3/TOF>3 *VT1 户 O .O/VV< r>3QIN3c067 o/INaclor 00000000 qq.f>ppqpf>全体讲 授、教师 演示、上 机实训60图5-5控制RT1602液晶屏显示本任务单片机控制RT1602液晶屏显示功能是:第一行显示字符串 “The time is: ";第二行实时时钟显示,用开关KI、K2、K3进行当前时间调节。方法:点按K1用来设定调秒、分、 时,通过K2或K3进行加1或减1的数字变化,调完后最后点按K1重 新开始计时。图5-2所示电路图中的元器件参数见表5-6表5-6图5-6所示电路图中的元器件参数XJC2RP1持阻10KQ3LCD1LM016L16024srss按键活动2编写程序文件单片机控制RT1602液晶屏实现时钟显示的C语言程序如下: #include <reg51. h> #define uint unsigned int ftdefine uchar unsigned char uchar code dat 口=“0123456789 ; /09 数字uchar code str12 = ,The time is:“; /字符串uchar code mo = ,:; 冒号 sbit kl=P3 0;sbit k2=P3;sbit k3=P3八2;sbit RS=P2P;sbit E=P21;uchar t, s;char shi,fen, miao;void delay (uint i)while(i一);void wrc (uchar com)写指令(delay (2); 延时RS=O; /RS = O 写指令P0=com;E=1;delay (2);E=0;void wrd (uchar d)写数据delay (2); 延时RS=1; RS=1 写数据P0=d;E=1;delay(2);E=0;void init (void) 初始化/*常数定义*/(wrc (0x38); 写显示2行指令wrc(OxOc); 写开显示指令wrc (0x06); 写右移指令wrc (0x01); 写清屏指令)void xianshiO (uchar x, y, shu) 显示 1 个字符(位置,行,数if (y=l)x=x+0x40; 第2行+0x40,第1行挑过x=x+0x80; 0x80为第0位地址wrc (x) ; /写地址wrd (shu) ; / 写数据void xianshi2 (uchar x, y, n, uchar *chan)显示字符串位置,行,个数,字符串uchar i;if (y=l)x=x+0x40; 第2行+0x40,第1行挑过x=x+0x80; 0x80为第0位地址for (i=0; i<n; i+)数个字符循环wrc (x+i);地址+iwrd (*chan+);取字符代码,并写入数据)void key()键盘设置调时功能(if(kl=O) / K1设置功能,按下为0(delay (200);/ 延时消抖if(kl=O) / 再测(TR0=0;/停止计时s+;调时、分、秒功能设定if(s=5)5 个功能s=0;)while(kl=0);检测K1是否松手if (s=l)功能1调秒钟if(k2=0)K2 为+1 功能delay(200);if(k2=0)miao+; 秒+ 1 功能if (miao=60) miao=0;while(k2-0);if (k3=0)delay (200);if (k3=0)miao一一;if (miao=-l) miao=59;while (k3=0);)if (s=2)if (k2=0)delay (200);if (k2=0) fen+;if (fen=60)fen=0;while (k2=0);if (k3=0)(delay (200);if (k3=0)检测K2是否松手/K3为-1功能秒T功能功能2调分钟分+ 1功能分+ 1/分-1功能分Tif (fen-1) fen=59;while (k3=0);if (s=3)功能3调整时钟if(k2=0) 时+ 1 功能(delay(200);if (k2=0)shi+; 时+ 1if(shi=24)shi=0;)while (k2=0);if(k3=0) 时-1 功能delay (200);if (k3=0)shi-;时 Tif (shi=-l)shi=23;)while (k3=0);if(s=4)功能4结束调整时间TRO=1;重新开始计时void main ()(TM0D=0x01; /定时器0,方式1THO= (65536-10000)/256; 定时 10ms 的初值高 8 位TLO= (65536-10000)%256; 定时 10ms 的初值低 8 位EA=1;ETO=1; 开定时器0中断TRO=1; 启动计时init (); 初始化delay(200);xianshi2(0, 0, 12, str) ; /第一行显示字符串“The time is:,共12个字符while (1)(key();调用键盘子程序xianshi0(3, 1, datshi/10);显示时十位,第二行第3位开始xianshiO (4, 1, dat shi%10); 显示时个位xianshi0(5, l,mo0);显示冒号:xianshiO(6, 1, datfen/10); 显示分十位xianshiO (7, 1, dat fen%10); 显示分个位xianshiO (8, 1, mo0);显示冒号:xianshiO (9, 1, dat miao/10); 显示秒十位xianshiO (10, 1, dat miao%10); 显示秒个位)void time () interrupt 1 / 1为定时器0中断子函数THO= (65536-10000)/256; 重置初值TLO= (65536-10000)%256;课堂小结本节课重点任务是掌握如何用单片机控制单个发光二极管 的闪烁全体讲授5课后作业1 .循环while语句2 ,函数的定义与调用独立完成5教学后记利用工程教学,学生有明确的学习目标,根据任务完成情况及时检验学习效果。单片机应用技术电子教案授课对象二年级第一学期的机电类专业学生授课日期第3次课教材单片机应用技术出版社机械工'也出版社授课课题控制多盏发光二极管的闪烁课时安排2课时教学目标L知识:掌握如何用单片机控制多盏发光二极管的闪烁。2 .技能:学会用编程软件编写程序,绘图软件绘制原理图并调试成功。3 .情感:培养学生分析问题、解决问题的能力,培养学生查询资料的能力和团结协作的意识。教学重点用单片机控制多盏发光二极管的闪烁教学难点掌握十六进制与二进制的相互转换课型新授课教学方法工程教学法教学场景机房教学用具多媒体设备、电脑教学过程t+;if(t=100)计定时t = 100次为1秒钟t=0; miao+; 秒加 1if(miao=60)miao=0;fen+; 分加 1if(fen=60)(fen=0; shi+; 时加 1if (shi=24)(shi=0;)活动3仿真运行编写好程序文件后,生成hex文件,在Proteus的单片机中加载该 hex文件,运行后,点击KI、K2、K3按钮,调节当前时间,观察液晶屏 的显示情况。【知识链接】一、认识8X8LED点阵在日常生活中,我们对液晶显示屏并不陌生,液晶显示模块己作为很多 电子产品的显示器件,如在计算器、万用表、电子手表及很多家用电器 中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机 交流界面中,液晶显示屏显示特点:显示质量高、接口简单可靠、操作 方便、体积小、重量轻、功耗低,因此常被应用在计算机控制系统中。这里重点介绍两种液晶显示屏。一、1602LCD液晶显示器该类显示屏是一种字符型液晶显示模块,专门用于显示字母、数字、符 号等。一般1602字符型液晶显示器实物如图5-6所示:图5-6 1602液晶显示器实物图(上图为正面,以下图为反面)1 . 1602LCD主要技术参数显示容量为16X2个字符;芯片工作电压为4.55. 5V;工作电流为2. 0mA (5. 0V);模块最正确工作电压为5. 0V;字符尺寸为 2. 95X4. 35 (WXH) mmo2 .引脚功能说明1602LCD采用标准的14引脚(无背光)或16引脚(带背光)接口,各 引脚接口说明见下表。表5-5 1602液晶接口引脚定义编号符号引脚说明编号符引脚说明1VSS电源地9D2Date I/O2VDD电源正极10D3Date I/O3VL液晶显示偏压信号11D4Date I/O4RS数据/命令选择端(V/L)12D5Date I/O5R/W读/写选择端(H/L)13D6Date I/O6E使能信号14D7Date I/O7D0Date I/O15BLA背光源正极8D1Date I/O16BLK背光源负极2组电源:一组是模块的电源;一组是背光板的电源,均为5V供电。VL是调节比照度的引脚。调节此脚上的电压可以改变黑白比照度。RS是命令/数据选择引脚。该脚电平为高时表示将进行数据操作;为 低时表示进行命令操作。(4) RW是读写选择端。该脚电平为高是表示要对液晶进行读操作;为低 时表示要进行写操作。E使能信号端。同样很多液晶模块有此引脚,通常在总线上信号稳定 后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变 化。(6) D0-D7 8位双向并行总线,用来传送命令和数据。BLA是背光源正极,BLK是背光源负极。1602液晶模块与单片机的连接方式,如图5-6所示。3.控制器接口说明读状态输入RS=L, R/W=H, E=H输出DOD7=状态字写指令输入RS=L, R/W=L, DOD7二指令码,E二高脉冲输出无读数据输入RS=H, R/W=H, E=H输出D0D7三数据写数据输入RS=H, R/W=L, DOD7二数据,E二高脉冲输出无对此液晶操作主要有以下几种方法。 写命令(包括但不限于初始化、调节显示位置、清除显示等)写数据(把一个字符的ASCH码写入液晶使其显示)读忙信号(液晶乃低速设备,每次操作前应该测试忙信号,确定不 忙时再操作)4. 1602LCD的指令码(命令码)此液晶上电的时候需要初始化,典型的指令码是38H,也就是上电的时 候需要调用void wrc (unsigned char com)这个函数写指令码,用法 是wrc(0x38);执行完这个函数可以把液晶初始化成2行显示5x7的点阵 8位总线接口。以下指令码用法相同。此液晶支持的指令码有:指令码功能001 11000设置2行显示,5X7点陈,8位数居接口解释:就是0x38的命令(控制显示模式设置)。指令码功能00001DCBD=1开显示;D=0关显示C=1显示光标;C=0不显示光标B=1光标闪烁;B=0光标不显示000001NSN=1当读或写一个字符后地址指与 光标右移1位。N=0当读或写一个字符后地址指4 光标左移1位。S=1当写一个字符,整屏显示左1 或右移(N=0),以得到光标不 幕移动的效果。5=0当写一个字符,整屏显示不走十加一,且十减一,且多(N=l);移动而屏1动解释:第一行指令主要能完成的功能是:控制液晶显示否,光标显示否,光标闪烁否?如0x08 (显示关闭,不显示),OxOC (开显示,但不显示光标和不闪 烁)。第二行指令主要能完成的功能是:地址指针加1还是减一,光标左移 还是右移?整屏是否移动?如0x06(地址指针加一,显示光标自动向右移1位,但整屏显示不移动)。 其它指令设置:0x80 (数据首地址,所以数据地址为:0x80 +地址码)0x01 (显示清屏,地址指针=0,自动加1模式,光标或闪烁回到显示 屏左上角)。1602LCD液晶屏的一般初始化(复位)过程指令设置:延时30ms写指令0x38;(不检测查忙)延时5ms写指令0x38;(不检测查忙)延时5ms写指令0x38;显示模式设置写指令0x08;显不关闭写指令0x01;显示清屏写指令0x06;显示光标自动向右移动设置(无需人工干预)写指令OxOC;显示开及光标设置5. 1602LCD的RAM地址映像及标准字库表要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字 符(第几行,第几列),下表是1602的内部显示地址码。000102030405060708090A0B0C0D0E0F404142434445464748494A4B4C4D4E4F注意:显示数据地址=数据首地地址0x80 +地址码例如第二行第一个字符地址是0x40,实际写入的数据地址应该是0x80+ 0x40 = 0xC0o1602液晶模块内部的字符发生存储器(CGR0M)已存储了 160个不同的 点阵字符、图形如以下图5-7所示。这些字符有:数字、字母的大小写、 常用的符号等,每一个字符都有一个固定的代码,比方大写的英文字母A的代码是01000001B (41H),显示时模块把地址41H中的点阵字 符图形显示出来,我们应能看到字母'A 课堂小结课堂小结图5-7字符代码与图形对应图本节课重点任务是了解RT1602液晶显示器结构和控制原理,学会使用 RT1602液晶显示器。全体讲授课后作业复习RT1602液晶显示器结构和控制原理,完成相应练习题独立完成教学后记利用工程教学,学生有明确的学习目标,根据任务完成情况及时检验学习效果。单片机应用技术电子教案授课对象二年级第一学期的机电类专业学生授课日期第18课教材单片机应用技术出版社机械工业出版社授课课题控制128X64液晶屏显示课时安排2课时教学目标1 .知识:掌握如何用单片机控制128X64液晶屏显示。2 .技能:学会用编程软件编写程序,绘图软件绘制原理图并调试成功。3 .情感:培养学生分析问题、解决问题的能力,培养学生查询资料的能力和团结协作的意识。教学重点用单片机实现控制128X64液晶屏显示教学难点128X64液晶屏显示原理课型新授课教学方法工程教学法教学场景机房教学用具多媒体设备、电脑教学过程教学环节教学步骤与内容教学组 织形式 (全体 讲授、 分组讲 授等)教 学 时 间导入新课前面我们已经学习了 8x8LED点阵和RT1602液晶显示器,需要用128x64液 晶显示器显示中文,如何实现呢?引入新课。全体讲 授10新课学习通过单片机控制128X64液晶屏显示“欢迎使用” o【任务分析】P0 口为数据输出端直接连接液晶屏的数据端口 DBODB7, P2.3 P2. 7连接液晶屏的控制端。【任务实施】根据任务分析,设计出硬件电路图,在Proteus上进行绘制,然后在 Keil软件中采用C语言对单片机进行编程,使用Proteus进行仿真和 调试活动1绘制电路原理图单片机控制128X64液晶屏实现显示的电路设计如图5-8所示。电 路中单片机的P0 口输出端直接连接液晶屏的数据端DB0DB7。P2. 3、 P2.4接CS2和CS1端控制右半屏和左半屏。P2. 5接E使能端,P2. 6接 RW读写使能端,P2. 7接RS读写数据使能端,控制方法可看程序说明。 可变电阻RV1接V0用于调显示屏比照度,RP1为P0 口的上拉电阻。本任务单片机控制128X64液晶屏显示功能是:在显示屏中间显示 “欢迎使用”。其电路设计很简单,主要是通过编程来实现。LCD1全体讲 授、教 师演60 示、上 机实训POO/ADO PO 1/AD1 PO2/AD2 P0 3/AD3 PO 4/AD4 P0 5/AD5 P0 6/AD6 PO 7/AD7>XTAL1ZTAL2RST£ PSENPl 0P11PI 2PI 3PI 4PI 5PI 6PI 7AT89C51仿真中cs为低电平有效实际是高电平有效因此取反P2 0/A8P21/A9P2 2M10P2 3IA11P2 4XA12P2 5JA13P2 6XA14P2 7JA15P3WRXD P31OXDP3 2n7而P3 3flNTTP3 4H-0P3 5H-1P36A P3 7/RD图5-8控制128X64液晶屏显示图5-8所示电路图中的元器件参数见表5-9表5-9图5-8所示电路图中的元器件参数- 1UIAT89C522RP1排阻10KQ3LCD1LM012864128644SPSS按健活动2编写程序文件单片机控制12864液晶屏显示“欢迎使用”的C语言程序如下:ttincludc reg51.h#define uint unsigned int#define uchar unsigned char/*12864引脚及常数定义*/sbit rs=P2 7; /* rs = l 与数据,rs = O 与指令 */sbit rw=P26; /* rw=l 读,rw=O 写 */sbit e=P25; /*读,写使能,高电平有效,1-0下沿锁定数据*/sbit csl=P2-4; /*左屏片选,高电平有效*/sbit cs2=P2-3; /*右屏片选,高电平有效*/# define on 0x3f /* 开显示命令 */ttdefine x 0xb8 /* x 地址(0 页)*/# define y 0x40 /* y 地址(0 列)*/# define z OxcO /* Z地址(0行开始显示)*/uchar code zimo32=/汉字字模表/汉字库:宋体16X16纵向取模下高位,数据排列:从左到右从上到下/*一文字:欢一*/0x14, 0x24, 0x44, 0x84, 0x64, OxlC, 0x20, 0x18, OxOF,0xE8,0x08,0x08,0x28,0x18,0x08, 0x0,0x20, 0x10, 0x4C, 0x43, 0x43, 0x2C, 0x20, 0x10, OxOC, 0x03, 0x06, 0x18, 0x30, 0x60,0x20, 0x0,/*一文字:迎一*/0x40, 0x41, OxCE, 0x04, 0x00, OxFC, 0x04, 0x02, 0x02, OxFC, 0x04, 0x04, 0x04, OxFC,0x00, 0x0,0x40, 0x20, OxlF, 0x20, 0x40, 0x47, 0x42, 0x41, 0x40, 0x5F, 0x40, 0x42, 0x44, 0x43,0x40, 0x0,/*一文字:使-*/0x40, 0x20, OxFO, OxlC, 0x07, 0xF2, 0x94, 0x94, 0x94, OxFF, 0x94, 0x94, 0x94, 0xF4,0x04, 0x0,0x00, 0x00, 0x7F, 0x00, 0x40, 0x41, 0x22, 0x14, OxOC, 0x13, 0x10, 0x30, 0x20, 0x61,0x20, 0x0,/*一文字:用-*/0x00, 0x00, 0x00, OxFE, 0x22, 0x22, 0x22, 0x22, OxFE, 0x22, 0x22,0x22, 0x22,OxFE,0x00, 0x0,0x80, 0x40, 0x30, OxOF, 0x02, 0x02, 0x02, 0x02, OxFF, 0x02, 0x02, 0x42, 0x82, 0x7F,0x00, 0x0,;void delay(uint i) 延时(while(i-);void wrc (uchar com) /*写命令 参数:com为要发送的命令*/delay (3); 忙等待(因ISIS仿真LCD没有忙信号)rs=0; rw=0; /rs=0 , rw=0 写命令P0=com; 送出命令,e=l; e=0; 1-0使之有效void wrd (uchar d) /*写数据 参数:d为要发送的数据*/delay;忙等待(因ISIS仿真LCD没有忙信号)rs=l ;rw=0; /rs=l , rw=0 写数据教学环节教学步骤与内容教学组织 形式(全体 讲授、分组 讲授等)教学 时间我们已经学习了如何通过单片机控制一位发光二极管的闪导入新课导入新课烁,如果要实现用单片机控制多盏发光二极管的闪烁,该如何全体讲授10闪烁。新课学习那么称之为共阴极接法,单片机输出1点亮LED灯。工作原理:当单片机引脚输出1时(约5伏),LED灯两端电势相同,全体讲授、 教师演示、 上机实训60实现的呢?今天这节课我们就来学习一下!【任务描述】硬件通电或复位后,P1.0管脚控制LED灯实现亮和灭交替【任务分析】通过I/O 口赋值,对P0 口上的八根引脚同时进行高低电平 的控制,控制引脚上的LED灯交替闪烁。【任务实施】根据任务分析,设计出硬件电路图,在Proteus上进行绘 制,然后在Keil软件中采用C语言对单片机进行编程,使用Proteus进行仿真和调试。活动1绘制电路原理图如图1-5所示,LED0至LED7 一端通过总线接至P2 口的P2.0至P2.7弓I脚,另一端接5伏电源,这种接法叫做共阳极接法,单片机输出。点亮LED灯;假设LED灯的另一端一起接地,无电流流过,故熄灭;当单片机引脚输出。时(约。伏),LED 灯两端有一个正向导通的5伏电压,LED灯点亮。其中,与LEDAT89C51<TE:TU1灯串联的电阻起到防止LED灯电流过大烧坏的作用。>XTAL1XTAL2RSTPO.O/CO PO.I/ZOI P0.2/<0 P0.3/AB P0.4/XO4 P0.5/O5 P0.6/ZC6 P0.7/O7P2.0/X8n.iMP2.2/A10P$ENP2.3/A11ALEP2.4/A12氏P2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/D©PI.2P3.2/IN1DPI.3P3.3/1MHPI.4P3.4/1DPl.6P3.5mPI.6P3.6ATVRP1.7P3.7 而±±堂±PO=d; 送出数据e=l; e=0; 1-0使之有效void clr() 初始化清屏函数uchar i, j;wrc (on); 开显示csl=cs2=l; 同时选中左右屏for(j=0; j<8; j+) 共 8 页wrc (x+j); /光标到i页wrc (y); 光标到0列wrc (z); 光标到0行for (i=0; i<64; i+) 共 64 列wrd (0x00); 写0x00数字清屏)void shi (uchar H, L, zi, n, uchar *ma)显示:页,歹!J,字体,字数,字模地址uchar i, j, m;for (m=0;m<n;m+) 字个数 n(for (j=0 ;j<2;j+) /一个字占 2 页wrc (x+H+j) ;/写起始页+ j页wrc(y+L+zi*m); 写起始列+ 一个占的列数(zi*r)for (i=0; i<zi; i+) 一个字的列数wrd (*ma+);取各个字模(写入字码数据)void xian() /显示函数csl=l;cs2=0;csl=l;cs2=0;选择左半屏shi (3, 32, 16, 2, zimo0); 从第3页32列取zimo第0个字开始2个字,显示欢迎csl=0;cs2=l;csl=0;cs2=l;选择右半屏shi (3, 0, 16, 2,zimo2); 从第3页0列取zimo第2个字开始2个字,显示使用void main ()主函数clrO; 初始化清屏xian() ;/ 显示while(l); 等待)活动3仿真运行编写好程序文件后,生成hex文件,在Proteus的单片机中加载该 hex文件,运行后,观察液晶屏的显示情况。【知识链接】一、12864LCD液晶显示器1602LCD液晶显示器只能显示数字、字符和少量自定义的简易图形, 这在一些复杂的应用场合不能满足要求。而12864LCD液晶显示器上可 以显示字符、汉字、自定义图形等,显示灵活,控制方便,应用更广。 12864LCD液晶显示器分为自带字库和不带字库两种。这里介绍的是不 带自库的12864LCD液晶显示器。1. 12