BASCOM AVR в вопросах и ответах
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
увы,никак не получается...мрфшипит-значит инициализация проходит норм,но вот жучков не слышит....пробовал обе ссылки которые дал max50
все работает!!!все слышно четко-не правильно считал частоту
все работает!!!все слышно четко-не правильно считал частоту
Re: BASCOM AVR в вопросах и ответах
добрый день пытаюсь освоить bascom но что то плохо доходит
поэтому имею много вопросов
пишу программу которая при нажатии кнопки (в будущем прием кода с компа)должна передать данные
(температуру с нескольких датчиков ,открыты или закрыты створки и т.п.)+при определенной посылке данных должна сама будет открыть или закрыть створки.
вопрос как это организовать. Нарисовал в протеусе простенькую схемку два контролера (атмега 16) один приемник второй передатчик.
пока на передатчике кнопка не нажата он передает но передает не то что нужно а всякие крокозяблы соответсвенно приемник их принимает но не понимет их после нажатия кнопки передатчик начинает передовать другие кракозяблы причем постоянно ,а должен был отправить только один раз.
передатчик
$crystal = 400000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Declare Sub Selectmode()
Declare Sub Pritcode()
Butt Alias Pinb.1
Config Butt = Input
Enable Urxc
Enable Interrupts
'*****************************переменные********************************
Dim Y As Byte
Dim A As Word
Dim Resp2 As Word
Dim Resp As Byte
Dim Resp1 As String * 15
Resp1 = "193"
'Resp2 = Bin(resp2)
Do
Call Selectmode() 'проверка нажатия кнопки
If Y = 1 Then 'усли флаг нажатия кнопки =1 то
Call Pritcode() ' переходим на подпрограмму передачи
Else ' если нет то отправляем а
Print "A"
End If
Loop
'
'
Sub Selectmode() '
If Butt = 1 Then ' если нажата то флаг =1
Y = 1 '
Print "193" ' если нет то флаг 0
Else
Y = 0 '
End If '
End Sub ' если флаг был =1 то мы попали сюда
Sub Pritcode() ' сбросили флаг
Y = 0 ' отправили данные
Printbin Resp2 '
'вышли отсюда
End Sub
приемник
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32
'* ***********************настройка uart*********************************
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'************************************настройка LCD**********************
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Porta.7 , Rs = Porta.5
Config Lcd = 20 * 4
Initlcd
Cls
'************************************ проверка LCD**********************
Dim Recv As Byte
Dim Recv1 As String * 10
Do
If Ischarwaiting() = 1 Then
Print Recv
Recv1=str(recv)
Lcd Recv
End If
Loop
End
передавть данные нужно будет в ASCII
поэтому имею много вопросов
пишу программу которая при нажатии кнопки (в будущем прием кода с компа)должна передать данные
(температуру с нескольких датчиков ,открыты или закрыты створки и т.п.)+при определенной посылке данных должна сама будет открыть или закрыть створки.
вопрос как это организовать. Нарисовал в протеусе простенькую схемку два контролера (атмега 16) один приемник второй передатчик.
пока на передатчике кнопка не нажата он передает но передает не то что нужно а всякие крокозяблы соответсвенно приемник их принимает но не понимет их после нажатия кнопки передатчик начинает передовать другие кракозяблы причем постоянно ,а должен был отправить только один раз.
передатчик
Спойлер
$regfile = "m16def.dat"$crystal = 400000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Declare Sub Selectmode()
Declare Sub Pritcode()
Butt Alias Pinb.1
Config Butt = Input
Enable Urxc
Enable Interrupts
'*****************************переменные********************************
Dim Y As Byte
Dim A As Word
Dim Resp2 As Word
Dim Resp As Byte
Dim Resp1 As String * 15
Resp1 = "193"
'Resp2 = Bin(resp2)
Do
Call Selectmode() 'проверка нажатия кнопки
If Y = 1 Then 'усли флаг нажатия кнопки =1 то
Call Pritcode() ' переходим на подпрограмму передачи
Else ' если нет то отправляем а
Print "A"
End If
Loop
'
'
Sub Selectmode() '
If Butt = 1 Then ' если нажата то флаг =1
Y = 1 '
Print "193" ' если нет то флаг 0
Else
Y = 0 '
End If '
End Sub ' если флаг был =1 то мы попали сюда
Sub Pritcode() ' сбросили флаг
Y = 0 ' отправили данные
Printbin Resp2 '
'вышли отсюда
End Sub
приемник
Спойлер
$regfile = "m16def.dat"$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32
'* ***********************настройка uart*********************************
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'************************************настройка LCD**********************
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Porta.7 , Rs = Porta.5
Config Lcd = 20 * 4
Initlcd
Cls
'************************************ проверка LCD**********************
Dim Recv As Byte
Dim Recv1 As String * 10
Do
If Ischarwaiting() = 1 Then
Print Recv
Recv1=str(recv)
Lcd Recv
End If
Loop
End
передавть данные нужно будет в ASCII
Re: BASCOM AVR в вопросах и ответах
Котики, мяу
Как шить Attiny программой из Bascom-avr через ардуину?
Хочу использовать плату arduino UNO просто как программатор для внешнего Attiny2313(не того, который на ардуине MEGA16U-->ATMega328P) чипа, шить из bascom-avr. Ведь это возможно? На сколько я понимаю, в bascom-е указываю что программатор — ардуина, выбираю скорость передачи, камушек (на сколько я понимаю тот, который буду программировать... а вот тип ардуины с камнем в нём надо где-то указывать?), ардуину подсоединяю к "внешнему" контроллеру через ISP, подключаю питание контроллера и шью. Верно? Может есть какая-то инструкция для "чайников". Я честно искал инфу, пересмотрел форум, пытался разобраться сам, но тема совсем новая и сразу такая запутанная задача.
Моё почтение!
Как шить Attiny программой из Bascom-avr через ардуину?
Хочу использовать плату arduino UNO просто как программатор для внешнего Attiny2313(не того, который на ардуине MEGA16U-->ATMega328P) чипа, шить из bascom-avr. Ведь это возможно? На сколько я понимаю, в bascom-е указываю что программатор — ардуина, выбираю скорость передачи, камушек (на сколько я понимаю тот, который буду программировать... а вот тип ардуины с камнем в нём надо где-то указывать?), ардуину подсоединяю к "внешнему" контроллеру через ISP, подключаю питание контроллера и шью. Верно? Может есть какая-то инструкция для "чайников". Я честно искал инфу, пересмотрел форум, пытался разобраться сам, но тема совсем новая и сразу такая запутанная задача.
Моё почтение!
Re: BASCOM AVR в вопросах и ответах
Если в МК будет загрузчик от arduino, то в принципе реально. Но этот загрузчик нужно прошить в МК, а для этого необходим программатор. И кроме того придется вносить изменения в схему arduino чтобы отключить имеющийся контроллер от USB-UART и подключить прошиваемый.profiler писал(а):Ведь это возможно?
Это возможно если прошить в arduino прошивку которая будет выполнять роль программатора.profiler писал(а):ардуину подсоединяю к "внешнему" контроллеру через ISP, подключаю питание контроллера и шью.
Но по моему, проще собрать или купить нормальный программатор.
Re: BASCOM AVR в вопросах и ответах
Вот как сделать программатор из arduino
http://habrahabr.ru/post/144620/
http://habrahabr.ru/post/144620/
-
Greider
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс фев 01, 2015 09:12:41
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
У меня есть счетчик на ATtiny24- нажимаешь кнопку, семисегментный индикатор считает нажатия.
И вот мне захотелось его озвучить. Вообще я занялся МК не то что бы "из любви к искусству", а из прикладной надобности, хотя это все очень интересно, но времени на это все немного, поэтому и желательно на Bascom'е.
Т.е. задача у меня сейчас такая - просто отладить по нажатию кнопки воспроизведение файла с SD-карты (озвучивает число) в качестве, достаточном для передачи разборчивой речи.
Какой минимальный МК подойдет? Может, есть простой пример, который можно взять за основу?
Пока наиболее близкий пример нашел такой SD WAV плеер с управлением по UART, но он на 32-й меге, использует библиотеку AVR-DOS.BAS (я читал что она требовательна к производительности), а хотелось бы использовать мегу поменьше...
И вот мне захотелось его озвучить. Вообще я занялся МК не то что бы "из любви к искусству", а из прикладной надобности, хотя это все очень интересно, но времени на это все немного, поэтому и желательно на Bascom'е.
Т.е. задача у меня сейчас такая - просто отладить по нажатию кнопки воспроизведение файла с SD-карты (озвучивает число) в качестве, достаточном для передачи разборчивой речи.
Какой минимальный МК подойдет? Может, есть простой пример, который можно взять за основу?
Пока наиболее близкий пример нашел такой SD WAV плеер с управлением по UART, но он на 32-й меге, использует библиотеку AVR-DOS.BAS (я читал что она требовательна к производительности), а хотелось бы использовать мегу поменьше...
Re: BASCOM AVR в вопросах и ответах
Существует всем известный код, написанный для передачи данных по NRF24L01+. Почти разобрался как работает по datasheet, но остались мелкие вопросы, например для чего указываются данные следующих байтов (выделены красным)? Полный код приложил в архиве.
D_bytes(1) = Write_reg + Tx_addr 'TX adress
D_bytes(2) = &H34
D_bytes(3) = &H43
D_bytes(4) = &H10
D_bytes(5) = &H10
D_bytes(6) = &H01
Call W_register(6)
D_bytes(1) = Write_reg + Rx_addr_p0 'RX adress for pipe0
D_bytes(2) = &H34
D_bytes(3) = &H43
D_bytes(4) = &H10
D_bytes(5) = &H10
D_bytes(6) = &H01
Call W_register(6)
D_bytes(1) = Write_reg + En_aa 'Enable auto ACK for pipe0
D_bytes(2) = &H01
Call W_register(2)
D_bytes(1) = Write_reg + En_rxaddr 'Enable RX adress for pipe0
D_bytes(2) = &H01
Call W_register(2)
D_bytes(1) = Write_reg + Rf_ch 'Set RF channel
D_bytes(2) = 40
Call W_register(2)
D_bytes(1) = Write_reg + Rf_setup 'Setup RF-> Output power 0dbm, datarate 2Mbps and LNA gain on
D_bytes(2) = &H0F
Call W_register(2)
D_bytes(1) = Write_reg + Config_nrf 'Setup CONFIG-> PRX=0(TX_device), PWR_UP=1, CRC 2bytes, Enable CRC
D_bytes(2) = &H0E
Call W_register(2)
Спойлер
Setup_tx: 'Setup for TXD_bytes(1) = Write_reg + Tx_addr 'TX adress
D_bytes(2) = &H34
D_bytes(3) = &H43
D_bytes(4) = &H10
D_bytes(5) = &H10
D_bytes(6) = &H01
Call W_register(6)
D_bytes(1) = Write_reg + Rx_addr_p0 'RX adress for pipe0
D_bytes(2) = &H34
D_bytes(3) = &H43
D_bytes(4) = &H10
D_bytes(5) = &H10
D_bytes(6) = &H01
Call W_register(6)
D_bytes(1) = Write_reg + En_aa 'Enable auto ACK for pipe0
D_bytes(2) = &H01
Call W_register(2)
D_bytes(1) = Write_reg + En_rxaddr 'Enable RX adress for pipe0
D_bytes(2) = &H01
Call W_register(2)
D_bytes(1) = Write_reg + Rf_ch 'Set RF channel
D_bytes(2) = 40
Call W_register(2)
D_bytes(1) = Write_reg + Rf_setup 'Setup RF-> Output power 0dbm, datarate 2Mbps and LNA gain on
D_bytes(2) = &H0F
Call W_register(2)
D_bytes(1) = Write_reg + Config_nrf 'Setup CONFIG-> PRX=0(TX_device), PWR_UP=1, CRC 2bytes, Enable CRC
D_bytes(2) = &H0E
Call W_register(2)
- Вложения
-
- tr_source.rar
- (5.98 КБ) 250 скачиваний
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
коты,есть проблемка-реально ли вывести точку в определенной координате X Y,на дисплее нокиа 3310/5510,мк атмега16
думаю сделать на мрф49 что то типа анализатора спектра.нужно построить график на экране частота/уровень сигнала
думаю сделать на мрф49 что то типа анализатора спектра.нужно построить график на экране частота/уровень сигнала
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Greider писал(а):
Какой минимальный МК подойдет? Может, есть простой пример, который можно взять за основу?
Пока наиболее близкий пример нашел такой SD WAV плеер с управлением по UART, но он на 32-й меге, использует библиотеку AVR-DOS.BAS (я читал что она требовательна к производительности), а хотелось бы использовать мегу поменьше...
AVR-DOS.BAS - для нормальной работы с FAT. поскольку сектор там 512 байт, то и мк должен иметь ОЗУ минимум 512+ на всякие операции+ ваши нужды. Т.е. 1024 минимум. Отсюда и ограничения. Сама программа занимает мало памяти. Насколько я понимаю, меньшей памятью обойтись можно, но только если записывать файлы на отформатированный диск, и переписывать нельзя. когда я начал изучать этот вопрос и фат, в итоге для себя посчитал проще использовать карту как обычную микросхему памяти. Т.е. записывал файл по конкретному адресу, соответственно и считывал так. Только карту один раз отфармотировал, и первый сектор не трогал, что б АНБ комп карту мог видеть.
AlekseyV писал(а):Существует всем известный код, написанный для передачи данных по NRF24L01+. Почти разобрался как работает по datasheet, но остались мелкие вопросы, например для чего указываются данные следующих байтов (выделены красным)? Полный код приложил в архиве.
В коментарии же написанно, что это адреса передачи и приёма.
http://avrproject.ru/search/NRF24L01/Сюда Вам и сюда
http://avrproject.ru/forum/3-138-1
Все делают ошибки, только мудрецы - новые, а дураки - старые.
-
dimon-ru-80
- Встал на лапы
- Сообщения: 86
- Зарегистрирован: Ср ноя 19, 2014 17:13:21
- Откуда: Украина, Никополь
Re: BASCOM AVR в вопросах и ответах
Коты выручайте. Второй день танцую с бубном возле atmega8a-au и LCD Motorola C115. Нашел в нете статейки - подпаялся %) к LCD прошился.......и ничего %)
Мега на внутреннем генераторе 8мГц. К SDA и SCL и Reset подтянул питание через 10 кОм (как на картинке во вложении). SDA-PORTD.1 SCL-PORTD.2 Reset PORTD.0. Пример кода (из интернета):
'=========================
'== Подпрограммы для работы с дисплеями "Motorola" C115,C116,C117.(C118,C123) ==
'=========================
' Разрешение дисплея 96х64 пикселей для рисунков или 8 строк по 16 символов для
' текста.
' Таблица символов содержит цифры, спец.символы, строчные и прописные буквы
' латинского алфавита. (По таблице ASCII с №32 по №127)
'
' Основано на библиотеках для "Nokia-3310" автора с ником "Kimmeridgien" с сайта
' http://www.avrfreaks.net/ и программы для "Motorola-C115" автора с ником
' "Ведущий специалист" (http://bascomavr.3bb.ru/viewtopic.php?id=109).
'
' Версия 2.0
'
' "Mrshilov" Санкт-Петербург август 2009
'=========================
$regfile = "m8Adef.dat"
$crystal = 8000000
$framesize = 64
'---------- установки ----------
Declare Sub 115_init()
Declare Sub 115_clear()
Declare Sub 115_mode(byval Vid_mode As Byte)
Declare Sub 115_print(byval X As Byte , Byval Y As Byte)
Declare Sub 115_picture()
Dim Text As String * 16 'длина строки 16 символов
Dim 115_character As String * 1 'текущий символ
Dim 115_length As Byte 'длина строки
Dim 115_row_loop As Byte 'цикл строки
Dim 115_col_loop As Word 'цикл столбцов
Dim 115_col_data As Byte 'данные столбцов
Dim 115_column As Word
Dim 115_row As Word
115_reset Alias Portd.0
'сигнал сброса дисплея
Config 115_reset = Input 'изначально в Z-состоянии
'сигнал SCL дисплея
Config Sda = Portd.1 'сигнал SDA дисплея
Config Scl = Portd.2
I2cinit 'инициализируем шину
Call 115_init() 'инициализируем дисплей
'---------- пример программы ----------
Example:
Text = "B/W display" 'выводим текст
Call 115_print(2 , 3) 'первая цифра (0-15) - координата X
'вторая цифра (0-7) - координата Y
Text = Chr(34) + "Motorola C115" + Chr(34) 'так добавляем кавычки к тексту
Call 115_print(0 , 1)
Wait 3
Call 115_mode(1) 'инверсия экрана
Text = "inverse"
Call 115_print(4 , 5)
Wait 3
Call 115_mode(0) 'отмена инверсии
Text = " normal "
Call 115_print(4 , 5)
Wait 3
Restore Rabbit 'выбираем картинку
Call 115_picture() 'выводим ее
Dim I As Byte
For I = 9 To 0 Step -1 'счетчик
Text = Str(i)
Call 115_print(15 , 7)
Waitms 500
Next I
Call 115_clear() 'очистка дисплея
Goto Example
End
'----------
'=========================
'=============== Подпрограммы ==============
'=========================
'========== Инициализация дисплея ==========
Sub 115_init()
Config 115_reset = Output
Reset 115_reset 'подаем сигнал сброса
Waitms 100 'ждем
Config 115_reset = Input 'снимаем сигнал сброса
Waitms 10 'ждем
I2cstart 'установка состояния
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H21
I2cwbyte &H12
I2cwbyte &HC0
I2cwbyte &H0B
I2cwbyte &H20
I2cwbyte &H11
I2cwbyte &H0C
I2cwbyte &H40
I2cwbyte &H80
I2cstop
Call 115_clear() 'очищаем дисплей
End Sub
'============== Очистка дисплея ============
Sub 115_clear()
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_column = 0 To 917 'заполняем дисплей
I2cwbyte &H00 'пробелами
Next 115_column
I2cstop
End Sub
'=============== Режим вывода ==============
Sub 115_mode(byval Vid_mode As Byte)
I2cstart
If Vid_mode = 0 Then '0 -нормальный
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H0C
Else '1 -инверсный
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H0D
End If
I2cstop
End Sub
'====== Вывод рисунка на дисплей ============
Sub 115_picture()
For 115_row_loop = 64 To 71 'выводим с 0 по 7 строки
I2cstart
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H80
I2cwbyte 115_row_loop
I2cstop
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_col_loop = 1 To 96 'считываем и выводим
Read 115_col_data 'каждый байт строки
I2cwbyte 115_col_data
Next 115_col_loop
I2cstop
Next 115_row_loop
End Sub
'====== Вывод текста на дисплей ============
Sub 115_print(byval X As Byte , Byval Y As Byte)
X = X * 6 'в символе 6 столбцов
X = 128 + X 'координата по X
Y = 64 + Y 'координата по Y
I2cstart 'задаем координаты
I2cwbyte &H78 'начала строки
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte X
I2cwbyte Y
I2cstop
115_length = Len(text) 'длина строки
For 115_row_loop = 1 To 115_length 'выводим строку
115_character = Mid(text , 115_row_loop , 1) 'текущий символ
115_column = Asc(115_character)
115_column = 115_column - 32
If 115_column > 95 Then 115_column = 95
115_column = 115_column * 5
115_row = 115_column + 4
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_col_loop = 115_column To 115_row 'считываем и выводим
115_col_data = Lookup(115_col_loop , Symbols) 'каждый байт символа
I2cwbyte 115_col_data
Next 115_col_loop
I2cwbyte 0 'пробел между символами
I2cstop
Next 115_row_loop 'следующий символ
End Sub
'============ Таблица символов =============
Symbols:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H5F , &H00 , &H00
Data &H00 , &H07 , &H00 , &H07 , &H00 , &H14 , &H7F , &H14 , &H7F , &H14
Data &H24 , &H2A , &H7F , &H2A , &H12 , &H23 , &H13 , &H08 , &H64 , &H62
Data &H36 , &H49 , &H55 , &H22 , &H50 , &H00 , &H05 , &H03 , &H00 , &H00
Data &H00 , &H1C , &H22 , &H41 , &H00 , &H00 , &H41 , &H22 , &H1C , &H00
Data &H14 , &H08 , &H3E , &H08 , &H14 , &H08 , &H08 , &H3E , &H08 , &H08
Data &H00 , &H00 , &H50 , &H30 , &H00 , &H08 , &H08 , &H08 , &H08 , &H08
Data &H00 , &H60 , &H60 , &H00 , &H00 , &H20 , &H10 , &H08 , &H04 , &H02
Data &H3E , &H51 , &H49 , &H45 , &H3E , &H00 , &H42 , &H7F , &H40 , &H00
Data &H42 , &H61 , &H51 , &H49 , &H46 , &H22 , &H41 , &H49 , &H49 , &H36
Data &H18 , &H14 , &H12 , &H7F , &H10 , &H27 , &H45 , &H45 , &H45 , &H39
Data &H3E , &H49 , &H49 , &H49 , &H32 , &H61 , &H11 , &H09 , &H05 , &H03
Data &H36 , &H49 , &H49 , &H49 , &H36 , &H26 , &H49 , &H49 , &H49 , &H3E
Data &H00 , &H36 , &H36 , &H00 , &H00 , &H00 , &H56 , &H36 , &H00 , &H00
Data &H08 , &H1C , &H36 , &H63 , &H41 , &H14 , &H14 , &H14 , &H14 , &H14
Data &H41 , &H63 , &H36 , &H1C , &H08 , &H02 , &H01 , &H51 , &H09 , &H06
Data &H32 , &H49 , &H59 , &H51 , &H3E , &H7E , &H09 , &H09 , &H09 , &H7E
Data &H7F , &H49 , &H49 , &H49 , &H36 , &H3E , &H41 , &H41 , &H41 , &H22
Data &H7F , &H41 , &H41 , &H41 , &H3E , &H7F , &H49 , &H49 , &H49 , &H41
Data &H7F , &H09 , &H09 , &H09 , &H01 , &H3E , &H41 , &H49 , &H49 , &H3A
Data &H7F , &H08 , &H08 , &H08 , &H7F , &H00 , &H41 , &H7F , &H41 , &H00
Data &H20 , &H41 , &H41 , &H41 , &H3F , &H7F , &H08 , &H14 , &H22 , &H41
Data &H7F , &H40 , &H40 , &H40 , &H40 , &H7F , &H02 , &H04 , &H02 , &H7F
Data &H7F , &H04 , &H08 , &H10 , &H7F , &H3E , &H41 , &H41 , &H41 , &H3E
Data &H7F , &H09 , &H09 , &H09 , &H06 , &H3E , &H41 , &H51 , &H61 , &H7E
Data &H7F , &H09 , &H19 , &H29 , &H46 , &H06 , &H49 , &H49 , &H49 , &H30
Data &H01 , &H01 , &H7F , &H01 , &H01 , &H3F , &H40 , &H40 , &H40 , &H3F
Data &H1F , &H20 , &H40 , &H20 , &H1F , &H7F , &H20 , &H10 , &H20 , &H7F
Data &H63 , &H14 , &H08 , &H14 , &H63 , &H03 , &H04 , &H78 , &H04 , &H03
Data &H61 , &H51 , &H49 , &H45 , &H43 , &H00 , &H7F , &H41 , &H41 , &H00
Data &H02 , &H04 , &H08 , &H10 , &H20 , &H00 , &H41 , &H41 , &H7F , &H00
Data &H04 , &H02 , &H01 , &H02 , &H04 , &H40 , &H40 , &H40 , &H40 , &H40
Data &H00 , &H01 , &H02 , &H00 , &H00 , &H20 , &H54 , &H54 , &H54 , &H78
Data &H7F , &H48 , &H44 , &H44 , &H38 , &H38 , &H44 , &H44 , &H44 , &H28
Data &H38 , &H44 , &H44 , &H48 , &H7F , &H38 , &H54 , &H54 , &H54 , &H18
Data &H00 , &H04 , &H7E , &H05 , &H00 , &H18 , &HA4 , &HA4 , &H94 , &H78
Data &H7F , &H08 , &H04 , &H04 , &H78 , &H00 , &H44 , &H7D , &H40 , &H00
Data &H00 , &H40 , &H44 , &H3D , &H00 , &H7F , &H20 , &H10 , &H28 , &H44
Data &H00 , &H41 , &H7F , &H40 , &H00 , &H7C , &H04 , &H18 , &H04 , &H7C
Data &H7C , &H08 , &H04 , &H04 , &H78 , &H38 , &H44 , &H44 , &H44 , &H38
Data &H7C , &H14 , &H24 , &H24 , &H18 , &H18 , &H24 , &H24 , &H14 , &H7C
Data &H7C , &H04 , &H04 , &H08 , &H00 , &H08 , &H54 , &H54 , &H54 , &H20
Data &H04 , &H3F , &H44 , &H40 , &H00 , &H3C , &H40 , &H40 , &H40 , &H7C
Data &H1C , &H20 , &H40 , &H20 , &H1C , &H3C , &H40 , &H30 , &H40 , &H3C
Data &H44 , &H28 , &H10 , &H28 , &H44 , &H0C , &H50 , &H50 , &H48 , &H3C
Data &H44 , &H64 , &H54 , &H4C , &H44 , &H00 , &H80 , &H36 , &H41 , &H00
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &H41 , &H36 , &H80 , &H00
Data &H10 , &H08 , &H10 , &H08 , &H00 , &H3C , &H24 , &H24 , &H3C , &H00
'============= Пример картинки =============
Rabbit:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '1 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H80 , &HC0 , &HC0 , &HC0 , &HC0 , &H80 , &H80 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &HE0 , &HF8 , &H1C , &H04 , &H1C , &H78 , &HE0 , &H80
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '2 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H03 , &H1F , &HFC , &HE0 , &H80 , &H01 , &H01 , &H01 , &H03 , &H03 , &H06 , &H2E , &HFC , &HB8 , &H70
Data &HE0 , &H80 , &H00 , &H00 , &H00 , &H00 , &HFC , &HFF , &HF7 , &HE0 , &H00 , &HE0 , &HF0 , &H00 , &H07 , &HFF
Data &HFC , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '3 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &H80 , &HC0 , &HE0 , &H60 , &H70 , &H30
Data &H30 , &H18 , &H18 , &H18 , &H1B , &H1F , &H1F , &H3C , &H78 , &H70 , &HE0 , &HC0 , &H98 , &H38 , &HE7 , &HFE
Data &HFB , &H8F , &H3E , &HF0 , &HE0 , &HC0 , &H83 , &HFF , &HFC , &H03 , &H0F , &H3D , &HFF , &HE0 , &HF8 , &HFF
Data &H3F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '4 строка
Data &H00 , &H00 , &H00 , &H80 , &HC0 , &HF8 , &HFC , &H3E , &H0F , &H03 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H80 , &HC0 , &H40 , &H00 , &H00 , &H80 , &H80 , &HC0 , &HC1 , &HE3 , &H63 , &H67 , &H6F
Data &H1F , &HFF , &HF8 , &H60 , &H01 , &H03 , &H07 , &H07 , &H03 , &H00 , &H00 , &H02 , &H06 , &H07 , &H0F , &H1C
Data &H18 , &H30 , &H70 , &HE0 , &HC0 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HC0 , &HC0 , &HC0 , &HC0 , &HC0 , &HE0 '5 строка
Data &H70 , &HF0 , &HFE , &HFF , &HFF , &H0F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &HFE , &HFF , &H01 , &H70 , &H7C , &H0E , &H07 , &H03 , &H01 , &H01 , &H01 , &H00 , &H00 , &H00
Data &H6C , &HFF , &HFF , &H0F , &H00 , &H01 , &H03 , &H07 , &H0E , &H1F , &H1F , &H1E , &H0E , &H1C , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H0F , &HFF , &HE0 , &H00 , &H80 , &H80 , &HC0 , &HC0 , &HC0 , &HE0 , &H80 , &HA0
Data &HA0 , &HA0 , &HF0 , &HF0 , &HF0 , &HF0 , &HD0 , &H40 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H0D , &H1F , &H3B , &H76 , &HE0 '6 строка
Data &HC0 , &H83 , &H9F , &HBF , &HFF , &HF8 , &HC0 , &H80 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H03 , &HFF , &HF8 , &HFE , &H1C , &H18 , &H18 , &H18 , &HD8 , &HCC , &HCC , &H6C , &H6C , &H6C
Data &H2C , &H36 , &H37 , &HB7 , &HF6 , &HFC , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFC , &HEC
Data &HE8 , &HF3 , &HFE , &HFE , &HDE , &H0F , &H07 , &H07 , &H07 , &H03 , &H03 , &H03 , &H01 , &H01 , &H01 , &H01
Data &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '7 строка
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H03 , &H07 , &H07 , &H1F , &H3E , &H7C , &HEC , &HD8 , &HB8
Data &HB8 , &HF8 , &HF8 , &HF8 , &HFF , &HF7 , &HFE , &H8C , &H3E , &HFC , &HF0 , &HB0 , &H60 , &HE0 , &HE0 , &HE0
Data &HE0 , &HE0 , &HF0 , &HF1 , &HFF , &HDF , &HDF , &HFF , &HFF , &HFF , &HFF , &H69 , &H71 , &H79 , &HFF , &HEF
Data &HE7 , &HE3 , &H07 , &H03 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '8 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H01 , &H03 , &H07 , &H06 , &H0C , &H0C
Data &H0F , &H0F , &H0F , &H0F , &H07 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H03 , &H03 , &H03 , &H01
Data &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Помогите подключить LCD ? может кто юзал такой. Дисплей 100% рабочий, проверял методом замены. Мега тоже работает (цеплял на выход диод и простенькую мигалку записывал). Не пойму где собака зарыта...........
Мега на внутреннем генераторе 8мГц. К SDA и SCL и Reset подтянул питание через 10 кОм (как на картинке во вложении). SDA-PORTD.1 SCL-PORTD.2 Reset PORTD.0. Пример кода (из интернета):
Спойлер
'========================='=========================
'== Подпрограммы для работы с дисплеями "Motorola" C115,C116,C117.(C118,C123) ==
'=========================
' Разрешение дисплея 96х64 пикселей для рисунков или 8 строк по 16 символов для
' текста.
' Таблица символов содержит цифры, спец.символы, строчные и прописные буквы
' латинского алфавита. (По таблице ASCII с №32 по №127)
'
' Основано на библиотеках для "Nokia-3310" автора с ником "Kimmeridgien" с сайта
' http://www.avrfreaks.net/ и программы для "Motorola-C115" автора с ником
' "Ведущий специалист" (http://bascomavr.3bb.ru/viewtopic.php?id=109).
'
' Версия 2.0
'
' "Mrshilov" Санкт-Петербург август 2009
'=========================
$regfile = "m8Adef.dat"
$crystal = 8000000
$framesize = 64
'---------- установки ----------
Declare Sub 115_init()
Declare Sub 115_clear()
Declare Sub 115_mode(byval Vid_mode As Byte)
Declare Sub 115_print(byval X As Byte , Byval Y As Byte)
Declare Sub 115_picture()
Dim Text As String * 16 'длина строки 16 символов
Dim 115_character As String * 1 'текущий символ
Dim 115_length As Byte 'длина строки
Dim 115_row_loop As Byte 'цикл строки
Dim 115_col_loop As Word 'цикл столбцов
Dim 115_col_data As Byte 'данные столбцов
Dim 115_column As Word
Dim 115_row As Word
115_reset Alias Portd.0
'сигнал сброса дисплея
Config 115_reset = Input 'изначально в Z-состоянии
'сигнал SCL дисплея
Config Sda = Portd.1 'сигнал SDA дисплея
Config Scl = Portd.2
I2cinit 'инициализируем шину
Call 115_init() 'инициализируем дисплей
'---------- пример программы ----------
Example:
Text = "B/W display" 'выводим текст
Call 115_print(2 , 3) 'первая цифра (0-15) - координата X
'вторая цифра (0-7) - координата Y
Text = Chr(34) + "Motorola C115" + Chr(34) 'так добавляем кавычки к тексту
Call 115_print(0 , 1)
Wait 3
Call 115_mode(1) 'инверсия экрана
Text = "inverse"
Call 115_print(4 , 5)
Wait 3
Call 115_mode(0) 'отмена инверсии
Text = " normal "
Call 115_print(4 , 5)
Wait 3
Restore Rabbit 'выбираем картинку
Call 115_picture() 'выводим ее
Dim I As Byte
For I = 9 To 0 Step -1 'счетчик
Text = Str(i)
Call 115_print(15 , 7)
Waitms 500
Next I
Call 115_clear() 'очистка дисплея
Goto Example
End
'----------
'=========================
'=============== Подпрограммы ==============
'=========================
'========== Инициализация дисплея ==========
Sub 115_init()
Config 115_reset = Output
Reset 115_reset 'подаем сигнал сброса
Waitms 100 'ждем
Config 115_reset = Input 'снимаем сигнал сброса
Waitms 10 'ждем
I2cstart 'установка состояния
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H21
I2cwbyte &H12
I2cwbyte &HC0
I2cwbyte &H0B
I2cwbyte &H20
I2cwbyte &H11
I2cwbyte &H0C
I2cwbyte &H40
I2cwbyte &H80
I2cstop
Call 115_clear() 'очищаем дисплей
End Sub
'============== Очистка дисплея ============
Sub 115_clear()
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_column = 0 To 917 'заполняем дисплей
I2cwbyte &H00 'пробелами
Next 115_column
I2cstop
End Sub
'=============== Режим вывода ==============
Sub 115_mode(byval Vid_mode As Byte)
I2cstart
If Vid_mode = 0 Then '0 -нормальный
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H0C
Else '1 -инверсный
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H0D
End If
I2cstop
End Sub
'====== Вывод рисунка на дисплей ============
Sub 115_picture()
For 115_row_loop = 64 To 71 'выводим с 0 по 7 строки
I2cstart
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte &H80
I2cwbyte 115_row_loop
I2cstop
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_col_loop = 1 To 96 'считываем и выводим
Read 115_col_data 'каждый байт строки
I2cwbyte 115_col_data
Next 115_col_loop
I2cstop
Next 115_row_loop
End Sub
'====== Вывод текста на дисплей ============
Sub 115_print(byval X As Byte , Byval Y As Byte)
X = X * 6 'в символе 6 столбцов
X = 128 + X 'координата по X
Y = 64 + Y 'координата по Y
I2cstart 'задаем координаты
I2cwbyte &H78 'начала строки
I2cwbyte &H00
I2cwbyte &H20
I2cwbyte X
I2cwbyte Y
I2cstop
115_length = Len(text) 'длина строки
For 115_row_loop = 1 To 115_length 'выводим строку
115_character = Mid(text , 115_row_loop , 1) 'текущий символ
115_column = Asc(115_character)
115_column = 115_column - 32
If 115_column > 95 Then 115_column = 95
115_column = 115_column * 5
115_row = 115_column + 4
I2cstart
I2cwbyte &H78
I2cwbyte &H40
For 115_col_loop = 115_column To 115_row 'считываем и выводим
115_col_data = Lookup(115_col_loop , Symbols) 'каждый байт символа
I2cwbyte 115_col_data
Next 115_col_loop
I2cwbyte 0 'пробел между символами
I2cstop
Next 115_row_loop 'следующий символ
End Sub
'============ Таблица символов =============
Symbols:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H5F , &H00 , &H00
Data &H00 , &H07 , &H00 , &H07 , &H00 , &H14 , &H7F , &H14 , &H7F , &H14
Data &H24 , &H2A , &H7F , &H2A , &H12 , &H23 , &H13 , &H08 , &H64 , &H62
Data &H36 , &H49 , &H55 , &H22 , &H50 , &H00 , &H05 , &H03 , &H00 , &H00
Data &H00 , &H1C , &H22 , &H41 , &H00 , &H00 , &H41 , &H22 , &H1C , &H00
Data &H14 , &H08 , &H3E , &H08 , &H14 , &H08 , &H08 , &H3E , &H08 , &H08
Data &H00 , &H00 , &H50 , &H30 , &H00 , &H08 , &H08 , &H08 , &H08 , &H08
Data &H00 , &H60 , &H60 , &H00 , &H00 , &H20 , &H10 , &H08 , &H04 , &H02
Data &H3E , &H51 , &H49 , &H45 , &H3E , &H00 , &H42 , &H7F , &H40 , &H00
Data &H42 , &H61 , &H51 , &H49 , &H46 , &H22 , &H41 , &H49 , &H49 , &H36
Data &H18 , &H14 , &H12 , &H7F , &H10 , &H27 , &H45 , &H45 , &H45 , &H39
Data &H3E , &H49 , &H49 , &H49 , &H32 , &H61 , &H11 , &H09 , &H05 , &H03
Data &H36 , &H49 , &H49 , &H49 , &H36 , &H26 , &H49 , &H49 , &H49 , &H3E
Data &H00 , &H36 , &H36 , &H00 , &H00 , &H00 , &H56 , &H36 , &H00 , &H00
Data &H08 , &H1C , &H36 , &H63 , &H41 , &H14 , &H14 , &H14 , &H14 , &H14
Data &H41 , &H63 , &H36 , &H1C , &H08 , &H02 , &H01 , &H51 , &H09 , &H06
Data &H32 , &H49 , &H59 , &H51 , &H3E , &H7E , &H09 , &H09 , &H09 , &H7E
Data &H7F , &H49 , &H49 , &H49 , &H36 , &H3E , &H41 , &H41 , &H41 , &H22
Data &H7F , &H41 , &H41 , &H41 , &H3E , &H7F , &H49 , &H49 , &H49 , &H41
Data &H7F , &H09 , &H09 , &H09 , &H01 , &H3E , &H41 , &H49 , &H49 , &H3A
Data &H7F , &H08 , &H08 , &H08 , &H7F , &H00 , &H41 , &H7F , &H41 , &H00
Data &H20 , &H41 , &H41 , &H41 , &H3F , &H7F , &H08 , &H14 , &H22 , &H41
Data &H7F , &H40 , &H40 , &H40 , &H40 , &H7F , &H02 , &H04 , &H02 , &H7F
Data &H7F , &H04 , &H08 , &H10 , &H7F , &H3E , &H41 , &H41 , &H41 , &H3E
Data &H7F , &H09 , &H09 , &H09 , &H06 , &H3E , &H41 , &H51 , &H61 , &H7E
Data &H7F , &H09 , &H19 , &H29 , &H46 , &H06 , &H49 , &H49 , &H49 , &H30
Data &H01 , &H01 , &H7F , &H01 , &H01 , &H3F , &H40 , &H40 , &H40 , &H3F
Data &H1F , &H20 , &H40 , &H20 , &H1F , &H7F , &H20 , &H10 , &H20 , &H7F
Data &H63 , &H14 , &H08 , &H14 , &H63 , &H03 , &H04 , &H78 , &H04 , &H03
Data &H61 , &H51 , &H49 , &H45 , &H43 , &H00 , &H7F , &H41 , &H41 , &H00
Data &H02 , &H04 , &H08 , &H10 , &H20 , &H00 , &H41 , &H41 , &H7F , &H00
Data &H04 , &H02 , &H01 , &H02 , &H04 , &H40 , &H40 , &H40 , &H40 , &H40
Data &H00 , &H01 , &H02 , &H00 , &H00 , &H20 , &H54 , &H54 , &H54 , &H78
Data &H7F , &H48 , &H44 , &H44 , &H38 , &H38 , &H44 , &H44 , &H44 , &H28
Data &H38 , &H44 , &H44 , &H48 , &H7F , &H38 , &H54 , &H54 , &H54 , &H18
Data &H00 , &H04 , &H7E , &H05 , &H00 , &H18 , &HA4 , &HA4 , &H94 , &H78
Data &H7F , &H08 , &H04 , &H04 , &H78 , &H00 , &H44 , &H7D , &H40 , &H00
Data &H00 , &H40 , &H44 , &H3D , &H00 , &H7F , &H20 , &H10 , &H28 , &H44
Data &H00 , &H41 , &H7F , &H40 , &H00 , &H7C , &H04 , &H18 , &H04 , &H7C
Data &H7C , &H08 , &H04 , &H04 , &H78 , &H38 , &H44 , &H44 , &H44 , &H38
Data &H7C , &H14 , &H24 , &H24 , &H18 , &H18 , &H24 , &H24 , &H14 , &H7C
Data &H7C , &H04 , &H04 , &H08 , &H00 , &H08 , &H54 , &H54 , &H54 , &H20
Data &H04 , &H3F , &H44 , &H40 , &H00 , &H3C , &H40 , &H40 , &H40 , &H7C
Data &H1C , &H20 , &H40 , &H20 , &H1C , &H3C , &H40 , &H30 , &H40 , &H3C
Data &H44 , &H28 , &H10 , &H28 , &H44 , &H0C , &H50 , &H50 , &H48 , &H3C
Data &H44 , &H64 , &H54 , &H4C , &H44 , &H00 , &H80 , &H36 , &H41 , &H00
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &H41 , &H36 , &H80 , &H00
Data &H10 , &H08 , &H10 , &H08 , &H00 , &H3C , &H24 , &H24 , &H3C , &H00
'============= Пример картинки =============
Rabbit:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '1 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H80 , &HC0 , &HC0 , &HC0 , &HC0 , &H80 , &H80 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &HE0 , &HF8 , &H1C , &H04 , &H1C , &H78 , &HE0 , &H80
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '2 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H03 , &H1F , &HFC , &HE0 , &H80 , &H01 , &H01 , &H01 , &H03 , &H03 , &H06 , &H2E , &HFC , &HB8 , &H70
Data &HE0 , &H80 , &H00 , &H00 , &H00 , &H00 , &HFC , &HFF , &HF7 , &HE0 , &H00 , &HE0 , &HF0 , &H00 , &H07 , &HFF
Data &HFC , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '3 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &H80 , &HC0 , &HE0 , &H60 , &H70 , &H30
Data &H30 , &H18 , &H18 , &H18 , &H1B , &H1F , &H1F , &H3C , &H78 , &H70 , &HE0 , &HC0 , &H98 , &H38 , &HE7 , &HFE
Data &HFB , &H8F , &H3E , &HF0 , &HE0 , &HC0 , &H83 , &HFF , &HFC , &H03 , &H0F , &H3D , &HFF , &HE0 , &HF8 , &HFF
Data &H3F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '4 строка
Data &H00 , &H00 , &H00 , &H80 , &HC0 , &HF8 , &HFC , &H3E , &H0F , &H03 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H80 , &HC0 , &H40 , &H00 , &H00 , &H80 , &H80 , &HC0 , &HC1 , &HE3 , &H63 , &H67 , &H6F
Data &H1F , &HFF , &HF8 , &H60 , &H01 , &H03 , &H07 , &H07 , &H03 , &H00 , &H00 , &H02 , &H06 , &H07 , &H0F , &H1C
Data &H18 , &H30 , &H70 , &HE0 , &HC0 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HC0 , &HC0 , &HC0 , &HC0 , &HC0 , &HE0 '5 строка
Data &H70 , &HF0 , &HFE , &HFF , &HFF , &H0F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &HFE , &HFF , &H01 , &H70 , &H7C , &H0E , &H07 , &H03 , &H01 , &H01 , &H01 , &H00 , &H00 , &H00
Data &H6C , &HFF , &HFF , &H0F , &H00 , &H01 , &H03 , &H07 , &H0E , &H1F , &H1F , &H1E , &H0E , &H1C , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H0F , &HFF , &HE0 , &H00 , &H80 , &H80 , &HC0 , &HC0 , &HC0 , &HE0 , &H80 , &HA0
Data &HA0 , &HA0 , &HF0 , &HF0 , &HF0 , &HF0 , &HD0 , &H40 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H0D , &H1F , &H3B , &H76 , &HE0 '6 строка
Data &HC0 , &H83 , &H9F , &HBF , &HFF , &HF8 , &HC0 , &H80 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H03 , &HFF , &HF8 , &HFE , &H1C , &H18 , &H18 , &H18 , &HD8 , &HCC , &HCC , &H6C , &H6C , &H6C
Data &H2C , &H36 , &H37 , &HB7 , &HF6 , &HFC , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFE , &HFC , &HEC
Data &HE8 , &HF3 , &HFE , &HFE , &HDE , &H0F , &H07 , &H07 , &H07 , &H03 , &H03 , &H03 , &H01 , &H01 , &H01 , &H01
Data &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '7 строка
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H03 , &H07 , &H07 , &H1F , &H3E , &H7C , &HEC , &HD8 , &HB8
Data &HB8 , &HF8 , &HF8 , &HF8 , &HFF , &HF7 , &HFE , &H8C , &H3E , &HFC , &HF0 , &HB0 , &H60 , &HE0 , &HE0 , &HE0
Data &HE0 , &HE0 , &HF0 , &HF1 , &HFF , &HDF , &HDF , &HFF , &HFF , &HFF , &HFF , &H69 , &H71 , &H79 , &HFF , &HEF
Data &HE7 , &HE3 , &H07 , &H03 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 '8 строка
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H01 , &H03 , &H07 , &H06 , &H0C , &H0C
Data &H0F , &H0F , &H0F , &H0F , &H07 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H03 , &H03 , &H03 , &H01
Data &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Помогите подключить LCD ? может кто юзал такой. Дисплей 100% рабочий, проверял методом замены. Мега тоже работает (цеплял на выход диод и простенькую мигалку записывал). Не пойму где собака зарыта...........
- Вложения
-
- Connect C115.gif
- (37.26 КБ) 637 скачиваний
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
Написал простой счетчик расхода жидкости. Датчик выдает импульсы при прохождении жидкости. Измеряю след. образом-по импульсу с датчика прерывание в котором значение переменной увеличичвается на определенное число. В основном цикле данные вывожу на экран 1602. Так вот когда значение меньше единицы, т.е. первая цифра 0, все нормально, но как только показания увеличичвается больше единицы, показания счетчика начинают отображатся в других частях экрана, притом хаотчино, то полностью то частично то пропадут.
Пытался отключать прерывания на время вывода данных на экран, но не помогло.
Не могу понять отчего это происходит? В программе нет ничего лишнего? Как с этим бороться?
Пытался отключать прерывания на время вывода данных на экран, но не помогло.
Не могу понять отчего это происходит? В программе нет ничего лишнего? Как с этим бороться?
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
Dnepr_1186 исходник бы поглядеть.
- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 1000000
' конйигурируем подключение ЖКИ 16*2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portc.4 , Db7 = Portb.2 , E = Portb.3 , Rs = Portb.1
Config Lcd = 16 * 2
Initlcd
Cursor Off
Cls
On Int0 Rashod 'конфигурируем таймеры и прерывания
Config Int0 = Falling
On Aci Button
Config Aci = On , Compare = Off , Trigger = Rising 'Конфигурируем компаратор
Acsr.6 = 1 'включаем сравнение с внутренним опорным напяржением 1,25в
Config Pind.4 = Input
Config Pind.2 = Input ' конфигурироем порты
Config Pind.3 = Input
Config Pind.7 = Input
Config Pind.6 = Input
Config Pinc.0 = Input
Config Pinc.1 = Input
Pind.4 = 1
Pind.7 = 0
Config Pinb.0 = Output
Dim F1 As Integer
Dim F2 As Single
Dim F3 As Single
Dim F As Single
Dim Period As Single
Dim Period2 As Single
Dim A As Single
Dim E As Single ' объявление переменных
Dim B As Single
Dim I As Integer
Dim O As Integer
Dim Speed1 As Single
Dim Ob As Single
Dim Odo4 As Single
Dim T33 As String * 14
Dim C As Word
Dim Odoshet As Single
Dim Speed2 As Single
Dim Odo As Single
Dim Odo1 As Single
Dim Odo2 As Single
Dim Odo3 As Single
Dim Ccc As String * 5
Dim Shet As Integer
Dim Sk As Integer
Dim Vivod As Single
Const T1 = 0.000008 'время, за которое таймер1 меняет свое значение на еденицу (в секундах)
Const T0 = 0.001024 'время за которое таймер0 меняет свое значение на еденицу (в секундах)
Const R = 0.0056 'количсетво топлива, проходящего через датчик за один импульс (в литрах)
Const Trip = 0.612 'расстояние которое проходит авто за один импульс от датчика скорости
$eeprom ' Выделение места в еепром под запись количества израсходованного топлива
Odomain:
Data 17%
$data
' читаем показания общего одометра из еепром
Readeeprom Odo4 , Odomain
Enable Interrupts
Enable Int0
Acsr.3 = 1
Do
'*********обнуление данных в еепром*****************
If Pind.4 = 0 Then
Odo4 = 0
Writeeeprom Odo4 , Odomain
Cls
Waitms 200
End If
'Odo = Odo4
'********обработка расхода и округление*********
Odo4 = Odo4 + 0
T33 = Fusing(odo4 , "#.###")
'************** вывод на экран****************
Locate 1 , 1
'Lcd Odo
Lcd T33 ; " "
Locate 1 , 8
Lcd " Liters "
Loop
End
'Считывание Импульсов Расходмера
Rashod:
Odo4 = Odo4 + R
Gifr = 64
'Wait 3
Return
'Запись расхода При Выключении Питания
Button:
Writeeeprom Odo4 , Odomain
Gifr = 64
Wait 3
Returnне обращайте внимание на много объявленных переменных, пока решил начать с малого, потом использую их по усложнению програмы
- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
ну что есть предположения?
-
Mrshilov
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Ср дек 11, 2013 01:28:14
- Откуда: Санкт-Петербург
Re: BASCOM AVR в вопросах и ответах
Выставьте стек:
Код: Выделить всё
$hwstack = 64
$swstack = 64
$framesize = 64-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
котаны помогите!!!понять не могу-всегда работало а тут...не могу осилить lcd1602,при вкл одни квадратики,контрастность регулируется,ставил 3 дисплея,светодиод моргает,что может быть?вроде вопрос новичка но...
дисплеи рабочие-проверял на LC-метре
дисплеи рабочие-проверял на LC-метре
- Вложения
-
- proba.rar
- (17.85 КБ) 232 скачивания
Re: BASCOM AVR в вопросах и ответах
Приветствую !
pavel1979 : Подключены ли выводы D0-D3 и RW на GND?
pavel1979 : Подключены ли выводы D0-D3 и RW на GND?
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
нет
в общем так-подключаю так( корректирую программу,перепаиваю жки)
Config Lcdpin = Pin , Rs = Porta.5 , E = Porta.4 , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Posta.0-все работает отлично,перключаю как мне надо(уже разведена и вытралена плата)
Config Lcdpin = Pin , Rs = Portd.5, E = Portd.7 ,Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 -не работает,одни квадратики...мистика какая то
в общем так-подключаю так( корректирую программу,перепаиваю жки)
Config Lcdpin = Pin , Rs = Porta.5 , E = Porta.4 , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Posta.0-все работает отлично,перключаю как мне надо(уже разведена и вытралена плата)
Config Lcdpin = Pin , Rs = Portd.5, E = Portd.7 ,Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 -не работает,одни квадратики...мистика какая то
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
переключил так
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.5
работает,что же не так?попробовал другую мегу-тоже самое....
нагуглил,разобрался...Portd.7 нежелательно использовать для жки или следует отключать ос2...только как?пороюсь еще...
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.5
работает,что же не так?попробовал другую мегу-тоже самое....
нагуглил,разобрался...Portd.7 нежелательно использовать для жки или следует отключать ос2...только как?пороюсь еще...
