- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机8 8点阵设计
单片机课程设计 课题:8*8点阵LED字符显示器设计 一、设计目的 设计要求、设计一个*8点阵LED电子显示屏 2、要求在目测条件下LED显示屏各点亮度均匀、充足, 三、总体方案设计 3.1系统框图 根据设计要求与设计方案,硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。 图1系统框图 3.2工作原理 根据设计要求,初步确定设计方案如下: 1. 选择STC89C52单片机(晶振频率为f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。 2.由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P2口控制列 。 3.通过软件编程,即可实现汉字“课程设计”的显示,并可左移,右移,上移,下移动态流动显示。 4.点阵的点亮过程有程序控制,点阵采用单色显示。 3.3主程序框图 图2 主程序流程图 3.3.1按键程序设计 系统中采用独立式非编码键盘,在P1口接一个按键,P0端口分别控制8*8LED阵列。当有键按下时,对应的LED亮;反之则灭。按键子程序如下: void keyscan() { key=(~P1)0x0ff;//读入键值 if(key!=0) { keytmp=key;//键值存放 } } 3.3.2延时程序设计 延时程序在单片机编程中使用非常广泛,也很重要,在本次设计的程序中用到了延时子程序。延时子程序如下: delay1ms(int t) { int i,j; for(i=0;it;i++) for(j=0;j120;j++) keyscan(); } 3.3.3逐字显示子程序 K1按下对应的是逐字显示,逐字显示的子程序如下: fun0() { int m,n,h; for(h=0;h40;h=h+8) {for(n=0;n16;n++) { if(0n=8) {for(m=0;m8;m++) {P2=scan_cona[m];P0=distaba[m+h];delay1ms(1);continue;} } if(8n=16) {for(m=0;m8;m++) {P2=0xff;P0=distaba[m+h];delay1ms(1);} continue; } } } } 3.3.4向左滚动显示子程序 K2按下对应的是向左滚动显示,向左滚动显示的子程序如下: fun1() { int m,n,h; for(h=0;h32;h++)//控制显示字数(32/8=4个) {for(n=0;n25;n++)//控制帧移动速度 {for(m=0;m8;m++)//显示1帧扫描(分8行,每行亮1ms) {P2=scan_cona[m];P0=distaba[m+h];delay1ms(1);} } } } 3.3.5向右滚动显示子程序 K3按下对应的是向右滚动显示,向右滚动显示的子程序如下: fun2() { int m,n,h; for(h=0;h32;h++)//控制显示字数(32/8=4个) {for(n=0;n25;n++)//控制帧移动速度 {for(m=0;m8;m++)//显示1帧扫描(分8行,每行亮1ms) {P2=scan_cona[7-m];P0=distabb[m+h];delay1ms(1);} } } } 3.3.6向上滚动显示子程序 K4按下对应的是向上滚动显示,向上滚动显示的子程序如下: fun3() { int m,n,h; for(h=0;h32;h++)//控制显示字数(32/8=4个) {for(n=0;n25;n++)//控制帧移动速度
文档评论(0)