Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/80: Рейтинг темы: голосов - 80, средняя оценка - 4.56
NaZzar
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 26
1

ATMega8. Вывод данных с UART на LCD дисплей HD44780

12.04.2012, 11:37. Просмотров 15022. Ответов 10
Метки нет (Все метки)

Помогите разобраться с приемом данных с UART и выводом их на LCD-дисплей ...многое перепробовал, но не получается.

Нашел пример с вот таким кодом:
C
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
#include <avr/io.h>//Библиотека ввода/вывода
#include <avr/interrupt.h>//Библиотека прерываний
 
#include <hd44780.h>
#include <stdio.h>
#include <stdlib.h>
#include <util/delay.h>
 
//Прототипы подпрограмм
void USORT_Transmit( unsigned char data );
void USORT_Init( unsigned int ubrr);
 
//Подпрограмма обработки прерывания
ISR(USORT_RXC_vect)
{
int b;
 
 
 lcd_init();
 char str[11];
 b = UDR; // Получаем эти данные
 lcd_init();
   sprintf(str, "%d", b);
    //   lcd_puts("stryrtyt");
       lcd_puts(str);
}
 
void USORT_Init( unsigned int ubrr)//Инициализация модуля USORT
{
/* Задаем скорость работы USORT */  
UBRRH = (unsigned char)(ubrr>>8);   
UBRRL = (unsigned char)ubrr;
/* Разрешаем прием и передачу по USORT */
UCSRB=(1<<RXEN)|( 1<<TXEN);
UCSRB |= (1<<RXCIE);
 
UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
/* Устанавливаем формат данных 8 бит данных, 2 стоп бита */
UCSRC=0x86;// Инициализация именно для ATmega8
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
 
 
 
int main(void)//главная программа
 
USORT_Init (8);
 
sei();//разрешаем глобально прерывания
 
while(1)//вечный цикл
{
}
}
Подскажите, что не так? Пишу в AVRStudio 5. Может у кого-нибудь есть какие то примеры?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 11:37
Ответы с готовыми решениями:

О выводе на дисплей LCD HD44780
Пишу программу на Atmego32A. Столкнулся с проблемкой при выводе на дисплей. Функции вывода на...

LCD на базе HD44780+I2C+Atmega8 какие преимущества?
В общем-то в заголовке темы практически все есть. Небольшое уточнение вопроса: - какие...

Подключение LCD на HD44780 через I2C расширитель PCF8574 к Atmega8
Ребятки, срочно нужна помощь, голова скоро лопнет(( Нужно подключить сие чудо (lcd) к atmega8. В...

Переделка скрипта LCD HD44780 под другие порты. (atmega8 - atmega328)
Помогите пожалуйста, переделать скрипт LCD HD44780. Подключаю как на рис.1. Но, это не очень...

Вывод на LCD HD44780 HEX кода
Доброго времени суток, господа. Прошу Вашей помощи в решение одной проблемы. Имею UHF RFID...

10
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.04.2012, 12:21 2
...вот рабочий пример с дисплеем hd44780 http://avrlab.com/node/80 с ресурса, откуда растут ноги у кода.
2
NaZzar
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 26
12.04.2012, 12:33  [ТС] 3
самая большая проблема с uart! Некак не могу разобратся
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.04.2012, 14:39 4
...там же есть и рабочий пример с UART.
0
12.04.2012, 14:39
NaZzar
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 26
12.04.2012, 23:02  [ТС] 5
...ну вот, нашел пример, но когда я подключаю GPS module, почему то принимает лишь каждый 3-й символ!
Помогите разобраться.
0
Вложения
Тип файла: zip usart1-proteus.zip (39.9 Кб, 140 просмотров)
Тип файла: zip usart1-WinAvr.zip (61.1 Кб, 163 просмотров)
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
13.04.2012, 00:11 6
...кхе, GPS модуль появился ...в проекте usart1-WinAvr у вас:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while(1){
    sym = USORT_GetChar(); //читаем буфер
    if (sym){             //если что-то приняли, то 
    
    mas[i]=sym;
    if (i==30)
    {
    for(i=0;i<30;i++)
    {
     LCD_Goto(i,0);
     LCD_WriteData(mas[i]);
    
    //_delay_ms(20000);
    }
    }
...не говоря уже о том, что нет разбора NMEA кодограммы, а ведь есть символы, что дисплей не отображает.

p.s.: также скорости GPS модуля и настройки UART-а проверить не мешает.
0
NaZzar
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 26
17.04.2012, 13:17  [ТС] 7
все равно не получается на дисплей выводится каждый третий бит...
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
17.04.2012, 14:40 8
...какие доработки вы сделали после замечаний c поста #6?
0
Voland_
1656 / 1045 / 98
Регистрация: 04.01.2010
Сообщений: 3,553
29.04.2013, 10:57 9
Цитата Сообщение от NaZzar Посмотреть сообщение
почему то принимает лишь каждый 3-й символ!
возможно, у вас скорости UART'а сильно не совпадают. Попробуйте побаловаться регистром BR. в большую/меньшую сторону по сравнению с расчетной. (у вас же 4800 для GPS, как я понимаю?)
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
29.04.2013, 12:43 10
...есть мысль, что ТС за прошедший год помахал ручкой данной задаче.
0
Voland_
29.04.2013, 12:53     ATMega8. Вывод данных с UART на LCD дисплей HD44780
  #11

Не по теме:

raxp, не глянул на дату %(.

0
29.04.2013, 12:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2013, 12:53
Привет! Вот еще темы с ответами:

Вывод на LCD дисплей в двоичном отображении
#include &lt;mega8.h&gt; #include &lt;delay.h&gt; #asm ...

Приём данных по UART Atmega8
Доброго времени суток! Продолжаю постигать азы микроконтроллеров. В прошлой теме задавал, как уже...

Инициализация lcd на HD44780
Здравствуйте! Пытаюсь освоить lcd на HD44780. Понимаю, что есть много уже готовых библиотек, я их...


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

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

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