Easyelectronics.ru

Электроника для всех
Текущее время: 19 ноя 2018, 08:19

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

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

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

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

_________________
Хозяин дома


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

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

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


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

Зарегистрирован: 12 авг 2010, 20:12
Сообщения: 7178
Откуда: Беларусь
По-поводу напряжений - прогер подтягивает 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 Кб | Просмотров: 12896 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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 Кб | Просмотров: 12837 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 2871
Откуда: Винница
Не обязательно в транслитерации. Можно доустановить недостающие шрифты в винду, а можно выбрать: "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
Сообщения: 2871
Откуда: Винница
У тех же 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 Кб | Просмотров: 12783 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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 часов


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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