工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)

2024-07-10
| 28页
| 46人阅读
| 1人下载
普通

内容正文:

工作模块4---LED点阵屏显示控制 同学们,大家好!上一讲我们学习了矩阵键盘识别原理,并绘制了接口电路,今天我们利用矩阵键盘实现数字键盘的功能 1 情境导入 每当走进商场、超市、银行、酒店时,都会看到广告类的电子大屏幕,显示文字或者图片,非常显眼,这就是LED点阵屏,简称LED屏。随着科技的发展,LED屏成为信息传播、新闻发布、广告宣传等领域最为常见的显示媒体。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 内容图谱 矩阵键盘程序设计总体思路:单片机采用编程扫描法来监视键盘的输入,采用反转法获取键值。 具体编程步骤如下: 任务描述 某电子科技有限公司接到一批订单,使用LED屏显示数字、字母和几个简单的汉字。现经过开发团队决策,考虑安装尺寸和物料成本,决定使用8×8LED屏,通过单片机控制其显示,调试阶段先显示汉字“正”,请设计电路原理图,编写程序,并仿真功能。 初级能力:实现单片机控制8×8 LED屏显示一个字符的功能。 高级能力:能够实现8×8 LED屏的滚动显示字符的功能。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 执行思路 矩阵键盘程序设计总体思路:单片机采用编程扫描法来监视键盘的输入,采用反转法获取键值。 具体编程步骤如下: 实施过程 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 Proteus ISIS设计电路原理图 表4-1 仿真电路元件明细 序号 元件名称 元件型号 元件参数 1 LED屏 MATRIX-8x8-RED 2 双向总线驱动器 74LS245 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 4-1-1 绘制原理图重点——绘制总线及分支 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 74HC245数字芯片引脚图 实施过程 第1脚DIR(T/R),为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。   第2~9脚,第11~18脚“A”信号输入输出端,如果IR=“1”OE=“0”则A1输入B1输出,如果DIR=“0”OE=“0”则B1输入A1输出。 第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。    我们总结一下今天的学习内容:学习了1. 矩阵键盘的编程扫描法 2.采用反转法进行矩阵键盘键值识别 3.编写了矩阵键盘实现数字键盘的程序 课后作业:1. 请采用定时中断扫描实现数字键盘; 2.请编写获得键值采用扫描法的程序。 知识链接 4-1 LED屏结构 LED显示屏最常见的是8×8(8行8列)的。内部的每一个点都是一个发光二极管。LED点阵屏有两个类型,一类为共阴极如图,在共阴极端输入有效电平0时某个点位的LED灯就具备了点亮的条件。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 知识链接 4-1LED屏结构 另一类则为共阳极,如图4.11(b),在共阳极端输入有效电平1时,某个点位的LED灯就具备了点亮的条件。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 知识链接 LED显示屏的基本工作原理是动态扫描。显示方式是按显示编码的顺序,一行一行地显示。每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED灯是在同时显示的。若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。任务4-1采用低电平逐行(P1)扫描,高电平(P2)输出显示信号。即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态 ,其它行都处于熄灭状态。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 知识链接 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 实施过程 LED屏的显示控制 //任务4-1 LED屏8x8显示“正”字程序 #include<reg51.h> //头文件,含51单片机的专用寄存器 #include<intrins.h> //头文件,含循环位移函数 #define uchar unsigned char //定义常量uchar #define uint unsigned int //定义常量uint uchar code disled[]={0x00,0x7e,0x08,0x08,0x7a,0x0a,0x0a,0x7e}; //“正”字模 void delay(unsigned int i)// 具体语句见任务2-2 void main() //主函数 { uchar i,w; while(1) {w=0xfe; for(i=0;i<8;i++) //变量i,循环10次 { P2=disled[i]; //P2高电平有效,P27在右边 P1=w; //P1低电平有效,P17在下边 delay(2); //延时2ms w=_crol_(w,1); //循环左移函数 P1=0xff; //关显示 delay(2);}}} (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 任务4-2 16×16LED屏显示控制 某届电子设计大赛有这样一个题目,设计并制作一个LED线阵显示装置,利用视觉暂留现象,在某个区域内显示不少于3个16×16LED屏点阵的图形或文字。分析题目,其中一块基础知识和技能是16×16LED屏的显示。现通过单片机控制16×16LED屏的显示,调试阶段先显示汉字“单”,请设计电路原理图,编写程序,并仿真功能。 初级能力:实现单片机控制16×16 LED屏显示汉字的功能。 高级能力:能够实现16×16 LED屏的交替显示汉字的功能。 任务描述 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 任务4-2 16×16LED屏显示控制 单片机 MCU 16×16 LED模块 电源电路 时钟电路 复位电路 列驱动电路 行驱动电路     执行思路 任务4-2 16×16LED屏电路图 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 任务4-2 16×16LED屏电路图 序号 元件名称 元件型号 元件参数 1 LED屏 MATRIX-8x8-RED 2 双向总线驱动器 74HC595 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 4-2-2 “单”显示程序 //16×16LED屏显示控制参考程序 #include "reg51.h" //头文件,定义51的专用寄存器 #include <intrins.h> //头文件,包含_nop_空操作指令 /************定义可寻址位********************/ sbit LED138_D = P1^3; //定义可寻址位,串行数据高位 sbit LED138_C = P1^2; sbit LED138_B = P1^1; sbit LED138_A = P1^0; //定义可寻址位,串行数据低位 sbit LED138_G = P1^4; //低电平有效的使能控制端 sbit LED595_DAT= P2^1; //595芯片的DS段,传输数据 sbit LED595_CLK= P2^0; //移位寄存器时钟信号SH_CP sbit LED595_LCK= P2^2; //存储寄存器时钟信号ST_CP sbit wei=P2^3; //位处理信号 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 /************函数声明********************/ void send( unsigned char dat); //发送数据函数 void scan_Line( unsigned char m); //行扫描函数 void delay(unsigned int n); //延时函数 void scan_Key(); //键扫描函数 void display(unsigned char dat[][32]); //字模数组 unsigned char display_buffer[2]; //缓冲数组 unsigned char code Word1[1][32]= {0x10,0x10,0x08,0x20,0x04,0x40,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00}; //*"单" void main() { while(1) { display(Word1); //显示汉字 } } (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 void delay(unsigned int n) //延时函数,时基是1ms { unsigned int j,k; for(j=0;j<n;j++) for(k=0;k<125;k++);} void display(unsigned char dat[][32])//16x16汉字显示函数 { unsigned char i=0; for(i=0;i<16;i++) //循环16次 { scan_Line(i); //扫描16行 display_buffer[0] = dat[0][i*2]; //送第一个字模字节到缓冲数组 display_buffer[1] = dat[0][i*2+1]; //送第二个字模字节到缓冲数组 send(display_buffer[1]); //发送字模数据 send(display_buffer[0]) ; //发送字模数据,完成第一行显示 if((display_buffer[0]&0x80)==0x80){wei=1;} else {wei=0;} //提高显示效果 LED595_LCK = 0; //产生上升沿时序 _nop_( ); LED595_LCK = 1; //发送存储数据到LED屏 _nop_( ); LED138_G=1; //更新数据时候关闭显示 _nop_( ); LED138_G = 0; //开启数据传输 delay(2); }} (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 void Scan_Line( unsigned char m)//行扫描函数,m为行号 { switch(m) {case 0:LED138_D = 0;LED138_C = 0;LED138_B = 0;LED138_A = 0; break; case 1:LED138_D = 0;LED138_C = 0;LED138_B = 0;LED138_A = 1; break; case 2:LED138_D = 0;LED138_C = 0;LED138_B = 1;LED138_A = 0; break; case 3:LED138_D = 0;LED138_C = 0;LED138_B = 1;LED138_A = 1; break; case 4:LED138_D = 0;LED138_C = 1;LED138_B = 0;LED138_A = 0; break; case 5:LED138_D = 0;LED138_C = 1;LED138_B = 0;LED138_A = 1; break; case 6:LED138_D = 0;LED138_C = 1;LED138_B = 1;LED138_A = 0; break; case 7:LED138_D = 0;LED138_C = 1;LED138_B = 1;LED138_A = 1; break; case 8:LED138_D = 1;LED138_C = 0;LED138_B = 0;LED138_A = 0;break; case 9:LED138_D = 1;LED138_C = 0;LED138_B = 0;LED138_A = 1; break; case 10:LED138_D = 1;LED138_C = 0;LED138_B = 1;LED138_A = 0; break; case 11:LED138_D = 1;LED138_C = 0;LED138_B = 1;LED138_A = 1; break; case 12:LED138_D = 1;LED138_C = 1;LED138_B = 0;LED138_A = 0;break; case 13:LED138_D = 1;LED138_C = 1;LED138_B = 0;LED138_A = 1; break; case 14:LED138_D = 1;LED138_C = 1;LED138_B = 1;LED138_A = 0; break; case 15:LED138_D = 1;LED138_C = 1;LED138_B = 1;LED138_A = 1; break; default : break; }} (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 void send( unsigned char dat)//发送数据 { unsigned char i; for(i=0;i<8;i++) { if(dat&0x01) //移位最低一位数据 { LED595_DAT = 1;} //接受到1 else { LED595_DAT = 0;} //接受到0 LED595_CLK = 1;//上升沿数据移位 _nop_( ); LED595_CLK = 0;//下降沿数据不变 _nop_( ); dat >>= 1; //数据循环右移1位 }} 实施过程 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 知识链接 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 知识链接 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 实施过程 知识链接 74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、1、0状态移位寄存器和存储器是分别的时钟。数据在SH_cp的上升沿输入,在ST_cp的上升沿进入的存储寄存器中去。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 SH_CP(11脚):上升沿时数据寄存器的数据移位。Q0-->Q1-->Q2-->...-->Q7;下降沿移位寄存器数据不变;ST_CP(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。 (1)判别有无键按下; (2)软件延时消抖; (3)再次确认有无键按下; (4)取得键值:反转法或键盘扫描取得闭合键的行、列号,并计算法或 查表法得到键值; (5)松手检测:判断闭合键是否释放,如没释放则继续等待; (6)键盘处理:将闭合键的键值保存,同时转去执行该闭合键的功能。 下面我们来编程! 内容梳理与总结 本工作模块完成了2个任务,介绍了LED显示屏的结构和工作原理。要掌握的重点内容是8×8LED屏的工作原理:列扫描和行扫描。了解在Proteus ISIS软件中8×8LED、16×16LED屏的仿真方法。 我们先看矩阵键盘接口电路。P30-P33接行线,P34-P37接列线。 再 见 同学们,大家好!我是主讲教师杨敬娜。上一讲我们学习了矩阵键盘识别原理,并绘制了接口电路,今天我们利用矩阵键盘实现数字键盘的功能 28 $$

资源预览图

工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
1
工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
2
工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
3
工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
4
工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
5
工作模块4 LED点阵屏显示控制(课件)-《单片机技术应用》同步教学(人大版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。