현재 위치 - 중국 분류 정보 발표 플랫폼 - 중고환승안내 - 그 큰형은 디지털 회로로 완성한' 4 자리 디지털 디스플레이 커패시턴스 테이블' 자료를 제공할 수 있습니다. 대단히 감사합니다.

그 큰형은 디지털 회로로 완성한' 4 자리 디지털 디스플레이 커패시턴스 테이블' 자료를 제공할 수 있습니다. 대단히 감사합니다.

미안해 형제 ~ 네가 쓸 수 없는 것을 찾았어 ~ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ !

/2007/10/200710171782221340.html

/u/52/1177380466.doc

너에게 도움이 되었으면 좋겠다 ~

또한 AT89C2051 은 AT89C51 의 간소화판으로 P0, P2 등의 포트를 제거하여 I/O 포트를 줄였지만, 전압 비교기가 추가되어 아날로그 처리, 간단한 모듈 변환 등 일부 면에서 기능이 향상되었습니다. 이 기능을 사용하여 2 마이크로법 미만의 콘덴서의 용량을 측정할 수 있는 디지털 콘덴서 테이블을 설계했습니다. 3 자리 반숫자 디스플레이, 최대 디스플레이 값은 1999, 판독 단위는 나노미터 (nf), 범위는 4 단, 판독값은 각각 해당 배율을 곱합니다.

회로 작동 방식

이 디지털 용량 측정기는 콘덴서의 충전 법칙을 측정 기준으로 하고, 테스트 원리는 그림 1 에 나와 있다.

그림 1

전원 전압 E+ 는 저항 R 을 통해 테스트된 용량 CX 를 충전하고, CX 양끝의 원래 전압은 충전 시간이 늘어나면서 상승합니다. 충전 시간 T 가 RC 시간 상수 τ와 같으면 CX 양끝의 전압은 전원 전압의 약 63.2, 즉 0.632E+ 입니다. 디지털 콘덴서 테이블은 이 전압을 테스트 기준 전압으로 사용하여 콘덴서 충전이 해당 전압에 도달하는 시간을 측정하면 콘덴서의 용량을 알 수 있습니다. 예를 들어, 저항 R 의 저항을 1 킬로유로로 설정하고, CX 양끝의 전압이 0.632E+ 로 상승하는 데 걸리는 시간은 1 밀리초라면, 공식 τ=RC 는 CX 의 용량이 1 마이크로법이라는 것을 알 수 있다.

측정 회로는 그림 2 에 나와 있습니다.

그림 2

A 는 AT89C2051 내부에 구성된 전압 비교기, AT89C2051 의 P1.0 및 P1.1 포트, I/O 포트 외에도 전압 비교기의 입력 포트, P1.0 은 동일한 입력 포트, P1.1 은 반대 입력 포트, 전압 비교기의 비교 결과는 P3.6 포트의 해당 레지스터, P3 에 저장됩니다. 전압 비교기의 기준 전압은 0.632E+ 로 설정되고, CX 양단 전압이 0 에서 0.632E+ 로 상승하는 동안 P3.6 포트 출력은 0 으로 출력되며, 배터리 전압 CX 양단 전압이 0.632E+ 를 초과하면 P3.6 포트 출력은 1 로 변경됩니다. P3.6 포트의 출력 평평을 기준으로 AT89C2051 내부의 타이머 T0 을 사용하여 충전 시간을 계산한 다음 계산 결과를 표시하면 측정 결과를 얻을 수 있습니다.

전체 기계 회로는 그림 3 에 나와 있습니다. 회로는 단일 칩 회로, 콘덴서 충전 측정 회로, 디지털 디스플레이 회로 등으로 구성됩니다.

그림 3

AT89C2051 내부의 전압 비교기와 저항 R2-R7 등은 측정 회로를 구성합니다. 여기서 R2-R5 는 범위 저항으로 밴드 스위치 S1 에 의해 선택되며 전압 비교기의 기준 전압은 R6, RP1, R7 분압을 통해 5V 전원 전압에서 얻어지며 RP1 조정 가능 기준 전압입니다. P1.2 포트가 프로그램 제어 하에 고평을 출력하면 콘덴서 CX 가 충전을 시작합니다. 범위 저항 R2-R5 는 파일당 10 배로 감소하므로 문서당 판독 값이 10 배로 증가합니다. 단일 칩 내부 P1.2 포트의 위쪽 인장 저항은 약 200K 로 측정되기 때문에 출력 평평은 충전 전압으로 사용할 수 없으므로 R5 를 위쪽 인장 저항으로 사용할 수 없습니다. 다른 세 개의 충전 저항과 R5 는 직렬 관계이기 때문에 R2, R3, R4 는 각각 99K, 99K, 9K 로 표준 값에서 1K 를 빼야 합니다. 999K 와 1M 의 상대 오차가 작기 때문에 R2 는 1M 입니다.

