컨트롤러"문제는

G

Guest

Guest
누군가 내 코드에서 LCD는 프로그램에 대한 문제를 찾을 수 있습니까?

코드 :다음 웹 사이트에서 도움을 / /로 :

/ / http://www.8052.com/tutlcd.phtml

/ / 정의DEF DB4 0

DEF DB5 1

DEF DB6 2

DEF DB7 3

DEF 엉 4

DEF RS 5

DEF RW를 6/ /로드 0 축압기에를 LOAD 0

$ 대문

외침 $ INIT_LCD

외침 $ CLEAR_LCD

RAMWRT 3 DAT '최고'

외침 $ WRITE_TEXT

RAMWRT 3 DAT '이메일'

외침 $ WRITE_TEXT

RAMWRT 3 DAT '패'

외침 $ WRITE_TEXT

RAMWRT 3 DAT '패'

외침 $ WRITE_TEXT

RAMWRT 3 DAT 'O'대신

외침 $ WRITE_TEXT

RAMWRT 3 DAT '

외침 $ WRITE_TEXT

RAMWRT 3 DAT '승'

외침 $ WRITE_TEXT

RAMWRT 3 DAT 'O'대신

외침 $ WRITE_TEXT

RAMWRT 3 DAT '연구'

외침 $ WRITE_TEXT

RAMWRT 3 DAT '패'

외침 $ WRITE_TEXT

RAMWRT 3 DAT '패'

외침 $ WRITE_TEXT$ READ_2_NIBBLES

BITSET 엉

IOWRT ACC

IOREAD

RAMWRT 4

BITCLR 엉

IOWRT ACC

BITSET 엉

IOWRT ACC

IOREAD

BITCLR 7

BITCLR 6

BITCLR 5

BITCLR 4

RAMWRT 5

BITCLR 엉

IOWRT ACC

RAMREAD 4

SHLE

SHLE

SHLE

SHLE

RAMWRT 4

RAMREAD 4

ADD가 RAM의 5

RAMWRT 2

귀환$ WRITE_2_NIBBLES

RAMREAD 3

BITSET 엉

IOWRT ACC

BITCLR 엉

IOWRT ACC

RAMREAD 3

Rol

Rol

Rol

Rol

BITSET 엉

IOWRT ACCBITCLR 엉

IOWRT ACC

귀환$ WAIT_LCD

BITCLR RS

IOWRT ACC

BITSET RW를

외침 $ READ_2_NIBBLES

RAMREAD 2

BITTST 7

점프 IFNOT ZZERO $ WAIT_LCD

BITCLR RW를

IOWRT ACC

귀환$ INIT_LCD

BITCLR RS

IOWRT ACC

BITCLR RW를

IOWRT ACC

BITCLR 엉

IOWRT ACC

BITSET 엉

IOWRT ACC

0x20 또는

IOWRT ACC

/ / MOV 데이터, # 28h

BITCLR 엉

IOWRT ACC

외침 $ WAIT_LCD

RAMWRT 3 DAT 0x20

/ / MOV, # 28h

/ / 여기에 쓰는 메모리가 필요합니다!

외침 $ WRITE_2_NIBBLES

외침 $ WAIT_LCD

/ / MOV, # 0Eh

RAMWRT 3 DAT 0x0E

외침 $ WRITE_2_NIBBLES

외침 $ WAIT_LCD

/ / MOV, # 06h

RAMWRT 3 DAT 0x06

외침 $ WRITE_2_NIBBLES

외침 $ WAIT_LCD

귀환$ CLEAR_LCD

BITCLR RS

IOWRT ACC

/ / MOV, # 01h

외침 $ WRITE_2_NIBBLES

외침 $ WAIT_LCD

귀환$ WRITE_TEXT

BITSET RS

IOWRT ACC

외침 $ WRITE_2_NIBBLES

외침 $ WAIT_LCD

귀환

 
명령에서 데이터 또는 Command LCD를 보낼
주먹을 쥐고 당신 = 1 엉, 그 때 당신 = 0 엉 CLR을해야합니다 귀하의 요청을 완료 비트를 설정해야합니다.

 
여기 Keil C를 쓰는 LCD를 제어하는 예제 코드입니다

코드 :

# ""REG52.H 포함

/ / 몇 가지 변형을 정의할 필요

sbit RS = P1과 ^ 0;

sbit RW를 = P1과 ^ 1;

sbit 엉 = P1과 ^ 2;

sbit 바빠요 = P3 ^ 7;

/ / 문자 dislay

CHU_A 0x41 정의 #

CHU_B 0x42 정의 #

CHU_C 0x43 정의 #

CHU_D 0x44 정의 #

CHU_E 0x45 정의 #

CHU_F 0x46 정의 #

CHU_G 0x47 정의 #

CHU_H 0x48 정의 #

CHU_I 0x49 정의 #

CHU_J 0x4A 정의 #

CHU_K 0x4b 정의 #

CHU_L 0x4C 정의 #

CHU_M 0x4D 정의 #

CHU_N 0x4E 정의 #

CHU_O 0x4F 정의 #

CHU_P 0x50 정의 #

CHU_Q 0x51 정의 #

CHU_R 0x52 정의 #

CHU_S 0x53 정의 #

CHU_T 0x54 정의 #

CHU_U 0x55 정의 #

CHU_V 0x56 정의 #

CHU_W 0x57 정의 #

CHU_X 0x58 정의 #

CHU_Y 0x59 정의 #

CHU_Z 0x5A 정의 #

KT는 0x20 정의 #

/ /

데이터 P3 정의 #

/ / 내 fundtion 선언

무효 WAIT_LCD (무효);

무효 INT_LCD (무효);

무효 WR_LCD (서명 숯불 TXT는);

무효 CLR_LCD (무효);

무효 HOME_LCD (무효);

/ / 메인 프로그램무효의 main (무효)

(

INT_LCD ();

CLR_LCD ();

HOME_LCD ();

WR_LCD (CHU_B);

WR_LCD (CHU_A);

WR_LCD (CHU_O);

(1) 동안;

)//================================================ ==

무효 WAIT_LCD (무효)

(

데이터 = 0xFF;

= 1 엉;

RW를 = 1;

RS = 0; / / 명령을

반면 () 바빠요

;

= 0 엉;

RW를 = 0;

)

//================================================ ==

무효 INT_LCD (무효)

(

/ / 함수 8 열 2 행 집합 형식 5X7 도트

= 1 엉;

RS = 0;

데이터 = 0x38;

= 0 엉;

WAIT_LCD ();

/ / Dislay의 ON / OFF CURSOR 시프트

/ / dislay를 ON, 커서 밑줄에 커서가 깜빡 벗어

= 1 엉;

RS = 0;

데이터 = 0x0E;

= 0 엉;

WAIT_LCD ();

/ / 설정 모드 Charracter

/ / 증가 (dich 직접 가서), Dislay 퇴근

= 1 엉;

RS = 0;

데이터 = 0x06;

= 0 엉;

WAIT_LCD ();

)

//================================================ =======무효 WR_LCD (서명 숯불 TXT는)

(

RS = 1;

= 1 엉;

데이터 = TXT는;

= 0 엉;

WAIT_LCD ();

)

무효 CLR_LCD (무효)

(

= 1 엉;

RS = 0;

데이터 = 0x01;

= 0 엉;

WAIT_LCD ();

)

무효 HOME_LCD (무효)

= 1 (엉;

RS = 0;

데이터 = 0x02;

= 1 엉;

WAIT_LCD ();

)

 
누군가가 내 잘못이 나를 가리킨 수 있을까요?

 
;;;;;;;;;;;;;;; 핀 할당 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
db0 equ p1.0
db1 equ p1.1
DB2는 equ p1.2
db3 equ p1.3
db4 equ p1.4
db5 equ p1.5
db6 equ p1.6
db7 equ p1.7
equ p2.2 활성화
RS equ p2.0
RW를 equ p2.1
나타나서 equ P1과

;;;;;;;;;;;;;;;;;; LCD는 명령 시퀀스 ;;;;;;;;;;;;;;;;;;;
co.kr 사이트 : mov 나타나서,
CLR은 RS
CLR을 RW에
setb 활성화
CLR을 사용
잠깐 전화
ret
;;;;;;;;;;;;;;;;;;; LCD를 적고 순서 ;;;;;;;;;;;;;;;;;;;;
lcd_write : mov 나타나서,
setb RS
CLR을 RW에
setb 활성화
CLR을 사용
잠깐 전화
ret
;;;;;;;;;;;;;;;;;;;; 액정 화면의 순서를 명확 ;;;;;;;;;;;;;;;
lcd_clr : mov, # 01h
전화 co.kr에서
ret여기를 어셈블리 언어로 8051을위한 단지 유 편지를 전달 순서를 작성 후 전화 코드입니다
U 지연을 표시하려면등록일 57초 후 :그럼 내가하면 불러 어셈블리의 예제 코드를 작성할 수 있으며 자세한 내용은 게시물 필요

 
vijaya_narayana 썼습니다 :

;;;;;;;;;;;;;;; 핀 할당 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;

db0 equ p1.0

db1 equ p1.1

DB2는 equ p1.2

db3 equ p1.3

db4 equ p1.4

db5 equ p1.5

db6 equ p1.6

db7 equ p1.7

equ p2.2 활성화

RS equ p2.0

RW를 equ p2.1

나타나서 equ P1과;;;;;;;;;;;;;;;;;; LCD는 명령 시퀀스 ;;;;;;;;;;;;;;;;;;;

co.kr 사이트 : mov 나타나서,

CLR은 RS

CLR을 RW에

setb 활성화

CLR을 사용

잠깐 전화

ret

;;;;;;;;;;;;;;;;;;; LCD를 적고 순서 ;;;;;;;;;;;;;;;;;;;;

lcd_write : mov 나타나서,

setb RS

CLR을 RW에

setb 활성화

CLR을 사용

잠깐 전화

ret

;;;;;;;;;;;;;;;;;;;; 액정 화면의 순서를 명확 ;;;;;;;;;;;;;;;

lcd_clr : mov, # 01h

전화 co.kr에서

ret여기를 어셈블리 언어로 8051을위한 단지 유 편지를 전달 순서를 작성 후 전화 코드입니다

U 지연을 표시하려면
등록일 57초 후 :
그럼 내가하면 불러 어셈블리의 예제 코드를 작성할 수 있으며 자세한 내용은 게시물 필요
 
여기 내 프로그램이야 ..어떤 컴파일러는 내가 함께 사용 될 수 있다고 생각

<img src="http://www.edaboard.com/images/smiles/icon_razz.gif" alt="Razz" border="0" />하나 Keil위한 것입니다 ...lcd.H

코드 :

# <REG2051.H> 포함

lcd_port P3 정의 #/ / LCD는 레지스터 주소

LCD_EN 0x80으로 정의 #

LCD_RS 0x20 정의 #/ / LCD는 명령

LCD_CLS 0x01 정의 #

LCD_HOME 0x02 정의 #

LCD_SETMODE 0x04 정의 #

LCD_SETVISIBLE 0x08 정의 #

LCD_SHIFT 0x10 정의 #

LCD_SETFUNCTION 0x28 정의 #

LCD_SETCGADDR 0x40 정의 #

LCD_SETDDADDR 0x80으로 정의 #FALSE는 0을 정의 #

TRUE로 정의 # 1/******************************

함수 프로토 타입 ***** *****

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

무효 lcd_init ();

무효 lcd_reset ();

무효 (숯불) lcd_cmd;

무효 lcd_data (서명 숯불);

무효 lcd_str (서명 숯불 *);

 
위의 코드는 LCD는 4와 함께 모드 단지 hrough 액정 데이터 sheet.U 이동 통신에 대한이 단지 액정 시트를 통해 이동하여 액정에 패스 액정 inlitise 일부 루틴을 패치해야

예를 들어,

mov, # 0ch
comand 시퀀스를 호출

그래서 그냥 순서의 LCD는 데이터 시트에 주어진 값을 전달

 

Welcome to EDABoard.com

Sponsor

Back
Top