📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 串行共阴显示驱动器MAX7219/7221控制数码管显示
//-----------------------------------------------------------------
// 说明: 本例用MAX7219/7221控制8只数码管动态显示,每组数字输出后
// 不必再高速刷新,该芯片的使用大大减少了对单片机引脚和单片
// 机时间的占用.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 1000000UL
//引脚操作定义
#define DIN RB0
#define CLK RB2
#define CS7221 RB1
#define CS7219 RB3
//在非解码模式下MAX7219/7221对应的段码表,此表不同于直接驱动时所使用的段码表
//原来的各段顺序是: DP,G,F,E,D,C,B,A
//MAX7219/7221的驱动顺序是:DP,A,B,C,D,E,F,G
//除小数点位未改变外,其他位是逆向排列的.
//下在前两行为0~F的段码,最后4位为"-(16)/°(17)/C(18)/黑屏(19)"的段码
const INT8U SEGCODE_72XX[] =
{ 0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70, //0~7
0x7F,0x7B,0x77,0x1F,0x4E,0x3D,0x4F,0x47, //8~F
0x01,0x63,0x4E,0x00 //16~19[ - °C 黑屏]
};
//7219待显示的内容为温度值:-32.75℃("-"前面的最高位黑屏)
//由于本例7219工作于非解码模式在串行发送时,需要以下表为索引,
//发送SEGCODE_72XX中的对应段码
const INT8U Disp_Buffer0[] = {19,16,3,2,7,5,17,18};
//7221待显示的数字串"20110925"(由于本例7221工作于解码模式,故各数位直接发送)
const INT8U Disp_Buffer1[] = {2,0,1,1,0,9,2,5};
//-----------------------------------------------------------------
// 向MAX7221/7219写数据
//-----------------------------------------------------------------
void Write(INT8U Addr,INT8U Dat,INT8U Clip_N0)
{
}
//-----------------------------------------------------------------
// MAX72XX初始化
//-----------------------------------------------------------------
void Init_MAX72XX(INT8U i)
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT8U i;
PORTB = TRISB = 0x00;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -