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

80C51GB

Добавлено: Пн окт 17, 2011 20:56:23
seedbutcher
Добрый вечер!
Может кто сталкивался с вопросом симуляции АЦП, прерываний и периферии Intel 80C51GB\83C51GB или 87C51GB?
А то засимулировать надо, а нечем((

Re: 80C51GB

Добавлено: Вт окт 18, 2011 09:23:33
МитяРа
Посмотри, может у Кейла есть поддержка этого МК..

P.S. А накой вообще нужен симулятор.. мя вот только один раз им пользовался, когда пытался разобраться в работе чужой программы.. :tea:

Re: 80C51GB

Добавлено: Вт окт 18, 2011 09:29:37
seedbutcher
МитяРа писал(а):Посмотри, может у Кейла есть поддержка этого МК..

P.S. А накой вообще нужен симулятор.. мя вот только один раз им пользовался, когда пытался разобраться в работе чужой программы.. :tea:
Есть, но вот регистры АЦП этого контроллера я там не нашел.

Курсовую делаю, надо же будет показать, что программа действительно работает, причем так, как нужно)

Re: 80C51GB

Добавлено: Вт окт 18, 2011 09:45:34
МитяРа
seedbutcher писал(а):Есть, но вот регистры АЦП этого контроллера я там не нашел.
А они там вообще есть?

P.S. Посмотрел, действительно есть..
sfr ADRES0 = 0x84;
sfr ADRES1 = 0x94;
sfr ADRES2 = 0xA4;
sfr ADRES3 = 0xB4;
sfr ADRES4 = 0xC4;
sfr ADRES5 = 0xD4;
sfr ADRES6 = 0xE4;
sfr ADRES7 = 0xF4;

sfr ADCON = 0x97;

sfr ACMP = 0xC7;

Может там ещё что-то есть..
Почитай тут: http://bitsavers.org/pdf/intel/8051/MCS ... _Feb94.pdf

Re: 80C51GB

Добавлено: Вт окт 18, 2011 10:22:07
seedbutcher
Да) там встроенный 8-ми канальный АЦП

Re: 80C51GB

Добавлено: Вт окт 18, 2011 10:24:56
МитяРа
Мя дополнил предыдущий пост..

Re: 80C51GB

Добавлено: Вт окт 18, 2011 11:10:39
seedbutcher
Спасибо за ссылку! Обязательно почитаю!

Re: 80C51GB

Добавлено: Вт окт 18, 2011 11:17:05
МитяРа
А чем вызвана необходимость применения такой "замшелости" от Интела? Или задание на курсовик/диплом?
Хочешь на МК51 и посовременней - возьми SiLabs... :tea:

Re: 80C51GB

Добавлено: Вт окт 18, 2011 18:24:49
seedbutcher
да в общем ограничение только время.
ну плюс хотелось бы, чтобы АЦП был встроенный.
а если другого производителя брать, то такой вопрос (я в МК не разбираюсь) там система команд, прерываний, вообще внутренняя организация такая же?

Re: 80C51GB

Добавлено: Вт окт 18, 2011 18:44:44
seedbutcher
посмотрел С8051F02x от SiLabs в keil. наверное остановлюсь на нем, потому что можно симулировать АЦП. Осталось найти бы доку на русском, а то на английском некоторые моменты не понять) но вопрос из предыдущего поста все ещё актуален)

Re: 80C51GB

Добавлено: Ср окт 19, 2011 10:05:41
МитяРа
Мя книжкой пользуюсь, вот такой: http://libbib.org/?p=1782
Скачать можно тут: http://www.twirpx.com/library/comp/microcontrollers/
Вот тут из неё главки есть и примеры всякие:
http://www.silabs.ru/publication.php
http://www.silabs.ru/publication.php

Есть тема по SiLabs-у: http://radiokot.ru/forum/viewtopic.php?f=20&t=20518

Скачай SiLabs-овский IDE-шник, там есть примеры по F020-му и для АЦП - тоже.. http://www.silabs.com/products/mcu/Page ... loads.aspx

Re: 80C51GB

Добавлено: Ср окт 19, 2011 18:22:36
seedbutcher
Спасибо за информацию)

Re: 80C51GB

Добавлено: Чт окт 20, 2011 11:01:28
МитяРа
Да, заходи если что.. :tea:

Re: 80C51GB

Добавлено: Пн окт 31, 2011 20:36:59
seedbutcher
Доброе время суток)
Собственно область интересов перешла на С8051F020 и keil. Поизучав внутренности, регистры и примеры по контроллеру, решил начинать уже делать свое задание. Но. Тут меня постигла неудача в том виде, что keil отказался записывать в SFR мои значения. На выражение типа MOV OSCICN, #03H например выдает error a45: undefined symbol вроде. И так уже на несколько функций sfr, относящимся к ацп к примеру. Записать как MOV 0B2H, #03H тоже не удалось. В чем может быть проблема? Причем напрямую через интерфейс, а конкретно через окно memory все меняется, при отладке. Буду очень благодарен за помощь!

Re: 80C51GB

Добавлено: Пн окт 31, 2011 20:55:28
Ser60
Приведите полный текст программы.

Re: 80C51GB

Добавлено: Пн окт 31, 2011 21:03:03
seedbutcher
ORG 30H
START:
MOV REF0CN, #00000011b
MOV OSCICN, #10000111b
IFRDY_wait:
MOV A, OSCICN
JNB ACC.4, IFRDY_wait
MOV ADC0CF, #10000000b
MOV AMX0CF, #00H
MOV AMX0SL, #00H
MOV ADC0CN, #10001101b
END


Пока это все

Re: 80C51GB

Добавлено: Пн окт 31, 2011 23:03:53
Ser60
Ну а где чтение INC файла с описанием регистров МК? Вот файл под Keil.

$include (C8051FXXX.inc) ; <- подставить тип МК

CSEG AT 0
ljmp Main

ORG 0x30
USING 0

main:
MOV REF0CN, #00000011b
MOV OSCICN, #10000111b

IFRDY_wait:
MOV A, OSCICN
JNB ACC.4, IFRDY_wait

MOV ADC0CF, #10000000b
MOV AMX0CF, #00H
MOV AMX0SL, #00H
MOV ADC0CN, #10001101b

sjmp $ ; <- добавить
END

Re: 80C51GB

Добавлено: Вт ноя 01, 2011 07:45:13
seedbutcher
Спасибо!
не знал, что его надо, т.к. до этого пользовался только Franklin, а там такого не было

Только видимо я совсем дуб в этом деле)
На Ваш код Keil выдает:
C8051F020.inc(15): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL

Re: 80C51GB

Добавлено: Вт ноя 01, 2011 07:58:01
МитяРа
Это просто разные модели /режимы/ для ассемблера..
Сам пользуюсь Металинк-Ассемблером в режиме "Смолл", без описаний сегментов, а в другом режиме он и сегменты может..
Файл с описанием регистров МК-шника во всех ассемблерах присутствует..

Re: 80C51GB

Добавлено: Вт ноя 01, 2011 08:13:54
seedbutcher
МитяРа писал(а):Это просто разные модели /режимы/ для ассемблера..
Сам пользуюсь Металинк-Ассемблером в режиме "Смолл", без описаний сегментов, а в другом режиме он и сегменты может..
Файл с описанием регистров МК-шника во всех ассемблерах присутствует..

что же тогда сделать, чтоб он правильно эти спец регистры определил?