디지털 튜브 DS1-DS4, 저항 R8-R14 등은 디지털 디스플레이 회로를 구성합니다. 이 기계는 동적 스캔 디스플레이를 사용하여 소프트웨어로 글리프 코드를 번역합니다. P3.0-P3.5, P3.7 은 디지털 디스플레이 7 단 스트로크 글리프 코드의 출력을, P1.3-P1.6 포트는 4 개의 디지털 튜브의 동적 스캔 비트 드라이버 출력을 나타냅니다. 여기에 * * * 음디지털 튜브가 사용됩니다. AT89C2051 의 P1.3-P1.6 포트는 25mA 의 드롭다운 전류 용량을 가지고 있기 때문에 트라이오드 없이도 디지털 파이프를 구동할 수 있습니다. R8-R14 는 P3.0-P3.5, P3.7 포트의 풀업 저항으로 디지털 튜브의 필드를 구동하며, P3 의 한 포트가 저평을 출력할 때 해당 필드 스트로크가 켜지지 않고, 해당 풀업 저항이 해당 필드 스트로크를 밝힐 수 있습니다.

소프트웨어 설계

프로그램은 C 언어로 작성하는데, 상세한 소스 프로그램은 본지 홈페이지에 나와 있다.

프로그램은 마스터 프로그램, 정기 인터럽트 서비스 하위 프로그램 등의 모듈로 구성됩니다. 타이머 T0 은 테스트된 콘덴서의 충전 시간 카운트로 사용됩니다. 타이머 T1 은 5ms, 즉 5ms 로 예정된 인터럽트 서비스에 사용됩니다. 배열 BitTab[4] 비트 드라이버 코드를 저장하는 데 사용되고, DispTab[11] 은 글리프 코드를 저장하는 데 사용되며, 배열 DispBuf[4] 의 4 개 요소는 타이머 T0 에서 읽은 데이터의 100,000 비트 4 자리 숫자를 저장하는 데 사용됩니다.

프로그램은 각 숫자의 시간을 5ms 로 표시하므로 전체 4 자리 기간을 20ms(4 회 인터럽트) 로 표시합니다. 240ms(48 회 인터럽트) 마다 데이터를 새로 고칩니다. 즉, 240ms 를 통과할 때마다 용량이 측정되고, 측정 시간이 2ms 미만이며, 이 시간은 인터럽트 시간 5ms 보다 작기 때문에 측정 중에 인터럽트가 발생하지 않습니다. 콘덴서를 측정할 때 P1.2 포트 출력 고평이 시작되고 콘덴서 충전이 시작되면서 타이머 T0 이 카운트를 시작하고 콘덴서 충전이 기준 전압에 도달하면 P3.6 포트 출력이 고평을 출력하여 프로그램에 따라 중지 T0 수를 결정하고 데이터 송수관 디스플레이를 읽습니다. 테스트된 콘덴서의 용량이 테스트 파일의 범위를 초과하면 카운트 값이 2000 보다 크거나 같고, 그 결과 천 단위 표시 1 이 표시되고, 다른 세 자릿수는 표시되지 않습니다. 이는 디지털 멀티 미터가 범위를 초과하는 표시 모드와 동일합니다. 이때 큰 사이즈의 범위를 선택하여 테스트할 수 있다.

시뮬레이션 및 회로 테스트 결과, 단일 칩 P3.6 포트가 고평을 출력하는지 여부를 판단하는 3 개의 기계 주기가 디스플레이 값을 3 씩 증가시켜 프로그램에서 이 오차를 수정하여 카운트 값에서 3 을 뺀 것으로 나타났습니다.

글리프 코드의 출력은 P3 포트의 P3.0-P3.5, P3.7, P3.6 이 비어 있고, P3 포트 출력의 데이터는 DispTab[11] 배열을 통해 얻어집니다.

데이터 비트 p 3.7p 3.6p 3.5p 3.4p 3.3p 3.2p 3.1p 3.0 상형 문자

펜 세그먼트 a 빈 B C D E F G

단어 0 1 1 1 1 1 1 0 0xfe

1 0 1 1 0 0 0 0 00x70

2 1 1 0 1 0 1 0 1 0x ed

3 1 1 1 1 0 0 1 0xf9

4 0 1 1 0 1 1 1 0x73

5 1 1 0 1 0 1 1 1 0x db

6 1 1 0 1 1 1 1 0x df

7 1 1 1 0 0 0 0 0xf0

8 1 1 1 1 1 1 1 0xff

9 1 1 1 1 0 1 1 0xfb

0 1 0 0 0 0 0 000x40

을 표시하지 않습니다

데이터 비트와 글리프 간의 대응은 위의 표에 나와 있습니다. 디지털 튜브는 * * * 음형이므로 해당 출력 비트가 1 일 때 펜 세그먼트가 밝습니다.

설치 및 디버그

인쇄 회로 기판 그림은 그림 4 를 참조하십시오. 이중 패널 제작에 어려움이 있을 때도 만능 인쇄 회로 기판으로 만들 수 있습니다. IC1

그림 4

AT89C2051 단일 칩 집적 회로, X1 은 12MHz 수정, S1 은 1×4 밴드 스위치, DS1-DS4 는 * * * 음LED 디지털 파이프를 사용합니다. 나머지 부품의 매개변수는 그림 3 에 나와 있습니다.

설치하기 전에 C 언어 소스 프로그램을 KEIL 51 을 대상 문서인 HEX 문서로 컴파일한 다음 프로그래머를 사용하여 HEX 파일을 AT89C2051 칩에 씁니다. C 언어 소스 프로그램과 HEX 파일 아래에서 아래 연결을 클릭하여 다운로드하십시오.

C 파일

# includelt; Reg51.hgt;;

Unsigned char j, n, t, dispbuf [4];

Unsigned int cap;;

Unsigned char code

BitTab[4]={0xbf, 0xdf, 0xef, 0xf7}; //비트 드라이버

Unsigned char code

DispTab[11]={0xfe, 0x70, 0xed, 0xf9, 0x73, 0xdb, 0xdf, 0xf0, 0xff, 0xfb, 0x40}; //상형 문자

Sbitp1 _ 2 = P1 2;

Sbitp3 _ 6 = P3 6;

메인 ()//마스터 프로그램

{TMOD=0x11;; //타이머 T0, T1 모두 타이밍 1

에서 작동합니다

TH1=0xec;;

TL1=0x78;; //T1 스케줄 시간은 5ms

입니다

IE=0X88;; //인터럽트 켜기

Tr1 = 1; //타이머 t1 켜기

For (; 을 눌러 섹션을 인쇄할 수도 있습니다 )//무한 루프, 스케줄 중단 반환 지점

을 눌러 섹션을 인쇄할 수도 있습니다

}

Timer1() interrupt 3// 예정된 인터럽트 서비스 프로그램

{TH1=0xec;;

TL1=0x78;;

T = 비트탭 [j]; //위치 지정 값

P1 = P1=P1|0x78;; //P1.3-P1.6 배달 1

P1=P1amp;; T; //P1.3-P1.6 출력 체크 아웃된 비트 값

T = dispbuf [j]; //표시할 수 체크 아웃

T = disptab [t]; //글리프 코드 가져오기

P3 = t; //글꼴 코드는 P3 출력에 의해 표시됩니다

J++;+; //j 는 디지털 튜브의 카운터로서 0-3 의 값을 가지며, 프로그램이 어떤 디지털 파이프를 표시하는지 확인하는 데 사용합니다

If(j==4)

J = 0;

N++;+;

If(n==48)// 48 회 인터럽트당 한 번씩 용량 측정

{

N = 0;

Th0 = 0;

Tl0 = 0;

P1 _ 2 = 1; //콘덴서 충전 시작

Tr0 = 1; //타이머 켜기 T0

For (; P3 _ 6 = = 0; )//충전 전압이 기준 전압에 도달했는지 확인 아니오

을 눌러 섹션을 인쇄할 수도 있습니다

Tr0 = 0; //충전 전압이 기준 전압에 도달하고 타이머 T0

P1 _ 2 = 0;

Cap = tl0 | (th0lt; Lt; 8); //타이머 T0 에서 숫자 가져오기

Cap = cap-3; //수정 오류 < /p

>

If (cap gt; =2000)

{

Dispbuf [3] = 10;

Dispbuf [2] = 10;

Dispbuf [1] = 10;

Dispbuf [0] = 1; //초과 범위, 최고 비트 디스플레이 1, 나머지는 표시하지 않음 (꺼짐)

}

If(caplt;; 2000) // 초과 범위 없음, 숫자 가져오기

{

Dispbuf [3] = cap10; //자리 수 가져오기

Cap = cap/10;

Dispbuf [2] = cap10; //10 자리 가져오기

Cap = cap/10;

Dispbuf [1] = cap10; //백 자리 가져오기

Dispbuf [0] = cap/10; //천단위 가져오기

}

}

}

1164636437.c

HEX 파일

: 0f016 a00bfd Fe ff7 Fe 70 EDF 973 dbdff 0f FFB 4057

: 10000300758911758 dec 758b 7875a 888d 28e 80 fef5

: 03001B0002001EC2

: 10001e00c0e0c0e0c0f0c083c082c0d075d000c000c0a8

: 10002 e0004 c005 c006 c007758 dec 758b 78e 50 e9083

: 10003e00016a93f 510439078e 51052907408250 ede

: 10004e00f8e6f 51090016e 93f 510f5b 0050ee 50e 7d

: 10005e 00b 40403750e 00050fe 50f 64306003020152

: 10006 e0000f 50ff 58cf 58ad 292d 28c 30b6 FDC 28c8b

: 10007e00c292a F8 cef ad8 af 50 cedf 50d 24 fdf 50d aa

: 10008e0074ff350cf50 cc3e50d94d0e50c940740c8

: 10009e000c750b0a750a0a75090a750801c3e50d78

: 1000ae0094d0e50c9407504 aa E0 caf 0d7 c007d0a3f

: 1000be001201158d0bae0 caf0d7 c007d0a120115d1

: 1000ce008e0c8f0d7 c007d0a1201158d0aae0 cafc1

: 1000 de000 D7 c007 d0a 1201158 e0c 8f0d7 c007 d0aa1 <

/p >

: 1000ee001201158d09ae0caf0d7 c007d0a120115a3

: 1000fe008 f 08 d 007 d 006 d 005 d 004 d 000d 0d 0d 08243

: 07010E00D083D0F0D0E032F5

: 03000000002017981

: 0c017900787fe4 F6 D8 fd758110020003 C9

: 10011500bc000bbe0029ef8 df084 ffadf022e4 ccce

: 10012500f 875 f008e f2f ffee 33 feec 33 fcee 9 dec 97

: 10013500984005 fcee 9 dfe 0f D5 f0e 9e 4c EFD 22 eddd

: 10014500f8 F5 f0ee 8420d 21 cfe ADF 075 f008e f2f 27

: 10015500 ffed 33fd 4007985006 D5 f0f 222c 398 FD 18

: 050165000FD5F0EA22B5

: 00000001FF

1164636633.hex

설치 후 디버깅 작업은 주로 RP1 조정을 통해 기준 전압을 조정하는 것입니다. 직접 기준 전압을 측정하는 대신 정확도가 높은 콘덴서의 측정을 조정하는 것이 좋습니다. 구체적인 방법은 15nf 콘덴서와 같이 용량이 비교적 정확한 콘덴서를 선택하고, S1 을 20nf 파일에 배치하고, RP1 을 조정하여 측정 디스플레이 값을 1500 으로 조정하는 것입니다. 선택한 콘덴서 용량은 해당 범위의 절반 이상이어야 하며, 전체 범위에 가까운 것이 가장 좋습니다. 그래야 조정이 더 정확해집니다. 이 파일을 디버깅한 후 다른 각 파일들도 그에 따라 조정되고, 어떤 파일의 정밀도에 문제가 있으면 해당 충전 저항 저항을 변경하여 조정할 수 있다.

사용 중에 S1 이 2nf 파일에 배치되면 테스트 콘덴서가 들어가지 않을 때 10pf 정도의 디스플레이 값이 정상입니다. 이는 전압 비교기의 입력 커패시턴스와 회로의 분포 커패시턴스이기 때문입니다. 판독을 측정할 때 이 값을 빼면 됩니다. 따라서 디버깅할 때도 이 파일을 선택하지 마십시오. 분산 콘덴서가 디버깅의 정확성에 영향을 주지 않도록 합니다.

문장 어때요? 당신의 고론을 발표하고 당신과 소통하고 싶습니다. 나는 완전 자동 범위의 콘덴서 시계를 만들고 있는데, 하드웨어와 사고방식이 이미 있으니, 소프트웨어 디버깅을 기다리고 있으니, 그때 의견을 많이 내세요!