📄 7219.txt
字号:
#include<reg51.h>
#include<math.h>
#define uint unsigned int
#define uchar unsigned char
sbit LOAD=P1^3; //MAX7219片选 12脚
sbit DIN=P1^2; //MAX7219串行数据 1脚
sbit CLK=P1^4; //MAX7219串行时钟 13脚
//函数声明
void Write7219(uchar address,uchar dat);
void Initial(void);
//地址、数据发送子程序
void Write7219(uchar address,uchar dat)
{
uchar i;
LOAD=0; //拉低片选线,选中器件
//发送地址
for (i=0;i<8;i++) //移位循环8次
{
CLK=0; //清零时钟总线
DIN=(bit)(address&0x80); //每次取高字节
address<<=1; //左移一位
CLK=1; //时钟上升沿,发送地址
}
//发送数据
for (i=0;i<8;i++)
{
CLK=0;
DIN=(bit)(dat&0x80);
dat<<=1;
CLK=1; //时钟上升沿,发送数据
}
LOAD=1; //发送结束,上升沿锁存数据
}
//MAX7219初始化,设置MAX7219内部的控制寄存器
void Initial7219(void)
{
Write7219(0x0C,0x01); //关断模式寄存器,开启正常工作模式(0xX1)
Write7219(0x0F,0x00); //测试控制寄存器,选择工作模式(0xX0)
Write7219(0x09,0xff); //译码控制寄存器,选用全译码模式
Write7219(0x0B,0x07); //扫描界限寄存器,8只LED全用
Write7219(0x0A,0x04); //亮度控制寄存器,设置初始亮度
}
void main(void)
{
uchar i;
Initial7219(); //MAX7219初始化
while(1)
{
for(i=1;i<9;i++)
{
Write7219(i,i); //数码管显示1~8
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -