《简易自动电阻测试仪程序》由会员分享,可在线阅读,更多相关《简易自动电阻测试仪程序(7页珍藏版)》请在金锄头文库上搜索。
1、精选优质文档-倾情为你奉上简易自动电阻测试仪程序#include#include #define uchar unsigned charuchar table= 0x00,0x04,0x0A,0x11,0x11,0x0A,0x1B,0x3B, ; uchar table1=THE RES IS: ; sbit CS=P15; sbit Clk=P16; sbit DI=P17; sbit DO=P17; sbit rs=P20; sbit en=P21; sbit j1=P27; sbit j2=P26; sbit j3=P25; sbit beep=P14; sbit led=P23; vo
2、id delay(int x) int j; for(;x0;x-) for(j=20;j0;j-) ; uchar ADC0832(uchar CH) uchar i,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; /第二次拉低时钟,ADC0832 DI接受数据 DI=0; /通道0的第
3、二位 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;i8;i+) /读取前8位的值 delay(1); dis0= 1; Clk=1; delay(1); Clk=0; if (DO) dis0|=0x01; else dis0|=0x00; for (
4、i=0;i= 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); return date; long datch(uchar a ,long st ) /计算电阻 long y; double x=1.0*st*(255-a)/a ; y=x; re
5、turn y; void writecom(uchar com) rs=0; P3=com; delay(10); en=1; delay(10); en=0; void writedat(uchar date) rs=1; P3=date; delay(10); en=1; delay(10); en=0;void init () en=0;writecom(0x38); writecom(0x0c); writecom(0x06); writecom(0x01); void display( long x) int j,wei=12; for(j=0;j0;j+) /qinhkongxia
6、nshi if(j%3=0)&(j0) writecom(0xc0+wei-j);writedat(44);wei-; writecom(0xc0+wei-j); delay(10); writedat(x%10+48); x=x/10 ; long J1(void) j1=1; j2=0;j3=0;delay(40);return datch(ADC0832(0),200); long J2(void) j1=0; j2=1;j3=0;delay(40);return datch(ADC0832(0),10000); long J3(void) j1=0; j2=0;j3=1;delay(4
7、0);return datch(ADC0832(0),); void main() int j;long x,s=1; led=1; beep=0; init(); j1=1; j2=0; j3=0; for(x=0;x11;x+) writedat(table1x); delay(10); writecom(0x40); for(x=0;x=1900) s=J2(); if(s=) s=J3(); else if(j2=1) s=J2(); if(s=) s=J3(); else if(j3=1) s=J3();if(s1900) s=J2();if(s=254) beep=1; else beep=0; if(j=0)|(j=255) led=0;else led=1; if(x!=s) x=s; display(s); 专心-专注-专业