Сайт "Электронщики" - скорая помощь для радиолюбителей. Здесь вы можете задавать вопросы и получать на них ответы от других пользователей.
Грамотно отвечайте, голосуйте, задавайте вопросы и т.о. зарабатывайте себе рейтинг.

Каким образом идёт опрос клавиатуры кодового замка?

+3 голосов
/*
Chip type           : ATtiny2313
Clock frequency     : 1,000000 MHz
**/
#include <tiny2313.h>        //Микроконтроллер
#include <delay.h>                //Задержки
 
// LCD на PORTB
#asm
   .equ __lcd_port=0x18;PORTB
#endasm
#include <lcd.h>
 
// Электромагнит
#define ZAMOK PORTB.3
                                
// инициализация энергонезависимой памяти для хранения кода и установка его "0000"
eeprom unsigned char eeprom_kod[4]={'0','0','0','0'};              
 
// массив символов, соответствующих кнопкам на клавиатуре
flash unsigned char buttons[3][4]= { 
                                     {'1','4','7','*'},
                                     {'2','5','8','0'},
                                     {'3','6','9','#'}
                                    };
// переменные для хранения промежуточных данных
unsigned char kod[4], nkod[4], nkod2[4];
unsigned char i, j, k, n, state;
        
char key_press()                    // 
{     
 while(1)
 {
   while ( (~PIND & 0b01111000)!=0);  // 
   
   for(i=0;i<3;i++)                 // 
    // активация столбца 
    PORTD = ~(0x01 << i);    
       
      for(j=3;j<7;j++)                // 
    {
     if ( ( PIND & (0x01 << j)) == 0 )    // 
     {
      delay_ms (100);                // 
      if(buttons[i][j-3]=='*')      // 
       for(k=0; ((PIND & (0x01 << j))==0 && k<100);k++)
       {
        delay_ms(50);
       }   
       if((PIND & (0x01 << j))==0)  // 
       {
        state=1;                    //
        return 0;                   // 
       }
       else
        return buttons[i][j-3]; // 
      } // if          
      if ( (PIND & (0x01 << j))==0)
       return buttons[i][j-3]; // 
     } // if
    } // for
   } // for
 } // while
} // key_press
 
void main(void)
{
 
 
 
В СИ вообще не бум бум, надо разобраться что каждая строчка выполняет,СПАСИБО ЗАРАНЕЕ
28 Апр, 14 от аноним в категории Микроконтроллеры

Ваш ответ

Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Соберите картинку
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.