Автор Сообщение
Пост N: 117
Зарегистрирован: 22.12.06
Откуда: Россия, Воркута
Рейтинг:
0
Фото:
Отправлено: 09.02.07 16:36. Заголовок: Программа вывода данных на дисплей от сотового телефона NOKIA 3310
;************************************************************************************************** ; Программа вывода данных на дисплей от сотового телефона NOKIA 3310 ; Контроллер дисплея PCD8544 матрица 48х84 точки. ; Микроконтроллер PIC16F873, частота кварцевого генератора 4 МГц. ;************************************************************************************************** LIST p=16f873 __CONFIG 3731H ;================================================================================================== ; Описание регистров специального назначения. ;================================================================================================== PC equ 02h ; Счетчик команд. Status equ 03h ; Регистр Status. PortC equ 07h TrisC equ 07h Adcon0 equ 1Fh ;================================================================================================== ; Описание регистров общего назначения ;================================================================================================== Bit equ 71h ; Регистр данных выводимых на LCD. Sec10 equ 72h ; Количество бит, для последовательной передачи. Count equ 73h ; Кол-во выводимых символов на экран. Sec equ 74h ; Кол-во выыодимых пробелов при очистке дисплея. ;================================================================================================== ; Описание битов. ;================================================================================================== RP0 equ 5 RP1 equ 6 C equ 0 ;================================================================================================== ; Подготовительные операции для запуска программы. ;================================================================================================== org 0 nop ; NOP для ICD2 goto START ;================================================================================================== ; Данные для вывода на дисплей. ;================================================================================================== TEXT_1 addwf PC,F dt 0H,0H,0xFF,0xFF,0x13,0x1F,0x0E,0H,0H,0x7E,0xFF,0xC3,0xFF,0x7E, dt 0H,0H,0x7E,0xFF,0xC3,0xC3,0x66,0H,0H,0xC0,0x7E,0x01,0xFF,0xFF, dt 0H,0H,0xFF,0xFF,0x10,0x08,0xFF,0H,0H,0xFF,0xFF,0x08,0x14,0xE3 ;-------------------------------------------------------------------------------------------------- ; Начало выполнения программы. ; Инициализация LCD модуля PCD8544. ; Этот кусок программы выполняется один раз при загрузке. ;-------------------------------------------------------------------------------------------------- START clrf Adcon0 ; Выключение модуля АЦП. bsf Status,RP0 ; Банк 1 clrf TrisC ; Выводы порта C работают на выход. bcf Status,RP0 ; Банк 0. clrf PortC ; Очистка порта C ;================================================================================================== ; Команды инициализации дисплея NOKIA 3310. ;================================================================================================== INIT bsf PortC,1 ; Послать 1 на LCD RES. movlw 21h ; 00100001 PD=0, V=0, H=1 call COM ; Инициализация LCD_1 movlw 0xC5 ; 10101001 Запись Vop в регистр. call COM ; Инициализация LCD_2 movlw .6 ; 00000110 Температурный коэф.=2. call COM ; Инициализация LCD_3 movlw 13h ; 00010011 Установка Bias n=4. call COM ; Инициализация LCD_4 movlw 20h ; 00100000 PD=0, V=0, H=0 call COM ; Инициализация LCD_5 movlw 0x0C ; 10101001 Запись D=1, E=0 в регистр. call COM ; Инициализация LCD_2 call CLEAR ; Очистка дисплея от мусора, после инициализации. call CLEAR call CLEAR call CLEAR ;================================================================================================== ; Команды выбора знакоместа ;================================================================================================== NEW movlw .148 ; 100000000 Выбор ячейки RAM по X. call COM ; Инициализация LCD_6 movlw .66 ; 010000000 Выбор ячейки RAM по Y. call COM ; Инициализация LCD_7 ;================================================================================================== ; Начало текста выводимого на индикацию. ;================================================================================================== movlw .42 ; Запись числа .16 (количества выводимых в строку movwf Count ; символов) в регистр Count. WR_1 movf Count,W ; Копирование содержимого регистра Count в W. sublw .42 ; .16-Count=... (результат записывается в W). call TEXT_1 ; Условный переход в ПП TEXT_1. call DAT decfsz Count,F ; Подготовка к выводу на индикацию goto WR_1 ; следующего символа таблицы. goto NEW ;================================================================================================== ; ПП вывода данных на индикацию в LCD. ;================================================================================================== COM bcf PortC,0 ; Метка передача команд D/C=0. DAT movwf Bit movlw .1 ; Метка передачи данных D/C=1. movwf Sec10 NEXT movlw .9 ; Запись в W константы. subwf Sec10,W ; Сравнение (Sec10-9). btfsc Status,C ; Проверяем перенос С был или нет goto EXIT ; Если >9 выход btfsc Bit,7 ; Усли нет, то проверяем 7 бит регистра Bit. bsf PortC,4 ; Sdin = 1. btfss Bit,7 ; проверяем 7 бит регистра Bit bcf PortC,4 ; Sdin = 0. bcf Status,C ; Опустим флаг переноса. rlf Bit,F ; Сдвинем данные влево. bsf PortC,5 ; Sck = 1 Стробирующий импульс. nop bcf PortC,5 ; Sck = 0 incfsz Sec10,F ; Инкремент содержимого регистра Sec10. goto NEXT EXIT bsf PortC,0 ; D/C = 1. return ; Выход из ПП вывода данных. ;================================================================================================== ; ПП предварительной очистки дисплея от мусора после инициализации. ;================================================================================================== CLEAR movlw .254 movwf Sec BLANK movlw .0 call DAT decfsz Sec,F goto BLANK return ;************************************************************************************************** end
Ответов - 11
[только новые ]
постоянный участник
Пост N: 196
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
0
Отправлено: 09.02.07 20:18. Заголовок: Re:
Это, я так понимаю, Вы дисплей "домучили"? Тенкс! Только можно, конфигурацию по-подробней расшифровать. Кстати, поглядел тут немного, нет в продаже отдельно дисплеев. Впрочем, сам телефон стоит около 900 рублей.
Пост N: 120
Зарегистрирован: 22.12.06
Откуда: Россия, Воркута
Рейтинг:
0
Фото:
Отправлено: 10.02.07 13:35. Заголовок: Re:
__CONFIG 3731H CP1_OFF, DEBUG_ON, WRT_ON, CPD_OFF, LVP_OFF, BODEN_OFF, -PWRTE_OFF, WDTE_OFF, XT_OSC 0011011100110001
постоянный участник
Пост N: 7
Зарегистрирован: 05.06.08
Откуда: Россия, Челябинская обл., г. Златоуст
Рейтинг:
0
Отправлено: 01.02.09 10:32. Заголовок: Добрался наконец до ..
Добрался наконец до графических индикаторов Ребята, а эту прогу кто нибудь в железе побовал? Не понял куда прикрутить сигнал SCE Roslik если не трудно нарисуй пожалуйста схему подключения индикатора к PIC.
постоянный участник
Пост N: 97
Зарегистрирован: 13.12.07
Откуда: г.Макеевка
Рейтинг:
1
Отправлено: 02.02.09 10:24. Заголовок: Diam пишет: Не поня..
Diam пишет:
цитата: Не понял куда прикрутить сигнал SCE
Судя по схеме на ПИК12Ф629 сигнал SCE соединяется с GND, 8 нога ПИКа там же.
постоянный участник
Пост N: 9
Зарегистрирован: 05.06.08
Откуда: Россия, Челябинская обл., г. Златоуст
Рейтинг:
0
Отправлено: 02.02.09 12:21. Заголовок: сигнал SCE соединяет..
цитата: сигнал SCE соединяется с GND
Сейчас попробую.
постоянный участник
Пост N: 99
Зарегистрирован: 13.12.07
Откуда: г.Макеевка
Рейтинг:
1
Отправлено: 02.02.09 13:11. Заголовок: У тебя схема-то есть..
У тебя схема-то есть?
постоянный участник
Пост N: 10
Зарегистрирован: 05.06.08
Откуда: Россия, Челябинская обл., г. Златоуст
Рейтинг:
0
Отправлено: 02.02.09 13:42. Заголовок: Так прогу то читать ..
Так прогу то читать умею, там все расписано
А ведь и правда
цитата: сигнал SCE соединяется с GND
Спасибо РОСЛИК (так написано на экране)
постоянный участник
Пост N: 100
Зарегистрирован: 13.12.07
Откуда: г.Макеевка
Рейтинг:
1
Отправлено: 02.02.09 15:53. Заголовок: Diam пишет: Спасибо..
Diam пишет:
цитата: Спасибо РОСЛИК (так написано на экране)
Ух ты!, сейчас попробую и себе такое сделать, но пока на Протеусе, стекло завтра будет.
И еще ПИК16Ф873, можно сделать и на 12Ф629
постоянный участник
Пост N: 101
Зарегистрирован: 13.12.07
Откуда: г.Макеевка
Рейтинг:
1
Отправлено: 02.02.09 16:17. Заголовок: Viktor_VK пишет: Сп..
Viktor_VK пишет:
цитата: Спасибо РОСЛИК (так написано на экране)
У меня в Протеусе получилось : "РОСЛИК"
Отправлено: 02.02.09 16:41. Заголовок: Всё правильно получи..
Всё правильно получилось!
постоянный участник
Пост N: 11
Зарегистрирован: 05.06.08
Откуда: Россия, Челябинская обл., г. Златоуст
Рейтинг:
0
Отправлено: 02.02.09 16:58. Заголовок: РОСЛИК вот про эти с..
РОСЛИК вот про эти строки поподробнее можно:
; Команды выбора знакоместа ;=============================================== NEW movlw .148 ; 100000000 Выбор ячейки RAM по X. call COM ; Инициализация LCD_6 movlw .66 ; 010000000 Выбор ячейки RAM по Y. call COM ; Инициализация LCD_7 Что такое LCD_6, LCD_7
Почему .148 равно 100000000
All. Для вставки текста программ пользуйтесь кнопками "Моноширинный шрифт". Их аж две штуки (вторая - с прокруткой, первая - без). /Dmitry Dubrovenko/
Ответ:
1
2
3
4
5
6
7
8
9
показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:
зарегистрироваться