点阵LED显示设计.ppt
《点阵LED显示设计.ppt》由会员分享,可在线阅读,更多相关《点阵LED显示设计.ppt(47页珍藏版)》请在冰豆网上搜索。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月项目项目1111点阵点阵LEDLED显示设计显示设计知识目标:
知识目标:
1.掌握88矩阵式LED的工作原理和字符的显示方法;2.掌握1616矩阵式LED的工作原理和字符的显示方法;3.学会电子元器件74LS164、74HC573的原理和使用方法。
能力目标:
能力目标:
1.能根据设计任务要求正确选用元器件,并绘制电路原理图;2.能够编写驱动矩阵式LED的字符和汉字显示程序;3.会用keilC51软件对源程序进行编译调试及与protues软件联调,实现电路仿真。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计单个LED或者是数码管作为显示器件,只能显示简单的几个有限的简单字符,对于复杂的字符(比如汉字)以及图形等则无法显示。
矩阵式LED将诸多个LED按矩阵的方式组合一起,通过控制每个LED的工作,可完成各种字符和图形的显示。
有关点矩阵显示器的商品,市面上有很多,例如活动字幕机广告、汽车站与火车站的车次显示板、活动布告板、股票显示板等。
本任务利用AT89S51单片机来实现单个字符这一功能。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计1.1.提出任提出任务用AT89S51作为控制核心,外接88矩阵式LED,编写程序,使88矩阵式LED循环点亮09这十个数字,时间间隔为1s。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月2.2.分析任分析任务任务任务11单个字符显示设计单个字符显示设计
(1)硬件电路设计电路组成。
这里选择具有内部程序存储器的AT89S51单片机作为控制电路,其P0接88矩阵式LED的阳极,由于P0口没有上拉能力,所以采用接8个限流电阻后上接电源提供上拉电流,P2接矩阵式LED的阴极,硬件电路原理图如图11-1所示。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计
(2)软件设计思路为了能LED正常的显示0-9等数字,首先要了解0-9这十个数字的具体显示代码。
具体代码可以通过软件转换得到,也可以采用绘制方法得到,然后写出相应的代码。
因此0-9等十个数字的代码可以由由如下方法取得。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计假设显示数字“0”,如下图所示:
因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“1”代码建立如下图所示:
其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计数字“2”代码建立如下图所示:
其显示代码为00H,00H,27H,45H,45H,45H,39H,00H单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“3”代码建立如下图所示:
其显示代码为00H,00H,22H,49H,49H,49H,36H,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月任务任务11单个字符显示设计单个字符显示设计数字“4”代码建立如下图所示:
其显示代码为00H,00H,0CH,14H,24H,7FH,04H,00H单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“5”代码建立如下图所示:
其显示代码为00H,00H,72H,51H,51H,51H,4EH,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“6”代码建立如下图所示:
其显示代码为00H,00H,3EH,49H,49H,49H,26H,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“7”代码建立如下图所示:
其显示代码为00H,00H,40H,40H,40H,4FH,70H,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“8”代码建立如下所示:
其显示代码为00H,00H,36H,49H,49H,49H,36H,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月数字“9”代码建立如下所示:
其显示代码为00H,00H,32H,49H,49H,49H,3EH,00H任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月要想在88的LED点阵上显示一个数字,因为点阵的公共端是连接在一起的,就像我们在前面讲过的数码管的动态显示类似,是不能同时将这些LED进行点亮的。
只能采用按行或者是按列进行控制。
那么,怎么样去控制LED显示一个字符的呢?
送显示代码过程简单如下:
送第一列线代码到P0端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P0端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。
以显示字符“0”为例:
任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月首先在P0送首个行码00H,在P2口首个列码FEH;接着在P0送第二个行码00H,在P2口第二个列码FDH;再在在P0送第三个行码3EH,在P2口第三个列码FBH;再在在P0送第四个行码3EH,在P2口第四个列码F7H;依次把所在的行码送完,这样就可以显示一个“0”字了,接着再重复上述过程,把所有的数字都显示完就可以达到效果了。
任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月思考:
如果要显示AF等字符,该怎样修改程序呢?
任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月3.源程序编写根据程序流程图编写的源程序如下:
/文件名dz11-1.c#include“reg51.h”#defineucharunsignedcharunsignedcharcodetab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsignedcharcodedispcode108=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;任务任务11单个字符显示设计单个字符显示设计单片机单片机CC语言应用技术与实践语言应用技术与实践张永格张永格何乃味何乃味主编主编北京交通大学出版社北京交通大学出版社20092009年年66月月voidmain(void)TMOD=0x01;/设定定时器0工作方式1,处于定时状态TH0=(65536-2000)/256;/延时20msTL0=(65536-2000)%256;TR0=1;/启动定时器0ET0=1;/开放定时器0中断EA=1;/允许全局中断while
(1);voidt0(void)interrupt1using0TH0=(65536-3000)/256;TL0=(65536-3000)%256;P2=tabta;/送列码P1=dispcodetbta;/显示字符内容ta+;if(ta=8)任务任务11单个字符显示设计单个字符显示设计ta=0;count+;if(count=500)/判断是否到1scount=0;/计时到,