Перейти к содержимому


Фотография

Схема пинпада


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 16

#1 MACAD

MACAD

    Модератор

  • 152 topics
  • Модераторы
  • 1 109 сообщений
  • Откуда:Прибалтика

Отправлено 09 июля 2012 - 04:44

Код:

/*
4x4 Keypad Demo

CodeVisionAVR C Compiler
© 2000-2007 HP InfoTech S.R.L.

Chip: ATmega8515

PLEASE MAKE SURE THAT THE CKSEL0..3 FUSE
BITS ARE PROGRAMMED TO USE THE EXTERNAL
CLOCK SOURCE OF THE STK500 AND NOT
THE INTERNAL 1MHz OSCILLATOR.
The ATmega8515 chip comes from the factory
with CKSEL0..3 fuse bits set to use the
internal 1 MHz oscillator.

Connect the keypad matrix as follows:

[STK500 PORTD HEADER] [KEYS] R1
1 PD0 -----0----1----2----3----~~~~~---o+5V
| | | | R2 |
2 PD1 -----4----5----6----7----~~~~~-
| | | | R3 |
3 PD2 -----8----9----10---11---~~~~~-
| | | | R4 |
4 PD3 -----12---13---14---15---~~~~~-
D1 | | | |
5 PD4 -|<|- | | |
D2 | | |
6 PD5 -|<|------ | |
D3 | |
7 PD6 -|<|----------- | R1..R4=10k..47k
D4 |
8 PD7 -|<|---------------- D1..D4=1N4148

Use an 2x16 alphanumeric LCD connected
to PORTC as follows:

[LCD] [STK500 PORTC HEADER]
1 GND- 9 GND
2 +5V- 10 VCC
3 VLC- LCD contrast control voltage 0..1V
4 RS - 1 PC0
5 RD - 2 PC1
6 EN - 3 PC2
11 D4 - 5 PC4
12 D5 - 6 PC5
13 D6 - 7 PC6
14 D7 - 8 PC7
*/

#asm
.equ __lcd_port=0x15
#endasm

#include
#include
#include
#include

// quartz crystal frequency [Hz]
#define F_XTAL 3686400L
// PIND0..3 will be row inputs
#define KEYIN PIND
// PORTD4..7 will be column outputs
#define KEYOUT PORTD
// used for TIMER0 count initialization
#define INIT_TIMER0 TCNT0=0x100L-F_XTAL/64L/500L
#define FIRST_COLUMN 0x80
#define LAST_COLUMN 0x10

typedef unsigned char byte;
// store here every key state as a bit,
// bit 0 will be KEY0, bit 1 KEY1,...
unsigned keys;
// LCD display buffer
char buf[33];

// TIMER 0 interrupt at every 2 ms
interrupt [TIM0_OVF] void timer0_int(void)
{
static byte key_pressed_counter=20;
static byte key_released_counter,column=FIRST_COLUMN;
static unsigned row_data,crt_key;
// reinitialize TIMER0
INIT_TIMER0;
row_data<<=4;
// get a group of 4 keys in in row_data
row_data|=~KEYIN&0xf;
column>>=1;
if (column==(LAST_COLUMN>>1))
{
column=FIRST_COLUMN;
if (row_data==0) goto new_key;
if (key_released_counter) --key_released_counter;
else
{
if (--key_pressed_counter==9) crt_key=row_data;
else
{
if (row_data!=crt_key)
{
new_key:
key_pressed_counter=10;
key_released_counter=0;
goto end_key;
};
if (!key_pressed_counter)
{
keys=row_data;
key_released_counter=20;
};
};
};
end_key:;
row_data=0;
};
// select next column, inputs will be with pull-up
KEYOUT=~column;
}

// test if a key was pressed
unsigned inkey(void)
{
unsigned k;
if (k=keys) keys=0;
return k;
}

void init_keypad(void)
{
// PORT D initialization
// Bits 0..3 inputs
// Bits 4..7 outputs
DDRD=0xf0;
// Use pull-ups on bits 0..3 inputs
// Output 1 on 4..7 outputs
PORTD=0xff;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 57.600 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x03;
INIT_TIMER0;
OCR0=0x00;
// External Interrupts are off
MCUCR=0x00;
EMCUCR=0x00;
// Timer 0 overflow interrupt is on
TIMSK=0x02;
#asm("sei")
}

