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

📄 lisayutuxing.c

📁 通过对芯片TLC2543
💻 C
📖 第 1 页 / 共 2 页
字号:
}
}	
/*---------------------------------------------------*/
void timer1(void) interrupt 3
{
unsigned long int y;
TH1=0xff;
/*TLC2543_out.unsigned_int=read_write_2543(0x20);  */
write_TLC5620_two(0x02,sin[i],0x04,sin[j]);
i++;j++;
//y+=TLC2543_out.unsigned_int;
if(i>127)
{
i=0;
//TLC2543_out_ave=y/256;
//y=0;
}
if(j>127)
{j=0;}
}
/*---------------------------------------------------------------*/
char dis_code(char x)                        /*将十进制数转换为数码管显示码值*/
{
switch(x)
{
case 0:return CODE0;
case 1:return CODE1;
case 2:return CODE2;
case 3:return CODE3;
case 4:return CODE4;
case 5:return CODE5;
case 6:return CODE6;
case 7:return CODE7;
case 8:return CODE8;
case 9:return CODE9;
default:return 0;
}
}
/*------------------------------------------------------------*/
display_led()                           
{
unsigned char i;

for(i=0;i<8;i++)
{
write_ch451(dig[i],uled[i],0,0);
}
}
/*--------------------------------------------------------------*/
void delay(unsigned int x)
{
unsigned int i;

x*=53;
for(i=0;i<x;i++)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
_nop_();_nop_();_nop_();_nop_();_nop_();
}
/*------------------------------------------------------*/
void wait_renew_display_read_key(void)
{

while(renew_dis_key_flag==0)PCON=0x01;
renew_dis_key_flag=0; 
write_ch451(SYSON1_ADD,SYSON1_CODE,SYSON2_ADD,SYSON2_CODE);
write_ch451(DSP_ADD,DSP_CODE,DSP_ADD,DSP_CODE);
last_key=key;
key=read_ch451();
display_led();
write_ch451(0,0,DIG0,key);
}
/*-------------------------------------------------------------------------*/
void write_IIC(unsigned char x)
{
char i;

B=x;
i=8;
do
 {
 AT24C02_SDA=B7;
 AT24C02_SCL=1;_nop_();_nop_();B=B<<1;
 AT24C02_SCL=0;_nop_();_nop_();
 i--;
 }
while(i!=0);
AT24C02_SDA=1;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;
_nop_();_nop_();
}
/*--------------------------------------------------------*/
void write_IIC_24C02(unsigned char x)
{
char i;
B=x;
i=8;
do
 {
 AT24C02_SDA=B7;
 AT24C02_SCL=1;_nop_();_nop_();B=B<<1;
 AT24C02_SCL=0;_nop_();_nop_();
 i--;
 }
while(i!=0);
AT24C02_SDA=1;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;
_nop_();_nop_();
delay(5); 
}
/*--------------------------------------------------------*/
void write_24C02_byte(unsigned char address,unsigned char x)
{
AT24C02_SDA=1;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=0;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;                                                    /* start */
write_IIC_24C02(0xa0);                        
write_IIC_24C02(address);
write_IIC_24C02(x);
AT24C02_SDA=0;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=1;  
delay(5);  
                                               /* stop */
}
/*-------------------------------------------------------------------------*/
unsigned char read_24C02_byte(unsigned char address)
{
char i;

AT24C02_SDA=1;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=0;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;                                                    /* start */
write_IIC_24C02(0xa0);                        
write_IIC_24C02(address);
AT24C02_SDA=0;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=1;                                                   /* stop */

AT24C02_SDA=1;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=0;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;                                                    /* start */
write_IIC_24C02(0xa1);                        
i=8;
do
 {
 B=B<<1;B0=AT24C02_SDA;
 AT24C02_SCL=1;
 _nop_();_nop_();
 _nop_();_nop_();
 AT24C02_SCL=0;
 _nop_();_nop_();
 _nop_();_nop_();
 i--;
 }
while(i!=0);
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SCL=0;
_nop_();_nop_();
_nop_();_nop_();

AT24C02_SDA=0;
AT24C02_SCL=1;
_nop_();_nop_();
_nop_();_nop_();
AT24C02_SDA=1;                                                   /* stop */

return(B);
}
/*-------------------------------------------------------------------------*/

/*void write_TLC2543(unsigned char x)
{
TLC2543_DIN=1;
TLC2543_CS=0;
B=x;
TLC2543_CLK=0;TLC2543_DIN=B7;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B6;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B5;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B4;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B3;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B2;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B1;TLC2543_CLK=1;
TLC2543_CLK=0;TLC2543_DIN=B0;TLC2543_CLK=1;
TLC2543_CS=1;
}
/*----------------------------------------------------------------------------*/
/*char read_TLC2543()
{
TLC2543_DOUT=1;
TLC2543_CS=0;
TLC2543_CLK=0;B7=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B6=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B5=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B4=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B3=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B2=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B1=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CLK=0;B0=TLC2543_DOUT;TLC2543_CLK=1;
TLC2543_CS=1;
return B;
}
/*-------------------------------------------------------------------------------*/
TLC2543_operation()
{unsigned char x;
x=TLC2543_out.unsigned_int;
uled[0]=dis_code(x/100);
uled[1]=dis_code(x%100/10);
uled[2]=dis_code(x%10);
uled[3]=uled[4]=uled[5]=uled[6]=uled[7]=0;
} 
/*---------------------------------------------------------------------------------*/

TLC5620_operation()
{
unsigned char i,j;
for(j=0;;j++)
{
for(i=0;i<128;i++)
{
write_TLC5620(0x04,sin[i]);
}
}
}	
/*---------------------------------------------------*/
TLC5620_operation3()
{
unsigned char i,j;
for(j=0;;j++)
{
for(i=0;i<128;i++)
{
write_TLC5620(0x02,sin[i]);
}
}
}	
/*-----------------------------------------------*/

/*TLC5620_operation1()
{
write_TLC5620(0x02,data1);
}
/*-------------------------------*/
void main(void)
{
TMOD=0x11;                                    /*设置定时中断T0*/
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
AUXR=0;
IP=0x08;
for(;;)
{
wait_renew_display_read_key();
/*TLC5620_operation2();*/
/*TLC5620_operation3();
TLC5620_operation1();*/	  
TLC2543_operation();
write_ch451(DIG5,dis_code(data1/100));
write_ch451(DIG6,dis_code(data1%100/10));
write_ch451(DIG7,dis_code(data1%10));
if(key==UP)
{
data1++;
}
if(key==DOWN)
{
data1--;
}
}		 	
}
/*------------------------------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -