직렬 프로그래밍

M

man_icu2

Guest
i는 직렬 인터페이스를 통해 데이터를 수신하고 있어요,하지만
나는 그것을하는 방법을 사용하여 시뮬레이션 uVision2 Keil 몰라.난 그냥 세트 / 주어진 전송 속도에 대한 분명한 P3.0하거나 다른 방법은 무엇입니까?

ORG를 0000H
ACALL 메인ORG를 23H
ACALL 타이머메인 :
MOV TMOD, # 20h
MOV TH1, # -3
MOV SCON, # 50H
SETB TR1
CLR은 RI의

CLR을 TF1
JNB TF1, $
ACALL받지받지 :
JNB RI의, $하며 8051에 대한 RI의 플래그를 설정 기다려

MOV 한, SBUF;의 시리얼 포트에서 문자 읽기

CLR은 RI의

SJMP받지

타이머 :
ACALL받지

 
언제, 유 프로젝트를 생성해야하며이 프로젝트를 사용하여 파일을 추가 Keil.
유 디버깅을 할 때, 그리고 당신의 왼쪽 창에서 컴파일 및 감시 창에 자신만의 변수 레지스터의 값을 볼 수있습니다.

 
당신에게 얼마나 Regardles 코드는 코드 자체의이 조각을 시뮬레이션할 가는거야 "혼란"과 실수가 가득 / 오류입니다.

우선 당신이
비트 인터럽트를 활성화하지 않은 : 글로벌
IE.7 및 직렬의 IE.4
RET와 은퇴 지침 어디입니까?
넌 -에서 -
루프 때문에 프로세서가 그것을 자신의 꼬리를 쫓아됩니다 루프를 만들었습니다 ...

내가 당신에게이 befor 돌아가서 첫 / 흐름도를 작성하고 당신이 정확히 알아낼 것을 이루려 시뮬레이션을 해보시길 권합니다 것이 ...

 

내 코드가 무슨 짓을하고 난 내 코드가 여기서 뭐하는 지 알아,하지만
나는 그것이 데이터를받을 수 있는지 확인하는 시험을 잘하지 않습니다.난 괜찮
(TI의 비트가 설정된 제),하지만 내가 타이밍을 수동으로 P3.0 테스트를받을 수없는 권리를 전송할 수있습니다.또한 코드와 Keil과 디버깅을 쓰고, 난 그냥 그걸로 시리얼 통신과 아무 짓도하지 않은 익숙한 사람 이니까

 
그러니까 아마 이런 작은 작업에 대한 코드를 작동시킬 수 있지만, 당신의 구조를 잘못 알아!IanP 말했다.그것은 당신이 거의 당신의 프로그램을 개발하게되면 더 큰 문제가 커지는.
예를 들어,
타이머 받게을 부를 필요는 없소
: 방해 때문에 아직 활성화하지 않았습니다.

Keil와 시뮬레이션에 대하여, 당신은
내가 이전에 siad 단계를 시도해 볼 수있습니다.

 
Keil으로하거나 붙여넣으 값에 대한 아스키 문자열을 입력하기만하면 그 연쇄 창> 128했다.당신이 사용하는가?마치 당신이 도움이 될 것입니다 디버그 들린다.

당신은 중단점, 입력 문자에있는 시리얼 창에 다음, 나머지 수있는 라인으로 라인을 가져올 추적.이것이 유일한 방법은 시리얼 인터럽트 때 버퍼링을 사용하여 문제를 추적할 수있다.

 

Welcome to EDABoard.com

Sponsor

Back
Top