历史上的今天
返回首页

历史上的今天

今天是:2024年11月08日(星期五)

正在发生

2019年11月08日 | STM8S MAX7219点阵模块驱动芯片程序

2019-11-08 来源:51hei

以下为.h文件:


#ifndef __MAX7219_H

#define __MAX7219_H

#include "stm8s_gpio.h"

#include "stm8s.h"

#include

#include

#include "tim1.h"

 

#define uchar unsigned char

#define uint  unsigned int

#define count 8

 

 

void Init_MAX7219(void);

void MAX7219_Init(void);

void Write_Max7219_byte(uchar Data);    

void Write_Max7219(u8 address1,u8 dat1,u8 address2,u8 dat2);

 

#define High 1

#define Low 0

#define Din(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_4);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_4);

#define Cs(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_3);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_3);

#define Clk(High_Low) if(High_Low == 0)GPIO_WriteLow(GPIOC, GPIO_PIN_2);

else GPIO_WriteHigh(GPIOC, GPIO_PIN_2);

 

#endif

 


以下为.c文件:


#include "main.h"

 

void Init_MAX7219(void)

{

GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_OUT_PP_HIGH_FAST);//PC4高速推挽输出高电平控制DIN

GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST);//PC3高速推挽输出高电平控制CS

GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST);//PC2高速推挽输出高电平控制CLK

 

}

 

//--------------------------------------------

//功能:向MAX7219(U3)写入字节

//入口参数:DATA 

//出口参数:无

//说明:

void Write_Max7219_byte(uchar Data)         

{

    uchar i;    

Cs(0);

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

{  

Clk(0);

if(Data&0x80)

{

Din(1);

}

else

{

Din(0);

}

Data=Data<<1;

Clk(1);

delay_us(10);

Clk(0);

}                                 

}

 

//-------------------------------------------

//功能:向MAX7219写入数据

//入口参数:address、dat

//出口参数:无

//说明:

void Write_Max7219(u8 address1,u8 dat1,u8 address2,u8 dat2)

 

     Cs(0);

     Write_Max7219_byte(address1);           //写入地址,即数码管编号

     Write_Max7219_byte(dat1);              //写入数据,即数码管显示数字 

     Write_Max7219_byte(address2);           //写入地址,即数码管编号

     Write_Max7219_byte(dat2);      //写入数据,即数码管显示数字 

 

     nop();

     Cs(1);                         

}

 

 

void MAX7219_Init(void)

{

/*

  Write_Max7219(0x09, 0x00,0x09, 0x00);       //译码方式:BCD码

  Write_Max7219(0x0a, 0x03,0x0a, 0x03);       //亮度 

Write_Max7219(0x0b, 0x07,0x0b, 0x07);       //扫描界限;8个数码管显示

  Write_Max7219(0x0c, 0x01,0x0c, 0x01);       //掉电模式:0,普通模式:1

  Write_Max7219(0x0f, 0x00,0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0

*/

u8  i;

Cs(0);

for(i=0;i {

 Write_Max7219_byte(0x09); //译码方式:BCD码       

 Write_Max7219_byte(0x00);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i {

 Write_Max7219_byte(0x0a); //亮度    

 Write_Max7219_byte(0x03);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i {

 Write_Max7219_byte(0x0b); // //扫描界限;8个数码管显示  

 Write_Max7219_byte(0x07);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i {

 Write_Max7219_byte(0x0c); //   //掉电模式:0,普通模式:1

 Write_Max7219_byte(0x01);    

}

Cs(1);

nop();

Cs(0);

for(i=0;i {

 Write_Max7219_byte(0x0f); //显示测试:1;测试结束,正常显示:0

 Write_Max7219_byte(0x00);    

}

Cs(1);

nop();

}

推荐阅读

史海拾趣

Cedrat Technologies公司的发展小趣事

海洋勘探、水下通信和声学测量等领域对精准探测和数据采集有着极高的要求。Cedrat Technologies凭借其高性能压电陶瓷传感器技术,成功开发出用于声纳阵列系统的探测和成像设备。这些设备能够精确接收和分析水下环境中的声波,实现目标探测和数据采集。这一创新应用不仅拓展了电子行业的应用范围,也为海洋科学研究和工程实践提供了有力的技术支持。

Dow-Key Microwave Corporation公司的发展小趣事

1945年,第二次世界大战结束后不久,Dow-Key Microwave Corporation在美国成立。公司创始人凭借对射频和微波技术的深刻理解和市场需求的敏锐洞察,决定专注于射频微波开关的制造。在初创阶段,公司面临资金短缺、技术挑战和市场接受度不高等问题。然而,创始人及其团队凭借不懈的努力和创新的精神,逐渐克服了这些困难,为公司的发展奠定了坚实的基础。

台湾第一电阻(Firstohm)公司的发展小趣事
定期清洁电冰箱对于保持其良好工作状态至关重要。首先,使用吸尘器或软布清理冰箱背面和底部的灰尘和污垢,确保通风良好。其次,定期清理冰箱内部的食物残渣和异味来源,保持内部清洁。此外,还应注意清理冷却器和风扇等部件上的灰尘和污垢,以确保制冷效果。
ELM Technology Corporation公司的发展小趣事

随着环保意识的不断提高,ELM Technology Corporation积极响应国家号召,将环保理念融入企业发展中。公司投入大量资金研发环保型电子产品,努力降低产品对环境的影响。同时,ELM还积极参与各类环保活动,推动电子行业的绿色发展。这种对环保的执着追求让ELM在行业中树立了良好的形象。

DEWALT公司的发展小趣事

随着全球经济的不断发展和市场需求的不断增长,DEWALT公司开始积极拓展海外市场。公司在全球范围内设立了多个生产基地和销售网络,为不同地区的用户提供优质的产品和服务。同时,DEWALT还积极与全球知名的企业和品牌进行合作,共同推动电动工具行业的发展。在未来,DEWALT公司将继续致力于技术创新和产品拓展,为全球用户提供更加高效、耐用的电动工具产品。

固得沃克(GOODWORK)公司的发展小趣事

为了进一步提升品牌影响力和市场占有率,固得沃克积极寻求与行业内知名企业的战略合作。例如,公司与锐单商城达成战略合作,共同推动电子元器件的在线销售和服务。这一合作不仅拓宽了公司的销售渠道,还提升了公司的品牌知名度和美誉度。通过不断参与行业交流和合作,固得沃克在电子行业中的影响力日益增强,为公司的长远发展奠定了坚实基础。

问答坊 | AI 解惑

FPGA设计流程简介及设计注意事项

FPGA设计流程简介及设计注意事项…

查看全部问答>

小功率mi-ni电脑插电时,偶然不能开机

在小功率电脑开机时,先插入Adapter,在按开机键,怎么有时会开不了机?是电源问题吗?高手帮忙给点意见,谢谢!!!!…

查看全部问答>

[教训分享] 一分钱的疏忽造成数万元的损失

声明:这是别人的帖子,看了颇有感触,故转帖于此。 电子设计中,细节问题往往会导致严重的后果,所以我们一定要注意细节, [教训分享] 一分钱的疏忽造成数万元的损失 小弟去年给外面公司设计了一台智能型阀门伺服控制器,在本地几个小站现场工作都 ...…

查看全部问答>

【EEWORLD带你DIY】示波器V2.0信号板及人机界面板打样归来~~

活动介绍:使用Altera Cyclone III FPGA Stater 进行DIY示波器进程: https://www.eeworld.com.cn/zhuanti/20100703altera/20100703altera.html   信号板及人机界面板打样归来,上图     …

查看全部问答>

EVC用TransparentBlt函数显示透明位图问题

大家帮忙看一下,结果不是透明位图,错误在哪里?多谢! void CPituceDlg::OnPaint() {    CPaintDC dc(this); // device context for painting             // TODO: add draw code for native da ...…

查看全部问答>

一个简单程序(UART),不晓得问题出在那里,请大家帮哈忙!

以下代码是UART0操作:收到上位机的字符然后转送回去。结果是能收到,但是是错误的,如发 01 收到 C0,请大家看看是那里出错了,小弟刚开始用430。 /**************************************************** 说明:串口测试程序 波特率:9600bps ...…

查看全部问答>

生活在职场中的白领必须警惕的职场禁语

生活在职场中,你会发现到处都潜伏着危机,尤其是你的嘴,稍不留意或许“祸”就从口出了,那么如何在办公室中避免不必要的麻烦,这些禁语你必须知道哦: 禁语一:薪水问题 很多公司不喜欢职员之间打听薪水,因为同事之间工资往往有不小差 ...…

查看全部问答>

Hercules DIY 五:对中断的疑感

Hercules DIY 五:对中断的疑感                                按照计划这周应是解决程序,由于我的项目是报警器我想用管脚中 ...…

查看全部问答>

数字电路

本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 对于想要学好数电的 就来看看吧    …

查看全部问答>

印制电路板设计经验分享

  对于电子产品来说,印制线路板设计是其从电原理图变成一个具体产品必经的一道设计工序,其设计的合理性与产品生产及产品质量紧密相关,而对于许多刚从事电子设计的人员来说,在这方面经验较少,虽然已学会了印制线路板设计软件,但设计出的印制 ...…

查看全部问答>