📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 8位数码管段位复用串行驱动芯片MAX6951应用
//-----------------------------------------------------------------
// 说明: 本例程序仅占用PD端口3只引脚即实现了多位数码管的显示控制.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 1000000UL
//MAX695X引脚定义
#define CLK RC5
#define CS RC6
#define DIN RC7
//695X待显示的几组数据---------------------------------------------
//1.显示A、C、2、2、0,全解码(直接发送)
const INT8U Test1[] = {0x0A,0x0C,0x02,0x02,0x00};
//2.显示温度:-32℃,其中第0位0x01,第3位0x63不解码,
//它们分别是"-"的段码及"℃"中小圆圈的段码
const INT8U Test2[] = {0x01,0x03,0x02,0x63,0x0C};
//3.显示C000.0递增,全部不解码
//显示此数组时要使用MAX695X的段码表
INT8U Test3[] = {0x0C,0,0,0,0};
//在非解码模式下MAX6950/1对应的段码表,此表不同于直接驱动时所使用的段码表
//原来的各段顺序是: DP,G,F,E,D,C,B,A
//MAX6950/1的驱动顺序是:DP,A,B,C,D,E,F,G
//除小数点位未改变外,其他位是逆向排列的.
const INT8U SEG_CODE_695X[] =
{ 0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,
0x7F,0x7B,0x77,0x1F,0x4E,0x3D,0x4F,0x47
};
void Count_Demo();
//-----------------------------------------------------------------
// 向MAX695X写数据
//-----------------------------------------------------------------
void delay(INT8U n)
{
for (INT8U i = 0 ; i < n; i++) __delay_ms(100);
}
//-----------------------------------------------------------------
// 向MAX695X写数据
//-----------------------------------------------------------------
void Write(INT8U Addr,INT8U Dat)
{
INT8U i;
CS = 0;
for(i = 0; i < 8; i++) //串行写入8位地址Addr
{
}
for(i = 0; i < 8; i++) //串行写入8位数据Dat
{
}
CS = 1;
}
//-----------------------------------------------------------------
// MAX695X初始化
//-----------------------------------------------------------------
void Init_MAX695X()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT8U i;
PORTC = TRISC = 0x00;
Init_MAX695X(); //695X初始化
while (1)
{
//1-显示A、C、2、2、0(全解码)------------------------------
//2-显示温度:-32℃(部分解码)-------------------------------
//3-C000.0递增演示(全部不解码,发送段码)-------------------
}
}
//-----------------------------------------------------------------
// 数码管数码递增演示C000.0-C999.9(本例实际演示到C015.0时停止)
//-----------------------------------------------------------------
void Count_Demo()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -