Страница 1 из 2

AT89c52

Добавлено: Вт июл 04, 2017 19:01:43
leftmails
Добрый день!
Пожалуйста подскажите в каком компиляторе можно запрограммировать AT89C52?
В Атмел студио нет этого контроллера.
Хотелось бы на Си

Спасибо!

Re: AT89c52

Добавлено: Вт июл 04, 2017 20:18:33
oleg110592
IAR, Keil платные, SDCC бесплатный

Re: AT89c52

Добавлено: Вт июл 04, 2017 20:54:43
ARV
[uquote="leftmails",url="/forum/viewtopic.php?p=3138515#p3138515"]В Атмел студио нет этого контроллера.[/uquote]это не AVR

Re: AT89c52

Добавлено: Ср июл 05, 2017 06:08:27
leftmails
спасибо буду пробовать

Re: AT89c52

Добавлено: Ср июл 05, 2017 07:08:36
Mishany
я в KEIL программил...

Re: AT89c52

Добавлено: Ср июл 05, 2017 08:58:11
leftmails
скачал IAR 6.12.1, но там этой микрухи нет, пожалуйста подскажите как добавить?

Re: AT89c52

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

Re: AT89c52

Добавлено: Ср июл 05, 2017 10:36:48
leftmails
[uquote="oleg110592",url="/forum/viewtopic.php?p=3138839#p3138839"]10.10.1
http://caxapa.ru/747170.html
скачать по прямой ссылке, потом в будку (прочесть начало топика)[/uquote]
Спасибо!
Установил, но к сожалению там нету серии 89, только 90:(

Re: AT89c52

Добавлено: Ср июл 05, 2017 11:35:00
BOB51
Ассемблер для MCS51 от атмел:
http://www.atmel.com/tools/C51ASM.aspx
есть и другое, но либо условно-бесплатное либо "устаревшее"...
С AT89C52 необходимо специальный программатор иметь.
Более простым является использование STK200 с AT89S51/AT89S52 и специальной оболочки ISP programmer.
Как вариант отладчика реального времени - "котуинка":
http://radiokot.ru/forum/viewtopic.php? ... 1#p3104991
и одна из реализаций работы с ней:
http://radiokot.ru/forum/viewtopic.php? ... 3#p3132273
:beer:

Re: AT89c52

Добавлено: Ср июл 05, 2017 11:41:17
leftmails
[uquote="BOB51",url="/forum/viewtopic.php?p=3138898#p3138898"]Ассемблер для MCS51 от атмел:
http://www.atmel.com/tools/C51ASM.aspx
есть и другое, но либо условно-бесплатное либо "устаревшее"...
С AT89C52 необходимо специальный программатор иметь.
Более простым является использование STK200 с AT89S51/AT89S52 и специальной оболочки ISP programmer.
Как вариант отладчика реального времени - "котуинка":
http://radiokot.ru/forum/viewtopic.php? ... 1#p3104991
и одна из реализаций работы с ней:
http://radiokot.ru/forum/viewtopic.php? ... 3#p3132273
:beer:[/uquote]
Спасибо!
программатор есть.
Вопрос только в компиляторе.
KEIL, IAR ставил, но там этой микрухи нет(
а на ассемблере проблематично будет:(
Си компилятор ищу

Re: AT89c52

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

Re: AT89c52

Добавлено: Ср июл 05, 2017 11:52:04
akl
Как вариант, поставить ATmega8515 :) Цепь RESET только сделать. Да и делать там особо нечего.

Re: AT89c52

Добавлено: Ср июл 05, 2017 11:55:01
BOB51
Это ежли человеку захочется именно мегами/тиньками заняться.
Там и диповская ATmega162 пройдет.
8)

Re: AT89c52

Добавлено: Ср июл 05, 2017 12:03:41
oleg110592
[uquote="leftmails",url="/forum/viewtopic.php?p=3138875#p3138875"]но к сожалению там нету серии 89, только 90:([/uquote]
а это что?
Изображение

Re: AT89c52

Добавлено: Ср июл 05, 2017 16:05:37
leftmails
Странно, писал ответ что все норм, скачал нужный пакет Кеил и там всетаки появился этот пакет.
Всем спасибо!

Но возникла еще одна интересная штука:
Написал простенькую программу:
Спойлер

Код: Выделить всё

#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
oleg110592
зачем тогда #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
leftmails
[uquote="oleg110592",url="/forum/viewtopic.php?p=3139174#p3139174"]зачем тогда #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[/uquote]
Без доп объявлений, тоже ноль реакции в железе

Re: AT89c52

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

Re: AT89c52

Добавлено: Чт июл 06, 2017 09:17:25
leftmails
[uquote="ARV",url="/forum/viewtopic.php?p=3139595#p3139595"]
leftmails писал(а):В протеусе все работает, но в реальном железе на выходе единичка.
а что вы хотели-то? вреальном железе вы просто не успеваете заметить, как нолик сменяется единичкой.
leftmails писал(а):void main (void)
{
  {
  P1_3 = 0;         
      delay(50);
        P1_3 = 1;         
      delay(50);
  }
}
[/uquote]

Меняя время на увеличение не меняет ситуации.
Даже если просто написать:

Код: Выделить всё

void main (void)
{
  {
  P1_3 = 0;         

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

Re: AT89c52

Добавлено: Чт июл 06, 2017 09:22:29
BOB51
Давай сюды схемку - тогда можно чего подсказать будет.
:roll: