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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 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 + -