历史上的今天
返回首页

历史上的今天

今天是:2024年12月23日(星期一)

正在发生

2020年12月23日 | MAX7219多片级联驱动点阵单片机程序编写经历

2020-12-23 来源:51hei

main.c

#include

#include "intrins.h"

#include "Max7219.h"


uchar code laji[][8]={

{0x18,0x24,0x42,0x42,0x7E,0x42,0x42,0x42},//A

{0x7C,0x42,0x42,0x7C,0x42,0x42,0x42,0x7C},//B

{0x3C,0x42,0x40,0x40,0x40,0x40,0x42,0x7C},//C

{0x7C,0x42,0x42,0x42,0x42,0x42,0x42,0x7C},//D

};

/*n毫秒的延时程序*/

/*void Delay_xms(uint x)

{

  uint i,j;

  for(i=0;i  for(j=0;j<112;j++);

}*/

void main()

{

  uchar i,j;

  //Delay_xms(50);

  MAX7219Init();  

  while(1)

  {

                for(j=0;j<8;j++)

    {

      for(i=0;i      {

        Max7219WR(j+1,laji[i][j]);

            }

      CS=1; _nop_(); CS=0;

                        //Delay_xms(100);

    }  

  }

}



Max7219.h

#ifndef _Max7219_H_

#define _Max7219_H_


#define uchar unsigned char

#define uint  unsigned int

#define number  4 //点阵级联个数

#define lum     5 //亮度级别,0-F,共16级


//定义Max7219端口

sbit CLK = P2^2;  //时钟 Max7219_pin

sbit CS  = P2^1;  //锁存

sbit DIN = P2^0;  //数据


//向MAX7219 写入地址和数据

void Max7219WR(uchar addr,uchar dat)

{

  uchar n=8;

        CLK=0;

        CS=0;   //CS=0有效,CS=1锁存

        /*发送数据 高位先发*/

        while(n--)

        {

          DIN = addr & 0x80;

                CLK=1;

                addr <<= 1;

                CLK=0;

        }

        n=8;

        /*发送数据 高位先发*/

        while(n--)

        {

          DIN = dat & 0x80;

                CLK=1;

                dat <<= 1;

                CLK=0;

        }

}

void MAX7219Init()

{

  uchar i,j;

        for(i=0;i<5;i++)  //

        {

          for(j=number;j>0;j--)

                switch(i)

                {

                  case 0:Max7219WR(0x09, 0x00); break; //译码方式:BCD码 不译码

                        case 1:Max7219WR(0x0A, lum);  break; //亮度 0-15 共16级

                        case 2:Max7219WR(0x0B, 0x07); break; //扫描界限;8位显示

                        case 3:Max7219WR(0x0C, 0x01); break; //掉电模式:0,普通模式:1

                        case 4:Max7219WR(0x0F, 0x00); break; //显示测试:1;测试结束,正常显示:0

                }

                CS=1; _nop_(); CS=0; //每写入四次给一个锁存脉冲

        }

}

#endif


推荐阅读

史海拾趣

上海超致公司的发展小趣事

在电子产品行业,品质控制和质量保证是企业生存和发展的关键。上海超致始终将品质放在首位,建立了严格的质量管理体系,从原材料采购到生产制造、产品检测等各个环节都严格把控品质。公司还引进了先进的生产设备和检测仪器,确保产品的可靠性和稳定性。这种对品质的执着追求使得上海超致的产品在市场上获得了良好的口碑和广泛的认可。

Bytes公司的发展小趣事

Bytes公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和工艺,降低产品对环境的影响。同时,公司还积极参与公益事业,捐赠资金和物资支持教育、扶贫等事业。这些举措使得Bytes公司赢得了社会的广泛认可和尊重。

请注意,这些故事框架仅供参考,您可以根据具体公司的实际情况和发展历程进行调整和补充。同时,由于我无法获取实时数据和信息,因此建议您在编写具体故事时参考相关公司的官方资料和市场分析报告。

EXXELIA Group公司的发展小趣事

Bytes公司自成立以来,始终坚持以技术创新为核心竞争力。公司早期便投入大量研发资源,开发出一款具有划时代意义的电子产品,迅速在市场上占据一席之地。随着技术的不断进步,Bytes公司不断推出更新换代的产品,满足消费者日益增长的需求。同时,公司还积极与高校、科研机构合作,共同研发新技术,为公司的持续发展提供源源不断的动力。

Aces Electronics Co Ltd公司的发展小趣事

随着技术的不断进步和产品的日益成熟,Aces开始将目光投向国际市场。公司积极参与国际电子展会和技术交流,与多家国际知名企业建立了合作关系。通过引进国外先进的技术和管理经验,Aces不断提升自身竞争力,逐渐在国际市场上占据了一席之地。同时,公司还积极拓展海外市场,将产品销往全球多个国家和地区。

C-TON Industries公司的发展小趣事

在电子行业中,产品质量的稳定性是企业生存的关键。C-TON深知这一点,因此从公司成立之初就高度重视品质管理。公司建立了一套严格的质量检测体系,确保每一件产品都符合高标准的质量要求。此外,C-TON还不断引进先进的生产设备和技术,提升生产效率和产品质量。这些努力使得C-TON的产品在市场上获得了良好的口碑,也为其赢得了众多忠实客户。

Firadec公司的发展小趣事

背景:随着电子行业竞争的日益激烈,成本控制成为了企业生存发展的关键。Firadec公司意识到优化供应链的重要性。

发展:公司开始与上游供应商建立长期稳定的合作关系,通过集中采购、共享库存等方式降低采购成本。同时,Firadec还加强了对生产过程的精细化管理,提高了生产效率和产品质量。

影响:供应链的优化和成本的有效控制,使Firadec公司在激烈的市场竞争中保持了较强的盈利能力。这也为公司后续的研发和市场拓展提供了有力的支持。

问答坊 | AI 解惑

便携式串口调试助手,大小仅5KB

[url=http://www.cinzy.com/soft/COMdbg.rar]便携串口调试助手 精品[/url] 软件名称:COMdbg 版本 0.2 RC 更新日期:2008/5/20 大小:5.21K 简介: 串口调试软件中的一员,不同的是此版本纯API编写,运行高效稳定,只有5K,体系非常小巧,功能强大,非常值 ...…

查看全部问答>

三端稳压器发烫问题

最近搞了个电路,12V供电经LM1117-3。3稳压出3.3V后再供DSP芯片,因为正常全工作电流有90MA,所稳压器很烫 在稳压管前加了个80欧的相当功率的电阻,让稳压器输入电压控制在5V左右,发烫问题得以解决, 但是电阻上的压降和稳压器的输出电流有关,所以 ...…

查看全部问答>

无线收发模块电赛资料

电赛 马上就要开始了我这里为大家收集了关于无线发射模块的资料 希望对大家有帮助…

查看全部问答>

是什么原因导致不能调用回调函数

最近在2440上写了motorola L6我手机的USB驱动. 现在驱动能够被加载. 也能读取数据和设备描述符等. 但是有一个问题就是每次拔出我的设备时候. CE系统不调用我的回调函数. 以下是我注测回调函数的过程. 这种现象导致我手机拔出了. 但系统并没有释放US ...…

查看全部问答>

初学arm问问题-关于异常返回时的问题

--------ARM异常发生时和ARM异常返回时做的工作---------         A:异常发生时,ARM微处理器执行的步骤                 1>        将下一 ...…

查看全部问答>

弄了个视频采集板。要是LM3S开发板申请成功就试试

LM3S板子申请了有段时间了,自己想做数据采集远程传输,现在也不知道板子能申请成功吗,先弄了个图像采集板,采用了应用广泛的SAA7113和SAA7121芯片,实现视频信号的采集和输出。输入输出接口采用通用的AV接口。     提供Video  ...…

查看全部问答>

NRF2401的DR1脚莫名其妙的高电平,高手请赐教

我用的MSP430与NRF2401做无线通信,问题是我没有发送信号,但是一把程序烧写进去就会出现DR1高电平。请高手看看 QQ:12676363.  怀疑是Receiveshock的问题。。 #include //2010.10.31 #define uchar unsigned char #define uint unsig ...…

查看全部问答>

请教CCS的问题。

CCS SETUP里选simulator,把EEWORLDSDRAM的例程整个文件夹拷到myproject下,然后open这个例程的project,rebuild all,load .out,go main都没问题,可是run就不行了。是不是必须接开发板才行啊?如果是这样的,哪个例程不用接开发板就可以跑啊? [ ...…

查看全部问答>

Stratix IV官方中文手册(部分重要章节)

Altera发布了Stratix IV的中文手册,目前只翻译了部分章节,先传上来跟大家分享了。…

查看全部问答>

STM32和DSP通信

用的是STM32F207 串口要怎么设置 我发的是0x55 循环发送 DSP收到的是乱码(0x6633循环)是起始位和停止位的配置问题?void USART_Configuration(void)               {   USART_In ...…

查看全部问答>