Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.10.2011, 17:14
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Код:
|
//дай несколько положительных импульсов на DCLK
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0
PORTB |= (1 ‹‹ DCLK); //1
PORTB &= ~ (1 ‹‹ DCLK); //0 |
|
|
|
|
21.10.2011, 17:33
|
|
Прохожий
Регистрация: 19.04.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Цитата:
|
//Компилятор WinAVR
//Atmega8 (1 Мгц)
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹util/delay.h›
#define LOAD PB5
#define DIN PB6
#define DCLK PB7
//--------Основная программа--------------------
int main( void )
{
//настройка выходов
DDRB=0xFF; // Все выходы
//Зажигаем все знаки
while (1)
{
PORTB &= ~_BV(LOAD); //0
PORTB |=_BV(DIN); //1
PORTB |=_BV(DCLK); //1
_delay_us(100);
PORTB &= ~_BV(DCLK); //0
_delay_us(100);
PORTB |=_BV(LOAD); //1
_delay_us(100);
PORTB &= ~_BV(LOAD); //0
_delay_us(100);
}
}
|
Хоть какой то прогресс!
Этот код зажигает все знаки на дисплее
циклом while(1) обходим все символы и ПОДЖИГАЕМ
Теперь нужно что то написать более приемлемое (процедуру отображения)
lcd_dat(строка 5, вывести цифру 6)
|
|
|
|
21.10.2011, 18:05
|
|
Прохожий
Регистрация: 19.04.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Что то очень громоздко получается с кодом я так всю память заполню. Может есть у кого готовое решение через массив.
кстати
_delay_us(100); можно убрать (по крайней мере в протеусе работает без него)
|
|
|
|
22.10.2011, 09:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Сообщение от bortsov
|
(по крайней мере в протеусе работает без него)
|
А где взять модель 1001 для Протеза?
|
|
|
|
22.10.2011, 10:26
|
|
Прописка
Регистрация: 31.12.2008
Сообщений: 104
Сказал спасибо: 5
Сказали Спасибо 48 раз(а) в 23 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Подождите с LCLK. Эту приблуду (LCLK) можно обойти подцепив кусок провода к LCLK (или нарисовать длинную дорожку на плате) так чтоб наводки сетевые ловились, а ловит оччень хорошо. Если наводок 50 гц рядом не предвидится, то надо туда что-то с проца подать. Я дроч.л эту ногу в прерывании по TMR0 примерно 63 герц.
Че-то погорячился, слшком быстро тему прочитал. На первом посте ТС забыл одну ногу LCLK.
Последний раз редактировалось koms45; 22.10.2011 в 10:52.
|
|
|
|
24.10.2011, 09:40
|
|
Прохожий
Регистрация: 19.04.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Цитата:
|
А где взять модель 1001 для Протеза?
|
Смотри архив в первом посте
|
|
|
|
24.10.2011, 14:56
|
|
Прописка
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
|
Re: Помогите с ЖКИ TIC33
Сообщение от bortsov
|
Что то очень громоздко получается с кодом я так всю память заполню
|
Неужели у TAmega8 так мало памяти Организуй массив с размером с кол-во знакомест на LCD. Если нужно чего-то вывести поменяй значение нужной ячейкм массива и запускай программу lcd_out. Например так:
Код:
|
unsigned char lcd_buffer[9]; //данные LCD
void lcd_out(){
unsigned char i;
unsigned char j;
unsigned char c;
for(i=0;i‹9;i++){ //выдаем 9 байт данных на LCD
c=lcd_buffer[i];
for(j=0;j‹8;j++){ //быдаем биты
if(c & 0x80) PORTB |= (1 ‹‹ DATA); //выдаем "1" на данные
else PORTB &= ~ (1 ‹‹ DATA); //--- "0" ----------
PORTB |= (1 ‹‹ DCLK); //стробируем бит
PORTB &= ~ (1 ‹‹ DCLK);
с‹‹=1; } //сдвигаем байт для вывода след.бита
}
PORTB |= (1 ‹‹ LOAD); //1 строб на вывод
PORTB &= ~ (1 ‹‹ LOAD); //0
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:19.
|
|