Розроблення програмного забезпечення для приладобудування. Підключення матричної клавіатури презентация

Содержание

Слайд 2

ЛІТЕРАТУРА

Martin Bates. Interfacing PIC Microcontrollers Embedded Design by Interactive Simulation - Elsevier[електронний ресурс].

Режим доступу: www.tech-software.net/temp/nine.pdf
Якименко Ю. І. Мікропроцесорна техніка: Підручник / Ю. І. Якименко, Т. О. Терещенко, Є. І. Сокол, В. Я. Жуйков, Ю. С. Петергеря; За ред. Т. О. Терещенко. - 2-ге вид., переробл. та доповн. - К.: ГВЦ “Видавництво «Політехніка»”; “Кондор”, 2004.-440 с.
Тавернье К. РIC-микрокоптроллеры. Практика применения: Пер. с фр. -М.: ДМК Пресс, 2004. - 272 с.: ил. (Серия «Справочник»).
Катцен С. РIС-микроконтроллеры. Все, что вам необходимо знать /; пер. с англ. Евстифеева А. В. — М.: Додэка-ХХ1, 2008. — 656 с.: ил. (Серия «Программируемые системы»).
Martin Bates. Interfacing PIC Microcontrollers Embedded Design by Interactive Simulation. – Elsevier, 2006. [електронний ресурс]. Режим доступу: http://www.tech-software.net/temp/nine.pdf.
Справочник по среднему семейству микроконтроллеров РICmicro™. : ООО “Микро-Чип" Москва – 2002. [електронний ресурс]. Режим доступу: http://www.microchip.ru/files/d-sheets-rus/PIC16_Manual.pdf.
Максимов А. PROTEUS VSM. Система віртуального моделирования. [Електронний ресурс] Режим доступу: http://labkit.ru/userfiles/file/education/Proteus/Proteus_ISIS_russian_manual.pdf.
Магда Ю. С. Микроконтроллеры Р1С: архитектура и программирование. - М.: ДМК Пресс, 2009. - 240 с.: ил.
Программирование на Си для PIC. [електронний ресурс]. Режим доступу: http://www.labkit.ru/html/C_for_PIC.

Слайд 3

ПРИНЦИП ПОБУДОВИ

Слайд 4

МАТРИЧНА КЛАВІАТУРА

Слайд 5

ПРИНЦИП ПІДКЛЮЧЕННЯ

Слайд 6

СХЕМА ДЛЯ МОДЕЛЮВАННЯ

Слайд 7

СЕРЕДОВИЩЕ PICC БІБЛІОТЕКА LCD.C ДЛЯ РОБОТИ З ДИСПЛЕЄМ

///////////////////////////////////////////////////////////////////////////////
//// LCD.C ////
//// Driver for common

LCD modules ////
//// lcd_init() Must be called before any other function. ////
//// lcd_putc(c) Will display c on the next position of the LCD. ////
//// \a Set cursor position to upper left ////
//// \f Clear display, set cursor to upper left ////
//// \n Go to start of second line ////
//// \b Move back one position ////
//// If LCD_EXTENDED_NEWLINE is defined, the \n character ////
//// will erase all remanining characters on the current ////
//// line, and move the cursor to the beginning of the next ////
//// line. ////
//// If LCD_EXTENDED_NEWLINE is defined, the \r character ////
//// will move the cursor to the start of the current ////
//// line. ////
//// lcd_gotoxy(x,y) Set write position on LCD (upper left is 1,1) ////
//// lcd_getc(x,y) Returns character at position x,y on LCD ////
//// lcd_cursor_on(int1 on) Turn the cursor on (on=TRUE) or off ////
//// (on=FALSE). ////
//// lcd_set_cgram_char(w, *p) Write a custom character to the CGRAM. ////

Слайд 8

СЕРЕДОВИЩЕ PICC БІБЛІОТЕКА LCD.C ДЛЯ РОБОТИ З ДИСПЛЕЄМ

//задавання виводів мікроконтролера, до яких підключено

виводи дисплею. Потрібно для бібліотеки lcd.c
#define LCD_ENABLE_PIN PIN_C0
#define LCD_RS_PIN PIN_C1
#define LCD_RW_PIN PIN_C2
#define LCD_DATA4 PIN_C4
#define LCD_DATA5 PIN_C5
#define LCD_DATA6 PIN_C6
#define LCD_DATA7 PIN_C7
#include
.
lcd_init();//настрювання дисплею
lcd_cursor_on(1);//увімкнення курсора
//вивід інформації на екран
printf (lcd_putc, "\f%Ld", resultnumber) ;//див наступний слайд

Слайд 9

МОВА С++ ФУНКЦІЯ PRINTF

printf (fname, cstring, values...)
Outputs a string of characters to a

