컨트롤러"4x4

C

csr1981

Guest
안녕,

내가 PIC18f458에 4x4 키패드 inetrface 싶어요.

내가 회로하지만 아래의 '내 코드를 사용하여 작동하지 않는 경우입니다.<img src="http://images.elektroda.net/15_1263875501.jpg" border="0" alt="4x4 Keypad interfacing to PIC18f458" title="4x4 키패드 PIC18f458에 인터페이스"/>내가 프로 테우스에서 작동하지만 시뮬레이션은 하드웨어에서 작동 doesnot.

제발 도와주세요.경우 C 코드와 함께, PLZ 도움도 사용할 수있습니다.

감사합니다.

 
안녕하세요 csr1981,

어떻게 키패드의 장소에서만 커넥터를 사용하여 시뮬레이트합니까?제발 그렇게 우리는 당신을 도울 수 귀하의 코드를 게시할 수있습니다.

 
안녕,
키보드 연결<img src="http://www.imaginetools.com/documentation/docs/manuals/MicroStarterKit/images/hwmatrix.gif" border="0" alt="4x4 Keypad interfacing to PIC18f458" title="4x4 키패드 PIC18f458에 인터페이스"/>미안하지만, 당신이 첨부 파일을 보려면 로그인이 필요합니다

 
안녕,
회로에서는, 당신은 MCLR이 높은, 그래서 마이크로 컨트롤러 리셋 모드에 있고 아무것도 안하고 핀 설정하는 걸 잊은 제공.저항 (약 10,000) 및 시도와 5 V의 MCLR 핀을 연결합니다.
희망이 도움이됩니다.
Tahmid.

 
안녕하세요 Tahmid

난 그냥 내 회로의 일부를 게시했다.내가 Vcc에 MCLR 핀에 연결되어있다.
다른 모든 것들을 잘하고있습니다.
전용 키패드 작동하지 않습니다.

 
안녕,
어쩌면 당신 두는게 좋을 다운 RD0, RD1, RD2과 땅에 RD3 10,000 저항했다.
난 그 때 키패드를 사용합니다.
Tahmid.

 
Tahmid 썼습니다 :

안녕,

어쩌면 당신 두는게 좋을 다운 RD0, RD1, RD2과 땅에 RD3 10,000 저항했다.

난 그 때 키패드를 사용합니다.

Tahmid.
 
당신이 C 코드를 함께 도울 수있다.

감사합니다

 
안녕,
mikroC 경우 사용할 수있습니다 내가 당신을 도울 수있습니다.
Tahmid.

 
안녕하세요 Tahmid,

그래, 문제 없어, 난 mikroC 사용할 수있습니다.
또한 만약 하드웨어 ckt 공유할 수있습니다.

감사합니다.

 
csr1981 썼습니다 :

안녕하세요 Tahmid,그래, 문제 없어, 난 mikroC 사용할 수있습니다.

또한 만약 하드웨어 ckt 공유할 수있습니다.감사합니다.
 
입력 고마워,하지만 난 donot CCS는 컴파일러가있다.

 
활성이 낮은 논리를 사용하는 것이 좋습니다.모든 4 개의 출력에 출력이 낮은 그리고 낮은 입력을위한 4를 찾습니다.만약 포트가 그들이 가지고있는 내부의 약한 pullups 확인 될 수있습니다, 외부 자신을 1 10,000에 대한 확인을 갈 것이라고 4 입력에 pullup 저항이 필요합니다, 난 4K7 사용하는 경향이있습니다.올린날짜 6 분 후 :시뮬레이션,하지만 좋은 징후 회로가 작동하지 않을 수있습니다 대부분의 경우와 마찬가지로 그것이 현실 조건에 대해 계정에 실패합니다.연습 이론에서는 회로를 작동해야한다, 아니.올린날짜 5 분 후 :이것은 3x4입니다.아마 당신이 어떤 아이디어를 줄 것이다.

/ / 읽기 키패드 자리를 반환 값

서명 숯불 getkey (무효)
(/ / 액티브 로우의 키를 잡아
서명 숯불 자리, KeyRead;
에 C1 = 0; C2를 = 1; C3에 = 1; / / 열 1에서
DelayMs (3);
KeyRead = (P2 & 0x0F);
(KeyRead == 14) (만약 자리 = 1; 고토 스킵;) / / 읽기 행 및 번역
만약 (KeyRead == 13) (자리 = 4; 고토 스킵;)
만약 (KeyRead == 11) (자리 = 7; 고토 스킵;)
(KeyRead == 7) (자리 = 10; 고토 스킵;) 만약 / / 키 취소

에 C1 = 1; C2를 = 0; C3에 = 1; / / 열 2 일
DelayMs (3);
KeyRead = (P2 & 0x0F);
(KeyRead == 14) (만약 자리 = 2; 고토 스킵;)
만약 (KeyRead == 13) (자리 = 5; 고토 스킵;)
만약 (KeyRead == 11) (자리 = 8; 고토 스킵;)
(KeyRead == 7) (자리 = 0; 고토 스킵;)

에 C1 = 1; C2를 = 1; C3에 = 0; / / 열 3 일
DelayMs (3);
KeyRead = (P2 & 0x0F);
(KeyRead == 14) (만약 자리 = 3; 고토 스킵;)
만약 (KeyRead == 13) (자리 = 6; 고토 스킵;)
만약 (KeyRead == 11) (자리 = 9; 고토 스킵;)
(KeyRead == 7) (자리 = 11;) / / 부르 키면

건너뛰기 :
속에서의 ();
DelayMs (30);
((P2 & 0x0F)! = 0x0F) 동안; ResetWD (); 주요 릴리스에 대한 / / 잠깐 만요
반환 자리,
)

 
안녕,
이 예제 코드 mikroC V8.2를 제공합니다 :
코드 :

서명되지 않은 짧은 한 KP, CNT의;

숯불 txt [5];메인 무효 () (

CNT의 = 0;

Keypad_Init (& PORTC);

Lcd_Init (& PORTB); / / 초기화 액정 PORTC에

Lcd_Cmd (LCD_CLEAR); / / 지우기 표시

Lcd_Cmd (LCD_CURSOR_OFF); / / 커서를Lcd_Out (1, 1, "키 :");

Lcd_Out (2, 1, "시간 :");할 (

KP는 = 0;//--- 키를 누를 때까지 기다립니다 수

하다

//--- 취소 - 키패드 읽기 기능의 설명을 하나

KP는 = Keypad_Released ();

/ / KP는 = Keypad_Read ();

(! KP는) 동안;CNT의 ;//--- 출력 값을 준비

만약 (KP는 "10)

KP는 = 54;

그 밖의

KP는 = 47;//--- LCD에 인쇄

Lcd_Chr (1, 10, KP는);

WordToStr (CNT의, TXT 및);

Lcd_Out (2, 10, TXT 및);) 동안 (1);

}//~!
 

Welcome to EDABoard.com

Sponsor

Back
Top