Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/89: Рейтинг темы: голосов - 89, средняя оценка - 4.96
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580

Usbasp и Atmel AT89C51ED2

05.01.2016, 11:29. Показов 19629. Ответов 189
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, подскажите пожалуйста на работу коллега принес usbasp заказанный в китае https://encrypted-tbn0.gstatic... NCR1lFBZkQ И принес списанный прибор, на борту которого чип Atmel AT89C51ED2, можно ли через данный программатор залить прошивку в данный чип ? если можно то подскажите как и чем ? потому как программатор не видит кристалл. Использовал программу avrdudeprog и SinaProg в списке данного кристалла не наблюдаю. Помогите пожалуйста разобраться с этим чудом. Всем спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2016, 11:29
Ответы с готовыми решениями:

Чем программировать AT89C51ED2
У деда жены откопал на антресолях кучу AT89C51ED2. Хочу применить это чудо по назначению, но не знаю чем его программировать и какой...

Выполнение кода из внешней EEPROM (ASM, AT89C51ED2)
Задача: Необходимо в память (EEPROM) записать исполняющий код (не важно что он делает),который будет выполняться при включении...

Реверсинг "Эталон-01" на базе AT89C51ED2... или вопросы компетентности и степени жадности
Доброго времени суток. Моя проблема заключается в следующем. Работаю программистом ПЛК(только начинаю, только устроился). Дали задание: ...

189
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
07.01.2016, 16:45
Студворк — интернет-сервис помощи студентам
Дайте передохнуть пару часов, а то я по своему проекту написал полторы строчки кода за день
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
07.01.2016, 20:22  [ТС]
Цитата Сообщение от Витальич Посмотреть сообщение
Дайте передохнуть пару часов, а то я по своему проекту написал полторы строчки кода за день
Извините, конечно как будет у вас время, не забудьте заглянуть для дальнейшей беседы.
Заметил еще негативный момент редактора: вы у себя на пк отлаживали в папке C:/Program/main.c
теперь у меня отображает что нет такого файла, выберите альтернативный файл. Пока не нажал кнопочку save окошко так и продолжало приносить неудобства

Добавлено через 3 часа 26 минут
Скачал Proteus все же отладка становиться приятнее в 100 раз, вижу что происходит и т.д
Моргаю диодом )) и т.д ))
Нашел lcd дисплей 16х2 что-то аналогичное, 8 битный, но данных на нем не наблюдаю .... эх что-то не описал(и).
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
07.01.2016, 20:37
Цитата Сообщение от Dostik Посмотреть сообщение
вы у себя на пк отлаживали в папке C:/Program/main.c
нет, проекты яра имеют относительные пути, поэтому запускать можно отовсюду. Если у Вас проект раскидан по папкам, то их просто можно внести в настройки проекта
Миниатюры
Usbasp и Atmel AT89C51ED2  
1
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
07.01.2016, 20:39
Цитата Сообщение от Dostik Посмотреть сообщение
Скачал Proteus все же отладка становиться приятнее в 100 раз
скинте яровский и протеуса проект посмотрю.
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
07.01.2016, 21:46  [ТС]
Prot.rar
0
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 00:10  [ТС]
Витальич, Переписал код и Proteus переделал:
Prot.rar
Пример кода взял отсюда :
https://www.youtube.com/watch?v=BlDV05JQU-o
Всеравно не работает ...
0
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 13:21  [ТС]
Всем доброго времени суток, вчера была теория сегодня практика, придя на работу я стал искать к каким выводам подключен дисплей, прозвонил ноги и т.д, вот что получилось:

Как теперь вывести русский текст ? дисплей рус. поддерживает, когда просто пишу русскими буквами выдает иероглифы, какую кодировку может стоит использовать ? Спасибо за помощь, и ваши ответы.
0
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 14:52  [ТС]
Вообщем нашел конвертер, пишу иероглифами а получаю русский текст
C HoіГј Ўoгoј
Как-то так ))
Вопрос теперь другой как преобразовывать и выводить аналоговые значения ?
и как эти значения выводить на дисплей?
Большое спасибо за помощь.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.01.2016, 15:35
Цитата Сообщение от Dostik Посмотреть сообщение
Вопрос теперь другой как преобразовывать и выводить аналоговые значения ?
В AT89C51ED2 АЦП нет, нужен внешний ставить.
Цитата Сообщение от Dostik Посмотреть сообщение
как эти значения выводить на дисплей?
Зависит от того какой АЦП выберите.
1
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 15:55  [ТС]
Витальич, Дело в том что к нему есть модули расширения, к которым подключают и аналоговые сигналы и дискретные. Раскрутив 1 такой модуль, на борту имеем такой же самый кристалл. Еще интересно как они общались между собой ? и на экране отображалось при включении сколько блоков расширения подключено.
На самих модулях есть светодиоды которые загораются при обнаружении I и AI? Еще столкнулся с маленькой проблемой не могу на экран вывести значения из переменной 0_о
Делаю след образом :
C
1
2
unsigned char j = 125;
 LCD_Disp (0x80, j);
Получаю ошибку о не совпадении типов.
Так же хотел двигать текстом туда сюда, завел массив байтов, но что-то пошло не так
C
1
2
3
4
5
unsigned char i[] = {0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7};
unsigned char j;
 
for (j = 0; j<8;j++)
{ LCD_Disp (j[i], "ªAKb°");}
на экране все заполняется одним первым символом, затем попробовал очищать экран добавив в конце
C
1
LCD_Cmd (0x01);
В итоге экран быстро мигает и становиться полностью пустым. Спасибо за помощь
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.01.2016, 16:13
Цитата Сообщение от Dostik Посмотреть сообщение
на борту имеем такой же самый кристалл.
Еще чипы на плате есть? Выкладывайте фотку, посмотрим.
Цитата Сообщение от Dostik Посмотреть сообщение
Еще интересно как они общались между собой ?
UART,I2C, SPI, свой интерфейс на шине или просто на пинах, без фото не скажу.
Цитата Сообщение от Dostik Посмотреть сообщение
Получаю ошибку о не совпадении типов.
Судя по сему(что вижу ниже) в LCD_Disp параметром идет указатель, а не переменная. Вот тут я объясняю https://www.cyberforum.ru/post8585768.html Ваш "ВЄAKb°" посути массив символов.
По дисплею пока не подскажу.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2016, 16:33
Цитата Сообщение от Dostik Посмотреть сообщение
пишу иероглифами а получаю русский текст C HoіГј Ўoгoј
используй Notepad++,пишет в любой кодировке
создай отдельный файл в него вынеси все строки, а редактируй его в Notepad++

Добавлено через 4 минуты
Цитата Сообщение от Dostik Посмотреть сообщение
C
1
2
for (j = 0; j<8;j++)
{ LCD_Disp (j[i], "ВЄAKb°");}
Цитата Сообщение от Dostik Посмотреть сообщение
на экране все заполняется одним первым символом, затем попробовал очищать экран добавив в конце
хотелось бы описание на эту LCD_Disp
судя по всему первый параметр это адрес(позиция курсора) а второй указатель на строку
2
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 18:10  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
хотелось бы описание на эту LCD_Disp
Извиняюсь :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
#define LCD_port P3
#define LCD_rs P2_bit.P2_5
#define LCD_rw P2_bit.P2_6
#define LCD_en P2_bit.P2_7
 
void Lcd_init();
void Lcd_Data ( unsigned char ASCII);
void Lcd_Cmd (unsigned char cmm);
void Lcd_Disp (unsigned char Loc, unsigned char *String);
 
//============================================================
void Display_Name()
{
  Lcd_Disp (0x80, "Good");
  Lcd_Disp (0xC1, "Test");
}
 
 
int main (void)
{
 Lcd_init();
 Lcd_Cmd(0x01);
Display_Name();
 while (1);
}
 
void Lcd_init()
{
  Lcd_Cmd (0x38);
  Delay (2);
  Lcd_Cmd (0x0C);
  Delay (2);
  Lcd_Cmd (0x01);
  Delay (2);
  Lcd_Cmd (0x06);
  Delay (2);
}
 
void Lcd_Cmd (unsigned char cmm)
{
  LCD_port = cmm;
  LCD_rs = 0;
  LCD_rw = 0;
  LCD_en = 1;
  Delay (2);
  LCD_en = 0;
}
 
void Lcd_Data (unsigned char ASCII)
{
LCD_port = ASCII;
  LCD_rs = 1;
  LCD_rw = 0;
  LCD_en = 1;
  Delay (2);
 LCD_en = 0;
}
 
void Lcd_Disp (unsigned char Loc, unsigned char *String)
{
  Lcd_Cmd (Loc);
  while (*String)
  {
    Lcd_Data (*String++);
   
  }
}
Добавлено через 50 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
судя по всему первый параметр это адрес(позиция курсора) а второй указатель на строку
Так и есть только я сделал массив адресов, и хотел в цикле их прокрутить... но не вышло

Добавлено через 1 минуту
Цитата Сообщение от Витальич Посмотреть сообщение
Еще чипы на плате есть? Выкладывайте фотку, посмотрим.
Это уже в понедельник... сразу сделать не подумал...
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2016, 18:17
Цитата Сообщение от Dostik Посмотреть сообщение
и хотел в цикле их прокрутить... но не вышло
ну а теперь смотри
ты каждый раз выводишь слово ВЄAKb с новой позиции которая правее старой на один символ
Цитата Сообщение от Dostik Посмотреть сообщение
LCD_Disp (j[i], "ВЄAKb°");}
и следующее слово затирает предыдущее
C++
1
2
3
4
5
6
7
ВЄAKb
 ВЄAKb
  ВЄAKb
    ВЄAKb
      ВЄAKb
----------------
ВВВВВ
вот и получаешь
Цитата Сообщение от Dostik Посмотреть сообщение
на экране все заполняется одним первым символом,
ты хотел бегущюю строку сделать?
2
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 18:21  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
ты хотел бегущюю строку сделать?
Ага практикуюсь, думал так получиться, там вообще двойной массив был, второй по аналогии был так :
C
1
2
for (j = 8; j>=8;j--)
{ LCD_Disp (j[i], "ВЄAKb°");}
Но как я уже понял так не пойдет, вы не подскажите как по нормальному люди делают бегущие строки ??? Большое вам спасибо за ответ.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.01.2016, 18:22
Цитата Сообщение от ValeryS Посмотреть сообщение
LCD_Disp (j[i], "ВЄAKb°");}
Первый параметр позиция вывода первого символа, количество символов функция определяет сама
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2016, 18:43
Цитата Сообщение от Dostik Посмотреть сообщение
вы не подскажите как по нормальному люди делают бегущие строки
первый вариант, чисто аппаратно, у дисплеев есть такой режим передвигать курсор/передвигать экран
сам не пользовался но в даташите описан
второй вариант программно
например так заполняем строку а потом копируем её во временный буфер
C++
1
2
3
4
5
6
7
8
9
char str[]= "        1234567        "
for(int i=0; i<16;i++)
 {
 char buf[8];
 memcpy(buf,str[i],7);
 buf[7]=0;
 LCD_Disp(addr,buf);
 
}
третий вариант
очищать первый/ последний символ и выводить левее/правее
вот твой переработанный
C
1
2
3
4
5
6
7
unsigned char j;
 
for (j = 0; j<8;j++)
{
 LCD_Disp (addr+j, " ");
 LCD_Disp (addr+j+1, "ВЄAKb°");
}
во втором и третьем варианте в циклах нужна задержка, иначе пролетит и не заметишь
и учти это только наброски а не рабочий код, требуется доработка напильником

Добавлено через 5 минут
еще один вариант выводить слово в начале и в конце с пробелами, тогда оно само затрет первый или последний символ
C++
1
2
for (j = 8; j>=8;j--)
{ LCD_Disp (j[i], " ВЄAKb° ");}
2
 Аватар для Dostik
38 / 38 / 4
Регистрация: 31.05.2011
Сообщений: 580
08.01.2016, 18:44  [ТС]
Спасибо вам большое, буду на практике обтачивать напильником, но есть одни вопрос чему равна переменная addr она у вас просто нигде не описана ? что за тип и т.д ?
Большое спасибо, и еще один вопрос интересует как вывести данные переменной
Цитата Сообщение от Dostik Посмотреть сообщение
Вопрос теперь другой как преобразовывать и выводить аналоговые значения ?
и как эти значения выводить на дисплей?
С аналогами разобрались у данного кристалла нет ацп, но почему не могу вывести значения переменной какой нибудь ?
получаю ошибку :
Цитата Сообщение от Dostik Посмотреть сообщение
Еще столкнулся с маленькой проблемой не могу на экран вывести значения из переменной 0_о
Делаю след образом :
CВыделить код
1
2
unsigned char j = 125;
*LCD_Disp (0x80, j);
Получаю ошибку о не совпадении типов.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.01.2016, 18:47
C
1
2
unsigned char str[10];
LCD_Disp (1, str);
Я кидал ссылку где я про функции,массивы и указатели рассказываю
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2016, 18:50
Цитата Сообщение от Dostik Посмотреть сообщение
чему равна переменная addr
адресу куда хочешь выводить, это не перемененная это я так обозвал, так скажем псевдоним
для твоей задачи напиши 0xC0, вместо addr
Цитата Сообщение от Dostik Посмотреть сообщение
и еще один вопрос интересует как вывести данные переменной
открой для себя sprintf
http://lord-n.narod.ru/downloa... printf.htm
C
1
2
3
4
int a=15;
char buf[16];
sprintf(buf,"%d",a);
LCD_Disp (0xC0, buf);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.01.2016, 18:50
Помогаю со студенческими работами здесь

USBAsp
Вот собственно... Купил себе нетбук и появилась необходимость в USB программаторе. Делал по печатке DY HOTTa. Сторону с пайкой стыдно...

USBAsp
Всем привет. Собрал программатор USBAsp. Подключил к USB, по идее должен же загореться светодиод что питание поступило а он у меня...

tiny85 & USBasp
Попробовал сейчас залить програмку в тини85 при помощи усбаспа, программа заливается корректно, а фьюзы не читаются. Пользуюсь оболочкой...

Проблемы с USBASP
Здравствуйте. Начал изучение микроконтроллеров. Приобрел usb программатор USBASP. Пытаюсь прошить тини2313. Скачал проги eXtreme Burner...

Обновление USBasp
Добрый день. Некоторое время занимался arduino, решил вылазить из пеленок и самостоятельно травить платы, прошивать контроллеры... ...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru