24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

ATtiny 13 c LCD-дисплеем.

Здесь только проекты на ATtiny
Post Reply
more4ok
Пробегал мимо
Posts: 5
Joined: 28 Apr 2013 14:22

ATtiny 13 c LCD-дисплеем.

Post by more4ok »

Доброго времени суток! Обращаюсь к Вам, так как не могу доделать схему к курсовому, а завтра защита. Выручте, пожалуйста. Задание в файле.
Attachments
Задание
Задание
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: ATtiny 13 c LCD-дисплеем.

Post by Coviraylhik »

more4ok wrote:..... не могу доделать схему к курсовому, а завтра защита. Выручте.....
Улыбнуло......
Хотя с другой стороны , шустрому студенту это все проще пареной репы...
Вот тебе , пример (код не мой, добавить к нему мне больше нечего)

Code: Select all

// Подключение LCD HD44780 к AVR через регистр сдвига

#include <tiny45.h>
#include <delay.h> 

// Команды для управления портами LCD
/* RS */
#define RS1 registr(0x01, 1)
#define RS0 registr(0x01, 0)

/* E */
#define E1 registr(0x02, 1)
#define E0 registr(0x02, 0)

/* D4 */
#define D41 registr(0x04, 1)
#define D40 registr(0x04, 0)

/* D5 */
#define D51 registr(0x08, 1)
#define D50 registr(0x08, 0)

/* D6 */
#define D61 registr(0x10, 1)
#define D60 registr(0x10, 0)

/* D7 */
#define D71 registr(0x20, 1)
#define D70 registr(0x20, 0)

// Функция установки курсора в указанную точку
#define lcd_gotoxy(x, y) write_to_lcd(0x80|((x)+((y)*0x40)), 0)

volatile static unsigned char tempdata = 0;

// Функция передачи данных в регистр
void registr(unsigned char data, unsigned char WriteOrErase)
{
if(WriteOrErase == 1)
tempdata = (tempdata|data);
else
tempdata &= ~(data);
PORTB.1 = 0; // ST_CP 0

PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x80)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x40)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x20)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x10)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x08)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x04)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x02)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.2 = 0; // SH_CP 0
if(tempdata & 0x01)PORTB.0 = 1; 
else PORTB.0 = 0;
PORTB.2 = 1; // SH_CP 1
PORTB.1 = 1; // ST_CP 1
}

// Функция передачи данных или команды в LCD
void write_to_lcd(unsigned char p, unsigned char rs)
{
if(rs == 1) RS1; 
else RS0;

E1;

if(p&0x10) D41; else D40;
if(p&0x20) D51; else D50;
if(p&0x40) D61; else D60;
if(p&0x80) D71; else D70;
E0; 
delay_ms(2);

E1;

if(p&0x01) D41; else D40;
if(p&0x02) D51; else D50;
if(p&0x04) D61; else D60;
if(p&0x08) D71; else D70;
E0;

delay_ms(2);
}

// Функция инициализации LCD
void lcd_init(void)
{
write_to_lcd(0x02, 0); // Курсор в верхней левой позиции
write_to_lcd(0x28, 0); // Шина 4 бит, LCD - 2 строки
write_to_lcd(0x0C, 0); // Разрешаем вывод изображения, курсор не виден
write_to_lcd(0x01, 0); // Очищаем дисплей
}

// Функция вывода строки
void lcd_puts(char *str)
{
unsigned char i = 0;

while(str)
write_to_lcd(str[i++], 1);
}

// Функция вывода переменной
void lcd_num_to_str(unsigned int value, unsigned char nDigit)
{
switch(nDigit)
{
case 4: write_to_lcd((value/1000)+'0', 1);
case 3: write_to_lcd(((value/100)%10)+'0', 1);
case 2: write_to_lcd(((value/10)%10)+'0', 1);
case 1: write_to_lcd((value%10)+'0', 1);
}
}

// Функция чтения АЦП
int readADC(unsigned char ch) 
{ 
ADMUX = ch; // Выбираем канал АЦП

ADCSRA |= (1 << ADSC); // Запускаем преобразование 
while((ADCSRA & (1 << ADSC))); // Ждем окончания преобразования

return(ADCW*11/4); // Возвращаем значение АЦП 
}

void main(void)
{
DDRB = 0b00000111; // Настраиваем входы/выходы

ADCSRA |= (1 << ADEN) // Разрешение АЦП
|(1 << ADPS2)|(1 << ADPS1); // Предделитель на 64

ACSR |= (1 << ACD); // Выключаем аналаговый компаратор
DIDR0 |= (1 << ADC3D)|(1 << ADC2D); // Отключаем неиспользуемые цифровые входы

lcd_init(); // Инициализация дисплея

write_to_lcd(0x01, 0); // Очищаем дисплей

lcd_gotoxy(0, 0); // Выводим строки на LCD
lcd_puts("U1 = . V");
lcd_gotoxy(0, 1);
lcd_puts("U2 = . V");

while(1)
{
lcd_gotoxy(5, 0);
lcd_num_to_str(readADC(2)/100, 2); // Выводим данные АЦП1 на LCD
lcd_gotoxy(8, 0);
lcd_num_to_str(readADC(2)%100/10, 1);
lcd_gotoxy(5, 1);
lcd_num_to_str(readADC(3)/100, 2); // Выводим данные АЦП2 на LCD
lcd_gotoxy(8, 1);
lcd_num_to_str(readADC(3)%100/10, 1);
delay_ms(50);
}
}


Скопипастено отсюда http://radioparty.ru/index.php/prog-avr ... 95-hd44780
more4ok
Пробегал мимо
Posts: 5
Joined: 28 Apr 2013 14:22

Re: ATtiny 13 c LCD-дисплеем.

Post by more4ok »

Схема в Протеусе не пашет. А код вижу норм. Спасибо. Если можете, помогите с Протеусом.
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: ATtiny 13 c LCD-дисплеем.

Post by Coviraylhik »

Давай свой проект в протеусе сюда, посмотрим...
more4ok
Пробегал мимо
Posts: 5
Joined: 28 Apr 2013 14:22

Re: ATtiny 13 c LCD-дисплеем.

Post by more4ok »

Вот. То, что осталось
Attachments
t13lcd.rar
Протеус
(11.81 KiB) Downloaded 405 times
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: ATtiny 13 c LCD-дисплеем.

Post by Coviraylhik »

Так проект в протеусе делается под схему (где схема?) , и для симуляции нужна прошивка (где нех?)
Я думал все это есть и не симулируется, а так пока ничем помочь не могу((((
more4ok
Пробегал мимо
Posts: 5
Joined: 28 Apr 2013 14:22

Re: ATtiny 13 c LCD-дисплеем.

Post by more4ok »

Вот

Добавлено спустя 1 минуту 4 секунды:
ДА вот схема
Attachments
Desktop.rar
(12.13 KiB) Downloaded 392 times
256.png
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: ATtiny 13 c LCD-дисплеем.

Post by Coviraylhik »

Собрал этот проект в протеус (обвязка минимальна, но достаточна , чтобы он начал симулироватся) Но фокус не удался , так что извини не знаю в чем там дело....
Attachments
Desktop.rar
(14.89 KiB) Downloaded 363 times
more4ok
Пробегал мимо
Posts: 5
Joined: 28 Apr 2013 14:22

Re: ATtiny 13 c LCD-дисплеем.

Post by more4ok »

Спасибо за схему. Если я правильно понимаю, то, в случаи если код не верный, то и схема не работает?
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: ATtiny 13 c LCD-дисплеем.

Post by Coviraylhik »

Правильно, но там вообще никаких признаков, что-то совсем не сростается, или схема не та или прошивка.....
Post Reply