b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

关于单片机led显示及驱动方法介绍(3)

电脑杂谈  发布时间:2019-04-30 15:12:55  来源:网络整理

在此例中,由公式可知其扫描的频率应大于等于128hz,则较为理想。

2.mcu程序的实现:

a. 模块的划分:

led驱动模块_led灯模块_led灯恒流驱动lm317稳压管做成恒流源驱动

在说明其编程之前,先说明一下模块化编程思想在led驱动设计中的应用。为了使程序的结构清晰和维护的便利,特别是为了使程序的移植等变得可行,在程序的设计过程中应尽可能地采用模块化的设计思想,对于复杂的程序结构和功能的实现,更应该在编程之前理顺其相互之间的关系,划分好各功能模块所应完成的功能,定义好各模块之间的数据接口和相互关系。

一般而言,显示部分所涉及到的内容和功能相对较广,比如按键的变化、系统状态的变化、数据的变化等均需在显示的结果上表现出来。因此,为了保证不同的模块之间的独立性,我们将与led显示的有关的功能进行如下的划分:

1.扫描驱动模块:此模块的功能只完成对所有led的扫描,而不关心所显示的数据的具体变化情况,其从固定的显示缓冲其中提取每一扫描地址所对应的数据,该对应关系是固定的,由程序设计时来设定。该实现的方法类似与pc机中crt的显示驱动和显示缓冲;

2.字符、点阵发生器:由于实际的数据与显示的数据(pattern)之间并非是相同的,因此,需要将实际的数据转化成能够显示的数据。例如在mcu中的各种计算的数据是以bcd码或二进制码的形式来表示的,需要将其转化成7-段码或nxn点阵的pattern数据进行显示;

3.显示缓冲刷新和处理模块:该模块的功能是接受诸如按键、系统状态变化、数据变化所引起的显示数据的变化。其需要调用到字符、点阵发生器来完成显示缓冲的刷新,其与按键、系统状态变化等之间的接口是采用消息的机制来实现。该模块一般需要根据不同的显示内容来进行分类,比如在跑步机的设计中,可以划分为如下的内容:距离、速度、时间、能量消耗、心率及其他相关的数据。

关于单片机led显示及驱动方法介绍

b. 程序架构和实现

led显示屏通常由主控制器、扫描板、显示控制单元和led显示屏体组成,主控制器从计算机显示卡获取一屏各像素的各色亮度数据,然后分配给若干块扫描板,每块扫描板负责控制led显示屏上的若干行(列),而每一行(列)上的led显示信号则用串行方式通过本行的各个显示控制单元级联传输,每个显示控制单元直接面向led显示屏体。典型的led 异步控制系统主要由pc 应用软件、通信模块、数据处理模块、扫描控制模块、驱动模块和led 屏几部分组成,如图1 所示。 扫描零备份存储(sis)卷上的重复文件,并且将重复文件指向一个数据存储 点,以节省磁盘空间(只对 ntfs 文件系统有用) 扫描零备份存储(sis)卷上的重复文件,并且将重复文件指向一个数据存储 点,以节省磁盘空间。

2.刷新模块的实现:在mcu的程序设计中,一般将此模块置于16hz的定时中断中(若主程序的循环周期不固定且最大的循环时间大于1/10秒时,常采用此架构)或主程序循环体中(此种情况主要时针对mcu时钟比较高的场合或不需考虑显示延时的情况下),通过检测对应的消息来决定其是否需要执行数据的刷新。以跑步机的设计为例,其功能流程如图7所示;

3.字符、点阵发生器:由于在一些实际的应用中,可能的显示内容原则上是可预知的和有限的,特别是汉字的显示,因此其主要是通过定义相应的点阵来保存各种需要显示数据。为了便于程序的设计,一般需将其按照一定的排列规则来进行定义,同时也需要为各个需要显示的字符和图符进行编码,编码的规则必须有利于程序的设计和提高代码的效率,以求能够采用统一的查表指令来实现。

关于单片机led显示及驱动方法介绍

图6

注:上述的流程只是一个原理性的程序说明,在实际的应用中,需要根据mcu的特点及具体的硬件设计来进行程序的设计与简化。比如:在实际的项目中有8x8(或小于8x8)个led需要驱动,而且所选的mcu又是8位或16位的,则此时的地址线的扫描将变得非常的简单,只要建立字节变量ai,其初始值为0x01,然后在每次中断处理程序中需将ai直接输出到led扫描线所对应的io口即可,随后将ai左移一位,对8x8 led情况,当ai=0时,表示一遍扫描完成,此时再将ai设为0x01即可。对于显示的缓冲区的分配,同样可以根据实际的软件设计来分配具体的ram地址空间,以进一步提高程序的执行效率。记住,由于led的扫描需要占用较多的mcu时间,因此在进行扫描驱动的程序设计时,需要尽可能采用简洁高效的代码,以便提高mcu的工作效率。举例来说,假如需驱动8x8 led,根据前面所讲的要求,所需的定时器的中断频率必须是大于等于8x32,即256hz,若在此驱动代码中多增加一条语句,则mcu每秒就需要多执行256条代码,由此可见高效的代码对于led驱动程序来讲是多么重要,特别是当mcu的时钟不够快时!


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-95220-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 韩准
      韩准

      美国终于跳出来警告伊拉克政府

      • 汪春艳
        汪春艳

        中国人不能再被西方帝国主义国家欺凌

    热点图片
    拼命载入中...