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

Usbasp и Atmel AT89C51ED2

05.01.2016, 11:29. Показов 20049. Ответов 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
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
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
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
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
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
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
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
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
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru