T2EX에 At89c52, 0 대 1 전환

H

Help

Guest
안녕하세요, At89c52 EXEN2는 T2EX에서 0 대 1 전환이 설정됩니다. 그것은 posible인가? 그렇지 않다면 어떻게해야합니까? 난 10 = 0 및 01 = 하나에 대해 "10"과 "01"입니다 들어오는 신호를 가지고. 내 코드는 두 신호에 이것을 어떻게 확인할 수 있습니까? C 프로그램에서 날 이끌어 주시기 바랍니다. 감사합니다.
 
T2EX 핀은 1 대 0 전환을 감지하는 데 사용할 수 있습니다 .. 당신은 0 대 1을 감지해야하는 경우 전환 인버터를 통해 incomming 신호를 넣어 .. EXEN2 1을 설정하고 TIMER2 인터럽트를 활성화 .. T2EX 핀 각 1 대 0 전환 TIMER2 인터럽트를 활성화합니다 .. 하지만 .. 당신이 할 수있다면, INT0이 incomming 신호를 연결하고 INT1 (IT0 및 IT1 세트 - 에지 트리거 인터럽트)로 바뀌 .. 변환 1 - 0으로하면, 전환 interrupt0을 활성화합니다 0 대 1 활성화합니다 interrupt1 (1 대 0으로 바뀌) ... 감사합니다 IanP
 
안녕하세요, 어떤의 그것에게 의례를 해결하기 위해 우리가 방법이있다는 뜻인가요? M1) 한 인터럽트 [견적]는 0 대 1 전환 인버터를 통해 incomming 신호를 넣어를 감지해야하는 경우 ... EXEN2 1을 설정하고 TIMER2 인터럽트를 활성화 .. T2EX 핀 각 1 대 0 전환 TIMER2 인터럽트 .. [/ 인용]를 활성화합니다하지만 난 그렇게 얘기 여기서 이해되지 않습니다. 난 오직 모든 시간을 0 대 1 신호를 수신할 수 있도록 수신 신호를 반전하는 인버터를 넣으면. 하지만 어떻게 1 대 0 어때? M2) 2 - 인터럽트 [견적]를 할 수있다면, INT0이 incomming 신호를 연결하고 INT1 (IT0 및 IT1 설정 거꾸로 - 에지 트리거 인터럽트를) ... 변환 1 - 0으로하면 전환을 interrupt0을 활성화합니다 0 대 1 (에 거꾸로 1 대 0) interrupt1을 활성화합니다 .. [/ 견적] 우리가이 방법을 사용하는 경우 우리는이 외부 인터럽트는 T0와 T1을 인터럽트 사용해야 (/ INT0 및 / INT1). 그래서 의식을 함께 핀 이것을 연결할 수 있나요? 감사합니다.
 
M1은 두 개의 서로 다른 전이를 감지하는 데 사용할 수 없습니다 .. M2 : 아래의 그림을 볼 수 .. Int0에 신호가 입력 신호와 동일한 단계에, 당신은 Int1에 신호를 반전하기 위해 하나의 인버터를 사용할 수 있습니다 .. 는 기지 저항 (S), 빌드를 가진 트랜지스터 ... - 당신은 인버터 게이트를 사용하지 않으려면 하나 디지털 트랜지스터를 사용할 수 있습니다 http://www.rohm.com/products/databook/tr/pdf/umd9n.pdf 감사합니다 IanP
 
[견적] EXEN2가 설정되어, T2EX에 0 대 1 전환 IT0 또는 IT1이 설정된 인터럽트 생성, INT0 또는 INT1에 1 대 0 tramsition 방해 [/ 인용]를 생성합니다 당신이 [B에게 소스 신호 연결 ] T2EX & IT0 [/B] 또는 T2EX & IT1 외부 인버터없이 당신에게 문제를 해결할 것입니다!
 
내가 틀렸다는 걸 증명하지만, 세 핀이 (/ INT0, / INT1 및 T2EX) 만 1 - 0에 변화를 감지할 수, 인버터가 필요합니다 그래서 .. 감사합니다 IanP
 
안녕하세요, [견적 = budhy] [견적] EXEN2가 설정되어, T2EX에 0 대 1 전환 IT0 또는 IT1이 설정된 인터럽트 생성, INT0 또는 INT1에 1 대 0 tramsition이 생성됩니다 인터럽트 [/ 인용] 당신이 T2EX & IT0 또는 T2EX & IT1 외부 인버터없이 당신에게 문제를 해결할 것이다! [/ 견적] 나는 전에 externer 인터럽트를 재생하지 마십시오. 소스 신호 연결 내부 다이어그램을 우리에게 보여주 그게 우리가 IT0을 설정해야 초기이다 = 0 (또는 IT1 = 0) 다음 내부 인버터로 전환됩니다. 조건 : 0 대 1 전환 EX0 = 인터럽트가 ET2 = 어떤 인터럽트 상태로 설정되지 않습니다 : 1 - 투 - 영 전환 EX0을 = 더 인터럽트 ET2 = 인터럽트가 당신을 감사 설정하지 않습니다.
 
[견적] 조건 : 0 - 투 - 1 = 인터럽트가 ET2를 설정합니다 이행 EX0 = 없음 인터럽트 [/ 견적]이 작동하지 않습니다 ... 모든 핀이는 1 대 0 전환을 검색할 수 있습니다 .. 당신이 핀 중 하나에 인버터가 필요 ... 감사합니다 IanP
 
IanP 안녕하세요, 당신 말이 있습니다. 우리가 IT0 = 0 (내부 인버터 사용) 설정에도 불구하고 우리는 들어오는 신호가 항상 낮은 경우에는 달리 인터럽트가 지속적으로 발생하는 것입니다, 1 - 투 - 영 전환해야합니다. 내 문제는 지금과 같은 것입니다. 내가 들어오는 데이터를 갖고 있다고하자 것은 8 비트 바이트로 다시 해독 16 비트는 ... "10"은 제로에 다시 설정되어지고 "01"은 한에 다시 살이옵니다. 어떻게 들어오는 신호를 변경 감지 intterupt 사용이 될까요? 당신은 아이디어가 있습니까? 감사합니다.
 
월이 최종 해결책한다 : [코드] 국가 비트 0; ORG 0x0000 AJMP 시작,, *** INT0 인터럽트 서비스 루틴, ORG 0x0003 SETB 주, 그것은 '1 'SETB EXF2이며 전환 물러나 발생,, *** INT1 인터럽트 서비스 루틴, ORG 0x0013 CLR 상태, 그것이 '0 'SETB EXF2이며 전환 물러나 발생,, *** 추이는 (타이머 2 인터럽트 서비스 루틴)을 감지, ORG 0x0023, CLR EXF2 물러나 여기 일을,, ** * 주요 프로그램, 시작 : 여기 SETB EX0 SETB EX1 SETB ET2 SETB EA : SJMP 여기 [/ 코드]
77_1169007895.gif
 
[따옴표]가 표시된 맨체스터 인코딩, 논리 1은 1-0 비트의 중앙에 전환과 로직 0 센터 [/ B에서 0-1 전이로 표시됩니다로 표시됩니다 ] 비트. 에서 센터 각각의 변화가 항상있다는 것을 신호 전환 항상 '비트 경계'(한 비트와 다른 사이의 분할)에서 발생하지 않습니다,하지만 비트. [/ 견적]는 incomming 문자열로 마이크로 타이머 중 하나를 동기화하고 각 비트의 경계 사이의 전환을 읽을 수있다 맨체스터 코딩된 문자열을 디코딩하기 위해서 .. 첨부된 그림에서 당​​신은 짧은 수평선 (이것은 원래 비트의 중심이다)로 표시된 가장자리 감지 해 -가 아닌 다른 것들을 ... 이 예제에서는 codded 메시지는 다음과 같습니다 110100 감사합니다 IanP
 
안녕하세요, [견적]는 incomming 문자열 [/ 인용]와 마이크로 타이머 중 하나를 동기화할 필요가 맨체스터 코딩된 문자열이 그 일을가는 방법을 디코딩하기 위해서? 전환 데이터를 수신하려면 어떻게해야하나요? 나에게 somemore을 안내 바랍니다 ... 내 마이크로 컨트롤러에 codded 메시지 110,100받을 수 있나요? 난 이미 디코더에 대한 코드를 준비하지만 유용하지 모르겠어요. : 울 : [코드] (nbit는 = 0; nbit
 
안녕하세요, 모두를위한 감사합니다. 지금은 이미 해독 맨체스터 및 디코딩 코딩을 sloved. 감사합니다.
 

Welcome to EDABoard.com

Sponsor

Back
Top