欢迎来到天天文库
浏览记录
ID:35549905
大小:1.05 MB
页数:18页
时间:2019-03-27
《单片机8 8点阵设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实用标准文案单片机课程设计课题:8*8点阵LED字符显示器设计一、设计目的利用8*8LED点阵动态显示汉字的字样,采用STC89C52单片机作为整个控制电路的核心,并编制软件程序,实现汉字动态显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。2.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。3.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻
2、关的基本素质。4.培养学生从资料文献、科学实验中获得知识的能力。5.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。二、设计要求8*8点阵LED字符显示器设计设计要求:1、设计一个8*8点阵LED电子显示屏,要求显示“课程设计”四个文字。2、要求在目测条件下LED显示屏各点亮度均匀、充足,显示方式可由K1、K2、K3、K4、K5进行选择,K1为逐字显示,K2为向左滚动显示,K3为向右文档实用标准文案滚动显示,K4为向上滚动显示,K5为向下滚动显示。三、总体方案设计3.1系统框图根据设计
3、要求与设计方案,硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。按键电路复位电路电源电路时钟电路单片机点阵显示器阳极电路点阵显示器阴极电路8*8点阵LED显示器图1系统框图3.2工作原理根据设计要求,初步确定设计方案如下:1.选择STC89C52单片机(晶振频率为f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。2.由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,
4、P2口控制列。3.通过软件编程,即可实现汉字“课程设计”的显示,并可左移,右移,上移,下移动态流动显示。4.点阵的点亮过程有程序控制,点阵采用单色显示。3.3主程序框图文档实用标准文案图2主程序流程图3.3.1按键程序设计系统中采用独立式非编码键盘,在P1口接一个按键,P0端口分别控制8*8LED阵列。当有键按下时,对应的LED亮;反之则灭。按键子程序如下:voidkeyscan(){key=(~P1)&0x0ff;//读入键值if(key!=0){keytmp=key;//键值存放}}3.3.2延时程序设计延时程序在单片机编程中使用非
5、常广泛,也很重要,在本次设计的程序中用到了延时子程序。延时子程序如下:delay1ms(intt){inti,j;for(i=0;i6、;continue;}}if(87、aba[m+h];delay1ms(1);}}}}3.3.5向右滚动显示子程序K3按下对应的是向右滚动显示,向右滚动显示的子程序如下:fun2(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms){P2=scan_cona[7-m];P0=distabb[m+h];delay1ms(1);}}}}3.3.6向上滚动显示子程序K4按下对应的是向上滚动显示,向上滚动显示的子程序8、如下:fun3(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧
6、;continue;}}if(87、aba[m+h];delay1ms(1);}}}}3.3.5向右滚动显示子程序K3按下对应的是向右滚动显示,向右滚动显示的子程序如下:fun2(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms){P2=scan_cona[7-m];P0=distabb[m+h];delay1ms(1);}}}}3.3.6向上滚动显示子程序K4按下对应的是向上滚动显示,向上滚动显示的子程序8、如下:fun3(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧
7、aba[m+h];delay1ms(1);}}}}3.3.5向右滚动显示子程序K3按下对应的是向右滚动显示,向右滚动显示的子程序如下:fun2(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms){P2=scan_cona[7-m];P0=distabb[m+h];delay1ms(1);}}}}3.3.6向上滚动显示子程序K4按下对应的是向上滚动显示,向上滚动显示的子程序
8、如下:fun3(){intm,n,h;for(h=0;h<32;h++)//控制显示字数(32/8=4个){for(n=0;n<25;n++)//控制帧移动速度{for(m=0;m<8;m++)//显示1帧
此文档下载收益归作者所有