666|2

1517

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【SoC 6 BLE原型开发板】+串行数码管显示驱动篇 [复制链接]

上次尝试利用扩展接口对GPIO口的使用,这次就利用其中的GPIO口来为开发板配置一个串行数码管显示模块,以实现数据显示的作用。

该串行数码管模块如图1所示,其主控芯片为MAX7219,是一种将串行信号转换为并行信号的芯片。

该显示模块共有5个引脚,除电源占用的2个引脚外,其余3个引脚的作用及连接关系为:

DIN----数据引脚---P5.2

CLK----时钟引脚---P5.3

CS ----片选引脚---P5.5

 

  

图1 串行数码管模块

 

为实现高低电平信号的输出,所做的语句定义为:

#defineDIN_SetHigh()   Cy_GPIO_Set(P5_2_PORT, P5_2_NUM)

#defineDIN_SetLow()    Cy_GPIO_Clr(P5_2_PORT, P5_2_NUM)

#defineCLK_SetHigh()   Cy_GPIO_Set(P5_3_PORT, P5_3_NUM)

#defineCLK_SetLow()    Cy_GPIO_Clr(P5_3_PORT, P5_3_NUM)

#defineCS_SetHigh()    Cy_GPIO_Set(P5_5_PORT, P5_5_NUM)

#defineCS_SetLow()     Cy_GPIO_Clr(P5_5_PORT, P5_5_NUM)

 

为保证输出信号的稳定和可靠,所配置的延时函数为:

void delay_ns(unsignedint n)
{
    unsignedint i;
    unsignedint count=4;
    for(i=0;i<n; i++)
    {
          count=4;
          while(count--);
    }
}

实现字节数据串行发送的函数为:

void Write_Max7219_byte(char DATA)
{
   char i;
   CS_SetLow();
   delay_ns(100);
   for(i=8;i>=1;i--)
   {
       CLK_SetLow();
       delay_ns(100);
       if(DATA&0x80)
           DIN_SetHigh();
       else
           DIN_SetLow();
       delay_ns(100);
       DATA=DATA<<1;
       CLK_SetHigh();
       delay_ns(100);
   }
}

向指定单元发送数据的函数为:

void Write_Max7219(char address,char dat)
{
     CS_SetLow();
     delay_ns(100);
     Write_Max7219_byte(address);
     Write_Max7219_byte(dat);
     CS_SetHigh();
     delay_ns(100);
}

对串行数码管模块进行初始化的函数为:

void Init_MAX7219(void)
{
     Write_Max7219(0x09, 0xff);
     Write_Max7219(0x0a, 0x02);
     Write_Max7219(0x0b, 0x07);
     Write_Max7219(0x0c, 0x01);
     Write_Max7219(0x0f, 0x00);
}

实现串行数码管驱动测试的主程序为:

int main(void)
{
    Init_MAX7219();
    Write_Max7219(1,1);
    Write_Max7219(2,2);
    Write_Max7219(3,3);
    Write_Max7219(4,4);
    Write_Max7219(5,5);
    Write_Max7219(6,6);
    Write_Max7219(7,7);
    Write_Max7219(8,8);
}

经程序的编译和下载,其运行的显示效果如图2所示。

   

图2 串行数码管测试效果

此帖出自无线连接论坛

最新回复

主控max7219这个IC应该是串行输入/输出共阴极数码管点阵的驱动芯片,大厂的IC还是比较好用的   详情 回复 发表于 2024-1-21 07:31
点赞 关注
 

回复
举报

6810

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

主控max7219这个IC应该是串行输入/输出共阴极数码管点阵的驱动芯片,大厂的IC还是比较好用的

此帖出自无线连接论坛

点评

没错!!!  详情 回复 发表于 2024-1-21 09:57
 
 

回复

1517

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
Jacktang 发表于 2024-1-21 07:31 主控max7219这个IC应该是串行输入/输出共阴极数码管点阵的驱动芯片,大厂的IC还是比较好用的

没错!!!

此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表