本帖最后由 51黑mcu 于 2016-6-18 01:44 编辑




话说他日正在琢磨这个I2c,现在基本功能了解一点了,于是有了实战的想法。正在为元件发愁,恰好有个做废品回收的人不期而来。问我有没有废品要卖?我答曰:今天先让我看看你那里有没有废品卖我。他应之。于是乎动身动手。忽然眼前出现几只国家电网退役的家用数字电度表。心中暗喜心想那里面液晶屏,单片机,通信接口正是我要的。我问他这几只废电表怎么卖?他也知道里面没有什么有色金属不根本不值钱。收荒者说他收成3元卖我4元。我回答就3元退我以后我们还有合作(哈哈够抠门吧)。收荒者应之。。。。。。到手后立马解体。看见几个芯片,有计度的等等其中有几个不清楚是什么,于是去叩问度娘,这个度娘也是吝啬鬼说:看看可以,下载要收费。我选择看看,于是用手机对有用的拍照保存。还是礼节性给度娘拜拜。心里说我比你还抠门哼哼。接下来看了几天pdf文档。基本明白后马上飞线单片机,编程序调试哈哈液晶屏出现了久违的:1,2,3.。。。。
/////////////////////******** 纯属爱好,程序问题还很多*****////////////
#include<stc12c56.h>
unsigned int a;//8′ÎòÆÎ»
void ys();//Ñóê±
void led(); //ledéáò»ÏÂ
void zx();//×üÏß
void dz();//ѡƬ
void fs();//·½ê½
void sl();//éáàÖ
void zz();//êy¾YÖ¸Õë
void shuju();//êy¾Y
void ack();//ó|′e
void qd();//Æô¶ˉI2c
void tz();//í£Ö1I2c
void tz()//í£Ö1I2c
{ led();
P25=0;
P24=1;
if(P24==0)
P20=0;
}
void qd()//Æô¶ˉI2c
{ P24=1;
P25=1;
P24=0;
}
void ack()//ó|′e
{
P25=0;
P24=1;
P25=1;
}
void zx()//×üÏß
{ unsigned int b=0x7c;
P25=0;
for(a=0;a<=7;)
{P25=0;
if((b<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
ys();
P25=1;
}
}
void fs()//·½ê½
{ unsigned int c=0xcc;
P25=0;
for(a=0;a<=7;)
{P25=0;
if((c<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
ys();
P25=1;
}
}
void sl()//éáàÖ
{ unsigned int d=0xf0;
P25=0;
for(a=0;a<=7;)
{P25=0;
if((d<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
P25=1;
}
}
void dz()//ѡƬ
{unsigned int e=0xe0;//ѡƬ
P25=0;
for(a=0;a<=7;)
{P25=0;
if((e<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
P25=1;
}
}
void zz()//êy¾YÖ¸Õë
{unsigned int f=0x00;
P25=0;
for(a=0;a<=7;)
{P25=0;
if((f<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
ys();
P25=1;
}
}
void shuju()//êy¾Y
{unsigned int g=0xff;
P25=0;
for(a=0;a<=7;)
{P25=0;
if((g<<a)&0x80)
P24=1;
else
P24=0;
a=a+1;
P25=0;
ys();
P25=1;
}
}
void led()//ledéáò»ÏÂ
{
P20=0;
ys();
P20=1;
ys();
}
void ys()//Ñóê±
{unsigned int n,m;
for(n=1;n<=1000;n++)
{
for(m=1;m<=10;m++);
}
}
//*********************//
void main()
{
qd();//Æô¶ˉ
zx();//×üÏß
ack();
dz();//ѡƬ
ack();
fs();//·½ê½
ack();
sl();//éáàÖ ack();
zz();//êy¾YÖ¸Õë
ack();
shuju();//êy¾Y
tz();//í£Ö1
while(1);
}
|