Easyelectronics.ru

Электроника для всех
Текущее время: 30 мар 2017, 09:57

Часовой пояс: UTC + 5 часов



    • Изготовление печатных плат
    • Создание принципиальных схем и проектирование печатных плат
    • Симуляция работы на spice моделях
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 13 авг 2010, 01:35 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6169
Откуда: Челябинск
Емнип после сброса он выдает на все порты 0 т.к. у него в регистрах PORT = 0

А единичку он дает только подтягом, либо хай зед, если это порт без подтяга.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 13 авг 2010, 17:55 
Старожил
Аватара пользователя

Зарегистрирован: 12 авг 2010, 20:12
Сообщения: 6995
Откуда: Беларусь
Чип ат89с4051 - залил прошивку тестовую, в папке с какого-то би прога, где светодиоды на первом порту мигают, ноль. Залил родную (чип рабочий был - с принтера ККМ ЭКР 3110) - светодиод загорелся, но не тухнет :D все линии в нулях.

Паходу придется собирать этот бипрог, на двух 315-ых и паре резисторов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 13 авг 2010, 18:15 
Старожил
Аватара пользователя

Зарегистрирован: 12 авг 2010, 20:12
Сообщения: 6995
Откуда: Беларусь
По-поводу напряжений - прогер подтягивает RST к 12-ти вольтам, подается питалово. Вроде как все есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 01 сен 2010, 23:38 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Друзья, подскажите пожалуйста, как найти для компилятора IAR 5.5.0 файл header для микроконтроллера AT89C2051!
Я новичок в этом деле, но насколько я понимаю должен быть файл например io8051.h или ioc2051.h.
Уже 2 дня как не могу даже самой простой программы написать для этого контроллера...а в интернете ничего полезного найти не могу. Скачанные мною хидеры или для других типов компиляторов или я их не туда устанавливаю, так как IAR ругается и не компилирует прогу.
Помогите пожалуйста, буду очень признателен.

п.с. Признаюсь в Си я не силен...
п.с.с. Простите за плохой русский.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 00:01 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Для AT89C2051 спец. хидеров не треба, при старте проекта выбираешь 8051 и Empty. Тока при написании не забывай, что у него отсутствуют некоторые порты.
А где такую древнюю версию нарыл? У меня 7.50 и тоже не свежак. И почему ИАР? Чем те Кейл не угодил? В последней, кстати, все Атмелы присутствуют.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 00:53 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
lyberzon писал(а):
Для AT89C2051 спец. хидеров не треба, при старте проекта выбираешь 8051 и Empty. Тока при написании не забывай, что у него отсутствуют некоторые порты.
А где такую древнюю версию нарыл? У меня 7.50 и тоже не свежак. И почему ИАР? Чем те Кейл не угодил? В последней, кстати, все Атмелы присутствуют.



Эхх...ход моих мыслей понять будет тяжело...Дело в том, что я начал осваивать м/к с цикла статей и уроков по м/к С.М. Рюмика в журнале "Радиоаматор" (Украина) за 2004(!) год. Там все очень детально, что в моем случае необходимо, расписано по шагах и все примеры на м/к AT89C2051. Но есть большая проблема, он использует Си-компилятор ісс8051 /DOS выпущенный в 1986(!) годе и модифицирован в 1991 фирмой IAR Systems. Я скачал этот компилятор, но к сожалению на Windows 7 x64 он не работает.
В своих статьях автор всегда пишет первую строку #include <io51.h> и объясняет что данный хидер очень облегчает программирование. Так как , Си-компилятор ісс8051 /DOS у меня не работает я решил установить его далекого родственника ИАР 5.5.0.
Но при копировании в слепую листинга:

/*Пробный тест, МК шаг 3, журнал РА, №5, 2004= 1*/
#include <io51.h> /*Системная библиотека= 2*/
/*Пустая строка, разделитель заголовка= 3*/
void main (void) /*Начало "тела" программы= 4*/
{ /*Начало главной функции "main"= 5*/
while (1) /*Бесконечный цикл= 6*/
{ /*Начало "тела " функции "while"= 7*/
P1.3 = P3.4; /*Повторение SB1 (HL1)= 8*/
P3.7 = P3.5 ^ 1; /*Инверсия SB2 (HL2)= 9*/
} /*Окончание функции "while" в строке 6=10*/
} /*Окончание функции "main" и программы=11*/



ИАР начал ругаться насчет переменных P1.3 ; P3.4; P3.7 ; P3.5 и файла #include <io51.h> и выдал 88 ошибок :(
Тогда я скачал http://www.mcukorea.co.kr/data/maniaboa ... ort/io51.h и установил в папку inc где лежат остальные хидеры, но положительных результатов не стало.

Кейл установил, в общем как и ВинАВР и СвАВР, но ни в одном компиляторе мне не удается прописать эту программу...все они не понимают ни хидера...ни переменных.

Вот так вот :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 01:24 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Цитата:
в общем как и ВинАВР и СвАВР, но ни в одном компиляторе мне не удается прописать эту программу...все они не понимают ни хидера...ни переменных.

Не удивительно.
А мой ИАР схавал код и не подавился. Странно. Ну и хрен с ним, забей на него. Юзай Кейла и такой хидер
Код:
#include <REG52.H>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 01:53 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
С Кайлом у меня что-то не получается :(


Вложения:
Комментарий к файлу: Эт что значит програм. код слишком большой?
bad.png
bad.png [ 205.51 Кб | Просмотров: 10832 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 01:59 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
STARTUP.A51 из проекта выкинь, с ним лимит превышает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 02:08 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Еще 2 вопроса:

1.Почему комменты на кириллице пишет иероглифами и можно ли заставить прогу их отображать нормально?
2. Все же, к сожалению, в reg52.h прописаны только переменные Р1 Р2 Р3 а это как я понимаю не выводи м/к а группы выводов...то есть мне все равно придется писать такие вот команды Р1 =0хFC P2 = 0xFC, да? так как кейл не понимает выражений типа Р1.3 и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 02:11 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
LEDS.C(8): error C141: syntax error near '.3'
LEDS.C(8): error C141: syntax error near '.4'
LEDS.C(9): error C141: syntax error near '.7'
LEDS.C(9): error C141: syntax error near '.5'
Target not created


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 02:36 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Adios писал(а):
LEDS.C(8): error C141: syntax error near '.3'
LEDS.C(8): error C141: syntax error near '.4'
LEDS.C(9): error C141: syntax error near '.7'
LEDS.C(9): error C141: syntax error near '.5'
Target not created

Попробуй так
Код:
#include <REG2051.H>
//#include <REG52.H>
void main (void)
{
while (1)
{
P1_3 = P3_4;
P3_7 = P3_5 ^ 1;
}
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 20:39 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Lyberzon, большое ТЕБЕ СПАСИБО!
теперь все работает как часики!!!
Нет границ моему счастью:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 21:11 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Adios писал(а):
[b]Нет границ моему счастью:)

А я то как рад.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 02 сен 2010, 23:31 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Еще 2 чисто практических вопросы:

1. Признаюсь, что симулирую схемы на Протеусе, так вот в одной его библиотеке нашел элемент LED BIRG Animated bi-coloured model (red\green) with self-flashing. Фокус этого элемента в том что в одном корпусе запаянные два светодиоды в противоположных направлениях. Меняя направление тока можно заставить светиться или красным или зеленым цветом. В чем собственно вопрос: можно ли к м/к подключить этот элемент как на рисунку? И программно заставить м/к делать в одном случае вывод Р1_0 = 1 на передачу, а Р1_1 = 0 на прием, а во втором случае наоборот Р1_0 на прием и присваивать ему логическ. 0, а Р1_1 на передачу и лог. 1 ? Понятное дело что в этом случае ни о каких транзисторных ключах речь не идет, но ведь ток 10 мА м/к осилит и без них.

2. Если к выводам Р3_0, Р3_1, Р3_2 у меня подключены оптопары и эти выводы всегда (!) работают на прием должен ли я в начале программы это описывать?


п.с. Мой Кейл упорно не видит кирилличные комменты :( если пишу текст кириллицей отображает его нормально, но как только ставлю /* хххххххх*/ сразу же иероглифы :(


Вложения:
Комментарий к файлу: вот этот самый зверь...
led.png
led.png [ 160.2 Кб | Просмотров: 10773 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 00:37 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
1) С твоим камнем такой фокус не пройдет. Почему? Читай в даташите об устройстве портов http://www.atmel.com/dyn/resources/prod_documents/doc0368.pdf
2) Нет. Чтобы настроить ногу порта на вход, надо записать в нее 1. После сброса чипа, все порты настраиваются на ввод (в них записываются единицы).
3) Забей и пиши в транслитерации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 08:17 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2395
Откуда: Киев
Не обязательно в транслитерации. Можно доустановить недостающие шрифты в винду, а можно выбрать: "Edit -> Configuration -> Colors&Fonts" и там выбрать кириллический шрифт из тех, которые в системе есть. Следует учесть, что собственно шрифт выбирается один для всего текста, а ключевые слова/числа/комменты и т.п. могут выделяться только стилем (нормальный/жирный/курсив) и цветом.
(В последнее время пишу комменты на английском - лениво раскладку переключать :)).

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 09:25 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Katz писал(а):
Не обязательно в транслитерации. Можно доустановить недостающие шрифты в винду, а можно выбрать: "Edit -> Configuration -> Colors&Fonts" и там выбрать кириллический шрифт из тех, которые в системе есть. Следует учесть, что собственно шрифт выбирается один для всего текста, а ключевые слова/числа/комменты и т.п. могут выделяться только стилем (нормальный/жирный/курсив) и цветом.
(В последнее время пишу комменты на английском - лениво раскладку переключать :)).

А Курьер, который по умолчанию разве не кирилический? Пробовал менять на Ариал, Тахому - та же байда. Сдается мне, что проблема в том, что в настройках нет выбора раскладки для шрифта, а по умолчанию Кейл выбирает буржуйскую


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 10:08 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Katz был прав. :) Поменял в Edit\Configuration\colours and Fonts шрифт на FixedSys и все получилось :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 10:14 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
lyberzon писал(а):
1) С твоим камнем такой фокус не пройдет. Почему? Читай в даташите об устройстве портов http://www.atmel.com/dyn/resources/prod_documents/doc0368.pdf


Port 3 pins P3.0 to P3.5, P3.7 are seven bi-directional I/O pins with internal pull-ups. P3.6 is
hard-wired as an input to the output of the on-chip comparator and is not accessible as a general-
purpose I/O pin. The Port 3 output buffers can sink 20 mA. When 1s are written to Port 3
pins they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3
pins that are externally being pulled low will source current (IIL) because of the pull-ups.

прости не могу понять почему? 20 мА есть, 2 направления есть...

п.с. Или ты имееш в виду что я не смогу настроить программно выводи порта 3 одновременно на прием и передачу?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 10:36 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Adios писал(а):
прости не могу понять почему? 20 мА есть, 2 направления есть...

У 51 семейства, к которому принадлежит и 2051, порты не симметричные. В нижнем плече - транзистор, в верхнем - резистор, и довольно большой (для экономичности). Они рассчитаны в основном на втекающий ток. Вытекающий же из порта ток (при "1" на выходе) очень мал, порядка 1 - 1,5 ма. Когда нужно больше, обычно снаружи вешают подтягивающий резистор. Но он увеличивает потребление тока при 0 на выходе.
У большинства современных контроллеров выходы симметричные, и позволяют иметь большие токи и 0, и 1. Правда, есть отдельные выводы и с ОК (вообще без верхнего плеча), что тоже надо учитывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 16:17 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 2395
Откуда: Киев
У тех же NXP-шных 51, да и не только у них, возможны такие варианты: квазидвунаправленный (классика 51 - с большим подтягивающим резистором), только вход (высокоимпедансный), push-pull и открытый сток - в общем, на все случаи жизни. Для конфигурации портов добавлено по 2 SFR на каждый порт.

Цитата:
А Курьер, который по умолчанию разве не кирилический?
Там не Courier, а Courier New. Он бывает разный, в некоторых модификациях кириллического курсива нет. А у простого Курьера может не оказаться жирного стиля, приходится цветом выделять... перенесу-ка домой тот вариант, с которым таки работают настройки по умолчанию...

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 18:24 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
SWG писал(а):
Adios писал(а):
прости не могу понять почему? 20 мА есть, 2 направления есть...

У 51 семейства, к которому принадлежит и 2051, порты не симметричные. В нижнем плече - транзистор, в верхнем - резистор, и довольно большой (для экономичности). Они рассчитаны в основном на втекающий ток. Вытекающий же из порта ток (при "1" на выходе) очень мал, порядка 1 - 1,5 ма. Когда нужно больше, обычно снаружи вешают подтягивающий резистор. Но он увеличивает потребление тока при 0 на выходе.
У большинства современных контроллеров выходы симметричные, и позволяют иметь большие токи и 0, и 1. Правда, есть отдельные выводы и с ОК (вообще без верхнего плеча), что тоже надо учитывать.


Тогда мне нужно использовать обыкновенный двухцветной светодиод, в которого три выводы?
Возможен такой вот вариант? :

п.с. я использовал п-н-п транзисторы так как при импульсе сброса все выводы м/к имеет лог. единицу. выводы Р1_0 и Р1_1 я не использую, так как они какие то странные:) они вроде как бы без внутренних резисторов Rн.


Вложения:
Комментарий к файлу: двухцветной светодиод в черном прямоугольнике
by.png
by.png [ 163.15 Кб | Просмотров: 10719 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 18:29 
Только пришел

Зарегистрирован: 01 сен 2010, 23:28
Сообщения: 14
Katz писал(а):
У тех же NXP-шных 51, да и не только у них, возможны такие варианты: квазидвунаправленный (классика 51 - с большим подтягивающим резистором), только вход (высокоимпедансный), push-pull и открытый сток - в общем, на все случаи жизни. Для конфигурации портов добавлено по 2 SFR на каждый порт



Если честно, я мало понял, так как не знаю что такое пуш пул:(

а насчет курьера нью, то ты прав, он отображается нормально только в обычном режиме, а в италик (курсив) не хочет .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AT89C2051
СообщениеДобавлено: 03 сен 2010, 18:40 
Старожил
Аватара пользователя

Зарегистрирован: 20 авг 2010, 14:14
Сообщения: 1619
Откуда: Рэшен Федерэшн
Проще заюзать двухцветный светик с общими анодами, а катоды ч/з резюки 330 Ом на ноги контролла.
Цитата:
Если честно, я мало понял, так как не знаю что такое пуш пул:(

Двухтактные выходы (активные высокий и низкий уровни на выходах)

Katz сенкс за наводку


Последний раз редактировалось Brigadir 03 сен 2010, 18:48, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB