⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7219新.c

📁 7219的简单用法 告诉我们简单的测试程序 以及管脚接法
💻 C
字号:

#include<REG52.H>     
sbit LOAD=P1^2;          //MAX7219片选           12脚

sbit DIN=P1^1;           //MAX7219串行数据       1脚

sbit CLK=P1^0;           //MAX7219串行时钟        13脚

//寄存器宏定义

#define DECODE_MODE  0x09   //译码控制寄存器

#define INTENSITY    0x0A   //亮度控制寄存器

#define SCAN_LIMIT   0x0B   //扫描界限寄存器

#define SHUT_DOWN    0x0C   //关断模式寄存器

#define DISPLAY_TEST 0x0F   //测试控制寄存器         

//函数声明

void Write7219(unsigned char address,unsigned char dat);

void Initial(void);

//地址、数据发送子程序

void Write7219(unsigned char address,unsigned char dat)

{   

    unsigned char 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=dat*2;
       

       CLK=1;        //时钟上升沿,发送数据

    }

    LOAD=1;    //发送结束,上升沿锁存数据                       

}

//MAX7219初始化,设置MAX7219内部的控制寄存器

void Initial(void)                 

{ 

     Write7219(SHUT_DOWN,0x01);        //开启正常工作模式(0xX1)

    Write7219(DISPLAY_TEST,0x00);      //选择工作模式(0xX0)

    Write7219(DECODE_MODE,0xff);       //选用全译码模式

    Write7219(SCAN_LIMIT,0x07);        //8只LED全用

    Write7219(INTENSITY,0x04);          //设置初始亮度      

}



void main(void)

{

    unsigned char i; 

    Initial();               //MAX7219初始化

    while(1)

    {  

       for(i=1;i<9;i++)

       {

           Write7219(i,i);      //数码管显示1~8

       }

    } 

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -