1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Программирование at89s53

Тема в разделе "Технический", создана пользователем Dr.Death, 18.07.04.

  1. Dr.Death

    Dr.Death Гость

    Вот пробовал найти файл к нему для его программирования io51.h, может есть у кого? Выложите сюда его пожалуйста.
     
  2. firefly

    firefly Активный участник

    1.955
    0
    Должен идти с компилятором. Скорее всего компилятор просто его не видет. Найди его на винте и укажи в include полный путь к нему. Какой, кстати, компилятор?
     
  3. Dr.Death

    Dr.Death Гость

    firefly
    Так в том то и проблема, у меня нет его, хотя стоит VMLab&AVRStudio
     
  4. firefly

    firefly Активный участник

    1.955
    0
    Посмотри примеры к AVRStudio. Он может он там по другому называется. Это обычный хедер с описанием проца. Любой пример посмотри из комплекта, что тамм в начале инклудится.
     
  5. Dr.Death

    Dr.Death Гость

    Я все просмотрел в папке avrassembler\appnotes\, там инклудятся только 8535 и def1200(at90s1200)
     
  6. black

    black Гость

    Dr.Death попробуй поискать на винте/в инсталляшке :).
    А каким образом? ;) :D
    Кста, твой проц поддерживается средой? Если поддерживается, возьми любой *.h от процессора, похожего на твой, и заинклудь его, в чём проблемы? И вообще, переходи на PIC :)
     
    Последнее редактирование модератором: 18.07.04
  7. Dr.Death

    Dr.Death Гость

    black
    Нет

    Copy->Paste как цитатата.
    зы. А может тогда ссылку на компилятор асма дадите.
     
  8. black

    black Гость

    Dr.Death, я тут преодолел свою природную лень и прошёлся по
    этой ссылке. Сдаётся мне, что среды разработки
    ну никоим образом не могут поддерживать клон серии '51. Им нужно что-то навроде AVRа... :D ;)
     
  9. Dr.Death

    Dr.Death Гость

    black
    А ссылку можно или как этоназывается.
     
  10. firefly

    firefly Активный участник

    1.955
    0
  11. pegas

    pegas Участник

    311
    0
    вот тебе текст io51.h от компилятора IAR C для 8051
    /* - IO51.H -

    Special header for the 8051/52/31/32 processors.

    Version 5.20 [IMAF]

    Revision control system
    $Id: io51.h 1.11 1999/07/08 18:42:55 IFAT Exp $

    */

    #pragma language=extended

    /*===============================*/
    /* Predefined SFR Byte Addresses */
    /*===============================*/

    sfr P0 = 0x80;
    sfr P1 = 0x90;
    sfr P2 = 0xA0;
    sfr P3 = 0xB0;
    sfr PSW = 0xD0;
    sfr ACC = 0xE0;
    sfr B = 0xF0;
    sfr SP = 0x81;
    sfr DPL = 0x82;
    sfr DPH = 0x83;
    sfr PCON = 0x87;
    sfr TCON = 0x88;
    sfr TMOD = 0x89;
    sfr TL0 = 0x8A;
    sfr TL1 = 0x8B;
    sfr TH0 = 0x8C;
    sfr TH1 = 0x8D;
    sfr IE = 0xA8;
    sfr IP = 0xB8;
    sfr SCON = 0x98;
    sfr SBUF = 0x99;
    sfr T2CON = 0xC8;
    sfr RCAP2L = 0xCA;
    sfr RCAP2H = 0xCB;
    sfr TL2 = 0xCC;
    sfr TH2 = 0xCD;

    /*==============================*/
    /* Predefined SFR Bit Addresses */
    /*==============================*/

    /*========PSW========*/

    bit CY = 0xD7;
    bit AC = 0xD6;
    bit F0 = 0xD5;
    bit RS1 = 0xD4;
    bit RS0 = 0xD3;
    bit OV = 0xD2;
    bit P = 0xD0;

    /*========TCON=======*/

    bit TF1 = 0x8F;
    bit TR1 = 0x8E;
    bit TF0 = 0x8D;
    bit TR0 = 0x8C;
    bit IE1 = 0x8B;
    bit IT1 = 0x8A;
    bit IE0 = 0x89;
    bit IT0 = 0x88;

    /*========IE=========*/

    bit EA = 0xAF;
    bit ET2 = 0xAD;
    bit ES = 0xAC;
    bit ET1 = 0xAB;
    bit EX1 = 0xAA;
    bit ET0 = 0xA9;
    bit EX0 = 0xA8;

    /*========IP=========*/

    bit PT2 = 0xBD;
    bit PS = 0xBC;
    bit PT1 = 0xBB;
    bit PX1 = 0xBA;
    bit PT0 = 0xB9;
    bit PX0 = 0xB8;

    /*========P3=========*/

    bit RD = 0xB7;
    bit WR = 0xB6;
    bit T1 = 0xB5;
    bit T0 = 0xB4;
    bit INT1 = 0xB3;
    bit INT0 = 0xB2;
    bit TXD = 0xB1;
    bit RXD = 0xB0;

    /*========SCON========*/

    bit SM0 = 0x9F;
    bit SM1 = 0x9E;
    bit SM2 = 0x9D;
    bit REN = 0x9C;
    bit TB8 = 0x9B;
    bit RB8 = 0x9A;
    bit TI = 0x99;
    bit RI = 0x98;

    /*========T2CON=======*/

    bit TF2 = 0xCF;
    bit EXF2 = 0xCE;
    bit RCLK = 0xCD;
    bit TCLK = 0xCC;
    bit EXEN2 = 0xCB;
    bit TR2 = 0xCA;
    bit C_T2 = 0xC9;
    bit CP_RL2 = 0xC8;

    /*==============================*/
    /* Interrupt Vector Definitions */
    /*==============================*/

    interrupt [0x03] void EX0_int (void); /* External Interrupt 0 */

    interrupt [0x0B] void T0_int (void); /* Timer 0 Overflow */

    interrupt [0x13] void EX1_int (void); /* External Interrupt 1 */

    interrupt [0x1B] void T1_int (void); /* Timer 1 Overflow */

    interrupt [0x23] void SCON_int (void); /* Serial Port */

    interrupt [0x2B] void T2_int (void); /* Timer 2 Overflow */

    interrupt [0x2B] void T2EX_int (void); /* Negative Transition on T2EX */
     
  12. black

    black Гость

    pegas
    аха, если он сможет в среде для программирования AVR компилить Це в '51 код, я ему памятник при жизЬни поставлю :D
     
  13. Dr.Death

    Dr.Death Гость

    А кстати никто не подскажет, подцепил я к ноге P2.7 светодиод через резистор 1К, написал данну программу, а он у меня не светится:
    Код:
    reset:
     sjmp start
    start:
     CLR P2.7
     sjmp start
    
     
  14. firefly

    firefly Активный участник

    1.955
    0
    Dr.Death

    Он засветится, если ты вторую его ногу к +5 подцепиш.
    А Порт P2 проинитил на вывод?

    Возьми какой-нибудь простой пример с тем же светодиодом, откомпиль, прошей и посмотри.
    А так, навскидку, именно этот кусок должен работать. Но, я надеюсь, это не единственный кусок во всей программе? ;) Там же при старте надо проц проинитить, какие устройства будем использовать, какие нет. Если будем, то как... Начни с готовых примеров.
     
  15. Dr.Death

    Dr.Death Гость

    firefly
    Дай мне хоть ссылку на один из них, хотя бы зажечь светодиод, я пишу вслепую:bawling: . Эта вся и программа.
    Очень буду благодарен, если ссылку дашь.
     
  16. firefly

    firefly Активный участник

    1.955
    0
    Dr.Death
    Я пишу для Microchip'овских микроконтроллеров. Так бы помог.
    Сейчас пробежался по поисковикам - ну и проц ты выбрал... Нифика про него ничего. Я ж тебе 16f84 подарил? Чего не на нем? Уже давно бы светодиод горел :)
     
  17. black

    black Гость

    Dr.Death
    Я те могу дать почитать руковводство по юзанию всей 31 и 51 серии контроллеров, на русском языке, а также рекомендую второй том книжки Предко:
    М. Предко. Руководство по микроконтроллерам. Том II. Москва: Постмаркет, 2001. - 488 с.
    Заказать её можно на болеро.ру.
    По поводу этой книжки а также компашки к ней все вопросы Файерфлаю :).
    Присоединяюсь к Файерфлаю по поводу того, что на PICе это сделать гораздо проще - полно описалова (надеюсь, с языком наиболее вероятного противника у тебя ОК). :)
    Мне нравится твоё упорство в овладении премудростями embedded ctl systemz. :)
     
  18. Dr.Death

    Dr.Death Гость

    firefly
    Для доброго времени берегу:) , на самом деле у меня же понипрог, а там обвязка для Pic' а через несколько транзисторов, руки не доходят, да к тому же что-то боюсь на нем программировать, команды у него какие-то непохожие на простые процессорные, вот например у at89s53 большинство команд как у процессоров Intel, потому что сам он и Интел. Думаю, что простой асм забуду, писишный.
    black
    Мне бы просто программу которая светодиодом моргает, а дальше уже я и сам смогу, по крайней мере я так думаю.
     
  19. firefly

    firefly Активный участник

    1.955
    0
    Dr.Death
    Вот прога моргания светодиодом на порту. Смотрит на кнопку и в зависимости от положения кнопки зажигает светодиод на другом.

     
  20. Dr.Death

    Dr.Death Гость

    firefly
    Это совсем не то, ты ошибся, у at89s53 совсем другая архитектура MCS-51 и ассемблер другой, а у at90s1200 если я не ошибаюсь RISC, так что эта прога не пойдет.
     
  21. firefly

    firefly Активный участник

    1.955
    0
    Dr.Death, зайди, я тебе компашку подарю. Там есть примеры и для 51 серии.

    firefly добавил [date]1090497402[/date]:
    Или дай мыло, я тебе на мыло примеры пришлю.
     
  22. Dr.Death

    Dr.Death Гость