Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

Turbo51
Скриншот программы Turbo51

Turbo51 command line output
Тип Compiler
Разработчик Igor Funa
 Операционная система  Win32
Последняя версия 0.1.3.16 (14 октября 2012; 11 лет назад (2012-10-14))
Лицензия Freeware
Сайт turbo51.com

Turbo51 — компилятор для языка программирования Pascal, для семейства микроконтроллеров Intel MCS-51 (8051).

Он имеет синтаксис Borland Turbo Pascal 7, в том числе, поддерживает объектно-ориентированное программирование. Компилятор написан на языке Object Pascal и разработан на Delphi.

В 1980 году Intel представила 8051 как первый член семейства процессоров MCS-51. Сегодня десятки предприятий производят сотни разновидностей указанного семейства микроконтроллеров со множеством изменений и добавлений, расширяющих возможности семейства. Поэтому архитектура микроконтроллеров по-прежнему вызывает интерес у профессионалов и любителей. Для микроконтроллеров MCS-51 существует множество С-компиляторов, но совсем немного компиляторов Pascal.

Turbo51 создавался как бесплатный компилятор, который работает так же быстро, как Turbo Pascal, использует тот же синтаксис и генерирует высококачественный оптимизированный код.

Автор компилятора — Игорь Фуна, Словения.

Диалект языка

Turbo51 использует диалект языка Borland Turbo Pascal 7. Синтаксис был расширен некоторыми конструкциями для поддержки особенностей микроконтроллеров MCS-51.

Var   RS485_TX: Boolean absolute P3.2;
      I2C.SDA:   Boolean absolute P3.7;
      I2C.SCL:   Boolean absolute P3.4;

      EEPROM_Data:    TEEPROM_Data XDATA absolute 0;

      ModuleAddress:  Byte;
      RX_LedTimer:    Byte;
      TX_LedTimer:    Byte;

      SavedOutput:    TOutputData IDATA;
      OutputsAuxData: Array [1..8] of Byte IDATA;

Особенности

  • Консольное приложение Win32
  • Быстрый однопроходный оптимизирующий компилятор
  • Синтаксис Borland Turbo Pascal 7
  • Полная поддержка плавающей точки
  • Смешанное программирование на Pascal и ассемблере
  • Полное использование банков регистров
  • Расширенный многопроходный оптимизатор
  • «Умный» компоновщик
  • Генерирует компактный высококачественный код
  • Форматы выходных файлов: Binary, Intel HEX, OMF51

Пример программы «Hello World»

Исходный текст программы:

Program HelloWorld;

Const
 Osc      = 22118400;
 BaudRate = 19200;

 BaudRateTimerValue = Byte (- Osc div 12 div 32 div BaudRate);

Var SerialPort: Text;

Procedure WriteToSerialPort; Assembler;
Asm
  CLR   TI
  MOV   SBUF, A
@WaitLoop:
  JNB   TI, @WaitLoop
end;

Procedure Init;
begin
  TL1  := BaudRateTimerValue;
  TH1  := BaudRateTimerValue;
  TMOD := %00100001;    { Timer1: no GATE, 8 bit timer, autoreload }
  SCON := %01010000;    { Serial Mode 1, Enable Reception }
  TI   := True;         { Indicate TX ready }
  TR1  := True;         { Enable timer 1 }

  Assign (SerialPort, WriteToSerialPort);
end;

begin
  Init;
  Writeln (SerialPort, 'Hello world!');
end.

Текст откомпилированной программы на ассемблере:

; Turbo51 version 0.1.3.10, Copyright 2000 - 2011 Igor Funa

$REGISTERBANK (0)

_CODE         SEGMENT  CODE
_CONST        SEGMENT  CODE
_DATA         SEGMENT  DATA

              EXTRN    DATA  (CurrentIO)
              EXTRN    IDATA (StackStart)

              EXTRN    CODE  (sysWriteStr_CODE)
              EXTRN    CODE  (sysWriteLine)

; Program HelloWorld;
; 
; Const

RSEG _CONST

;  Osc      = 22118400;
;  BaudRate = 19200;
; 
;  BaudRateTimerValue = Byte (- Osc div 12 div 32 div BaudRate);
; 
; Var SerialPort: Text;

RSEG _DATA

SerialPort:                     DS       4

; 
; Procedure WriteToSerialPort; Assembler;

RSEG _CODE

USING 0

WriteToSerialPort:
; Asm
;   CLR   TI
              CLR       SCON.1

;   MOV   SBUF, A
              MOV       SBUF, A

; @WaitLoop:
L_001D:
;   JNB   TI, @WaitLoop
              JNB       SCON.1, L_001D

; end;
              RET

; 
; Procedure Init;

Init:
; begin
;   TL1  := BaudRateTimerValue;
              MOV       TL1, #$FD

;   TH1  := BaudRateTimerValue;
              MOV       TH1, #$FD

;   TMOD := %00100001;    { Timer1: no GATE, 8 bit timer, autoreload }
              MOV       TMOD, #$21

;   SCON := %01010000;    { Serial Mode 1, Enable Reception }
              MOV       SCON, #$50

;   TI   := True;         { Indicate TX ready }
              SETB      SCON.1

;   TR1  := True;         { Enable timer 1 }
              SETB      TCON.6

; 
;   Assign (SerialPort, WriteToSerialPort);
              MOV       SerialPort, #LOW  (WriteToSerialPort)
              MOV       SerialPort+1, #HIGH (WriteToSerialPort)

; end;
              RET

RSEG _CONST

C_0071:                         DB        12, 'Hello world!'

CSEG AT $0000

HelloWorld:
; 
; begin
              MOV       SP, #StackStart-1

;   Init;
              LCALL     Init

;   Writeln (SerialPort, 'Hello world!');
              MOV       CurrentIO, SerialPort
              MOV       CurrentIO+1, SerialPort+1
              MOV       DPTR, #C_0071
              MOV       R6, #0
              LCALL     sysWriteStr_CODE
              LCALL     sysWriteLine

; end.
L_0017:
              SJMP      L_0017

              END

Интегрированная среда разработки

MC-51

Интегрированная среда разработки для микроконтроллеров 8051.

MC-51 содержит:

  • Текстовый редактор с подсветкой синтаксиса для создания исходных текстов программ на ассемблере и Паскале;
  • Интерфейс к Turbo51 для компилирования с Паскаля;
  • Интерфейс к ASEMW для ассемблирования;
  • Комплексный симулятор и отладчик для всех основных функций, включая таймеры и последовательный интерфейс;
  • Терминальное окно для общения с монитором программы в микроконтроллере и загрузки программ в память микроконтроллера в формате Intel Hex;
  • Модуль флэш-программирования микроконтроллеров Atmel AT89S8252/53 через последовательный интерфейс.

Для компиляции исходных файлов MC-51 использует вызов командной строки программы (ASEMW или Turbo51) с адекватными параметрами. При нажатии на сообщение об ошибке редактор позволяет непосредственно перейти к строке, содержащей ошибку. Встроенный текстовый редактор использует компоненты с открытым исходным кодом SynEdit. Кроме того, многие расширенные функции редактора SynEdit поддерживают подсветку синтаксиса конкретного исходного кода. Многие из этих возможностей могут быть настроены индивидуально пользователем.

МС-51 включает в себя также симулятор/отладчик. С его помощью можно отслеживать выполнение программы без каких-либо аппаратных средств.

См. также

Ссылки

Эта страница в последний раз была отредактирована 31 января 2024 в 10:53.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).