AT89C4051로 AD0804 인터페이스에서

V

vinash

Guest
안녕,
내가 AT89C4051 마이크로 컨트롤러에 인터페이스 AD0804, 거기에 어떤 schmetics 또는 어떠한 어디 좀 참조를 가져오기 위해 "고마워요 수있을 것이라고 웹사이트에 노력하고 있어요.

 
안녕하세요 Vinash,

난 당신 AT89C4051 일부 ADC의 투쟁을 예고했습니다.
먼저 기본 비교기 및 RC 외부와.
ftopic144871.html
그렇다면 4051 몇 가지를 연결하는 라인을 4051 년 이후 기본값 SPI 인터페이스를 가지고 SPI를 사용하여 비트 뱅 인해 적합한 MCP3208와 함께 했어요.
ftopic144860.html
이제 ADC0804와 (메모리 매핑된 주변 장치 시도보다 훨씬 SPI 인터페이스 라인을 연결하기) 더.

정품 데이터 시트에서는 작은 asssembler 프로그램은 8048 년에 쓴 어셈블러.당신이 C 프로그램을위한 가이드로 사용할 수있습니다.

또는 당신이 디자인을 시도할 수있습니다 : http://www.iguanalabs.com/adc2051.htm
당신이 어떤 소프트웨어를 찾을 수없습니다 해당 페이지에 (당신이 CD를 지불하셔야합니다) 알고 만나지만, 제 견해로는 충분 힌트를 직접 빌드합니다.

 
안녕,
내가 AT89C4051 ad0804, 그리고 인터페이스있어 다음과 같이 내 소스 코드 중 하나입니다 :

/ AT89C4051과 / 인터페이스 ADC0804,
/ / 핀 defination은 다음과 같습니다 :# <AT89x051.h> 포함= P3 ^ 0; 쓰길 sbit / / 핀 WR 및 INTR 정의
sbit INTR = P3 ^ 1;

서명 int [10] = (0x40, 0x60, 0x44, 0x64, 0x50, 0x68, 0x4C, 0x6c, 0x50, 0x70);
scanled ();
무효 지연 (무효);
서명 int advalue, 값;
메인 (무효) 무효 (
P1과 = 0xFF;
P3 = 0xFF;

(1) (

= 0 적고;
= 1 쓰기;
반면 (INTR == 1);
advalue = P1과;
값 = advalue * 5 / 256;
scanled ();

)
)

scanled ()
(
P3 = [값 % 10];

)내가 수치가 좀지만, 진짜 할 때가 아니야, 난 whenver 전압 inout 변경, 내가 메인 전원을 끄고이 주도 전압 입력을 반영, 그것은 매우 도움이 될 것이라고 당신이 없었다면, 날 도와 전에 전환해야 방법에 그것을 할 실시간 즉, 내가 필요로하는 전원 끄기 스위치가 아니라, whenver 나는 그것을 자동으로 LED가에 반영 전압 입력을 변경합니다.당신이 날 도울 수있을 것이라고 바랍니다.감사합니다.

 
만약 당신이 P3를 사용했습니다 ^ 0 P3 ^ 1 제어 라인을 왜 안으로 ()는 P3 LED를 구동하는데 사용 했어요 scanled로?

인용구 :scanled ()

(

P3 = [값 % 10];

)

 
안녕,
왜냐면 난 AT89C4051를 사용하고 그것 때문에 충분한 핀 난 밖에 나가있어 20 핀있다 난 LED는 드라이브 P3 사용하고있습니다.

인용구 :

나는 당신이 왜 5 않았을 곱한 후 256으로 나눈 결과는 ADC를 하실지는 모르겠어요?

이후 P1과 값이 255보다 큰 수가 없어요, 무슨 "가치"변수의 값에 대한 사전 scanled 년 / 256 "()"이후 advalue * 5 사용될 생각합니까?

그 후 "advalue * 5 / 256 필요합니다"공연 캐스팅은?
 
내가 말했 잖아 SPI 인터페이스 (MCP3208 ADC)를 좀 더 디자인에 적합이야.

위해서는 반드시 다른 회원에 의해 자세한 내용은 귀하의 디자인에 대해 제공하는 데 도움이됩니다.
어떻게 그런 사람을 어떻게 연결했는지 알아낼 기대 할 포트 P3에 LED가?
(현재 리미터 저항기를 통해) 분명 당신은 7 LED를 직접 P3에 묶여 사용하고 계십니까?
아니면 BCD 7 세그먼트 변환기를 사용하지 않았어요 (가)에만 4 개 라인보다는 7이 필요합니다?
서명되지 않은 int [10 보라] = (0x40, 0x60, 0x44, 0x64, 0x50, 0x68, 0x4C, 0x6c, 0x50, 0x70);
첫 번째 이유는 int 서명 및 서명하지 숯불?이후 상수로서, RAM에 저장됩니다, 따라서 "을위한 공간의 낭비 신고하지 않습니다 정수".
만약 배열의 요소를 P3에 다음 선언에 따라 발송됩니다
P3 ^ 7 = 0
P3 ^ 6 = 1
P3 ^ 1 = 0
P3 ^ 0 = 0
관계 요소를 0, 1, 2, 상수입니다 ... 9, 그래서 당신은 4 개 라인을 낭비합니다.
그럼에도 불구하고 당신이 P3을 제어할 수 없어 ^ 6 하드웨어 콤퍼레이터 출력 내부 묶여있습니다.

하드웨어로 다시 가기.당신은 P3를 사용할 수없습니다 P3 ^ 0 ^ 1 제어 라인 (/ WR 및 / INTR)와 LED가 표시됩니다.
곰 염두에두고 한 번 전환, 다른 / WR 라인 (쓰길 = 0 맥박을 제기하기 시작했다; = 1 쓰기;) 다른 전환을 시작할 것입니다, 이전의 경우에도 전환이 완료되지됐다.
만약 당신이 P3에 묶여 ^ 0 / WR 및 LED 디스플레이뿐만 아니라 따라서, 당신은 LED가 신호 / WR 신호 overide되지 않도록해야합니다.

최상의 솔루션을 모두 읽고 ADC는 (입력) 및 LED (출력 작성) (배선들을 병렬 "버스에 P1을 사용하려면")입니다.
(난 그게 그렇게, 그렇지 않으면 데이터 변환을 읽을 수없습니다의) 내기를하지만, 실제로 하드웨어를 GND로 연결되어있다 / R
& D가 신호를 사용해야합니다.
/ CS를 유지 될 수있다 (현재)처럼 또는 P3뿐만 묶여 GND로 연결된 뻔한.
/ R
& D가 높은 신호가 표시되어야 절차 낮은에만가는 것입니다 ADC의 변환 결과를 읽는 동안 짧은 시간 / INTR을하는 동안 낮은갑니다.
왜냐하면 읽어주기에도 표시를 볼 수없습니다 즉시 짧은 동일한 포트를 표시 전달됩니다) (같은 사실은 동일한 데이터에서 읽을 수 ADC를 깜빡했다.
따라서 당신 P3 울부짖는 소리를 설정할 수있습니다 :
P3 ^ 0 = / CS를
P3 ^ 1 = / WR
P3 ^ 2 = / INTR 당신이 사용할 수있는 / 8051의 기능을 EOC INT0에 대한 여론 조사가 아닌 (반면 (INTR == 1)

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="윙크" border="0" />P3 ^ 4 = / R
& D가

재미있은 충분히 당신과 ADC0804 continuos 모드 (/ WR 실행 설정 / INTR 함께 공동 및 / CS를 = 0, /의 R
& D = 0) 심지어 마이크로 필요하지 않습니다.
당신은 3 가지가 필요 :
1.2 다이오드, 하나의 저항과 스위치는 / WR 핀에 대한 변환을 시작합니다
2.버퍼 LED는 드라이브
3.Finnaly 똑똑한 두뇌를 표시 전환을 (해당되는 경우에 대한 0xFF 의미 5 V의 전체 규모로 누른 0x80으로 2,5 승 의미)
당신의 LED에 대한 데이터를 볼 수 뇌가 필요하다고 인정합니다..

그냥 농담.
 
"스콧 맥켄지에 의해"8051 uc 및 임베디드 시스템의 "mazidi에 의해 uc 도서"8051 확인

 
afti_khan 썼습니다 :

"스콧 맥켄지에 의해"8051 uc 및 임베디드 시스템의 "mazidi에 의해 uc 도서"8051 확인
 
안녕 실비오,
도와 줘서 고마워, 난 진짜 시간을 만들어 관리해야 ADC가.난 LED는 부분에 몇 가지 오류를 제출했다.어쨌든 다시 yor 도움을 주셔서 감사합니다.아까 언급했다인용구 :

최상의 솔루션을 모두 읽고 ADC는 (입력) 및 LED (출력 작성) (배선들을 병렬 "버스에 P1을 사용하려면")입니다.

 
안녕하세요 Vinash,

곰 염두에두고 그 시간 변환 결과를 읽는 데 필요한 매우 짧습니다.
그럼에도 불구하고, 당신은 읽기와 같은 P1과 데이터를 즉시 표시됩니다.따라서 당신의 LED에 어떤 효과를 볼 수 실거예요.
내 실수는 내가 위에서 어떤 얘기니까, ADC0804를 읽을 때, P1과 변환기의 LED 전류 및 적절한 VIL 최대 육류 가라앉을 수 없을 것입니다.
당신은 이미 두 장치가 같은 버스를 공유 연결을 잘 알고있어.
한 때 (CS)을 다른 분쟁을 피하기 위해 사용할 수 있어야 사용할 수있습니다.
LED는 이후로 같은 일반적인 장치로서, 당신이해야 ADC0804의 짧은 읽어주기 동안 그들을 해제하는 방법을 제공하는 동작 않습니다.
공통 후 작고 양극 트랜지스터 PNP에 필요한 현재의 LED는 드라이브 것입니다 수있는 소스와 LED를 가지고 가정.
트랜지스터 P3에 의해 저항을 통해 편파 것입니다 ^ 7 낮은 디스플레이와 높은 ADC를 읽는 동안 짧은주기 동안 구동됩니다.
트랜지스터의 colector 뻔한 일반적인 LED의 양극에 묶여입니다 emitor 5 대를 향해가는

희망은 내가 의심을 명확히하는 데 성공했습니다.

 
실비오 고마워요, 그럼 다른 질문 있어요, 난 당신이 날 도울 수있을 것이라고, 대신 ADC는 입력을 읽기 위해 병렬 전송을 사용 희망 (), 전 직렬 전송을 사용할 수있습니다 P1과 전체 사용하고 계십니까?나보다 핀에 저장할 수있습니다? 친절하게 조언을 할주십시오.감사합니다.

 
안녕하세요 Vinash,

귀하의 첫 번째 시도 ftopic144860.html 위해 SPI 인터페이스와 함께 사용하여 MPC3208에 따르면.
AT89C4051 이후로 당신은 "직렬 포트를 에뮬레이션 / O 라인을 일반적으로 사용하는"방법을 목적으로 내가 빅뱅 비트를 사용해야합니다 하드웨어 SPI 인터페이스를 가지고 마찬가지로 내가 전에 말했 잖아.
당신은 4 전선 : CS를, CK 등록, DOut, 딘이 필요
이 읽기 : 내 마이크로 컨트롤러 아니 SPI 인터페이스를 가지고, 그래서 난 비트를 사용할 수있습니다 닌가?그럼 모두 당신이 필요 주로 15 페이지를 읽어야합니다 - 16
MPC3208 마이크로 칩의 데이터 시트

그러나 만약 당신이 RX 및 AD7823 사용할 수있습니다 AT89C4051와 8051 모드에서 0에서 작동하도록 설정의 텍사스 라인을 사용하려고합니다.
페이지 10 아날로그 AD7823의

 

Welcome to EDABoard.com

Sponsor

Back
Top