// -------------------------------------------------------------------------
void newline() {
int i;
for(i=0; i<16; i++) LCD_char(' ');
}
// ------------------------------------------------------------------------
// Функция LCD_output производит преобразование кодов ASCII строки символов
//в коды табл. рис. 5.15 для отображения на дисплее и передает эту строку в
//ОЗУ буфера экрана дисплея
// ------------------------------------------------------------------------
void LCD_output(char s[]) {
int n = 0;
while (s[n] != '\0') {
LCD_char(s[n]);
++n;
}
}
// --------------------------------------------------------------------
// Функция delay формирует временную задержку длительностью в указанное
//число мкс
// --------------------------------------------------------------------
void delay(int usec) {
int i,j;
for(i=0; i
for(j=0; j < 7; j++) { }
}
}
// ------------------------------------------------------------------
// Функция write конфигурирует линии порта PORTP для вывода данных на
// дисплей
// ------------------------------------------------------------------
void write() {
DDRP = 0xFF; //Порт PORTP на вывод
}
// -------------------------------------------------------------------------
// Функция data производит запись одного символа в ОЗУ данных дисплея. Перед
// обменом с контроллером дисплея контролируется бит состояния, который
// свидетельствует о том, закончил контроллер выполнение предыдущей команды
// управления или нет. Затем на порт PORTP выставляется код символа и
// формируются необходимые сигналы управления
// -------------------------------------------------------------------------
void data(unsigned char n) {
status_wait();
PORTP = n;
PORTDLC = 0xFF;
PORTDLC = PORTDLC & 0xF7; //C/D в 0
PORTDLC = PORTDLC & 0xFE; //WR в 0
PORTDLC = PORTDLC & 0xFB;
enable();
disable();
}
// -------------------------------------------------------------------
// Функция command производит передачу команды управления в контроллер
// дисплея
// -------------------------------------------------------------------
void command(unsigned char n) {
status_wait();
PORTP = n;
PORTDLC = 0xFF;
PORTDLC = PORTDLC & 0xFE;
enable();
disable();
}
5.7. Управление электрическим двигателем