700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言disp的头文件 TM1638.h 单片机C语言头文件

C语言disp的头文件 TM1638.h 单片机C语言头文件

时间:2023-02-28 04:53:33

相关推荐

C语言disp的头文件 TM1638.h 单片机C语言头文件

/* --EL------------------------------ ------------*/

/* -----------------通用--------------------*/

/*------------------------------------------------*/

//CE-片选 DAI-数据输入 DAO-数据输出 CLK-时钟 STB—锁存CLR-复位 addr-地址//

#include "EL_Allhead.H"

#include "EL_TM1638.H"

unsigned char idata TM1638_CacheTab[16];//显示缓存

unsigned char codeTM1638_SEGTab[]={0x5f,0x0c,0x9b,0x9e,0xcc,0xd6,0xd7,0x1c,0xdf,0xde}; //数码管0-9

void TM1638_SPI(unsigned char dat) //TM1638

{

unsigned char i;

TM1638_CE =0; //给有效的片选信号(片选信号是低电平有效)

for(i=0;i<8;i++)//开始传送8位数据,每循环一次传送一位数据

{

TM1638_CLK =0;

Delay1us(1);

dat>>=1;//移位数据,低位在前!

TM1638_DAI=CY;

TM1638_CLK =1;

Delay1us(1);

}

}

void TM1638_DispData()//传送数据,并显示

{

static unsigned char i;

TM1638_CE = 1;TM1638_CLK = 1;TM1638_DAI = 1;

TM1638_SPI(0x40);//写数据到显示寄存器,采用地址自动加一

TM1638_CE = 1;

TM1638_SPI(0xc0);//显示寄存器的00H单元开始

for(i=0;i<16;i++)

TM1638_SPI(TM1638_CacheTab[i]);//给显示寄存器送数据,

TM1638_CE = 1;

TM1638_SPI(0x8b);//显示控制参数,点亮数码屏幕,亮度可以通过改变低三位调节

TM1638_CE = 1;

}

void TM1638_ClrData()//清除数据/

{

unsigned char i;

TM1638_CacheTab[0]=0x01; //关机指示灯

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

TM1638_CacheTab[i]=0;

}

/***陈列数据处理函数**传入 数据,位置(0-9)10显示***/

void TM1638_CfgData(unsigned char _Num,unsigned char _WeiData)//陈列数据/

{

unsigned char i=0, j=0;

if(_Num>1)_WeiData=TM1638_SEGTab[_WeiData]; //数码管0-9 转换

if(_Num<8) //1-8位

{

for (i = 0; i < 16; i =i+2)

{

if ((_WeiData & 0x01) == 0x01)

TM1638_CacheTab[i]|=(0x01<<_num>

else

TM1638_CacheTab[i]&=~(0x01<<_num>

_WeiData =(_WeiData>>1);

}

}

else if(_Num<10) //9-10位

{

_Num = _Num - 8;

for (i=1;i<16;i=i+2)

{

if (_WeiData&0x01==0x01)

TM1638_CacheTab[i]|=(0x01<<_num>

else

TM1638_CacheTab[i]&=~(0x01<<_num>

_WeiData =(_WeiData >> 1);

}

}

else

{

TM1638_DispData();//传送数据,并显示

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。