跪求MAX7219驱动数码管的时钟代码

RT... RT 展开
 我来答
单片机技术宅
推荐于2016-01-12 · 知道合伙人教育行家
单片机技术宅
知道合伙人教育行家
采纳数:251 获赞数:552
飞思卡尔智能赛车邀请赛二等奖全国大学生电子设计竞赛成功参赛奖

向TA提问 私信TA
展开全部

void init_max7219()

{

  w_max7219(0x0a,0x07);  //显示亮度,取值范围0~f

  w_max7219(0x0b,0x07);  //8位扫描显示,取值范围0x01~0x07

  w_max7219(0x09,0x00);  //译码方式,0x00为不译码,0xff为译码

  w_max7219(0x0c,0x01);  //操作方式,0x00为低功耗模式,0x01为正常操作模式

  w_max7219(0x0f,0x00);  //显示状态,0x00为正常显示,0x01为显示测试

  timer_ms(2);

}


/*********************************************************************************************

函数名称:w_max7219

函数功能:向MAX7219写入数据

入口参数:addr MAX7219内部寄存器地址,wdata 写入内部寄存器的操作数值

出口参数:

其    它:

*********************************************************************************************/

void w_max7219(unsigned char addr,unsigned char wdata)

{

  unsigned int temp,i=1,j,k;

  LD=0;

  while(i<16)

  {

    if(i<8) temp=addr;  //先写入MAX7219内部寄存器地址,再向内部寄存器写入操作数值

else temp=wdata;

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

{

 CLK=0;

 if((temp&0x80)==0x80) DIN=1;  //先发送数据的最高位

 else DIN=0;

      for(k=5;k>0;k--);  //时钟频率高的单片机需曾加延时时间,此处为12MHz ,k=5

 CLK=1;

      for(k=5;k>0;k--);

 temp<<=1;  

}

i+=8;

  }

  LD=1;

}


/*-------------------------------------------------------------------------------------------

更多追问追答
追问
你的这个不完整啊  好几个错误和警告  哥哥
追答
这只是MAX7219的初始化个写数据代码,剩下的就是你自己要怎么操作了啊,这没必要再贴了吧
深圳市兴威帆电子技术有限公司
2023-08-24 广告
实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各... 点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式