📄 main.c
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit pData = P1^0;
sbit pClk = P1^1;
sbit pCs = P1^2;
sbit pNP = P1^3;
void dly_us(uchar t)
{
uchar i;
for(i=0;i<t;i++);
}
uchar tlc1549_R(void)
{
uchar cAD;
uchar i;
cAD=0;
pCs=0;
for(i=0;i<9;i++)
{
pClk=1;
dly_us(2);
pClk=0;
cAD<<=1;
cAD|=pData;
}
pCs=1;
dly_us(25);
return cAD;
}
void dly_ms(uint k)
{
uint i;
TMOD=0x10;
TF1=0;
TR1=1;
for(i=0;i<k;i++)
{
TH1=(65536-1000)/256;
TL1=(65536-1000)%256;
while(!TF1);
TF1=0;
}
TR1=0;
}
void main(void)
{
// uchar cIn;
uchar P1Temp;
uchar cAD=0;
while(1)
{
//cIn=P1&0x3c;
//cIn>>=2;
cAD=tlc1549_R();
if(cAD>25-2 && cAD<25+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x10|P1Temp;
}
else if(cAD>51-2 && cAD<51+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x20|P1Temp;
}
else if(cAD>77-2 && cAD<77+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x30|P1Temp;
}
else if(cAD>102-2 && cAD<102+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x40|P1Temp;
}
else if(cAD>128-2 && cAD<128+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x50|P1Temp;
}
else if(cAD>154-2 && cAD<154+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x60|P1Temp;
}
else if(cAD>179-2 && cAD<179+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x70|P1Temp;
}
else if(cAD>205-2 && cAD<205+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x80|P1Temp;
}
else if(cAD>230-2 && cAD<230+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0x90|P1Temp;
}
else if(cAD>256-2 && cAD<256+2)
{
P1Temp=P1;
P1Temp&=0x0f;
P1=0xA0|P1Temp;
}
P3=cAD;
dly_ms(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -