Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Уважаемые гуру PIC
Помогите начинающему.
Необходимо по схеме написать прошивку на LCD на русском.
при нажатии кнопок 1,2,3,4,5,6,7, и 8 включаються светики 1,2,3,4,5,6,7, и оптореле на 0,1с и точно также кнопки 9-16.
На дисплее информация о включении к примеру "Прибор включен кнопка 1 ВКЛ" и так далее. при нажатии кнопок 9-16 "Прибор выключен кнопка 9 ВЫКЛ"
С надежой на спасение.
Заранне Благодарен.
Помогите начинающему.
Необходимо по схеме написать прошивку на LCD на русском.
при нажатии кнопок 1,2,3,4,5,6,7, и 8 включаються светики 1,2,3,4,5,6,7, и оптореле на 0,1с и точно также кнопки 9-16.
На дисплее информация о включении к примеру "Прибор включен кнопка 1 ВКЛ" и так далее. при нажатии кнопок 9-16 "Прибор выключен кнопка 9 ВЫКЛ"
С надежой на спасение.
Заранне Благодарен.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Нужна помощь
Ну что же, попробовать можно. Но для начала - вопрос по схеме: опиши как ты себе представляешь работу клавиатуры (подробно, как определяется нажатие конкретной кнопки, какие линии входы, какие выходы, в общем весь процесс).
С уважением, администрация сайта.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Нужна помощь
Посмотрел, оказывается эти темы освещались на сайте:
http://radiohlam.ru/control/dot_matrix_LCD.htm - подключение ЖК
http://radiohlam.ru/control/keyboard.htm - клавиатура
Там также есть примеры программ.
В чём проблема? Почитай, подумай и скомпануй это всё в одну программу.
Представь хотя бы какой-нибудь вариант своей версии, а потом уже с ним будем разбираться.
http://radiohlam.ru/control/dot_matrix_LCD.htm - подключение ЖК
http://radiohlam.ru/control/keyboard.htm - клавиатура
Там также есть примеры программ.
В чём проблема? Почитай, подумай и скомпануй это всё в одну программу.
Представь хотя бы какой-нибудь вариант своей версии, а потом уже с ним будем разбираться.
С уважением, администрация сайта.
Re: Нужна помощь
Огромное спасибо что отликнулись.
По работе схемы.
При нажатии кнопки S1 включается светик 1 и на дисплее показывае инфу в виде "Система включена кнопка 1" и тк останеться в трегерном режиме.
При нажатии кнопки S2 включается светик 2 и на дисплее показывае инфу в виде "Система включена кнопка 2" и так далее по восмую кнопку.
При нажатии кнопки S9 выключается светик 1 и на дисплее показывает "Система выключена кнопка 9" и так далее по 16 кнопку.
Но есть одно но, вместо светиков будет оптореле.
Я тут пробывал писать на бесике но где-то зашел за тучу.
мне надо не тригерный режим а импульсный.
Укажите пожалуйста мои ошибки.
Заранее благодарен.
Define LCD_DREG PORTD ' LCD
Define LCD_RSREG PORT
Define LCD_RSBIT 0
Define LCD_EREG PORT
Define LCD_EBIT 1
ADCON1 = 7 ' PORT
Low PORT.2 ' LCD R/W low
Pause 300 ' LCD
option_reg=0 'PORTB
TRISB=%11110000 'PORTB 7654 3210
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB v PORTC v 0
lcdout $FE,1 'LCD
lcdout $FE,2,"Прибор Включен"
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1 'portc.0
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1 'portc.1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
По работе схемы.
При нажатии кнопки S1 включается светик 1 и на дисплее показывае инфу в виде "Система включена кнопка 1" и тк останеться в трегерном режиме.
При нажатии кнопки S2 включается светик 2 и на дисплее показывае инфу в виде "Система включена кнопка 2" и так далее по восмую кнопку.
При нажатии кнопки S9 выключается светик 1 и на дисплее показывает "Система выключена кнопка 9" и так далее по 16 кнопку.
Но есть одно но, вместо светиков будет оптореле.
Я тут пробывал писать на бесике но где-то зашел за тучу.
мне надо не тригерный режим а импульсный.
Укажите пожалуйста мои ошибки.
Заранее благодарен.
Define LCD_DREG PORTD ' LCD
Define LCD_RSREG PORT
Define LCD_RSBIT 0
Define LCD_EREG PORT
Define LCD_EBIT 1
ADCON1 = 7 ' PORT
Low PORT.2 ' LCD R/W low
Pause 300 ' LCD
option_reg=0 'PORTB
TRISB=%11110000 'PORTB 7654 3210
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB v PORTC v 0
lcdout $FE,1 'LCD
lcdout $FE,2,"Прибор Включен"
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1 'portc.0
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1 'portc.1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Нужна помощь
Конечно я не сильно люблю языки высокого уровня применительно к контроллерам, но всё же попробую разобраться.
Насколько я понимаю, команда
Далее проверяется уровень сигнала на линиях RB4-RB7, командами
Если этого не сделать - откуда появится высокий уровень на входах RB4-RB7 ??? Судя по всему они один раз устанавливаются в ноль и всё: portb=0:portc=0.
Далее, почему все команды проверки идут подряд:
А различие это делается так:
Сначала устанавливают высокий уровень на выходе RB0 (на остальных выходах низкий уровень) и проверяют входы.
Таким образом проверяют нажатие кнопок SW1-SW4.
Потом переключают выход RB0 в 0, а в 1 устанавливают выход RB1 и опять проверяют входы.
В этом случае проверяется нажатие кнопок SW5-SW8 и т.д.
А чтобы не было к.з. (если вдруг нажмут две кнопки одновременно, одна из которых подключена к выходу, установленному в 1, а другая к выходу, установленному в 0) делают диодную развязку.
Насколько я понимаю, команда
настраивает выводы порта B RB0-RB3 - выходы, RB4-RB7 - входы. Ладно.TRISB=%11110000 'PORTB
Далее проверяется уровень сигнала на линиях RB4-RB7, командами
и т.д. Но я нигде не увидел, чтобы выходы RB0-RB3 устанавливались в 1.if portb.4=0 then SW1=1
Если этого не сделать - откуда появится высокий уровень на входах RB4-RB7 ??? Судя по всему они один раз устанавливаются в ноль и всё: portb=0:portc=0.
Далее, почему все команды проверки идут подряд:
К одному входу подключены четыре кнопки. Как различить, какая кнопка нажата?if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
А различие это делается так:
Сначала устанавливают высокий уровень на выходе RB0 (на остальных выходах низкий уровень) и проверяют входы.
Таким образом проверяют нажатие кнопок SW1-SW4.
Потом переключают выход RB0 в 0, а в 1 устанавливают выход RB1 и опять проверяют входы.
В этом случае проверяется нажатие кнопок SW5-SW8 и т.д.
А чтобы не было к.з. (если вдруг нажмут две кнопки одновременно, одна из которых подключена к выходу, установленному в 1, а другая к выходу, установленному в 0) делают диодную развязку.
С уважением, администрация сайта.
Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Еще раз спасибо за помощь!
попробывал дописать
и вот что получилось.
PCON=%00000000
define osc 20
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
ADCON1 = 7
Low PORTE.2
Pause 300
option_reg=0
TRISB=%11110000 'PORTB
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB
lcdout $FE,1 'LCD
lcdout $FE,2," Прибор Включен."
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
portb=%11111110
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
portb=%11111101
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
portb=%11111011
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
portb=%11110111
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
degisken0:
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
Только у меня вопрос: будет ли распозноваться русский язык?
Во тут у меня заход за тучи.
попробывал дописать
и вот что получилось.
PCON=%00000000
define osc 20
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
ADCON1 = 7
Low PORTE.2
Pause 300
option_reg=0
TRISB=%11110000 'PORTB
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB
lcdout $FE,1 'LCD
lcdout $FE,2," Прибор Включен."
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
portb=%11111110
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
portb=%11111101
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
portb=%11111011
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
portb=%11110111
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
degisken0:
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
Только у меня вопрос: будет ли распозноваться русский язык?
Во тут у меня заход за тучи.
Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Еще раз спасибо за помощь!
попробывал дописать
и вот что получилось.
PCON=%00000000
define osc 20
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
ADCON1 = 7
Low PORTE.2
Pause 300
option_reg=0
TRISB=%11110000 'PORTB
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB
lcdout $FE,1 'LCD
lcdout $FE,2," Прибор Включен."
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
portb=%11111110
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
portb=%11111101
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
portb=%11111011
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
portb=%11110111
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
degisken0:
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
Только у меня вопрос: будет ли распозноваться русский язык?
Во тут у меня заход за тучи.
попробывал дописать
и вот что получилось.
PCON=%00000000
define osc 20
Define LCD_DREG PORTD
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
ADCON1 = 7
Low PORTE.2
Pause 300
option_reg=0
TRISB=%11110000 'PORTB
TRISC=%00000000 'PORTC
portb=0:portc=0 'PORTB
lcdout $FE,1 'LCD
lcdout $FE,2," Прибор Включен."
SW1 var byte
SW2 var byte
SW3 var byte
SW4 var byte
SW5 var byte
SW6 var byte
SW7 var byte
SW8 var byte
SW9 var byte
SW10 var byte
SW11 var byte
SW12 var byte
SW13 var byte
SW14 var byte
SW15 var byte
SW16 var byte
portb=%11111110
if portb.4=0 then SW1=1
if portb.5=0 then SW2=1
if portb.6=0 then SW3=1
if portb.7=0 then SW4=1
portb=%11111101
if portb.4=0 then SW5=1
if portb.5=0 then SW6=1
if portb.6=0 then SW7=1
if portb.7=0 then SW8=1
portb=%11111011
if portb.4=0 then SW9=1
if portb.5=0 then SW10=1
if portb.6=0 then SW11=1
if portb.7=0 then SW12=1
portb=%11110111
if portb.4=0 then SW13=1
if portb.5=0 then SW14=1
if portb.6=0 then SW15=1
if portb.7=0 then SW16=1
degisken0:
SW1=0:SW2=0:SW3=0:SW4=0:SW5=0:SW6=0:SW7=0:SW8=0:SW9=0
SW10=0:SW11=0:SW12=0:SW13=0:SW14=0:SW15=0:SW16=0
return
lcdgoster:
if SW1=1 then lcdout $FE,$C0,"Система включена кнопка 1":portc.0=1
if SW2=1 then lcdout $FE,$C0,"Система включена кнопка 2":portc.1=1
if SW3=1 then lcdout $FE,$C0,"Система включена кнопка 3":portc.2=1
if SW4=1 then lcdout $FE,$C0,"Система включена кнопка 4":portc.3=1
if SW5=1 then lcdout $FE,$C0,"Система включена кнопка 5":portc.4=1
if SW6=1 then lcdout $FE,$C0,"Система включена кнопка 6":portc.5=1
if SW7=1 then lcdout $FE,$C0,"Система включена кнопка 7":portc.6=1
if SW8=1 then lcdout $FE,$C0,"Система включена кнопка 8":portc.7=1
if SW9=1 then lcdout $FE,$C0,"Система выключена кнопка 9":portc.0=0
if SW10=1 then lcdout $FE,$C0,"Система выключена кнопка 10":portc.1=0
if SW11=1 then lcdout $FE,$C0,"Система выключена кнопка 11":portc.2=0
if SW12=1 then lcdout $FE,$C0,"Система выключена кнопка 12":portc.3=0
if SW13=1 then lcdout $FE,$C0,"Система выключена кнопка 13":portc.4=0
if SW14=1 then lcdout $FE,$C0,"Система выключена кнопка 14":portc.5=0
if SW15=1 then lcdout $FE,$C0,"Система выключена кнопка 15":portc.6=0
if SW16=1 then lcdout $FE,$C0,"Система выключена кнопка 16":portc.7=0
return
end
Только у меня вопрос: будет ли распозноваться русский язык?
Во тут у меня заход за тучи.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Будет ли распознаваться русский язык зависит от самого LCD. Если туда зашит русский язык - будет распознаваться, если не зашит - не будет.
Есть ещё правда в LCD область памяти, куда можно самому что хочешь зашить, но во-первых, она всего на несколько символов, а во-вторых - лишний код писать однако.
Есть ещё правда в LCD область памяти, куда можно самому что хочешь зашить, но во-первых, она всего на несколько символов, а во-вторых - лишний код писать однако.
С уважением, администрация сайта.
-
- Читатель
- Сообщения: 3
- Зарегистрирован: 03 май 2010, 18:55
- Откуда: Екатеринбург
- Контактная информация:
Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877
[img]
Никакого захода за тучи не может быть. Опрашивай его с интервалом, по которому ты успеешь записать его символы на бумажко Начерти листочек формата А4 и выводи каждую группу символов примерно по алгоритму: вывод первых 16 знаков по порядку -> кольцо программы с опросом кнопки -> кнопку нажал -> инкремент (в нужном количестве) адресов на следующие 16 символов и так далее. Если нет от дисплея карты, так и делаем. Вот я сваял из дисплея от телефона. На твоём кстати камне. Всё гуд. Может поможет чем? У меня на ассемблере. И вообще надо на сайте выложить. Радиохлам всётаки А как выложить архив, 3 метра весит?mg12 писал(а): Только у меня вопрос: будет ли распозноваться русский язык?
Во тут у меня заход за тучи.
-
- Читатель
- Сообщения: 3
- Зарегистрирован: 03 май 2010, 18:55
- Откуда: Екатеринбург
- Контактная информация:
Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877
Вопрос к администратору: Уважаемый админ, а как выложить архив с проектом?