0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
1

Опрос клавиатуры 3х4 и вывод нажатой кнопки AT90S8515

18.06.2015, 23:07. Показов 1454. Ответов 6
Метки нет (Все метки)

Написана программа на С, для такой вот схемы
Опрос клавиатуры 3х4 и вывод нажатой кнопки AT90S8515

писал честно говоря не я, но для этой схемы. Суть работы проги очень прост: нажимается кнопка на клавиатуре - выводится на нижнем индикаторе число. Прога собственно у того кто писал работает, а вот у меня бока, как только запускаю на протеусе - сразу выводит 8 и не реагирует на нажатие других кнопок. мб с массивом что не так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#define F_CPU 8000000UL //Частота процессора
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
 
int row=0;
int cln=0;
int n;
unsigned char r0;
unsigned char KeyTable[12][1] PROGMEM= 
{ 
{ 0xf9 },
{ 0xa4 },
{ 0xb0 },
{ 0x99 },
{ 0x92 },
{ 0x82 },
{ 0xf8 },
{ 0x80 },
{ 0x90 },
{ 0x00 },
{ 0xc0 },
{ 0x00 }
};
 
int main()
{
 DDRD|=(0<<PD0)|(0<<PD1)|(0<<PD2)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
 PORTD|=(1<<PD0)|(1<<PD1)|(1<<PD2);
 DDRC=0xff;
 PORTC=0x00;
 
 while(1)
 {
  stroka();
  if(PD0==1)
  {
   if(PD1==1)
   {
    if(PD2==1)
    {
     if(row==3) row=0;
     else row++;
    }
    else cln=2;
   }
   else cln=1;
  }
  else cln=0;
  num();
  FindKey();
  PORTC=r0;
 }
 return 0;
}
 
void stroka(void)
{
 if(row==0)PORTD|= (0<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
 if(row==1)PORTD|= (1<<PD4)|(0<<PD5)|(1<<PD6)|(1<<PD7);
 if(row==2)PORTD|= (1<<PD4)|(1<<PD5)|(0<<PD6)|(1<<PD7);
 if(row==3)PORTD|= (1<<PD4)|(1<<PD5)|(1<<PD6)|(0<<PD7);
 return 0;
}
 
int num(void)
{
 n=(row*2)+cln;
 return 0;
}
 
void FindKey(void) 
{
  unsigned char index;
  for (index = 0; index < 12; index++) 
  {
    if (pgm_read_byte(&KeyTable [n][index]) == n) 
    {
      r0 = pgm_read_byte(&KeyTable [n][index]);
      return 1;
    }
  }
  return 0;
}
Makefile.rar вот makefile на всякий, мб там что-то не так.
Заранее благодарен
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2015, 23:07
Ответы с готовыми решениями:

Вывод на экран номера нажатой кнопки
Здравствуйте. У меня такая задача - нужно дать пользователю возможность щелчками мыши в поле,...

Опрос и получение номера нажатой клавиши для обычной клавиатурысостоящей из 12 клавиш
Написать программу на языке assebler. Опрос и получение номера нажатой клавиши для обычной...

Составить программу умножения матриц А(3Х4) и В(3х4). Элементы матрицы – действительные числа
Составить программу умножения матриц А(3Х4) и В(3х4). Элементы матрицы – действительные числа.

id нажатой кнопки
подскажите, пожалуйста, как определить нажатую кнопку. В форме созданы кнопки, и , если id равен id...

6
985 / 608 / 101
Регистрация: 15.05.2012
Сообщений: 3,591
19.06.2015, 08:51 2
Пытать надо
Цитата Сообщение от Delacroic Посмотреть сообщение
у того кто писал
Пусть отрабатывает.
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
20.06.2015, 23:34  [ТС] 3
Это я уже пробовал
0
985 / 608 / 101
Регистрация: 15.05.2012
Сообщений: 3,591
22.06.2015, 10:02 4
Тогда, заказывая, оговаривать отладку.
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
22.06.2015, 18:14  [ТС] 5
Прогу мне подогнал одногруппник, по доброте душевной, и у него сейчас и без меня забот хватает, хотел тут помощи попросить, но услышал только критику
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
22.06.2015, 18:40 6
...какой помощи, запустить за вас в симуляторе пошаговую отладку?
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
23.06.2015, 22:26  [ТС] 7
пойду кароч учить алгоритм билдер
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2015, 22:26

Определения нажатой клавиатуры
Помогите плиз! Какая функция или объект в Дельфи работает с клавишами? Ну определяет какая клава...

Name нажатой кнопки в TEdit
Есть несколько кнопок Button. При нажатии на одну из них в Edit должно помещаться Name нажатого...

Проверка нажатой кнопки
Составить схему подсоединение к микроконтроллера 8051 в программной среде Multisim. Написать...

Определение нажатой кнопки
Например, имеются 10 кнопок(button), им назначен один обработчик нажатия кнопкой мыши. private:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru