基于stc89c52单片机的8乘8点阵led电子显示屏的设计(编辑修改稿)内容摘要:
块电路 ,将 行扫描和列扫描的扫描信号线 接到信号源上,用信号源输出波形代替 单片机控制系统模块发出的行扫 和列扫的信号 ,在单独对 点阵屏显示电路模块进行调试,当准确的 显示出要移动显示的汉字、字符、图像 时即可证明此 行扫描电路模块和列扫描 电路模块工作正常,可以进行整个系统的调试工作。 将所有的模块电路综合成一个整体的系统 ,通电进行测试工作,在软件上小心的调试,尽力将参数调整到最优, 通过多次测量和在不同的光线的环境中测量显示的画面的情况 , 实现了该系统的稳定清晰的显示汉字、字符、图像任务 ,完全达到了设计的 预想 ,满足了设计系统的要求。 此时证明本系统设计成功。 软件调试 软件部分的调试主要是显示屏刷新屏幕的时间,进入中断程序后都要对定时器进行重新赋值,以保证屏幕的刷新的稳定,清晰。 定时器 T0 采用工作方式 1,即 16 位定时器模式,通过计算可得, TH0= 0xfb, TL0=0xee。 这样每经过 1ms,单片机就中断一次,即每次刷新屏幕的频率大概 65hz(对于 12M 晶振),达到人眼视觉暂留的效果。 毕业设计 14 系统总电路 图 53 系统总仿真图 在仿真图中,行线直接用反相器输出驱动点阵的行,由于仿真中不考虑芯片的带负载能力,所以可以仿真,但是实际情况下,每一行的驱动电流远远大于反相器的驱动电流。 因此译码器的每行输出必须接三极管,使得点阵的每一行获得足够的驱动电流。 毕业设计 15 6 总结 16 乘 16 点阵显示屏的设计从电路的设计,仿真,硬件连接,调试和软件的调试是一个完整的电路设计过程。 在整个过程中,点阵设计涉及三个问题,第一:单片机 I/O口地使用, 52 单片机共有 32 个 I/O 口,而点阵有 16 行, 16 列,如果都用 I/O 口驱动,那么很浪费 I/O 资源,考虑到点阵 的 16 行是逐行扫描的,那么 4 线 16 线译码器就可以很好地作为点阵的行驱动器,这样只要利用单片机的 4 个 I/O 口。 另外,把单片机的串口当并口用,即利用单片机的串口搭配串入并出的移位寄存器 74HC595,它的并口输出就可以作为点阵的 16 个列驱动线。 那么仅用两条线,串口发送和接收线,就可以完成点阵 16 列的驱动;第二:行驱动电流问题,由于使用的是共阳的点阵,所以每一行的电流应该能同时点亮 16 个二极管,大概要达到 320mA。 那么肯定要用三极管来放大每一行的电流来驱动点阵的每一行;第三: 16 乘 16 点阵的级联,采用 4 块 8 乘 8 点阵拼接而成,那么上面两个点阵的每一行都要连接到一起,下面同上,左边的两个点阵的每一列都连接在一起,右边同上。 这样 16 乘 16 点阵的使用和 8 乘 8 点阵一样。 16乘 16 点阵的设计就很好地解决了这些问题。 在硬件调试中,也遇到了以前从未有的问题:点阵显示模糊的汉字图形,但是显示易受外界影响。 细细考虑之后,知道点阵每一行显示数据时,列数据的更新时间是 1ms,那么串行信号的输入线( RXD), 595 移位时钟线( TXD),易受到其他信号线的影响,所以两条线与 74HC595 的连接必须用锡丝连接。 这样才能让点阵稳定地 显示。 现在市面的广告牌都是用基本的 16 乘 16 点阵组成,通过这次 16 乘 16 点阵显示屏的设计 ,我清楚地了解并掌握了它的显示原理和电路实现,相信能为以后学习功能更强大的 单片机,设计大屏幕 LED 显示屏奠定良好的基础。 毕业设计 16 参考文献 [1] 张齐,朱西宁 .单片机应用系统设计技术 — 基于 C51 的 Proteus 仿真 [ M ] .北京 :电子工业出版社 , [2] 张惠敏 .数字电子技术 [ M ] .北京 :化学工业出版社, 2020. [3] 华强 .电子世界 .基于 8051 单片机的数控电源设计 [ EB/OL ] . [4] 周雪 .模拟电子 技术 [ M ].西安 :西安电子科技大学出版社 ,2020. [5] 梅笙 ,李玮 .基于 A T89C52 控制的数控直流电流源的设计 [J ] . [6] 童诗白 ,华成英 .模拟电子技术基础(第四版) 北京:清华大学电子教研室组编 .2020 [7] 阎石 . 数字电子技术基础(第四版) .北京:清华大学电子学教研室组编 全书 [8] 黄贤武,郑筱霞,曲波等 . 传感器实际应用电路设计 [M]. 成都:电子科技大学出版社 .. [9] 忠梅 . 单片机的 C语言应用程序设计 [M]. 北京 :北京航空航天大学出版社, 1997 [10] 陈光东编著《单片微型计算机原理及其 C语言程序设计》 .华中科技大学出版社 , 2020年 4月 [11] 宏晶公司 .STC89C52单片机数据手册 [Z] [12] 方佩敏 .新编传感器原理、应用、电路详解 . 编著电子工业出版社, [13] 樊昌元,丁义元 . 高精度测距雷达研究 .电子测量与仪器学报, [14] 苏伟,巩壁建 .超声波测距误差分析 .传感器技术, 2020. [15] 恒清,张靖 .加强单片机系统抗干扰能力的 方法 .通化师范学院学报, 2020 .10 [16] 胡萍 .超声波测距仪的研制 .计算机与现代化, [17] 苏长赞 .红外线与超声波遥控 .北京:人民邮电出版社, [18] 张谦琳 .超声波检测原理和方法 .北京:中国科技大学出版社, 毕业设计 17 附录:软件 C 代码 滚动显示 学号 和时间 include include define NOP() _nop_() // 定义空指令 ,这个函数在库 中 //SPI IO sbit MOSIO = P3^4。 sbit R_CLK = P3^5。 sbit S_CLK = P3^6。 //变量声明 unsigned long column。 //点阵列 unsigned long row。 //点阵行 unsigned long dt。 //点阵显示数组 unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00}。 unsigned char code tab1[] = {0,0,0,0,0,0,8,0,14,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,62,0,0,0,0,0,0,0}。 unsigned char code tab2[] = {0,0,0,0,0,0,8,0,15,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,63,0,0,0,0,0,0,0}。 unsigned char code tab3[] = {0,0,0,0,0,0,24,0,36,0,66,0,66,0,66,0,66,0,66,0,66,0,36,0,24,0,0,0,0,0,0,0}。 unsigned char code tab4[] = {0,0,0,0,0,0,16,0,16,0,24,0,20,0,18,0,18,0,127,0,16,0,16,0,124,0,0,0,0,0,0,0}。 unsigned char code tab5[] = {0,0,0,0,0,0,24,0,36,0,66,0,66,0,66,0,66,0,66,0,66,0,36,0,24,0,0,0,0,0,0,0}。 unsigned char code tab6[] = {0,0,0,0,0,0,8,0,15,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,63,0,0,0,0,0,0,0}。 unsigned char code tab7[] = {0,0,0,0,0,0,60,0,66,0,66,0,64,0,32,0,16,0,8,0,4,0,66,0,126,0,0,0,0,0,0,0}。 unsigned char code tab8[] = {0,0,0,0,0,0,8,0,15,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,63,0,0,0,0,0,0,0}。 unsigned char code tab9[] = {0,0,0,0,0,0,126,0,2,0,2,0,58,0,70,0,64,0,64,0,66,0,66,0,60,0,0,0,0,0,0,0}。 unsigned char code tab10[] = {16,0,208,63,8,16,8,16,204,19,74,18,72,18,72,18,72,18,200,19,72,16,8,16,8,16,8,28,0,0,0,0}。 毕业设计 18 unsigned char code tab11[] = {0,8,238,4,170,30,170,18,170,22,238,18,170,26,170,2,238,62,170,32,170,46,170,32,172,32,208,24,0,0,0,0}。 unsigned char code tab12[] = {72,8,144,4,0,2,254,63,32,2,144,4,136,8,246,55,128,0,128,0,252,31,128,0,128,0,128,0,0,0,0,0}。 unsigned char code tab13[] = {16,2,16,2,8,62,124,33,196,32,68,32,68,34,124,36,68,36,68,32,68,32,68,32,124,32,68,24,0,0,0,0}。 unsigned char code tab14[] = {72,8,144,4,0,2,254,63,2,32,2,32,248,7,0,2,128,1,254,63,128,0,128,0,128,0,224,0,0,0,0,0}。 unsigned char code tab15[] = {248,15,8,8,8,8,248,15,0,0,0,0,254,63,32,0。基于stc89c52单片机的8乘8点阵led电子显示屏的设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。