|
|
|
|
Доброго времени суток! Собрал вышеназванную схему, все заработало сразу. Программатор EXTRA-PIC, программа IC-Prog 1.06B. Но, так как использовал имеющийся двухстрочный ЖКИ PC1602F без русских символов, то вместо «Ул.» и «Дом» на экране отображаются иероглифы. Термометр собирал для автомобиля, поэтому хотелось-бы сделать надписи на латинице «ULICA» и «SALON» соответственно. Нашел инструкции на HD44780 с соответствующими таблицами кодов символов, заменил их в файле termo.asm (с сайта журнала Радио), откомпилировал заново в MPLAB IDE v.7.42 (ошибки отсутствовали), но экран индикатора термометра чистый. Заливаю в PIC первоначальную программу – все работает. Это моя первая конструкция на микроконтроллере, опыта программирования вообще нет. Если кто-то может помочь доработать исходный текст программы, то выкладываю исходный и измененный тексты программы.
180527.zip |
|
|
DISPLAY: LINE1 movlw 055 ; "U" call SENDD movlw 04C ; "L" call SENDD movlw 049 ; "I" call SENDD movlw 043 ; "C" call SENDD movlw 041 ; "A" call SENDD movlw ' ' ; Пробел call SENDD movf SIGN1,w ; Изображение "+" или "-" call SENDD movf T_C,w call BINBCD ; Преобразование к десятичному виду movf MSD,W ; Изображение десятка градусов addlw 30 call SENDD movf LSD,W ; Изображение единиц градусов addlw 30 call SENDD movlw 0 ; Изображение символа градусов call SENDD movlw ' ' ; Пробел call SENDD return ------------------------------------------------------------------------- 055 - это с шеснадцатиричном виде, то же 0x55 .55 - это в десятичном виде Это сдвиг по кодировочной таблице для цифр addlw 30 call SENDD
|
|
|
по какой-то причине у вас не правильно компилируется проект - для начала добейтесь чтоб после компиляции "журнального" проекта, .hex был одинаковый с журнальным. --- у вас начинаются ошибки С первой строчки (смотреть .hex в программаторе) - в "журнальной прошивке - 2805 - соответствует : goto 0x05 в вашей - 2821 - сооответствует : goto 0x21 т.е. в вашей прошивке вы пропускаете инициализацию, начинающуюся по адресу 0х05 |
|
|
AnSi: чтоб после компиляции "журнального" проекта, .hex был одинаковый с журнальным Я, в данном случае, делаю наоборот. Деассемблирую хекс, а затем нахожу нужное место, и вношу коррективы. P.S.: Деассемблер есть в том же IC-Prog'е, но я пользуюсь отдельной програмкой (специально для ПИКов, 236Kb). Если кому надо, пишите gregoryrсобакаimailточкаru. |
|
|
Gregory: Деассемблирую хекс, а затем нахожу нужное место, и вношу коррективы. как не крути, компилировать придётся, а компилятор у него глючит.
|
|
|
компилятор у него глючит М-да.. С таким не сталкивался. МПЛАБ никогда ещё не подводил. Может стоит версию обновить? Всё-таки 8-я уже давно вышла. |
|
|
компилить должна и 5-я может у него комп глючит или вирусов нахватался или... |
|
|
Спасибо всем откликнувшимся. Когда пытаюсь откомпилировать журнальный вариант termo.asm, MPASM тоже выдает кучу ошибок: Error[113] : Symbol not previously defined (sendi) (использование не определенной переменной). Можно ли отключить проверку ошибок, или может воспользоваться другим компилятором – попроще?
|
|
|
это издержки "старой" версии компилятора - программа писалась в 2001году "старый" не понимал разницы между sendi - SENDI - а новый теперь ругается на такую небрежность это легко поправить - перепишите все "ошибки" одинаково(одинаковыми буквами)
|
|
|
Добавил описания переменных в журнальном варианте файла termo.asm, больше ничего не делал. При компиляции теперь не ругается, полоска зеленая, но все равно этот файл в начале: :020000040000FA :020000002528B1 :08000800B4298501860183166D отличается от журнального варианта: :020000000528D1 :08000800B4298501860183166D концовки файлов одинаковые. Может в MPLAB что-то не настроено? |
|
|
|
|