MAX7221控制数码管动态显示 Allegro,pads,PCB电路板设计,硬件及芯片资料分享—小北设计

MAX7221控制数码管动态显示

51单片机 by AD,Allegro,pads,PCB设计,电源模块,硬件,stm32,嵌入式,单片机,小北设计
//名称:MAX7221控制数码管动态显示
//说明:本例用MAX7221控制8只数码管动态显示,这样大大减少了对单片机
//引脚和机器时间的占用。
//MAX7221,一款专为驱动LED数码管而设计的集成电路,凭借其多路输入输出接口,
//能够轻松实现多个数码管的同时显示,无论是数字还是字母,都能一一呈现。这款芯片广泛应用于电子钟、计数器、
//仪表以及各类显示模块中,是数字信息显示的理想选择。
//本例用共阴显示驱动芯片MAX7221控制数码管显示,它仅占用了单片机的3只引脚,更重
//要的是,在它输出所有显示内容后,单片机不需要像以前的数码管显示案例那样高速刷新数码管,
//因而还大大节省了对单片机时间的占用。
//DIN 串行数据输入,数据在时钟上升沿进入内部16位的移位寄存器
//CS片选输入,当CS为低电平时,串行数据加载到移位寄存器,最近的16位串行数据在CS的上升沿锁存
//CLK串行时钟输入,最大速率为10MHz,在时钟上升沿时数据移入内部移位寄存器,
//下降沿时数据由DOUT移出,对于MAX7221,时钟仅在CS为低电平时有效
//ISET 通过电阻连接VDD(RseT)以控制最高段电流
//DOUT串行数据输出,进入DIN的数据16.5个时钟周期后在DOUT上有效,该引脚用

//于多个MAX7219/MAX7221的连接,它总是呈现非高阻状态

#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit DIN=P2^0;
sbit CSB=P2^1;
sbit CLK=P2^2;
uchar xianshi_buffer[8]={2,0,2,5,10,8,10,9};
//延时
void yan_shi(uint ms)
{
uchar i,j;
  for(i=0;i   for(j=0;j<110;j++);
}
//写数据
// MAX7221写入数据
void MAX7221_Write(uchar address, uchar dat)
{
uchar i;
CSB=0;
for(i=0;i<8;i++)
{
CLK=0;
address<<=1;
DIN=CY;
CLK=1;
_nop_();
_nop_();
CLK=0;
}
for(i=0;i<8;i++)
{
CLK=0;
dat<<=1;
DIN=CY;
CLK=1;
_nop_();
_nop_();
CLK=0;
}
CSB=1;
}
// 设置LOAD_PIN为输出
// 初始化SPI设置
void initialise()
{
MAX7221_Write(0x09, 0xFF); // 7编码模式地址0x09 0x00 ~ 0xFF,为1的则位选通
MAX7221_Write(0x0A, 0x07); //亮度地址 0x0A 0x00 ~ 0x0F,0x0F最亮
MAX7221_Write(0x0B, 0x07); // 扫描数码管个数地址0BH,最多扫描8只数码管
MAX7221_Write(0x0C, 0x01); // 工作模式地址 0x0C 0x00:关闭;0x01:正常
}
//主程序
void main()
{
uchar i;
initialise();
yan_shi(1);
for(i=0;i<8;i++)
MAX7221_Write(i+1,xianshi_buffer[i]);
while(1);

}

通过网盘分享的文件:MAX7221控制数码管动态显示
链接: https://pan.baidu.com/s/1n3j4KBbXtR6_ddkzARnqWw 提取码: ukfj

MAX7221控制数码管动态显示

    Message:

    Name:
    Email:
    Content:
PgUP ...
Allegro,pads,PCB电路板设计,电源模块件及stm32,嵌入式,单片机资料分享—小北设计