点阵大屏语音感应时计——MAX7219点阵

MAX7219点阵模块可以用三根数据线实现8*8的LED点阵控制,而且不需要单片机参与扫描,使用非常方便。更为重要的是,它支持模块级联使用,在不增加IO数量的条件下,实现多模块的控制。因此在大屏时计中采用了3个MAX7219点阵模块组合成8*24的点阵屏。

点阵的使用遇到一点小麻烦,是关于级联使用的,网络上查询到的代码每一块点阵的写入需要采用单独的函数,如:

//向第二片MAX7219写数据    
void MAX7219_Write_1(uchar add2,uchar dat2) {    
    Max7219_pinCS=0;    
    sent(add2);               
    sent(dat2);  
    Max7219_pinCLK=1;      // 第16.5个时钟周期,数据从第一片MAX7219的DOUT端开始输出 
    sent(REG_NO_OP);   //对第一片MAX7219进行空操作, 
    sent(0x00); 
    Max7219_pinCS=1;    
}

这不实用,不敢想象点阵模块数量更多的情况。改写后如下:

// 首先定义模块的数量

#define MAX7219_NUMS    3

//-------------------------------------------  
//功能:向MAX7219写入数据    
//入口参数:chip: 级联芯片编号,0~MAX7219_NUMS-1    
//    address、dat    
   
void Write_Max7219(uchar chip, uchar address, uchar dat) {    
    int i;    
    Max7219_pinCS=0;    
    for(i=0;i<MAX7219_NUMS;i++) {    
        if(i==chip) {    
            Write_byte(address);    
            Write_byte(dat);    
        } else {    
            Write_byte(REG_NO_OP);   //空操作, 
            Write_byte(REG_NO_OP);   //空操作    
        }    
    }    
    Max7219_pinCS=1;                       
}

另外,发两个函数,刚好也可以作为使用上述函数对点阵屏操作的例子。

//-------------------------------------------  
//功能: 点阵屏初始化

//入口参数:无

void MAX7219_Init(void) {  
    int i;    
    for(i=0;i<MAX7219_NUMS;i++) {    
        Write_Max7219(i, 0x09, 0x00);       //译码方式:BCD码    
        Write_Max7219(i, 0x0a, 0x01);       //亮度    
        Write_Max7219(i, 0x0b, 0x07);       //扫描界限;8个数码管显示    
        Write_Max7219(i, 0x0c, 0x01);       //掉电模式:0,普通模式:1    
        Write_Max7219(i, 0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0    
    }    
    for(i=0;i<8*MAX7219_NUMS;i++)    
        Write_Max7219(i/8, i%8+1, 0);    // 黑屏    
}

//-------------------------------------------  
//功能: 关闭点阵屏显示

//入口参数:无

void MAX7219_Sleep(void) {  
    int i;    
    for(i=0;i<8*MAX7219_NUMS;i++)    
        Write_Max7219(i/8, i%8+1, 0);    // 黑屏    
    for(i=0;i<MAX7219_NUMS;i++) {    
        Write_Max7219(i, 0x0c, 0x00);       //掉电模式:0,普通模式:1    
    }    
}

时间: 2024-11-02 20:58:37

点阵大屏语音感应时计——MAX7219点阵的相关文章

第一件实用作品,点阵大屏语音感应时计&mdash;&mdash;作品展示

单片机玩了几年,各种模块也买了不少,不过都没有做出什么像样的咚咚.反思之下,决定从简单实用的入手,做一款时计,方便掌握时间. 主要特点: 使用3片MAX7219点阵模块,组成8*24点阵屏,动态显示日期或时间: 人体感应,有人的时候才点亮点阵屏,超时后系统进入掉点模式,减少电源消耗,从而使电池供电成为可能: 使用语音播报模块SC5B10,实现整点报时: 不设置按键,通过串口控制,将来可以根据需要安装蓝牙或其他无线:(所需的操作主要是对时,不过走时很准,第一次设置之后不需要人工干预) 电池供电和无

点阵大屏语音感应时计&mdash;&mdash;人体感应

点阵屏还是比较耗电的,和显示的内容有关,在最小亮度的条件下,实测平均约130mA.为了节电,延长电池供电下的使用时间,引入了人体感应开关模块,在没有检测到人员活动的情况下关闭屏幕显示,单片机进入掉电模式.理论上是比较简单的,但是在实施的过程中遇到了不少的问题,记录下来与大家共享. 问题1.供电电压 为了便于使用锂电池,系统使用3.3V电压,但是网购的人体感应开关模块是5V供电的.好在仔细看了模块资料,模块上的电路都是3.3V的,板上带了AMS1117稳压芯片将外接5V转换为3.3V使用,这样就容

点阵大屏语音感应时计&mdash;&mdash;DS3231高精度时钟模块

DS3231高精度时钟模块倒是又便宜又好用,SDA/SCL两个IO口就能搞定基本功能,不过在使用闹铃中断输出的时候遇到了问题,那就是闹铃中断只会输出一次,之后始终保持低电平. 这个问题数据手册上没有明说,在网上搜索了很久,一点信息都没有找到,只好自己折腾. 经过反复尝试,最终确认DS3231的闹铃中断输出正确使用方式如下: 首先是初始化,设定闹铃时间和允许中断输出 void DS3231_Init_Alarm2()    {        I2C_Start();         I2C_Put

高端硬件+大屏运营,乐视超级电视如何成为终端流量入口?

近期,中国电子视像行业协会与奥维云网(AVC)联合发布2017年一季度中国彩电市场总结报告,报告显示,2017年彩电需求已从数量增长阶段进入质量提升阶段,市场呈现尺寸升级.功能升级.高端需求三大趋势,其中,智能化大尺寸超轻薄电视更受消费者追捧. 据奥维云网(AVC)数据显示,一季度中小尺寸(50英寸以下)产品的市场占有率较去年同期下降了8.7个百分点:大尺寸(55英寸以上)产品的市场占有率高达36.4%,较去年同期上升了9.7个百分点,其中55寸上升了6.8个百分点,且2017年第一季度智能电视

S6 edge+的多米诺骨牌效应:大屏的趋势

日前,为庆祝三星S6 edge+国行版的顺利发售,三星盖乐世社区的一些粉丝自发组织了三星疯狂"盖星人"第一期活动--活动现场除了可以对S6 edge+进行全方面体验之外,还将演示著名的多米诺骨牌游戏.作为一个对手机产品有着持续关注和体验热情的"用户"来说,这样的活动自然不能错过,于是在通过三星盖乐世社区的规则报名之后,笔者顺利通过审核,之后终于迎来了到现场体验的日期. 这次的疯狂"盖星人"线下活动主要有两个内容环节,分别是三星S6 edge+的产

MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器

前言 又是一年毕业季,只有到了毕业季才会意识到自己又离青春远了一大步.毕业后,大家都各奔东西了,如果这个时候有喜欢的人还是 藏在心底的话,不免会给人生留下遗憾.为了不留遗憾,不老套,制作一款表白神器,是不是会更容易表白成功呢? 之前使用8*8LED点阵模块做过一款跳动的心,因为是直接用的点阵模块,所以控制就用了16个IO,未免有些繁琐,浪费资源.最近发 现了一个好东西--MAX7219多位LED 显示驱动器.使用该驱动器加上点阵屏或者数码管,驱动起来特别方便简单,而且加上电源脚 也不过就5根线而

电视市场将以大屏曲面点燃金秋

智能时代正在不断的改变着人们的消费习惯和生活方式,智能手机的普及让更多人的目光转向那几英寸的屏幕,而随着电视智能化的渗透,以视频为主的更多内容把人们从小小的屏幕中剥离,从而对内容的体验有了更多的要求.互联网行业的硬件免费曾一度重创传统的电视行业,而智能时代内容价值的不断改变,给濒死的传统电视行业带来了新曙光. 以乐视为首的互联网电视品牌以眨眼的速度满足了消费者对于大屏互联网体验的需求,虽然快速的蚕食了一定的市场份额,但对于整个电视市场而言,乐视缺乏了传统电视厂商的技术与渠道积淀.笔者曾在前文中分

大屏设计系列之五——大屏设计语言分析

如果您想订阅本博客内容,每天自动发到您的邮箱中,请点这里 作者:蓝蓝 蓝蓝设计经常会接到大屏设计的项目,比如中国移动互联网监控大屏可视化设计及开发.太极集团承接的中央台应急指挥中心大屏可视化设计.交大思源承接的北京地铁轨道批挥中心大屏可视化设计.数码视讯展厅大屏可视化设计,在积累了一定经验的同时,也在不断的学习和丰富关于大屏设计的特点及数据可视化的表达方式. 数据可视化过滤了非常多的冗余信息,浓缩了最重要的信息,它的魅力就在于将枯燥的数据组织在一起,把最需要的那些编辑成一个故事.目前大数据那么流

第六章 大数据,6.3 突破传统,4k大屏的沉浸式体验(作者: 彦川、小丛)

6.3 突破传统,4k大屏的沉浸式体验 前言 能够在 4K 的页面上表演,对设计师和前端开发来说,即是机会也是挑战,我们可以有更大的空间设计宏观的场景,炫酷的转场,让观众感受影院式视觉体验,但是,又必须面对因为画布变大带来的性能问题,以及绞尽脑汁实现很多天马行空的的想法.下面是这次双11媒体大屏开发中我们的一些设计和思路. 1. 3D动感跑道 当逍遥子零点倒数5,4,3,2,1,0!激昂音乐奏起,媒体中心大屏幕跳跃出一个动感十足的页面,黄橙橙的 GMV 数字蹭蹭往上长,跳跃的翻牌器下有个不断向前