main() {
unsigned k;
init_keypad();
lcd_init(16);
lcd_putsf("CVAVR Keypad");
// read keys and display key code
while (1)
{
lcd_gotoxy(0,1);
if (k=inkey())
{
sprintf(buf,"Key code=%Xh",k);
lcd_puts(buf);
}
else lcd_putsf("NO KEY ");
delay_ms(500);
}
}
  • 0

#2 Маришл

Маришл

    МЕСТНЫЙ

  • 38 topics
  • Пользователи
  • PipPipPip
  • 1 042 сообщений
  • Откуда:Харьков, Москва

Отправлено 09 июля 2012 - 04:45

Благодарю, нужная в хозяйстве вещь
  • 0

#3 Мордер

Мордер

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 433 сообщений

Отправлено 09 июля 2012 - 04:45

Спасибо давно искал :)
  • 0

#4 Kino

Kino

    СТАРОЖИЛ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 723 сообщений

Отправлено 09 июля 2012 - 04:46

джс пинпад)
  • 0

#5 EVGEN

EVGEN

    МЕСТНЫЙ

  • 32 topics
  • Пользователи
  • PipPipPip
  • 292 сообщений

Отправлено 09 июля 2012 - 04:47

интересует вопрос - пинпад фиксит фремя когда пин вводят? или как сапоставлять пины с дампам?
  • 0

#6 Орион

Орион

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 406 сообщений

Отправлено 09 июля 2012 - 04:48

канешно фиксит, если это GSM, то получаешь смс с датой, временем и пином, с точностью до секунд
  • 0

#7 tccb

tccb

    МЕСТНЫЙ

  • 46 topics
  • Пользователи
  • PipPipPip
  • 432 сообщений

Отправлено 24 ноября 2015 - 11:17

Что вообще за хрень, как вы в этом разбираетесь, у вас, что вместо головы компьютер?))))) 


  • 0

#8 Yolanda

Yolanda

    МЕСТНЫЙ

  • 24 topics
  • Пользователи
  • PipPipPip
  • 228 сообщений

Отправлено 09 декабря 2015 - 10:08

Да уж глянул, ничего не понял.


  • 0

#9 CHMOK

CHMOK

    МЕСТНЫЙ

  • 29 topics
  • Пользователи
  • PipPipPip
  • 393 сообщений

Отправлено 23 декабря 2015 - 07:50

И что вы тут понимаете? набор букв латинских и цифр.


  • 0

#10 крэк

крэк

    МЕСТНЫЙ

  • 41 topics
  • Пользователи
  • PipPipPip
  • 348 сообщений

Отправлено 07 января 2016 - 08:24

Отличная схема), только понять сложно. :?


  • 0

#11 filinusor

filinusor

    МЕСТНЫЙ

  • 58 topics
  • Пользователи
  • PipPipPip
  • 692 сообщений

Отправлено 20 января 2016 - 07:44

Может кто пояснит, что тут происходит, смотрел-смотрел, думал башка взорвется
  • 0

#12 filinusor

filinusor

    МЕСТНЫЙ

  • 58 topics
  • Пользователи
  • PipPipPip
  • 692 сообщений

Отправлено 20 января 2016 - 07:53

Может кто пояснит, что тут происходит, смотрел-смотрел, думал башка взорвется
  • 0

#13 ksivblod

ksivblod

    МЕСТНЫЙ

  • 41 topics
  • Пользователи
  • PipPipPip
  • 213 сообщений

Отправлено 31 января 2016 - 10:10

Да тут переводчик не помешает, что реально кто-то в этом шарит?
  • 0

#14 Oleg_Nik

Oleg_Nik

    МЕСТНЫЙ

  • 53 topics
  • Пользователи
  • PipPipPip
  • 411 сообщений

Отправлено 14 февраля 2016 - 10:38

Ребят подскажите, как сопоставить пин и дамб.
  • 0

#15 святм

святм

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 239 сообщений

Отправлено 15 мая 2016 - 09:37

Спасибо, очень интересно, главное все верно, конечно не знающему тут сложно разобраться
  • 0

#16 xrystim

xrystim

    МЕСТНЫЙ

  • 32 topics
  • Пользователи
  • PipPipPip
  • 250 сообщений

Отправлено 29 мая 2016 - 05:46

Информация бесценна, спасибо большое!!!!!!!
  • 0

#17 пофене

пофене

    МЕСТНЫЙ

  • 67 topics
  • Пользователи
  • PipPipPip
  • 287 сообщений

Отправлено 11 июня 2016 - 05:08

Давно искал, тема фикс!


  • 0




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных