简易自动电阻测试仪程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include #include

#define uchar unsigned char uchar table[]={ 0x00,0x04,0x0A,0x11,0x11,0x0A,0x1B,0x3B, }; uchar table1[]="THE RES IS: "; sbit CS=P1^5; sbit Clk=P1^6; sbit DI=P1^7; sbit DO=P1^7; sbit rs=P2^0; sbit en=P2^1; sbit j1=P2^7; sbit j2=P2^6; sbit j3=P2^5;

sbit beep=P1^4;

XTAL2

18

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD7

32

P1.0/T21P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.7

8

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

PROGRAM=bs.hex

X1

CRYSTAL

C1

22pF

C2

22pF

R4

4.7k

CS

1

CH02CH13GND 4VCC 8

CLK 7DI 5DO 6U3

ADC0832

D 7

14

D 613D 512D 411D 310D 29D 18D 07

E 6

R W 5R S 4V S S 1V D D 2V E E

3

LCD1

LM016L

RL2

G2RL-1AB-DC5

R6

3.3k

Q1

MPS8098

R3

200

RL1

G2RL-1AB-DC5

R7

3.3k

Q2

MPS8098

R8

10k

RL3

G2RL-1AB-DC5

Q3

MPS

R10

500k

RV1

3000

D1

LED-BLUE

BUZ1

BUZZER

R11

2.5k

Q4

MPS8098

D2

1N4148

D3

1N4148

RX

6666666

RV2

10k

sbit led=P2^3;

void delay(int x)

{ int j;

for(;x>0;x--)

for(j=20;j>0;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的第二位

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);

相关文档
最新文档