![]() |
Главная Микроконтроллеры [0] [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] [85] [86] [87] [88] [89] [90] [91] [92] [93] row data=0; >; Выбрать следующий столбец, входы будут притянуты к 5 В КЕУ0иТ=-со1итп; > Проверить, были ли нажаты клавиши unsigned inkeyCvoid) unsigned к; if (k=keys) keys=0; return k; > void init keypad(void) { DDRD=OxfO: INIT.TIHERO; TCCR0=3; TIMSK=2; #asm("sei") > mainO { unsigned k; init keypad(); lcd init(16): lcd putsf("CVAVR Keypad"); Читать состояние клавиш и индицировать код клавиши while (1) { lcd gotoxy(0,1); if (k=inkey()) ( sprintf(buf,"Key code=%Xh",к); lcd puts(buf); else lcd putsf("NO KEY "); delay ms(500); > Работа с алфавитно-цифровым ЖК-индикатором 2x16
Текст программы: ЖК-индикатор подсоединен к выходам порта PORTC смотри файл Icd.h в директории..\1пс Itasm .equ lcd port=0x15 ;PORTC (tendasm Включить в состав программы описания и процедуры для работы с ЖК-индикатором Kinclude <lcd.h> void main(void) ( Инициализировать ЖК-индикатор для работы с 2 строками по 16 символов lcd init(16); Перейти на 2-ю строку ЖК-индикатора lcd gotoxy(0,1); Отобразить сообщение lcd piitsf("Hello world"); Остановиться (бесконечный цикл) while (1); > Использование определенных пользователем символов при работе с ЖК-индикатором со встроенным контроллером Использован ЖК-индикатор со встроенным контроллером, подсоединенный к порту PORTC следующим образом: Использован алфавитно-цифровой ЖК-индикатор. Соединения между ЖК-индикатором и платой со схемой должны быть как можно короче. Текст программы: Включить в программу определения и процедуры для работы со ЖК-индикатором в плате STK200/300 Sinclude <lcdstk.h> typedef unsigned char byte; Таблица для определенного пользователем символа стрелка, указывающая на верхний правый угол flash byte char0[8]={ ObOOOOOOO, Oboooim, ObOOOOOII, ObOOOOIOI, ObOOOIOOI. ObOOIOOOO, ObOIOOOOO. OblOOOOOO}; функция, использованная для определения заданного пользователем символа void define char(byte flash «pc.byte char code) byte i,a: a=(char code«3) 0x40; for (i=0: i<8; i++) lcd write byte(a++,«pc++); > void maln(void) { II Инициализация ЖКИ для работы II с 2 строками по 16 символов в строке lcd init(16); Определить символ О define char(charO,0); Переключиться в режим записи в память отображения (Display RAM) lcd gotoxy(0.0); Отобразить определенный пользователем символ lcd putsf("User defined\nchar О:"); Отобразить определенный пользователем символ О lcd putchar(0); Стоп (бесконечный цикл) while (1); > [0] [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] [85] [86] [87] [88] [89] [90] [91] [92] [93] 0.0011 |