简易自动电阻测试仪程序.docx
- 文档编号:2607633
- 上传时间:2022-11-03
- 格式:DOCX
- 页数:7
- 大小:51.09KB
简易自动电阻测试仪程序.docx
《简易自动电阻测试仪程序.docx》由会员分享,可在线阅读,更多相关《简易自动电阻测试仪程序.docx(7页珍藏版)》请在冰豆网上搜索。
简易自动电阻测试仪程序
#include
#include
#defineucharunsignedchar
uchartable[]={0x00,0x04,0x0A,0x11,0x11,0x0A,0x1B,0x3B,};
uchartable1[]="THERESIS:
";
sbitCS=P1^5;
sbitClk=P1^6;
sbitDI=P1^7;
sbitDO=P1^7;
sbitrs=P2^0;
sbiten=P2^1;
sbitj1=P2^7;
sbitj2=P2^6;
sbitj3=P2^5;
sbitbeep=P1^4;
sbitled=P2^3;
voiddelay(intx)
{ intj;
for(;x>0;x--)
for(j=20;j>0;j--);
}
ucharADC0832(ucharCH)
{
uchari,dis0,dis1,date;
Clk=0;//拉低时钟
DI=1;//初始化
delay
(1);
CS=0;//芯片选定
delay
(1);
Clk=1;//拉高时钟
delay
(1);
if(CH==0)//通道选择
{
Clk=0;//第一次拉低时钟
DI=1;//通道0的第一位
delay
(1);
Clk=1;//拉高时钟
delay
(1);
Clk=0;//第二次拉低时钟,ADC0832DI接受数据
DI=0;//通道0的第二位
delay
(1);
Clk=1;
delay
(1);
}
else
{
Clk=0;
DI=1;//通道1的第一位
delay
(1);
Clk=1;
delay
(1);
Clk=0;
DI=1;//通道1的第二位
delay
(1);
Clk=1;
delay
(1);
}
Clk=0;//第三次拉低时钟,此前DI两次赋值决定通道
DI=1;//DI开始失效,拉高电平,便于DO数据传输
for(i=0;i<8;i++)//读取前8位的值
{
delay
(1);
dis0<<=1;
Clk=1;
delay
(1);
Clk=0;
if(DO)
dis0|=0x01;
else
dis0|=0x00;
}
for(i=0;i<8;i++)//读取后8位的值
{
dis1>>=1;
if(DO)
dis1|=0x80;
else
dis1|=0x00;
delay
(1);
Clk=1;
delay
(1);
Clk=0;
}
if(dis0==dis1)//两次结束数据比较,若相等
date=dis0;//则赋值给dat
delay
(1);
CS=1;//释放ADC0832
DI=1;//拉高输出端,方便下次通道选择DI端有效
Clk=1;//拉高时钟
delay
(1);
returndate;
}
longdatch(uchara,longst)//计算电阻
{ longy;
doublex=1.0*st*(255-a)/a;
y=x;
returny;
}
voidwritecom(ucharcom)
{rs=0;
P3=com;
delay(10);
en=1;
delay(10);
en=0;
}
voidwritedat(uchardate)
{ rs=1;
P3=date;
delay(10);
en=1;
delay(10);
en=0;
}
voidinit()
{
en=0;
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
}
voiddisplay(longx)
{ intj,wei=12;
for(j=0;j<18;j++) //qinhkongxianshi
{writecom(0xc0+14-j);
delay(10);
writedat(32); }
for(j=0;x>0;j++) //qinhkongxianshi
{if((j%3==0)&&(j>0))
{writecom(0xc0+wei-j);writedat(44);wei--;}
writecom(0xc0+wei-j);
delay(10);
writedat(x%10+48);
x=x/10;
}
}
longJ1(void)
{ j1=1;
j2=0;
j3=0;
delay(40);
returndatch(ADC0832(0),200);
}
longJ2(void)
{ j1=0;
j2=1;
j3=0;
delay(40);
returndatch(ADC0832(0),10000);
}
longJ3(void)
{ j1=0;
j2=0;
j3=1;
delay(40);
returndatch(ADC0832(0),500000);
}
voidmain()
{
intj;
longx,s=1;
led=1;
beep=0;
init();
j1=1;
j2=0;
j3=0;
for(x=0;x<11;x++)
{
writedat(table1[x]);
delay(10);
}
writecom(0x40);
for(x=0;x<8;x++)
{
writedat(table[x]);
}
delay(10);
writecom(0xc0+15);
writedat(0x00);
while
(1)
{
if(j1==1)
{
s=J1();
if(s>=1900)
s=J2();
if(s>=100000)
s=J3();
}
elseif(j2==1)
{
s=J2();
if(s<=1900)s=J1();
elseif(s>=100000)s=J3();
}
elseif(j3==1)
{
s=J3();
if((s<=100000)&&(s>1900))s=J2();
if(s<=1900) s=J1();
}
j=ADC0832(0);
if(j>=254)beep=1;
elsebeep=0;
if((j==0)||(j==255)) led=0;
elseled=1;
if(x!
=s)
{
x=s;
display(s); } }
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 自动 电阻 测试仪 程序