Обсуждаем контроллеры компании Atmel.
Ответить

AT89c52

Вт июл 04, 2017 19:01:43

Добрый день!
Пожалуйста подскажите в каком компиляторе можно запрограммировать AT89C52?
В Атмел студио нет этого контроллера.
Хотелось бы на Си

Спасибо!

Re: AT89c52

Вт июл 04, 2017 20:18:33

IAR, Keil платные, SDCC бесплатный

Re: AT89c52

Вт июл 04, 2017 20:54:43

В Атмел студио нет этого контроллера.
это не AVR

Re: AT89c52

Ср июл 05, 2017 06:08:27

спасибо буду пробовать

Re: AT89c52

Ср июл 05, 2017 07:08:36

я в KEIL программил...

Re: AT89c52

Ср июл 05, 2017 08:58:11

скачал IAR 6.12.1, но там этой микрухи нет, пожалуйста подскажите как добавить?

Re: AT89c52

Ср июл 05, 2017 09:09:23

10.10.1
http://caxapa.ru/747170.html
скачать по прямой ссылке, потом в будку (прочесть начало топика)

Re: AT89c52

Ср июл 05, 2017 10:36:48

10.10.1
http://caxapa.ru/747170.html
скачать по прямой ссылке, потом в будку (прочесть начало топика)

Спасибо!
Установил, но к сожалению там нету серии 89, только 90:(

Re: AT89c52

Ср июл 05, 2017 11:35:00

Ассемблер для MCS51 от атмел:
http://www.atmel.com/tools/C51ASM.aspx
есть и другое, но либо условно-бесплатное либо "устаревшее"...
С AT89C52 необходимо специальный программатор иметь.
Более простым является использование STK200 с AT89S51/AT89S52 и специальной оболочки ISP programmer.
Как вариант отладчика реального времени - "котуинка":
viewtopic.php?p=3104991#p3104991
и одна из реализаций работы с ней:
viewtopic.php?p=3132273#p3132273
:beer:

Re: AT89c52

Ср июл 05, 2017 11:41:17

Ассемблер для MCS51 от атмел:
http://www.atmel.com/tools/C51ASM.aspx
есть и другое, но либо условно-бесплатное либо "устаревшее"...
С AT89C52 необходимо специальный программатор иметь.
Более простым является использование STK200 с AT89S51/AT89S52 и специальной оболочки ISP programmer.
Как вариант отладчика реального времени - "котуинка":
viewtopic.php?p=3104991#p3104991
и одна из реализаций работы с ней:
viewtopic.php?p=3132273#p3132273
:beer:

Спасибо!
программатор есть.
Вопрос только в компиляторе.
KEIL, IAR ставил, но там этой микрухи нет(
а на ассемблере проблематично будет:(
Си компилятор ищу

Re: AT89c52

Ср июл 05, 2017 11:48:58

СИ...
Для KEIL была версия с локализацией от силабса (за получением надо на силабс идти). Там возможно и переделка под атмел.
Еще (опять же демка) от Raisonance (RIDE7 IDE). Или от https://www.mikroe.com/mikroc/ ...
:roll:

Re: AT89c52

Ср июл 05, 2017 11:52:04

Как вариант, поставить ATmega8515 :) Цепь RESET только сделать. Да и делать там особо нечего.

Re: AT89c52

Ср июл 05, 2017 11:55:01

Это ежли человеку захочется именно мегами/тиньками заняться.
Там и диповская ATmega162 пройдет.
8)

Re: AT89c52

Ср июл 05, 2017 12:03:41

но к сожалению там нету серии 89, только 90:(

а это что?
Изображение

Re: AT89c52

Ср июл 05, 2017 16:05:37

Странно, писал ответ что все норм, скачал нужный пакет Кеил и там всетаки появился этот пакет.
Всем спасибо!

Но возникла еще одна интересная штука:
Написал простенькую программу:
Спойлер
Код:
#include <REGX52.H>

sfr P1 = 0x90;       
sbit P1_0 = P1^0;   
sbit P1_1 = P1^1;   
sbit P1_2 = P1^2;     
sbit P1_3 = P1^3;   
sbit P1_4 = P1^4;     
sbit P1_5 = P1^5;     
sbit P1_6 = P1^6;     
sbit P1_7 = P1^7;     

void delay(unsigned int itime) {
unsigned int i,j;
for (i=0; i<itime; i++)
for (j=0; j<1275; j++); // 1ms delay
}


void main (void)
{
  {
  P1_3 = 0;         
      delay(50);
        P1_3 = 1;         
      delay(50);
  }
}


В протеусе все работает, но в реальном железе на выходе единичка.
Странно, может не правильно настраиваю?

Re: AT89c52

Ср июл 05, 2017 17:52:31

зачем тогда #include <REGX52.H> там уже есть:
Код:
sfr P1      = 0x90;
.........
/*----------
P1 Bit Registers
----------*/
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;

http://www.keil.com/dd/docs/c51/atmel/regx52.h

Re: AT89c52

Чт июл 06, 2017 07:42:20

зачем тогда #include <REGX52.H> там уже есть:
Код:
sfr P1      = 0x90;
.........
/*----------
P1 Bit Registers
----------*/
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;

http://www.keil.com/dd/docs/c51/atmel/regx52.h

Без доп объявлений, тоже ноль реакции в железе

Re: AT89c52

Чт июл 06, 2017 07:55:17

leftmails писал(а):В протеусе все работает, но в реальном железе на выходе единичка.
а что вы хотели-то? вреальном железе вы просто не успеваете заметить, как нолик сменяется единичкой.
leftmails писал(а):void main (void)
{
  {
  P1_3 = 0;         
      delay(50);
        P1_3 = 1;         
      delay(50);
  }
}

Re: AT89c52

Чт июл 06, 2017 09:17:25

leftmails писал(а):В протеусе все работает, но в реальном железе на выходе единичка.
а что вы хотели-то? вреальном железе вы просто не успеваете заметить, как нолик сменяется единичкой.
leftmails писал(а):void main (void)
{
  {
  P1_3 = 0;         
      delay(50);
        P1_3 = 1;         
      delay(50);
  }
}


Меняя время на увеличение не меняет ситуации.
Даже если просто написать:
Код:
void main (void)
{
  {
  P1_3 = 0;         

  }
}

То все равно на выходе в железе 1, а в симуляторе все ок. Несколько микрух перепробывал, результат тотже.
Кстати, забыл сказать к этой ножке подтянут резистор 10К через +, тоесть работа происходит через подачу 0

Re: AT89c52

Чт июл 06, 2017 09:22:29

Давай сюды схемку - тогда можно чего подсказать будет.
:roll:
Ответить