单片机88点阵设计.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计 课题:8*8点阵LED字符显示器设计 一、设计目的 利用8*8LED点阵动态显示汉字的字样,采用STC89C52单片机作为整个控制电路的核心,并编制软件程序,实现汉字动态显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 3.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 4.培养学生从资料文献、科学实验中获得知识的能力。 5. 对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 二、设计要求 8*8点阵LED字符显示器设计设计要求: 1、设计一个8*8点阵LED电子显示屏,要求显示“课程设计”四个文字。 2、要求在目测条件下LED显示屏各点亮度均匀、充足,显示方式可由K1、K2、K3、K4、K5进行选择,K1为逐字显示,K2为向左滚动显示,K3为向右滚动显示,K4为向上滚动显示,K5为向下滚动显示。 三、总体方案设计 3.1系统框图 根据设计要求与设计方案,硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。 按键电路复位电路 按键电路 复位电路 电源电路 时钟电路 单 片 机 点阵显示器阳极电路 点阵显示器阴极电路 8*8点阵LED显示器 图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行,每行亮1m

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档