1- #include "MC1368c-multi.h"
1+ #include "MC1368c-multi.h"
22 // 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - " "
33unsigned char lcd_symbols [38 ]= {0x7D ,0x05 ,0x5B ,0x1F ,0x27 ,0x3E ,0x7E ,0x15 ,0x7F ,0x3F ,0x77 ,0x6E ,0x78 ,0x4F ,0x7A ,0x72 ,0x7C ,0x67 ,0x05 ,0x4D ,0x63 ,0x68 ,0x54 ,0x46 ,0x7D ,0x73 ,0x37 ,0x42 ,0x3E ,0x6A ,0x6D ,0x4C ,0x5C ,0x65 ,0x2F ,0x59 ,0x02 ,0x0 };
44
@@ -21,7 +21,7 @@ while (len!=0)
2121
2222void LCD_init (void )
2323{
24- //âêëþ÷àåì ñèñòåìó (ïîäêëþ÷àåì îñíîâíîé òàéìåð ê êîíòðîëëåðó )
24+ //включаем систему (подключаем основной таймер к контроллеру )
2525LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
2626_delay_us (2 );
2727LCD_write_byte (0x8 ,4 );//0b1000
@@ -30,7 +30,7 @@ _delay_us(2);
3030LCD_PORT |=(1 <<CS_PIN ); //CS_PIN
3131_delay_us (2 );
3232
33- //âûáèðàåì ðåæèì ðàáîòû (â ýòîé êîìàíäå VLCD x 1/3, ìóëüòèïëåêñ 1:4)
33+ //выбираем режим работы (в этой команде VLCD x 1/3, мультиплекс 1:4)
3434LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
3535_delay_us (2 );
3636LCD_write_byte (0x8 ,4 ); //0b1000
@@ -39,7 +39,7 @@ _delay_us(2);
3939LCD_PORT |=(1 <<CS_PIN ); //CS_PIN
4040_delay_us (2 );
4141
42- //âêëþ÷àåì LCD (ïîäêëþ÷àåì îñíîâíîé òàéìåð ê äðàéâåðó LCD)
42+ //включаем LCD (подключаем основной таймер к драйверу LCD)
4343LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
4444_delay_us (2 );
4545LCD_write_byte (0x8 ,4 );//0b1000
@@ -53,12 +53,12 @@ void LCD_clear(void){
5353unsigned char i ;
5454LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
5555_delay_us (2 );
56- // êîìàíäà íà ðàçðåøåíèå çàïèñè â ðåãèñòð äàííûõ LCD
56+ // команда на разрешение записи в регистр данных LCD
5757LCD_write_byte (0x5 ,3 );//0b101
58- // ïåðåäà÷à íà÷àëüíîãî àäðåñà, ñ êîòîðîãî äàííûå ïîìåùàþòñÿ â ðåãèñòð äàííûõ LCD
58+ // передача начального адреса, с которого данные помещаются в регистр данных LCD
5959LCD_write_byte (0 ,6 );//0b000000
60- //îòïðàâëÿåì 16 ðàç â èíäèêàòîð ïóñòîé áàéò, ÷òîá ïîãàñèòü âñå LCD ñåãìåíòû è ìíåìîíè÷åñêèå ñèìâîëû, òî åñòü î÷èùàåì äèñïëåé .
61- //Ñ÷åò÷èê àäðåñà â èíäèêàòîðå àâòîìàòèåñêè óâåëè÷èâàåò çíà÷åíèå íà 1 çà êàæäûå 4 áèòà .
60+ //отправляем 16 раз в индикатор пустой байт, чтоб погасить все LCD сегменты и мнемонические символы, то есть очищаем дисплей .
61+ //Счетчик адреса в индикаторе автоматиески увеличивает значение на 1 за каждые 4 бита .
6262for (i = 0 ; i < 16 ;i ++ )
6363{
6464LCD_write_byte (0 ,8 );//0b00000000
@@ -73,9 +73,9 @@ LCD_PORT&=~(1<<CS_PIN);
7373_delay_us (2 );
7474LCD_write_byte (0x8 ,4 ); // 0b1000
7575if (on_off == 1 )
76- {LCD_write_byte (0x6 ,8 );} //0b00000110 âêëþ÷èòü äèñïëåé
76+ {LCD_write_byte (0x6 ,8 );} //0b00000110 включить дисплей
7777else
78- {LCD_write_byte (0x4 ,8 );} //0b00000100 âûêëþ÷èòü äèñïëåé
78+ {LCD_write_byte (0x4 ,8 );} //0b00000100 выключить дисплей
7979_delay_us (2 );
8080LCD_PORT |=(1 <<CS_PIN );
8181}
@@ -90,11 +90,11 @@ unsigned char a;
9090
9191LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
9292_delay_us (2 );
93- // êîìàíäà íà ðàçðåøåíèå çàïèñè â ðåãèñòð äàííûõ LCD
93+ // команда на разрешение записи в регистр данных LCD
9494LCD_write_byte (0x5 ,3 );//0b101
95- LCD_write_byte ((pos <<1 ),6 );//âû÷èñëÿåì íà÷àëüíûé àäðåñ ÿ÷åéêè ðåãèñòðà îòíîñèòåëüíî ïîçèöèè ñèìâîëà íà äèñïëåå è çàïèñûâàåì åãî â äèñïëåé .
95+ LCD_write_byte ((pos <<1 ),6 );//вычисляем начальный адрес ячейки регистра относительно позиции символа на дисплее и записываем его в дисплей .
9696
97- // ðàñïå÷àòûâàåì áóôåð ñ óêàçàííîé ïîçèöèè pos è íà óêàçàííóþ äëèíó len
97+ // распечатываем буфер с указанной позиции pos и на указанную длину len
9898for (a = pos ;a < (len + pos );a ++ )
9999{
100100LCD_write_byte (lcd_buffer [a ],8 );
@@ -113,8 +113,8 @@ void LCD_print_digit(int digit, unsigned char pos_dig,unsigned char len,unsigned
113113while (str [i ]!= 0 )
114114{
115115 ascii_conv = str [i ]- 0x30 ;
116- if (ascii_conv == 0xFD ){ascii_conv = 0x24 ;} // äåøèôðóåì çíàê ìèíóñ
117- if (ascii_conv >=0x31 ){ascii_conv = ascii_conv - 0x27 ;} // äåøèôðóåì áóêâû äëÿ HEX (radix 16)
116+ if (ascii_conv == 0xFD ){ascii_conv = 0x24 ;} // дешифруем знак минус
117+ if (ascii_conv >=0x31 ){ascii_conv = ascii_conv - 0x27 ;} // дешифруем буквы для HEX (radix 16)
118118 lcd_buffer [i + pos_dig ]= (lcd_buffer [i + pos_dig ]& 0x80 )|((lcd_symbols [ascii_conv ])& mask );
119119 i ++ ;
120120}
@@ -130,8 +130,8 @@ while (string[i]!=0)
130130{
131131 ascii_conv = string [i ]- 0x30 ;
132132 if (ascii_conv >=0x11 ){ascii_conv = ascii_conv - 0x07 ;}
133- if (ascii_conv == 0xF6 ){ascii_conv = 0x24 ;} // äåøèôðóåì çíàê ìèíóñ
134- if (ascii_conv == 0xE9 ){ascii_conv = 0x25 ;} // äåøèôðóåì ïðîáåë
133+ if (ascii_conv == 0xF6 ){ascii_conv = 0x24 ;} // дешифруем знак минус
134+ if (ascii_conv == 0xE9 ){ascii_conv = 0x25 ;} // дешифруем пробел
135135
136136 lcd_buffer [i + pos_str ]= (lcd_buffer [i + pos_str ]& 0x80 )|((lcd_symbols [ascii_conv ])& mask );
137137 i ++ ;
@@ -150,11 +150,11 @@ if (on_off==0){lcd_buffer[symb_pos[symbol]]=lcd_buffer[symb_pos[symbol]]&~0x80;}
150150
151151LCD_PORT &=~(1 <<CS_PIN ); //CS_PIN
152152_delay_us (2 );
153- // êîìàíäà íà ðàçðåøåíèå çàïèñè â ðåãèñòð äàííûõ LCD
153+ // команда на разрешение записи в регистр данных LCD
154154LCD_write_byte (0x5 ,3 );//0b101
155- LCD_write_byte ((address <<1 ),6 );//âû÷èñëÿåì íà÷àëüíûé àäðåñ ÿ÷åéêè ðåãèñòðà, îòíîñèòåëüíî ïîçèöèè ìíåìîñèìâîëà íà äèñïëåå, è çàïèñûâàåì åãî â äèñïëåé .
155+ LCD_write_byte ((address <<1 ),6 );//вычисляем начальный адрес ячейки регистра, относительно позиции мнемосимвола на дисплее, и записываем его в дисплей .
156156
157- LCD_write_byte (lcd_buffer [symb_pos [symbol ]],8 ); //îòïðàâëÿåì óêàçàííûé áàéò ñ èçìåíåííûì 7 áèòîì èç áóôåðà â äèñïëåé, ÷òîá çàæå÷ü èëè ïîãàñèòü ìíåìîñèìâîë .
157+ LCD_write_byte (lcd_buffer [symb_pos [symbol ]],8 ); //отправляем указанный байт с измененным 7 битом из буфера в дисплей, чтоб зажечь или погасить мнемосимвол .
158158
159159_delay_us (2 );
160160LCD_PORT |=(1 <<CS_PIN ); //CS_PIN
0 commit comments