您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > TLC1549数码管显示程序 -
本文所属标签:
为本文创立个标签吧:

TLC1549数码管显示程序 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
TLC1549数码管显示程序#include"reg52.h"#include"intrins.h"sbitAD_CS=P3^7;sbitAD_DAT=P3^5;sbitAD_CLK=P3^4;unsignedchari,j,q,p,k;//unsignedintAD_Temp,Temp,TempA;/**********4个7段数码管锁存器

TLC1549数码管显示程序

本文引用地址: http://www.21ic.com/app/mcu/201806/764837.htm

#include"reg52.h"
#include"intrins.h"

sbitAD_CS=P3^7;
sbitAD_DAT=P3^5;
sbitAD_CLK=P3^4;
unsignedchari,j,q,p,k;//

unsignedintAD_Temp,Temp,TempA;

/**********4个7段数码管锁存器地址************/
#defineLED1ADDR0x80
#defineLED2ADDR0x81
#defineLED3ADDR0x82
#defineLED4ADDR0x83


/******0-9a-f的7段数码管显示编码**********/

unsignedcharledcode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00};
//0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
/***************存放要显示的数字值********/

unsignedcharval[4];//

/***************延时的子程序***************/

voiddelay(unsignedintt)
{
unsignedintii;
for(i=0;ii//for(j=0;j<10;j++)
;
}

voidDelayMS(unsignedintT)
{
for(;T>0;T--);
}
/**********4个7段数码管锁存器地址************/

TLC1549()//111111
{
TempA=0;
Temp=0;
AD_CS=1;
AD_CLK=1;
AD_DAT=1;
AD_CS=0;
//DelayMS(10);
_nop_();
for(i=0;i<2;i++)
{
AD_CLK=0;
_nop_();
if(AD_DAT)
{Temp+=0x01;}
Temp=Temp<<1;
AD_CLK=1;
_nop_();
}
for(i=0;i<8;i++)
{
AD_CLK=0;
_nop_();
if(AD_DAT)
{TempA+=0x01;}
TempA=TempA<<1;
AD_CLK=1;
_nop_();
}
AD_CLK=0;
AD_CS=0;
AD_Temp=Temp*256+TempA;
P0=AD_Temp;

j=AD_Temp/1000;
q=(AD_Temp%1000)/100;
p=AD_Temp%1000%100/10;
k=AD_Temp%1000%100%10;


}

/*写锁存器的子程序*/
voidwraddr(unsignedintaddr1,unsignedchard)
{

P2=addr1;
P0=d;
}
/*显示子程序*/
voiddisplay(void)
{unsignedintaddr[4]={LED1ADDR,LED2ADDR,LED3ADDR,LED4ADDR};



delay(50);
wraddr(addr[0],ledcode[val[j]]);
delay(50);
wraddr(addr[1],ledcode[val[q]]);
delay(50);
wraddr(addr[2],ledcode[val[p]]);
delay(50);
wraddr(addr[3],ledcode[val[k]]);


}
/*初始化子程序*/
voidinit(void)
{wraddr(LED1ADDR,0XFF);
wraddr(LED2ADDR,0XFF);
wraddr(LED3ADDR,0XFF);
wraddr(LED4ADDR,0XFF);
//输入要显示的数值
val[0]=1;
val[1]=2;
val[2]=3;
val[3]=4;
}
/*主程序入口*/
intmain(void)
{init();

while(1)
{
TLC1549();
display();


}
}




              查看评论 回复



 

"TLC1549数码管显示程序 -"的相关文章

网站地图

围观()