现在我把它改装成微型冰箱,小范围内能够保证在零度左右
|
|
|
|
|
学习学习
谢谢分享
|
|
|
|
|
出现问题:在传感器上施压,数码管显示不变(一直是5或其他数字)
贴上程序,希望涉及过电子秤的前辈可以加以指导,不胜感激
#include //error: data not change
typedef unsigned char uchar;
typedef unsigned int uint;
//管脚定义
***it ADDO=P2^1;
***it ADSK=P2^0;
***it dlock=P2^6; //数码管段锁
***it wlock=P2^7; //数码管位锁
//常量
uchar code number[10]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code position[7]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
//变量
unsigned long Data;
uchar Data1,Data2;
//延时函数
void delay(uchar t)
{
uchar a,b,c;
for(a=t;a>0;a--)
for(b=50;b>0;b--)
for(c=10;c>0;c--)
{;}
}
//显示函数,显示数字和位置
void display(uchar num,uchar i)
{
P0=number[num];
dlock=1;
dlock=0;
P0=position[i];
wlock=1;
wlock=0;
}
//读取传感器输出数据,完全按照参考例程
unsigned long ReadCount(void)
{
unsigned long Count;
uchar i;
//ADDO=1;
ADSK=0;
Count=0;
while(ADDO);
for (i=0;i<25;i++) //25
{
ADSK=1;
Count=Count<<1;
ADSK=0;
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;
ADSK=0;
return(Count);
}
void main(void)
{
while(1)
{
Data=ReadCount();
Data1=(uchar)(Data%10); //数据转换,不知道写的对不对
Data2=(uchar)(Data/10);
display(Data1,1); //送显
delay(5);
display(Data2,2);
delay(5);
}
}
|
|
|
|
|