Составители:
101
"Var_Delay:\n" //== метка Var_Delay
"lda #10\n" //== загрузить в аккумулятор 10
"loop:\n" //== метка loop
"deca\n" //== уменьшить содержимое аккумулятора на 1
"bne loop\n" //== если рез-т не равен 0, повторить с меки loop
"dec %time\n" //== уменьшить переменную time на 1
"bne Var_Delay\n" //== если рез-т не равен 0, повторить с метки
Var_Delay
); //== если обнулился акк. и перем. time выйти из подпрограммы Delay
}
LCDNibble(nib){//== выводим младшую тетраду байта nib в порт С (на LCD
дисплей)
PTC&=0xF0; //== не разрушая 3 управляющих бита обнуляем 4 старых бита
данных
PTC|=nib & 0x0F; //== вписываем 4 новых бита данных
PTC|=1<<LCD_E; //== формируем передний фронт строба Е _|`|_
PTC&=~(1<<LCD_E);//== формируем задний фронт строба Е _|`|_
Delay(1);//== 100us (нужно >= 40)
}
LCDNchar(char ch){//== вывод символа в ЖК дисплнй
LCD_DATA|=1<<LCD_RS;//== будем писать байт данных (бит RS=~C/D=1)
LCDNibble(ch>>4);//== сначала выводим СТАРШУЮ тетраду (nibble)
LCDNibble(ch&0x0F);//== затем выводим МЛАДШУЮ тетраду
}
LCDNctrl(char ch){//== вывод управляющего байта в ЖК дисплнй
LCD_CTRL&=~(1<<LCD_RS);//== будем писать управл. байт (бит
RS=~C/D=0)
LCDNibble(ch>>4);//== то же самое,
LCDNibble(ch&0x0F);//== что и в предыдущем случае
}
LCDNinit(){//== инициализация ЖК дисплея
Delay(150); //== 15 ms
LCDNibble(3);
Delay(41); //== 4.1 ms
LCDNibble(3);
Delay(1); //== 0.1 ms
LCDNibble(3);
LCDNibble(2);
LCDNctrl(0x28);//== 4-х битный режим загрузки ЖКИ (биты DL=0,N=1)
LCDNctrl(0x0C);//== включить дисплей (бит D=1)
LCDNctrl(0x01);//== очистка дисплея
Delay(200); //== 20 ms
LCDNctrl(0x06);//== автоинкремент позиции курсора (бит ID=1)
}
LCDNstrn(char *s){ //== вывод строки в ЖК дисплей
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »