基于单片机的1616点阵毕业论文内容摘要:

6 种 状态,按照其 输入信号 翻译成对应的输出信号。 在图 1 中, 74138 是一种 4 线 —16 线译码器 , 4 个输入端 ABCD 共有 16 种状态组合( 0000—1111),可译出 16 个输出信号 D0—D15。 它 有 2 个使能输入端,当 G2 与 G1 均为 0,译码器处于工作状态,输出低 电平。 当译码器被禁止时, G1 G2 输 入 高电平。 其输入输出,真值表如图所示: 14 表 13 74LS154 输出真值表 输入D C B AL L L L L L 0L L L L L H 1L L L L H L 2L L L L H H 3L L L H L L 4L L L H L H 5L L L H H L 6L L L H H H 7L L H L L L 8L L H L L H 9L L H L H L 10L L H L H H 11L L H H L L 12L L H H L H 13L L H H H L 14L L H H H H 15L H H L H H 输出 注: H高电平 L低电平 高阻态 由于点阵里面是发光二极管组成的,其工作时的压降约为 ,工作时的电流约为1mA30mA,74LS154 在连接点阵时,必须要考虑点阵正常工作时的电压与电流。 74LS154 输出端为高电平时约为 5V,若直接接到点阵上,可能会引起流过 LED 的电流过大而烧掉,所以我们必须得加限流电阻。 LED 工作时的电流与亮度有关,电流越大时,亮度越高。 但当电流过大时会烧掉,所以我们必须在保证不被烧掉的情况下让亮度尽量亮一些。 LED 的驱动方式一般有两种,一种为静态驱动,另外一种为动态扫描驱动。 静态驱动就是给单独每一个 LED 供电。 这样每个 LED 都有足够的电流,亮度也相应的比较高。 动态扫描驱动就是把本来供给一个 LED 灯的电流,同时分给了 N 个灯,所以它的亮度会有所降低。 当然在同时供给两个 led 灯电流时不是平均的分配电流,而是电流不断地在两led 间扫描,其扫描频率达到了 每秒钟 100 次,也就是说电流在 1/100 秒内是供个其中一个15 led,在下一 1/100 秒内是供给了另一个 led。 其实这两个 led 是在不断的亮灭,只是人眼的视觉暂留效果让我们察觉不到它们在不断的亮灭,只要扫描频率达到了每秒 64 次以上,人眼就分辨不出来了。 由上面的分析可以得到限流电阻 R 的值 1LEDLEDUUR IN(公式六) 若 我们想让这个 16*16 点阵的每个 LED 工作时的电流 ILED 为 为正常工作时的电压取。 则我们可以得出限流电阻的取值为 5 1 . 7 1 = 1 0 3 . 1 2 5 1 0 00 . 0 0 2 1 6R    (公式七) 所以我们选取 100 欧的限流电阻。 这样每个 LED 工作时的电流约为 LED能亮的同时不会被烧坏。 点阵连接图 88 点阵简介 图 39 88 共阴型点阵图 对于共阴型的 88LED 点阵而言,每列 LED 的阴极连接在一起,即为列脚,每行LED 连在一起,即为行引脚。 通常是站在列的角度来看,所以称为“共阴极型”,若要点亮其中的 LED,则列的信号与行的信号要有交集。 16 例如。 要第 1 列,第 2 行的的 LED 亮,则必须 将第一列引脚接到 GND,第二行的引脚接 VCC,这样才能形成一个正向回路, LED 才会亮。 对于共阴极型的数码管,列引脚必须采用低电平扫描,而行引脚则为高电平信号。 图 310 88 共阳型点阵图 对于共阳型的 88LED 点阵而言,每列 LED 的阳极连接在一起,即为列脚,每行 LED 连在一起,即为行引脚。 通常是站在列的角度来看,所以称为“共阳极型”,若要点亮其中的LED,则列的信号与行的信号要有交集。 例如。 要第 1 列,第 2 行的的 LED 亮,则必须将第一列引脚接到 VCC,第二行的引脚接GND,这样才能形成一个正向 回路, LED 才会亮。 对于共阳极型的数码管,列引脚必须采用高电平扫描,而行引脚则为低电平信号。 1616 点阵连接图 17 图 311 16*16 点阵连接图 上图为 4 块 88 组成的 1616 点阵原理图,上图的列 COL1COL16 接到 74LS154 的输出端,行 ROW1ROW16 接到 74HC595 的输出端。 1616 点阵的扫描方式必须配合锁存信号,例如要显示第一扫描线,则先送入上面部分的显示信号,再对上面部分的锁在器送一个正脉冲,即可将该信号锁在该锁在器里面不受影响;紧接着,下面部分的显示信 号再对下面部分的锁存器送一个正脉冲,即可将该信号锁在该锁存器里而不受影响。 最后送出该列的扫描信号,即可显示该列的 16 个 LED。 第四章 系统软件设计 软件设计总体框图 图 41 软件设计总体框图 软件设计环境与思路 本次毕业设计主要在 Keil u Vison 3 下采用 C 语言来编写程序。 Keil u Vison 3 可以进行 C 语言,汇编语言,的编译。 并可以进行软件设计与仿真。 编译之后生成的 .HEX 文件可以下载到单片机里面。 同时我们也可以配合 Protues 仿真软件 进行仿真。 这样可以缩短我们程序的调试时间,及时发现我们程序中的不足之处。 我们可以把整个程序分成 4 个模块来说: 首先我们应该写书显示字符程序,用点阵取模软件,将所需要的字转化为一个一维数组; 图 42 字模提取 主程序 显示字符程序 动态显示程序 静态显示程序 18 第二、我们可以书写显示字符的静态显示程序,将这些字符静态显示出来; 第三、当静态显示完成后,我们可以试着将静态显示变为动态显示,例如,将字符向左移动,或向右移动,向上移动,向上移动等方式。 这样便可以实现一个 1616 显示多个字符; 第四、将以上三步的程序进行整合,缩合调试,最后得出系统的 总体程序。 1616 静态显示程序设计 NO YES NO YES 图 43 LED 静态显示程序流程图 上面流程图主要是让单片机控制 1616 点阵静态显示 2 个字。 让第一个字静态显示一定的时间,然后再显示第二个字,依次轮流显示。 首先,在 keil u vison 3 里面建立项目工程文件,然后开始编写程序。 然后打开点阵取模软 件,将我们所要显示的 2 个汉字取模。 显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第 i 列申明字型数组变量与函数 读取数组 输出 延迟 16 列 2 个字型 下一个字型 从第一个字型开始 开始 19 对应的行数据为数组中的第 i 和第 i+16 个元素。 将对应元素的由低至高位依次从 74LS154 端口输出具体做法为将元素向右逻辑移位后再与 0X01 相与,所得结果通过单片机端口输出到串并转换器 74HC595 端,锁存在锁存器里完成一列数据移位后再将其输出。 如此依次循环选通各列来显示所需画面。 1616 动态显示程序设计 NO YES NO YES 图 44 LED 动态显示程序流程图 若要将文字或图形在 LED 占阵里左右移动,只要以不同的顺序显示其编码即可。 对于16*16 的点阵,其左移就是显示 8 个不同的字型。 首先扫描第一个字型,同样是 16 行, 16次扫描, 16 次显示;完成第一个字型后,再扫描第二个字型;完成第二个字型后,再扫描第三个字型。 以此类推,即可产生该文字字型或图形左移的感觉。 主程序设计 主程序主要将前面的程序 进行整合,根据功能需求与电路结构,在 Keil C 里面编写申明字型数组变量与函数 读取数组 锁存 Hi 锁存 Lo 输出扫描信号 16 列 2 个字型 下一个字型 从第一个字型开始 开始 20 程序进行编译,以产生 .hex 文件。 然后进行软件调试 /仿真。 看其功能是否正常,若有错误或非预期状态,则检查源程序,看哪里出了问题,并进行修改。 若在线仿真功能正常,则将程序与仿真软件相结合再进行调试 YES YES NO 图 45 主程序设计流程图 第五章 系统仿真与调试 仿真软件 protues 简介 Protue。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。