노키아 3310 병렬 포트를 사용하여 액정 8086은 인터페이스와 함께

F

Furki316

Guest
내 코드를 사용하여 액정 화면에 그릴 생각에 마우스를 클릭하여 왼쪽, 동일한 개념이 사용되는 페이지입니다.
http://www.scienceprog.com/connect-nokia-3310-lcd-to-lpt-port/
전 시트의 데이터가 연구 8544.문제는 화면이 제 액정 아무것도를 보여줍니다.
저기 제가있는 화면마다 액정인지 전혀 문제와 연결 또는.줄 사람이 확인하는 경우 바이트를 초기화하거나 제 코드와 함께 거기에 문제가 데이터 전송 절차를 8544 또는 아마도 ...지연.의 김 좌절?내 게시물을 읽을 고마워.; 프로그램은 왼쪽으로 사용하기 위해 8544 그릴에 액정 노키아 3310 (pcd) 마우스. 작은 모델
. 스택은 100h
. 데이터
은행베이스?; 은행 번호가 5-0됩니다 떨어져 저장된 여기에
rbit의 DB?; 비트 번호는 7-0 것입니다에서 저장된
칸베이스?부터 오 숫자 열; 54h (0 - 84 진수)
oldbank dB 6; 이전의 RAM 은행 번호
oldrbit의 DB 0; 이전 비트 숫자
oldcol 89 dB, 이전 열 번호
행베이스?; 0-4 사실 주소를 포함 행 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />msg1 DB를 "완료", 0ah, 0dh, '$'
msg2 DB를 "연결 LCD는 시작 언론에 열쇠를 어떤!", 0ah, 0dh, '$'를
msg3 DB를 ""... 주소 설정 Y를, 0dh, 0ah, '$'
msg4 DB를 ""... 주소 설정 X를 0dh, 0ah, '$'
msg5 DB를 "재설정 8544 ....", 0dh, 0ah, '$'
msg6 dB "$ 설정 VoP ....",을 0dh, 0ah ','
msg7 dB "지우기 RAM을 ...", 0dh, 0ah, '$'
msg8 DB를 "일반 명령 세트", 0ah, 0dh, '$'
msg9 DB를 "데이터를 보내는 바이트 ...", 0ah, 0dh, '$'
msg10 DB를 "데이터의 바이트가 전송", 0ah, 0dh, '$'
msg11 dB "디스플레이 제어 설정 : 일반 모드", 0ah, 0dh, '$'
8dB 08
7dB 07
4dB 04
. 코드
메인 proc 디렉토리
mov 인 도끼, @ 데이터
mov 인 DS에, 도끼
mov 인 알, 00h
mov 인 DX를, 0378h
알 밖으로 DX를,
mov 인 아, 09h
레아의 DX를, msg2
int 21h
mov 인 아, 01h
int 21h
mov 인 아, 09h
레아의 DX를, msg5
int 21h
mov 인 DX를, 0378h

; 재설정 8,544
mov 인 알, 0E8h
알 밖으로 DX를,
DelayProc 전화
mov 인 알, 0F8h
알 밖으로 DX를,
DelayProc 전화; 확장 명령어 세트
mov 인 CX는, 02
loop2 :
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop2
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 CX는, 04
loop3 :
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop3
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화mov 인 아, 09h
레아의 DX를, msg6
int 21h
mov 인 DX를, 0378h

; 세트 VoP
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 CX는, 2
loop4 :
mov 인 알, 0f0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop4
mov 인 알, 0f2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 CX는, 04
loop5 :
mov 인 알, 0f0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop5

mov 인 아, 09h
레아의 DX를, msg8
int 21h
mov 인 DX를, 0378h

; 일반 명령어 세트
mov 인 CX는, 02
loop6 :
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop6
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 CX는, 05
loop7 :
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop7mov 인 아, 09h
레아의 DX를, msg7
int 21h
mov 인 DX를, 0378h

CLEAR_RAM :
; 지우기 램
mov 인 CX는, 0fC0h; fc0h = 4032 비트 (픽셀)
CLRAM :
mov 인 알, 0f4h
알 밖으로 DX를,
통화 지연
inc 알
알 밖으로 DX를,
통화 지연
루프 CLRAM

mov 인 아, 09h
레아의 DX를, msg11
int 21h

mov 인 CX는, 04h
loop111 :
mov 인 알, 0F0h; 역 모드
mov 인 DX를, 0378h
알 밖으로 DX를,
Delayproc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop111
mov 인 CX는, 02h
loop12 :
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 loop12
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 알, 0F0h
mov 인 DX를, 0378h
알 밖으로 DX를,
Delayproc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 아, 09h
레아의 DX를, msg1
int 21h

getMouse :
MOV 악스, 5, 5 악스에 정보를 마우스 버튼 좀 알려주 INT 33
int는 33h; 정보를 얻을 마우스 버튼
씨엠 피 악스, 1,이 1 비교 도끼 (단추 상태)
JL의 getMouse
JA 출구
mov 인 도끼, CX는;의 수평 위치로 커서를 이동 도끼
사업부 일곱, 열 크기 조정
mov 인 열, 알, 상점 열 번호
mov 인 도끼, DX를;의 수직 위치에 도끼 커서 이동
사업부 4; 행 스케일링
mov 인 줄, 알, 행은 0-4 사실 주소를 포함 행 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="시원한" border="0" />mov 인 아, 00h
사업부는 8; 주소로 8 행 나누기도 은행을받을 수 있습니다.RAM의 8544.
mov 인 은행, 알;) (몫 알 떨어져 은행 번호
mov 인 rbit, 아;) (나머지 아 비트 숫자를 떨어져mov 인 알, oldcol; 위치 커서 비교으로 이전
씨엠 피 열, 알
JNZ의 nomatch
mov 인 알, oldrbit
씨엠 피 rbit, 알
JNZ의 nomatch
mov 인 알, oldbank
씨엠 피 은행, 알
나도 알고 getMousenomatch :

mov 인 아, 09h
레아의 DX를, msg3
int 21h; 설정 Y라는 address
mov 인 알, 0F0h
mov 인 DX를가, 0378h; 시작을 보내는 명령은 바이트 주소는 Y를 설정하는 방법
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 CX는, 3
snd3z :
mov 인 알, 0F0h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 snd3z
mov 인 알, 은행
SHR의 알, 1; 시프트 오른쪽) SDIN의 위치에 Y2에 도착 비트 (1
와 Al, 02h;받을 000000Y0
또는 0F0h 알,
DX를 밖으로, 알; 보낼 111100Y (2) 0
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 알, 은행
그리고 02h 알,
또는 0f0h 알,
DX를 밖으로, 알; 보낼 111100Y (1) 0
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
mov 인 알, 은행
SHL의 알 1
그리고 02 알,
또는 0F0h 알,
DX를 밖으로, 알; 보낼 111100Y (0) 0
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화mov 인 아, 09h
레아의 DX를, msg4
int 21h
mov 인 DX를, 0378h

; 세트 엑스 주소
mov 인 알, 0F2h
알 밖으로 DX를,
DelayProc 전화
inc 알
DX를 밖으로, 알, 전송 데이터 비트 7 (D7) 1
DelayProc 전화
mov 인 CX는, 05
shftl :
mov 인 알, 콜린, 루프 X2 X6를 보내면, X5들의, X4, X3과
SHR 카스티 야 알,
와 Al, 02h; 000000X0
또는 0F0h 알,
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화
루프 shftl
; X1을
mov 인 열 알,
와 Al, 02h; 000000X (1) 0
또는 0F0h 알,
DX를 밖으로, 알; 보내 X1
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화

mov 인 열 알,
SHL의 알 1
그리고 02h 알,
또는 0F0h 알,
DX를 밖으로, 알; 보내 X0
DelayProc 전화
inc 알
알 밖으로 DX를,
DelayProc 전화

mov 인 아, 09h
레아의 DX를, msg9
int 21h씨엠 피 rbit, 프로세스 데이터 바이트에 보내는; 07
mov 인 도끼, 07h
나도 알고 setRow
씨엠 피 rbit, 06
mov 인 도끼, 06h
나도 알고 setRow
씨엠 피 rbit, 05
mov 인 도끼, 05h
나도 알고 setRow
씨엠 피 rbit, 04
mov 인 도끼, 04h
나도 알고 setRow
씨엠 피 rbit, 03
mov 인 도끼, 03h
나도 알고 setRow
씨엠 피 rbit, 02
mov 인 도끼, 02h
나도 알고 setRow
씨엠 피 rbit, 01
mov 인 도끼, 01h
나도 알고 setRow
씨엠 피 rbit, 00
mov 인 도끼, 00h
나도 알고 setRowsetRow :; 보내기 데이터 바이트
도끼를 밀어
mov 인 CX는, 7
하위 CX는, 도끼
mov 인 DX를, 0378h
씨엠 피 도끼, 07h
JE MSB1
snd0 :
mov 인 DX를, 0378h
, 0f4h는; 보내 "0"비트 SDIN 알이 mov 인과 0 clck에
알 밖으로 DX를,
DelayProc에게 전화를 통해 확인 DELAY
mov 인 알, 0f5h
DX를 밖으로, 알; "0"비트가 1) 간다 (예 : clck는 클럭에서 긍정의 egde 그것은
DelayProc에게 전화를 통해 확인 DELAY
루프 snd0
MSB1 :
mov 인 알, 0f6h
DX를 밖으로, 알; "데이터와 함께 0 클록 비트 1"
DelayProc에게 전화를 통해 확인 DELAY
inc 알
DX를 나가, 알; "1"비트 데이터)가 사라진다는 높은 클럭에서 긍정적인 (모서리 시계
DelayProc 전화
팝업 CX는; 1 일 이후로 개로 팝업의 CX는 했나 밀려 도끼 (의 밖으로 숫자)
씨엠 피 CX는, 00h
JE LSB1
snd0_2 :
mov 인 DX를, 0378h
mov 인 알, 0f4h
알 밖으로 DX를,
DelayProc 전화
inc 알
알 밖으로 DX를,
전화 DelayProc
루프 snd0_2
LSB1 :; 비트를 마지막으로 보내는 코드 뒤에
mov 인 아, 09h
레아의 DX를, msg10
int 21h
mov 인 알, 콜린, 비교 위치 (열 및 행)를하기의 커서
mov 인 oldcol, 알
mov 인 알, 은행
mov 인 oldbank, 알
mov 인 알, rbit
mov 인 oldrbit, 알
JMP를 getMouse; 클릭 마우스 감각의 또 다른
출구 :; 지우기 RAM과 종료
mov 인 아, 09h
레아의 DX를, msg7
int 21h
mov 인 CX는, 0fC0h; fc0h = 4032 비트 (픽셀)
mov 인 DX를, 0378h
CLERAM :
mov 인 알, 0f4h
알 밖으로 DX를,
통화 지연
inc 알
알 밖으로 DX를,
통화 지연
루프 CLERAM

mov 인 아, 4CH
INT 21h
메인 endp
DelayProc의 proc 디렉토리 근처
DX를 밀어
밀어 CX는
도끼를 밀어
mov 인 CX는, 30, 지연 시간이 1 (10 진수) 등호 같아질 때 14ms (10 진수)를, 70 1 초
mov 인 DX를, 3dah
loop11 :
밀어 CX는
L1 :
알에서 DX를
그리고 08h 알,
jnz L1
L2 :
알에서 DX를
그리고 08h 알,
JZ L2
팝업 CX는
루프 loop11
팝업 도끼
팝업 CX는
팝업 DX를
부드럽게하기 위해 물에 담그다
DelayProc의 endp지연 proc 디렉토리 근처
밀어 CX는
mov 인 CX는, 03, 1 10 진수 0.7ms이다
dlay0 :
밀어 CX는
mov 인 CX는, 0ffffh
dlay :
mov 인 bx, 0fh
dlay2 :
12월 bx
씨엠 피 bx, 00h
JNZ dlay2
루프 dlay
팝업 CX는
루프 dlay0
팝업 CX는
부드럽게하기 위해 물에 담그다
지연 endp
결국 메인

 
긴급 상황입니다.내가 VoP 설정을 확신의 문제는 매우 아마도 .. 간단 해요.난 그냥 문이 안 열려 그림 밖으로 뭐죠 코드를 잘못합니다.내가 읽고 매뉴얼을 따라 8544.

제가 액정받을 간단한 어셈블리 언어 (x86)를에 코드 문자를하거나 점이 표시?아마 그때 내 코드와 함께 할게 뭐죠 잘못 파악 아웃.모든 도움에 감사드립니다.

감사합니다
Furki

 
그것은 코드는 약간의 ASM의 당신의 문제를 추적.

어쨌든 출력어요)를 확인하여 LPT를 (병렬 포트, 내가 그것을 확인 뜻 작성 작은 먼저 ASM의이 확인하는 프로그램.

그리고 다른 건 사용, 모든 운영이 시스템은 면요?

 
회신 주셔서 감사합니다 당신을 많이 아주.
내가 시간을 쓰기도 아주 조금 전 전화를하지만, 다른 절차를 난 어차피 재작 때문하여 원하는 그것을 내가 할 수 단순화합니다.
Heres 어떻게하고 데이터를 바이트 00011111 (D1에 병렬 포트에 연결되어있는 SDIN 보낼 D0가 SCLK에 연결되어있다.)
밑줄이 조금 SDIN입니다

0mov 인 알, 0f4h; 111,101 0 0
mov 인 DX를, 0378h

0DX를 밖으로, 알; VDD VDD VDD 해상도 SCE를 d 개 / c를 sdin sclk 111,101 0 0
DelayProc 전화; 차이가 그것을 내가 42ms (의 지연)

1알 inc; LSB가 간다 111101 1 0
1DX를 밖으로, 알, SCLK은 (LSB가) 1갑니다.
MSB가 데이터의 바이트는이 클럭입니다DelayProc 전화^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

(MSB).이 비트를 얼마나 먼저 보내주 0
(MSB가).
언제 SCLK 안으로부터가는 도착하는 낮은 높이, 비트 데이터난 비트 남은 7 보내는 데 사용되는 비슷한 절차를.
좋은가요이 코드가?내가 한 병렬 포트를 확인합니다.
나는 내 자신의 코드에 의해 전압을 체크하고 일부를 도망. exe 인 병렬 포트는 파일을 확인 연결된 화면을 액정.
그것은 확인을 누릅니다.
나는 프로 XP를 사용하여 Windows입니다.
 
플랫폼 XP의 경우 윈도우에서 이렇게 당신은 노력이 작동하지 예상 당신도 것이며, 그것은.

도스나요에이 코드를보십시오 당신은?

경우 플랫폼 윈도우 XP의 하드웨어 모듈을 소원하는 시험이 다음 아래의 링크를 따라 수 있습니다

1240768 ftopic382649.html #

안부
bassa

 
내가 명령 프롬프트에서 그것을 시도했습니다.액세스 포트를 병렬 동안 Userport.exe 내가 실행할 수있는 실행중인 내 친구 코드입니다.나는 또한 전압계를 통해 전압을 확인, 내 코드 변경 괜찮아요 그냥 전압을 핀 반대부터 낮은 높은과 부회장이.

 
어쨌든 당신이 디자인을 참조 귀하의 파스칼 프로그램을 시도하는 수도 있습니다 디코딩

여기에 "절차에 대한 몇 가지 예를 들어 액정 재설정"

코드 :mov 인 알, 0xe8

mov 인 DX를, 0x378

DX를, 알 밖으로

DelayProc 전화

mov 인 알, 0xf8

DX를, 알 밖으로

DelayProc 전화

 

Welcome to EDABoard.com

Sponsor

Back
Top