컴퓨터 지식 네트워크 - 컴퓨터 지식 - 51개의 단일 칩 마이크로컴퓨터 듀얼 컴퓨터 직렬 포트 통신. 하나의 단일 칩 마이크로컴퓨터가 12864 디스플레이 프로그램 템플릿을 제어합니다.

51개의 단일 칩 마이크로컴퓨터 듀얼 컴퓨터 직렬 포트 통신. 하나의 단일 칩 마이크로컴퓨터가 12864 디스플레이 프로그램 템플릿을 제어합니다.

저는 단일 칩 다중 컴퓨터 통신에 RS-485를 적용하는 것에 대해서만 알고 있습니다. 하지만 프로그램을 읽으면 12864를 제어할 수 있습니다. 우리 반 친구들은 성공적으로 해냈습니다.

1. 단일 칩 다중 컴퓨터 통신에 RS-485 적용

호스트 프로그램

#include "reg52.h"

#define uint unsigned int

#define uchar unsigned char

sbit p10=P1^0;

sbit p11=P1^1;

void main(void)

{ ?

? uchar i=0

? TMOD=0X20;//타이머 1 작동 모드 설정 2

? TH1=0XFF;

?//여기서 수정 발진기는 57600으로 설정되어 있다고 가정합니다. >

? SCON=0X40; ?//설정 방법 1 ?송신은 가능하지만 수신은 불가능합니다.

? PCON=0X80;

// TR1=1; ?

? while(1)

? { ?

if(p10==0)

{ ?

SBUF= 0x11; ?//LED 마이크로 컨트롤러의 바늘

while(TI==0);

?TI=0;

while (p10==0 );

?}

if(p11==0)

{

SBUF=0x12; //서브 플래시 마이크로 컨트롤러 바늘

while(TI==0);

?TI=0;

?while(p11==0);

} ?

? }?

}

슬레이브 2

#include"reg51.h"

#define uint unsigned int

#define uchar unsigned char

bit flag=0;

sbit p20=P2^0;

void main(void)

{ uchar i=0;

? TMOD=0X20;

TH1=0XFF;

? TL1=0XFF; ?//여기서 수정 발진기 주파수는 11입니다.

0592의 전송 속도는 57600으로 설정되어 있습니까?

? SCON=0X50;?//설정 방법 1?송신만 가능하고 수신은 불가능합니다

? >

? TR1=1; // T1 시작

? while(1)

?while(RI==0) ;// 데이터 수신 시기를 결정하기 위해 쿼리 방법을 사용합니다.

RI=0;

? i=SBUF;

if(i==0x12 )

p20=~p20; ?

?i=0x00

}

}

슬레이브 1

RS BIT P1.7

RW BIT P1.6

E ?BIT P1.5

KOU EQU P2

ORG 0030H

LOP: ? MOV SP,#5fH

MOV TMOD,#20H

MOV 40H,#00H

MOV TH1,#0FFH

MOV TL1,#0FFH

MOV SCON,#50H

MOV PCON,#80H

SETB ? TR1?

ACALL ?LCD_MODEL ;초기화된 모듈

MOV KOU,#81H

ACALL ?READY

MOV DPTR, #TAB

ACALL ?WRITE ;표시된 모듈

MOV P2,#0C1H

ACALL ?READY

MOV DPTR,#TAB1

p>

ACALL ?WRITE

xt: jnb RI,$

CLR RI

x: ?MOV A,SBUF

CJNE ? A,#11H,rel ?

INC 40H?

MOV A,40H

CJNE ? /p>

MOV 40H,#0

XTG: ? MOV P2,#0C9H

ACALL ?준비

MOV DPTR,#TAB2

ACALL ?WRITEx

AJMP ? xt rel: ?ajmp ? xt? A,40H

MOVC ? >

MOV KOU,A

ACALL ?WRITE1

RET

쓰기: MOV A,#00H

MOVC A ,@A +DPTR

CJNE ? A,#0FFH,s

AJMP ? EXIT S: MOV KOU,A

ACALL ?WRITE1

INC DPTR

AJMP ? 쓰기 종료: RET

WRITE1:SETB ? RS

CLR RW

CLR E

ACALL ?DELAY

SETB ? E

RET

LCD_MODEL: MOV KOU,#01H

ACALL ?준비

MOV KOU,#03H

ACALL ?준비

MOV KOU,#00000110B

ACALL ?준비

MOV KOU ,#00001100B

ACALL ?준비

MOV KOU,#38H

ACALL ?준비

RET

준비: CLR ? RS

CLR ? RW

CLR ? E

ACALL DELAY

SETB ?E

RET

DELAY: MOV ? KOU,#0FFH

CLR ? RS

SETB ?RW

CLR E

NOP ?

SETB ?E

JB KOU.7,DELAY

RET?

TAB: ? DB " Proteus ? 7.1" ,0FFH ? ;글꼴 라이브러리 표시

TAB1: ?DB "개수:" ,0FFH

TAB2: ?DB ?

END ?

시뮬레이션 다이어그램

2 두 마이크로 컨트롤러 간의 직렬 통신

마이크로 컨트롤러 1의 통신 프로그램

/*** *** *********************************************** **** ******************

? 두 MCU 간의 통신

에서 누른 키는 무엇입니까? U1, U2가 누른 키 해당 키가 LED로 표시되나요?

**************************** ******** *********************************/

# include"reg51.h"

#define uint unsigned int

#define uchar unsigned char

void main(void)

{ uchar i=0;

? TMOD=0X20;

? TH1=0XFF;

?//이것은 수정 발진기 11.0592입니까? 전송 속도 설정은 57600입니다. ?

? SCON=0X40; ?//설정 방법 1 ?보내기만 할 수 있고 수락할 수는 없습니다.

? p> ? TR1=1; // T1 시작

? P1=0XFF 동안(1)

? > ?

?while(P1==0XFF); ?//키보드 누르기가 있는지 확인

? //키 값을 읽습니까? >

?SBUF=i ;

while(TI==0);

TI=0 ?

while(P1!=0xff) ; ?

? }

}

마이크로컨트롤러 2의 통신 프로그램

/************ ************* ************************************* ************** ****************

마이크로 컨트롤러 2 통신 프로그램 두 MCU 간의 통신?

?구현 기능은? U1, U2의 누른 키는 LED로 해당 키를 표시합니다.

************************ ************* ************************************* ************** ****/

#include "reg51.h"

#define uint unsigned int

#define uchar unsigned char

void main(void)

{

uchar i=0;

? ;

? TH1=0XFF;

?//여기에서는 수정 발진기가 11.0592로 설정되어 있다고 가정합니다.

? SCON=0X50; ?//설정 방법 1 ?송신만 허용됩니다.

? PCON=0X80;

? TR1=1; p>

while(1)

? { while(RI==0);//데이터 수신 시기를 결정하기 위해 쿼리 메소드 사용

i=SBUF;

P1=i;

RI=0 ?

?}

}

上篇: 안녕 4월, 안녕 3월 감동 명언 下篇: HDMI 케이블 버전 1.4와 HDMI 케이블 버전 2.0의 차이점은 무엇인가요?
관련 내용