基于单片机广告牌的设计 doc(5)

2019-04-14 16:47

4.2 74HC595初始化子程序设计

74HC595的数据是串行输入并行输出的,而单片机的数据总线是8位的。595每次都是取8位二进制的最高位输入,每有一位数据输入到595里,595里的数据都会在原来的基础上左移一位[13]。74HC595的初始化子程序流程图如图4-3所示:

开始 取dat最高位 DS数据串行输入 Dat左移一位 否 循环8次? 是

图4-3 74HC595的初始化子程序流程图

74HC595的初始化程序代码为:

void hc595(unsigned char dat)//74HC595初始化程序 { }

unsigned char i; for(i=0;i<8;i++) { }

DS=dat&0x80; SH_CP=1; SH_CP=0;

dat<<=1;

4.3 LED点阵显示屏子程序设计

要在LED点阵显示屏上得到一整屏的字幕就要通过行驱动和列驱动共同控制,将数据送到点阵显示屏上显示。LED点阵显示屏子程序流程图如图4-4所示:

17

开始 初始化 154行扫描,hang 595送列数据 Hang++ 否 Hang==16? 是 一整屏字幕 返回

图4-4LED点阵显示子程序流程图

设计中是采用行扫描的,每扫描一行就送这一行对应的列的数据,循环扫描完十六行就得到一整屏的字幕显示到LED点阵上。但如果要实现字幕的左移、右移、上移和下移是需要经过软件的编程来实现的。左移部分的程序代码为:

void left1(uint num)//左移处理 {

signed char s; for(s=0;s<=4;s++) {

buffer[8-2*s]=display[num+32*s+1+2*discrow]; buffer[9-2*s]=display[num+32*s+2*discrow]; } }

void left2()//向左移动 {

uchar i=Mov_left,s; uchar inc,tempyid,temp1; if(i<8)inc=1; else inc=0; for(s=0+inc;s<8+inc;s++)

18

{

if(i<8) tempyid=i; else tempyid=i-8;

temp1=buffer[s+1]>>tempyid|buffer[s]<<8-tempyid; }

void zuoyi()//汉字左移 { }{

for(discrow=0;discrow<16;discrow++) {

left1(zi_mo_left);

left2(); oe=1;

HC154(discrow); delay1(1); oe=0;

ST_CP=1;

while(zi_mo_left<255) hc595(temp1); }

ST_CP=0; } Mov_left++; if(Mov_left>=16) {

Mov_left=0;

zi_mo_left+=32;

}

}

19

第五章 系统调试

在完成硬件的制作之后,需要知道已做好的系统是否达到我们预期的功能要求,那就离不开调试。调试主要就是硬件调试和软件调试。在硬件调试的过程应该分模块,逐个进行调试,而且要在保证软件正确的情况下去对硬件进行测试,这样就才容易找到错误的所在。对于软件的调试主要是把用C语言编写好的程序复制到Keil uVision3软件进行编译,不断的修改错误的地方直到编译成功。我们常用的编程语言就是C语言汇编和汇编语言,在编写的时候需要有先验的知识主体,了解单片机的概念[14]。硬件的调试主要分为LED点阵显示屏的调试和单片机最小系统的调试。

5.1 LED点阵显示屏的调试

16*64点阵显示屏做好后,可能会因为各种原因使得它并不能正常工作,那么就要进行调试。有时在焊接的时候不够认真导致焊接错误出现短路的现象,因此要用万用表进行检测。用自制的稳压直流电源给点阵显示屏提供充足的电源,然后观察点阵显示屏的LED管的亮灭情况,是否能将点阵显示屏全部点亮。如果有些LED不亮,就要找出问题所在然后有针对性的进行修改,一直到点阵显示屏能正常工作就调试成功。

5.2单片机最小系统的调试

单片机最小系统是一个重要的模块,所以如果单片机最小系统模块没有或出现差错都会导致单片机整个系统出现问题。也因此单片机最小系统的调试也是十分重要的,首先要用万用表检测自制稳压直流电源电压是否正常,保证供电没有问题。然后再用万用表检测复位电路中,最后还要用示波器来检测晶振电路是否正常,通过一步一步的检测就能发现问题,并很好的解决问题,使得最小系统能正常的运作就算调试成功。

5.3软件的调试

对于软件的调试主要是在Keil 5环境下编写程序[15],它是由美国Keil Software公司开发的,是属于C语言的软件开发系统。在Keil uVision3软件上对项目文件进行编译,编译有错误就要不断的修改错误的地方直到编译没有错误。然后通过烧录器将通过编译器扩展名为.HEX的可执行文件烧写到单片机内,进行软硬件联合调试。

5.4软硬件联合调试

在硬件和软件都分别调试成功后,把它们结合在一起却不一定能正常工作,也有可能达不到本设计所要求的功能,所以软硬件联合调试是一个设计完成后必不可缺的部分,是一件作品能否顺利完成的重要环节。首先把软件部分的程序烧写到52单片机上,然后提供直流稳压电源,开启启动按钮,观察LED点阵显示屏所显示内容,是否符合本设计的要求,它左移、右移、上移、下移和图片的放大、缩小功能是否实现了。开始的时候LED点阵显示屏上出现一些拖影的现象也就是有的点不该亮的也亮了,使得点阵的显示效果极

20

差。这时就想到了可能是程序的干扰,对程序进行修改,增加了延时的程序,再重新把程序烧写到单片机上,重新启动按钮,继续观察LED点阵显示屏,发现LED点阵显示屏的显示效果明显好多了。再继续整延时程序,重复上面的工作,一直到LED点阵显示屏的显示效果达到最佳的状态就算调试成功。然后观察LED点阵显示屏的左移功能是否实现了,起初它并不能达到左移的效果,经过思考对结合实际对左移程序进行了处理,最终实现了左移。同理对其它的功能要求一一进行观察,有问题出现就细心寻找问题所在,并找出解决问题的方式。不断的反复修改,到最后软硬件联合调试达到所需的功能要求,则调试成功。

5.5系统调试总结

一个设计完成了硬件电路的部分后,还不能结束设计的工作,调试的工作是十分重要的。在进行调试的过程中,要认真仔细,有针对性的去修改存在的问题,对于一个LED点阵显示屏的调试,最主要的是软硬件联合调试。一般只要电路没有错误,焊接时仔细认真,硬件又完好那么LED点阵显示屏都是能正常工作的。但要实现LED显示屏显示的内容,显示的模式功能是需要不停的修修改改的才能达到要求。经过各种调试,最后本设计的16*64点阵能够显示汉字的左移、右移、上移、下移和图片的放大、缩小,调试成功,作品也就算顺利的完成了。

21


基于单片机广告牌的设计 doc(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:金融基础知识考试题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: