Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
1

PIC. Вывод на ЖК-дисплей

14.11.2013, 07:57. Показов 5511. Ответов 6
Метки нет (Все метки)

Есть код, есть пик-симулятор лсд дисплея. Не работает; на порт а ничего не идет. Почему же так?

Assembler
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
94
95
96
97
98
    list      p=16f877            ; list directive to define processor
__CONFIG   _XT_OSC & _CP_OFF & _PWRTE_OFF & _WDT_OFF
    #include <p16f877.inc>        ; processor specific variable definitions
    
   
 
;================================================================
Var_1       equ        20h            ;
Var_2       equ        21h            ;
;================================================================
#define     RS         PORTA,2        ; вывод RS
#define     E          PORTA,3        ; вывод E
 
            org        0              ;
;================================================================
            clrf       STATUS         ; Настройка выводов МК
            clrf       PORTA          ;
            clrf       PORTB          ;
            bsf        STATUS,RP0     ;
            clrf       TRISA          ;
            clrf       TRISB          ;
            bcf        STATUS,RP0     ;
;-------------------- Пауза 15 msec -----------------------------
            movlw       .121          ;
            movwf       Var_1         ;
            movlw       .20           ;
            movwf       Var_2         ;
            decfsz      Var_1,F       ;
            goto        $-1           ;
            decfsz      Var_2,F       ;
            goto        $-3           ;
            nop                       ;
            nop                       ;
;-----------------------------------------------------------------
; Инициализация LCD
;-----------------------------------------------------------------
            bcf        RS             ; RS=0 режим передачи команд
            movlw      b'00111000'    ; LCD: 8-бит, 2 линии, 5х7 точек
            call       Strobe         ; Строб
 
            movlw      b'00111000'    ;
            call       Strobe         ;
 
            movlw      b'00111000'    ;
            call       Strobe         ;
 
;-----------------------------------------------------------------
            movlw      b'00001100'    ; LCD - вкл., курсор - вкл. и
            call       Strobe         ; не мигает.
 
;-----------------------------------------------------------------
            movlw      b'00000001'    ; Очистить LCD, курсор в первую позицию.
            call       Strobe         ;
 
;---------------- Пауза 2 msec -----------------------------------
            movlw      .151           ; 
            movwf      Var_1          ;
            movlw      .3             ;
            movwf      Var_2          ;
            decfsz     Var_1,F        ;
            goto       $-1            ;
            decfsz     Var_2,F        ;
            goto       $-3            ;
 
;-----------------------------------------------------------------
            movlw      b'10000000'    ; Выбрать первую позицию первой строки
            call       Strobe         ;
 
            bsf        RS             ; Режим вывода данных
            movlw      43h            ; Выводимый символ "С"
            call       Strobe         ;
 
            bcf        RS             ; Режим вывода команд
            movlw      b'11000000'    ; Выбрать первую позицию во второй строке
            call       Strobe         ;
 
            bsf        RS             ; Режим вывода данных
            movlw      45h            ; Выводимый символ "Е"
            call       Strobe         ;
 
Stop:
            goto       Stop           ;
 
;--------------------  Строб под данные/команды -------------------
Strobe:
            movwf      PORTB          ;
            nop                       ; пауза в 1 мксек
            bsf        E              ; установить Е в "1"
            nop                       ;
            bcf        E              ; установить Е в "0"
;--------------------  Пауза 49 мксек -----------------------------
            movlw      .16            ;
            movwf      Var_1          ;
            decfsz     Var_1,F        ;
            goto       $-1            ;
            return                    ;
 
            end
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 07:57
Ответы с готовыми решениями:

Вывод бита PIC контроллер
Помогите с этим заданием: создайте программу, которая будет выводить бит на один из выводов...

Вывод на дисплей
Помогите с задачей, буду признателен за коментарии. Разработать программу, которая выводит на...

Вывод на дисплей
#include &lt;stdio.h&gt; struct person { int year; char posada; char name; }; int...

Вывод переменной на дисплей
Все началось здесь на сообществе. Видимо я совсем тугой. Помогите разобраться. В общем...

6
Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
14.11.2013, 08:44  [ТС] 2
Я компилирую в mplab, хекс-файл открываю симулятором. Код прямиком из учебника, проект скомпилирован под конкретный микроконтроллер. Разве подобная логика неверна?

Низкоуровневое программирование для меня в новинку, но я же не задаю каких-то идиотских вопросов

PIC. Вывод на ЖК-дисплей


 Комментарий модератора 
Загружайте изображения и файлы на форум и прикрепляйте к сообщению.
https://www.cyberforum.ru/abou... post594251
0
970 / 595 / 99
Регистрация: 15.05.2012
Сообщений: 3,521
14.11.2013, 09:07 3
А по сути - почему симулятор? Не в железе пробуете?
0
Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
14.11.2013, 09:12  [ТС] 4
Цитата Сообщение от pyzhman Посмотреть сообщение
А по сути - почему симулятор? Не в железе пробуете?
У меня действительно есть планы сделать вывод на реальный дисплей, но для начала надо бы поучиться самой логике, прежде чем паять схему
0
Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
15.11.2013, 11:22  [ТС] 5
Если кто перейдет сюда из поисковика (потому что я сам его изнасиловал, пока искал решение проблемы) -

Забейте! Перейдите на другой микроконтроллер (как я перешел на AVRовский ATmega8), используйте для кодинга и симуляции что-нибудь типа BasCOM + Proteus в связке. Все отлично работает. Придется немного заморочиться, чтобы прикрутить кириллицу, но, в целом, вывод на жк производится буквально одной командой

Lcd "sample text"
0
765 / 309 / 11
Регистрация: 27.05.2011
Сообщений: 703
19.11.2013, 19:08 6
Цитата Сообщение от Darky Посмотреть сообщение
Если кто перейдет сюда из поисковика (потому что я сам его изнасиловал, пока искал решение проблемы) -

Забейте! Перейдите на другой микроконтроллер....

Lcd "sample text"
Ну уважаемый, если у тебя не вышло, то зачем же других отпугивать, вот выкладываю что делал на курсач,
для PIC с наличием LCD и клавиатурки, может кому-то будет интересно поковырять, комментарии писал для себя, поэтому не придерайтесь..
0
Вложения
Тип файла: rar Proteus (кодовый замок).rar (722.4 Кб, 98 просмотров)
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
21.11.2013, 22:39 7
PHP
1
2
3
4
5
6
7
clrf       STATUS         ; Настройка выводов МК
            clrf       PORTA          ;
            clrf       PORTB          ;
            bsf        STATUS,RP0     ;
            clrf       TRISA          ;
            clrf       TRISB          ;
            bcf        STATUS,RP0     ;
А почему решили что это вся конфигурация портов?
А перевести портА в цифру не бывает ?
Есть даташиит на русском этого контролера, там расписано.

Какой дисплей?
В протеусе почему не делаете?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2013, 22:39

Вывод матрицы на дисплей
p= for Z=1:16 for X=1:16 a=p(Z,:); b=p(X,:); A=sum(xor(a,b)); disp(A); ...

Вывод картинки на дисплей
ребят. только начал изучать прогр под телефон... посмотрите мож кто найдет ошибки... чет компилятор...

Неверный вывод на дисплей
Ребята, вот такая ерунда: есть программа, но там, если повышать температуру от 0 до 10 постепенно,...

Вывод на дисплей цифр по таймеру
Вывод на дисплей цифр по таймеру Через каждую секунду добавлять в первую строку дисплея цифру 1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.