specified function. Formatting is in accordance with the string argument. The % character is used within the string to indicate a variable value is to be formatted and output. Formatting rules for the % follows.

byte x,y,z;
printf("HiThere");
printf("RTCCValue=>%2x\n\r",get_rtcc());
printf("%2u %X %4X\n\r",x,y,z);
printf(LCD_PUTC, "n=%u",n);

Слайд 10

БІБЛІОТЕКА ДЛЯ РОБОТИ З ТЕКСТОМ

#INCLUDE
i32value = atoi32(string);
Converts the string passed to the

function into an int representation.
char buffer[9]={0,0,0,0,0,0,0,0,0};
signed INT32 firstnumber=0;
firstnumber=atoi32 (buffer);

Слайд 11

АЛГОРИТМ ОСНОВНОЇ ПРОГРАМИ

Слайд 12

ТЕКСТ ОСНОВНОЇ ПРОГРАМИ

//змінні що зберігають перше, друге введені числа і результат операції
signed INT32

firstnumber=0,secondnumber=0,resultnumber=0;
char buffer[9]={0,0,0,0,0,0,0,0,0};//текстовий буфер для зберігання введеного числа
int8 bufferindex=0;//номер байта в буфері
//сюди зберігають інформацію про натиснення кнопок +,-,*,/
char operation=0;//що треба робити при натиснені =

Слайд 13

ТЕКСТ ОСНОВНОЇ ПРОГРАМИ (ПРОДОВЖЕННЯ)

void main(){
port_B_pullups (0xFF);//увімкнення підтягуючих резисторів порта B
lcd_init ();//ініціалізація

дисплею
lcd_cursor_on(1);//увімкнення курсора
WHILE (TRUE){
//TODO: User Code
//перевірка чи натиснена кнопка
IF (kbd_keydown () ){
//зчитуємо кнопку
INT8 key=kbd_getc () ;
//чи код кнопки вірний
IF (key!=0){
//вибираємо яку дію виконувати залежно від натисненої кнопки
SWITCH (key) {

Слайд 14

ТЕКСТ ОСНОВНОЇ ПРОГРАМИ (ПРОДОВЖЕННЯ)

//при натисненні кнопок +,-,*,/ дії одинакові
CASE '+':
CASE '-':

CASE '*':
CASE '/':firstnumber=atoi32 (buffer); //конвертувати 1 число з тексту
operation=key;//зберегти тип вибраної олперації
memset (buffer, 0, 9);bufferindex=0;//очистити текстовий буфер
lcd_putc("\f"); break;//очистити екран
//дії при натисненні кнопки =
CASE '=':secondnumber=atoi32 (buffer) ;//конвертувати 2 число з тексту
memset (buffer, 0, 9);bufferindex=0;//очистити текстовий буфер
//вибір яку дію над числами треба здійснити

Слайд 15

ТЕКСТ ОСНОВНОЇ ПРОГРАМИ (ПРОДОВЖЕННЯ)

SWITCH (operation) {
CASE '+':resultnumber=firstnumber+secondnumber; break;//додавання
CASE '-':resultnumber=firstnumber-secondnumber; break;//віднімання
CASE

'*':resultnumber=firstnumber*secondnumber; break;//множення
CASE '/':resultnumber=firstnumber/secondnumber; break;//ділення
}//SWITCH
printf (lcd_putc, "\f%Ld", resultnumber) ;//вивід результату на екран
BREAK;
//дії при натисненні кнопки с - очищаємо текстовий буфер, змінні, екран
CASE 'c':memset (buffer, 0, 9);bufferindex=0; firstnumber=0; secondnumber=0; operation=0;lcd_putc('\f'); break;
//при натисненні кнопок з цифрами
default :buffer[bufferindex]=key; //добавлення введеного символу в текстовий буфер
IF (bufferindex<8){++bufferindex; }//максимальна кількість символів 8
printf (lcd_putc, "\f%s", buffer) ;//дублювання інформації текстового буфера на екран
}//SWITCH
}//
//чекаємо коли кнопку відпустять
WHILE (kbd_keydown () ){}
}//IF
}
}

Слайд 16

АЛГОРИТМ СКАНУВАННЯ КЛАВІАТУРИ

Слайд 17

ТЕКСТ ПРОГРАМИ. КОНСТАНТА ДЛЯ КОНВЕРТАЦІЇ КОДІВ РЯДКА І СТОВПЦЯ НАТИСНЕНИХ КНОПОК У ВІДПОВІДНІ

СИМВОЛИ

char CONST KEYS[4][4] = {{'7','8','9','/'},
{'4', '5', '6', '*'},
{'1', '2', '3', '-'},
{'c', '0', '=', '+'}};
keys[row][col];

Имя файла: Розроблення-програмного-забезпечення-для-приладобудування.-Підключення-матричної-клавіатури.pptx
Количество просмотров: 17
Количество скачиваний: 0