您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 项目11_点阵LED显示设计
《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月项目11点阵LED显示设计★知识目标:1.掌握8×8矩阵式LED的工作原理和字符的显示方法;2.掌握16×16矩阵式LED的工作原理和字符的显示方法;3.学会电子元器件74LS164、74HC573的原理和使用方法。★能力目标:1.能根据设计任务要求正确选用元器件,并绘制电路原理图;2.能够编写驱动矩阵式LED的字符和汉字显示程序;3.会用keilC51软件对源程序进行编译调试及与protues软件联调,实现电路仿真。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计•单个LED或者是数码管作为显示器件,只能显示简单的几个有限的简单字符,对于复杂的字符(比如汉字)以及图形等则无法显示。矩阵式LED将诸多个LED按矩阵的方式组合一起,通过控制每个LED的工作,可完成各种字符和图形的显示。有关点矩阵显示器的商品,市面上有很多,例如活动字幕机广告、汽车站与火车站的车次显示板、活动布告板、股票显示板等。本任务利用AT89S51单片机来实现单个字符这一功能。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计1.提出任务•用AT89S51作为控制核心,外接8×8矩阵式LED,编写程序,使8×8矩阵式LED循环点亮0-9这十个数字,时间间隔为1s。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月2.分析任务任务1单个字符显示设计•(1)硬件电路设计•电路组成。这里选择具有内部程序存储器的AT89S51单片机作为控制电路,其P0接8×8矩阵式LED的阳极,由于P0口没有上拉能力,所以采用接8个限流电阻后上接电源提供上拉电流,P2接矩阵式LED的阴极,硬件电路原理图如图11-1所示。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计•(2)软件设计思路•为了能LED正常的显示0-9等数字,首先要了解0-9这十个数字的具体显示代码。具体代码可以通过软件转换得到,也可以采用绘制方法得到,然后写出相应的代码。因此0-9等十个数字的代码可以由由如下方法取得。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计•假设显示数字“0”,如下图所示:•因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“1”代码建立如下图所示:•其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计•数字“2”代码建立如下图所示:•其显示代码为00H,00H,27H,45H,45H,45H,39H,00H《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“3”代码建立如下图所示:•其显示代码为00H,00H,22H,49H,49H,49H,36H,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计•数字“4”代码建立如下图所示:•其显示代码为00H,00H,0CH,14H,24H,7FH,04H,00H《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“5”代码建立如下图所示:•其显示代码为00H,00H,72H,51H,51H,51H,4EH,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“6”代码建立如下图所示:•其显示代码为00H,00H,3EH,49H,49H,49H,26H,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“7”代码建立如下图所示:•其显示代码为00H,00H,40H,40H,40H,4FH,70H,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“8”代码建立如下所示:•其显示代码为00H,00H,36H,49H,49H,49H,36H,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•数字“9”代码建立如下所示:•其显示代码为00H,00H,32H,49H,49H,49H,3EH,00H任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•要想在8×8的LED点阵上显示一个数字,因为点阵的公共端是连接在一起的,就像我们在前面讲过的数码管的动态显示类似,是不能同时将这些LED进行点亮的。只能采用按行或者是按列进行控制。那么,怎么样去控制LED显示一个字符的呢?送显示代码过程简单如下:送第一列线代码到P0端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P0端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。以显示字符“0”为例:任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•首先在P0送首个行码00H,在P2口首个列码FEH;•接着在P0送第二个行码00H,在P2口第二个列码FDH;•再在在P0送第三个行码3EH,在P2口第三个列码FBH;•再在在P0送第四个行码3EH,在P2口第四个列码F7H;•依次把所在的行码送完,这样就可以显示一个“0”字了,接着再重复上述过程,把所有的数字都显示完就可以达到效果了。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•思考:如果要显示A-F等字符,该怎样修改程序呢?任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•3.源程序编写•根据程序流程图编写的源程序如下:•//文件名dz11-1.c•#include“reg51.h”•#defineucharunsignedchar•unsignedcharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};•unsignedcharcodedispcode[10][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//定义0的代码•{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//定义1的代码•{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//定义2的代码•{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//定义3的代码•{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//定义4的代码•{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//定义5的代码•{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//定义6的代码•{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//定义7的代码•{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//定义8的代码•{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}//定义9的代码•};•unsignedintcount;//定义计数变量•ucharta,tb;任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•voidmain(void)•{•TMOD=0x01;//设定定时器0工作方式1,处于定时状态•TH0=(65536-2000)/256;//延时20ms•TL0=(65536-2000)%256;•TR0=1;//启动定时器0•ET0=1;//开放定时器0中断•EA=1;//允许全局中断•while(1)•{;•}•}•voidt0(void)interrupt1using0•{•TH0=(65536-3000)/256;•TL0=(65536-3000)%256;•P2=tab[ta];//送列码•P1=dispcode[tb][ta];//显示字符内容•ta++;•if(ta==8)任务1单个字符显示设计•{•ta=0;•}•count++;•if(count==500)//判断是否到1s•{•count=0;//计时到,将计数变量清0,以便重新计数•tb++;•if(tb==10)•{tb=0;}•}•}《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•4.程序调试与电路仿真•运行C语言编辑软件,在编辑区中输入上面的源程序,并以“dz11-1.c”为文件名存盘。•运行KeilC51,然后建立一个“dz11-1.uv2”的工程项目。把源程序文件“dz11-1.c”添加到工程项目中,进行编译,得到目标代码文件“dz11-1.hex”。•运行Proteus,在编辑窗口中绘制如图11-1所示的电路图并存盘。然后选中单片机AT89s51,左键点击AT89s51,出现如图11-2所示的对话框,在ProgramFile后面的“”按钮,找到刚才编译好的“dz11-1.hex”文件,然后点击“OK”就可以进行仿真了。点击模拟调试按钮的运行按钮“”,进入调试状态。此时可看到从0开始显示一直到9,重复循环。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•◇知识链接•1.点矩阵的结构与种类•LED点阵显示器件是将要显示的字符(包括汉字),主要适用于汉字显示。点矩阵显示器的种类,按大小分,可分为5×7,5×8,6×8,8×8等4种;按LED发光变化颜色分,可分为单色、双色、三色;按LED的极性排列方式又可分为共阳极与共阴极。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•下面简单介绍几种常见的类型。•单色5×7的外观,即共阳极LED结构如图11-3所示。•单色5×7的内部结构,即共阴与共阳LED阵列图如图11-4所示。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•单色5×7点阵引脚图如图11-5所示。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•单色8×8点阵引脚图如图11-6所示。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•双色8×8点阵引脚图如图11-7所示。任务1单个字符显示设计《单片机C语言应用技术与实践》张永格何乃味主编北京交通大学出版社2009年6月•2.点矩阵的工作原理•由于点矩阵的种类很多,不能一一说明其工作原理,不过所有的点矩阵的工作原理都差不多相同。下面就以8X
本文标题:项目11_点阵LED显示设计
链接地址:https://www.777doc.com/doc-803017 .html