概述
/* --EL------------------------------ ------------*/
/* -----------------通用--------------------*/
/*------------------------------------------------*/
//CE-片选 DAI-数据输入 DAO-数据输出 CLK-时钟 STB—锁存 CLR-复位 addr-地址//
#include "EL_Allhead.H"
#include "EL_TM1638.H"
unsigned char idata TM1638_CacheTab[16];//显示缓存
unsigned char code TM1638_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();//传送数据,并显示
}
}
最后
以上就是甜蜜果汁为你收集整理的C语言disp的头文件,TM1638.h 单片机C语言头文件的全部内容,希望文章能够帮你解决C语言disp的头文件,TM1638.h 单片机C语言头文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复