历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2020年04月01日 | 使用51单片机和MAX7219控制点阵滚动显示

2020-04-01 来源:eefocus

最近玩MAX7129控制点阵,弄了一个用51和MAX7219控制两个1088AS点阵滚动显示。此文章作为总结。方便自己日后需要时回顾,也方便他人借鉴参考。文中如果有地方不准确,有错误,欢迎指正。


这次主要用了一个STC89C52RC、两个MAX7219和两个1088AS8*8点阵。


刚开始做了好几天没弄出来,最后发现是硬件出了问题……弄好硬件后很快就做了出来。下面主要是在整个过程中一些探索


1088AS

因为之前没找到相关资料,所以自己一个一个引脚测了一下,第一张图是自己测的各引脚控制的行或列以及是接GND还是VCC,右侧是标有1088AS和突出一个半圆的一侧。第二张厂家公司提供的,他这个排列方式……反正我是有点懵。

在这里插入图片描述在这里插入图片描述

MAX7219

芯片的各个引脚

在这里插入图片描述

芯片的各个引脚作用以及典型应用电路可以从芯片手册中了解。注意DIG-SEG+。


程序

这个直接附上,也不难。


#include

//宏定义

#define uchar unsigned char

#define uint  unsigned int

//定义MAX7219与单片机的连接引脚

sbit CLK  = P1^0;//时钟序列输入端

sbit CS = P1^1;//载入数据端

sbit DIN  = P1^2;//串行数据输入端

//Hello World数组

uchar code array[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x10,0x7E,0x00,0x7C,0x54,0x5C,0x00,

0x7E,0x40,0x00,0x7E,0x40,0x00,0x38,0x44,0x38,0x00,0x3E,0x40,0x38,0x40,0x3E,0x00,

0x38,0x44,0x38,0x00,0x7C,0x08,0x04,0x00,0x7E,0x40,0x00,0x70,0x50,0x7E,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

//hello world!

};

//延时函数

void Delay_xms(uint x)

{

uint i,j;

for(i=0;i {

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

}

}

//向MAX7219写入字节

void write_MAX7219_byte(uchar DATA)

{

uchar i;

CS = 0;

for(i=8;i>=1;i--)

{

CLK = 0;

DIN = DATA&0x80;

DATA=DATA<<1;

CLK = 1;

}

}

//向第一个MAX7219写入数据

void write_MAX7219_1(uchar address,uchar dat)

{

CS = 0;

write_MAX7219_byte(address);

write_MAX7219_byte(dat);

CS = 1;

}

//向第二个MAX7219写入数据

void write_MAX7219_2(uchar address,uchar dat)

{

CS = 0;

write_MAX7219_byte(address);

write_MAX7219_byte(dat);

CLK = 1;

write_MAX7219_byte(0x00);

write_MAX7219_byte(0x00);

CS = 1;

}

//设置MAX7219

void Init_MAX7219()

{

write_MAX7219_1(0x09,0x00);

write_MAX7219_1(0x0A,0x03);

write_MAX7219_1(0x0B,0x07);

write_MAX7219_1(0x0C,0x01);

write_MAX7219_1(0x0F,0x00);

write_MAX7219_2(0x09,0x00);

write_MAX7219_2(0x0A,0x03);

write_MAX7219_2(0x0B,0x07);

write_MAX7219_2(0x0C,0x01);

write_MAX7219_2(0x0F,0x00);

}


void main()

{

uchar i,j;

Delay_xms(50);

Init_MAX7219();

while(1)

{

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

{

for(i=1;i<9;i++)

{

write_MAX7219_1(i,array[j+i-1]);

write_MAX7219_2(i,array[8+j+i-1]);

}

Delay_xms(500);

}

}

}


字的取模

取模我用的字是“hello world”,这个刚开始学习51时取模方法不同,这个不需要黑白反显。下图是我的点阵两个都是有半圆的一边朝右,所以取模时,先设定的是高8宽48,就是横着一行字,然后顺时针旋转九十度再左右调转,取出来就可以了

在这里插入图片描述

调试

调的地方就是

这行里面的array[8+j+i-1]里的8


write_MAX7219_2(i,array[8+j+i-1]);

1

刚开始想当然的弄了个9,后来发现好像不对,然后在写入数据后面加了个延时,延长了他在切换列时的间隔,发现第二个点阵比设想中的快了一个,然后将9改成了8


for(i=1;i<9;i++)

{

write_MAX7219_1(i,array[j+i-1]);

write_MAX7219_2(i,array[8+j+i-1]);

Delay_xms(150);

}

推荐阅读

史海拾趣

Easy Braid公司的发展小趣事

在技术创新和品质保证的基础上,Easy Braid开始积极拓展市场。公司不仅在国内市场取得了良好的业绩,还逐步将目光投向了国际市场。通过与国外知名企业的合作,Easy Braid成功地将自己的产品打入国际市场,实现了品牌的全球化布局。这一过程中,Easy Braid展现出了强大的市场竞争力和适应能力。

Delock公司的发展小趣事

Delock公司的成功离不开其独特的企业文化和优秀的团队建设。公司注重培养员工的创新精神和实践能力,为员工提供广阔的发展空间和良好的职业前景。同时,公司还积极营造一种团结协作、互相尊重的工作氛围,让员工在工作中感受到归属感和成就感。这种积极向上的企业文化不仅吸引了大量优秀人才的加入,也为公司的长期发展提供了坚实的保障。

请注意,以上故事是基于一般电子行业的发展规律和假设性的“Delock公司”进行的虚构描述,并非真实案例。

GE Power Electronics Inc公司的发展小趣事
作为家居装饰品的一部分,如声控音乐盒、声控台灯等,通过声音控制实现特定的功能或效果。
上海国芯(Gcore)公司的发展小趣事
根据应用场景选择合适的报警装置,如蜂鸣器、LED灯或继电器等。
Frequency Sources公司的发展小趣事

随着技术的不断成熟和市场的日益扩大,Frequency Sources公司开始积极拓展国内外市场。公司通过参加国际电子展会、建立海外销售网络、与跨国企业建立合作关系等方式,不断提升品牌知名度和市场份额。同时,公司还针对不同地区的市场需求,定制化开发符合当地标准的产品和服务,进一步增强了市场竞争力。在国际化战略的推动下,公司的业务遍布全球多个国家和地区,实现了跨越式发展。

广芯电子(BROADCHIP)公司的发展小趣事

在20世纪90年代初,Frequency Sources公司(或类似名称的公司)凭借其在频率源技术领域的深厚积累,成功研发出了一种新型高精度晶体振荡器。这种振荡器在稳定性、相位噪声和温度特性等方面均达到了当时业界的顶尖水平,为无线通信、卫星导航等领域提供了关键的技术支持。这一技术创新不仅巩固了公司在频率源技术领域的领先地位,还为公司赢得了广泛的市场认可和大量订单。

问答坊 | AI 解惑

电子信息业20年十大变化

从1986年到2005年的20年,是中国电子信息企业创业发展的20年,而20张排行榜浓缩了我国电子信息百强企业的发展历程与变化。 名称变化工厂变公司和集团 20世纪90年代中期以前的企业,都称为“某某厂”,1987年第一届百强名单中,企 业名称中以“厂”字为后 ...…

查看全部问答>

电流型控制芯片的应用

摘要:电流型控制芯片是目前较流行的开关电源控制芯片。本文详细介绍了一种实用电路。 关键词:电流型控制芯片 …

查看全部问答>

ISD4004语音芯片在语音报站器中的应用

ISD4004语音系列芯片是美国ISD公司推出的产品,具有可多次重复录放、存储时间长、使用时不需扩充存储器、所需外围电路简单等特点。介绍了ISD4004芯片在语音报站器中的一个实际应用,并说明了其功能和使用方法,从而使读者对ISD ...…

查看全部问答>

智能全数字锁相环的设计

摘要: 在FPGA片内实现全数字锁相环用途极广。本文在集成数字锁相环74297的基础上进行改进,设计了锁相状态检测电路,配合CPU对环路滤波参数进行动态智能配置,从而使锁相环快速进入锁定状态,在最短时间内正常工作并且提高输出频率的质量。 关键词 ...…

查看全部问答>

proteldxp2004破解版的问题

proteldxp2004破解版软件,怎么我在自制原器件时,怎么有很多东西没有呀。比如说放置管脚也没有,新建元件命令也没有…

查看全部问答>

电子工程师笔试面试集锦

企业面试电子类面试题[模拟电路] 企业面试电子类面试题[数字电路] 企业面试电子类面试题[IC设计基础] 企业面试电子类面试题[单片机/MCU/计算机原理] 电子类笔试技巧及相关基础问题 EE类笔试题 …

查看全部问答>

verilog里面count=count+1;的硬件电路是什么样子的?

用到add模块了是吗? 最后面的1 是如何做的? 如果用count…

查看全部问答>

急求韦根26、34的接收程序

谁有PIC单片机上韦根的接收程序,发我参考下,多谢了。。我自己也写了个是用数组来接收的,不过用不起来。。。 要是C语言的哦。。最好是整个的,包括中断什么的。。。 E-mail:shanligang@vip.qq.com…

查看全部问答>

新手报到,请教了

小弟电子系毕业,一直从事电子产品的硬件开发,之前也用51单片机做过东西,时隔很久,现在大家用什么单片机做DIY产品。硬件电路还有PCB之类的我都能搞定,就是缺少一款顺手的单片机咯,浏览了DIY的帖子,很兴奋,大家快告诉我,有合适的资料发来看 ...…

查看全部问答>

正从51向msp430过渡,请各位给点意见或指导

正从51向msp430过渡,请各位给点意见或指导,请大家积极分享心得,谢谢…

查看全部问答>