Turbo51

Turbo51

Výstup příkazového řádku Turbo51
Typ Kompilátor
Vývojář Igor Funa
Operační systém Win32
Nejnovější verze 0.1.3.16 (14. října 2012 ) ( 2012-10-14 )
Licence Freeware
webová stránka turbo51.com

Turbo51  je kompilátor programovacího jazyka Pascal pro rodinu mikrokontrolérů Intel MCS-51 (8051) .

Má syntaxi Borland Turbo Pascal 7, včetně podpory objektově orientovaného programování. Kompilátor je napsán v Object Pascal a vyvinut v Delphi.

V roce 1980 Intel představil 8051 jako prvního člena rodiny procesorů MCS-51. Dnes desítky podniků vyrábějí stovky druhů této rodiny mikrokontrolérů s mnoha změnami a doplňky, které rozšiřují možnosti této rodiny. Proto je architektura mikrokontrolérů stále zajímavá pro profesionály i amatéry. Existuje mnoho kompilátorů C pro mikrokontroléry MCS-51, ale velmi málo kompilátorů Pascal.

Turbo51 byl navržen jako bezplatný kompilátor, který je stejně rychlý jako Turbo Pascal, používá stejnou syntaxi a generuje vysoce kvalitní, optimalizovaný kód.

Autorem překladače je Igor Funa, Slovinsko.

Dialekt jazyka

Turbo51 používá dialekt jazyka Borland Turbo Pascal 7. Syntaxe byla rozšířena o některé konstrukce pro podporu funkcí mikrokontrolérů MCS-51.

Var RS485_TX : Booleovská absolutní hodnota P3 . 2 ; I2C . SDA : Booleovská absolutní hodnota P3 . 7 ; I2C . SCL : Booleovská absolutní hodnota P3 . 4 ; EEPROM_Data : TEEPROM_Data XDATA absolutní 0 ; Adresa modulu : Byte ; RX_LedTimer : Byte ; TX_LedTimer : Byte ; SavedOutput : TOutputData IDATA ; OutputsAuxData : Pole [ 1 .. 8 ] Byte IDATA ; _

Funkce

  • Aplikace konzoly Win32
  • Rychlý jednoprůchodový optimalizační kompilátor
  • Syntaxe Borland Turbo Pascal 7
  • Plná podpora s plovoucí desetinnou čárkou
  • Smíšené programování v Pascalu a assembleru
  • Plné využití registrových bank
  • Pokročilý Multi-Pass Optimizer
  • "Inteligentní" linker
  • Generuje kompaktní vysoce kvalitní kód
  • Výstupní formáty souborů: Binary, Intel HEX, OMF51

Příklad programu "Hello World"

Zdrojový kód programu:

Program Ahoj světe ; Const Osc = 22118400 ; přenosová rychlost = 19200 ; BaudRateTimerValue = Byte ( - Osc div 12 div 32 div BaudRate ) ; Var SerialPort : Text ; Napište ProcedureToSerialPort ; montážník ; Asm CLR TI MOV SBUF , A @ WaitLoop : JNB TI , @ WaitLoop end ; In ProcedureIt ; begin TL1 := BaudRateTimerValue ; TH1 := BaudRateTimerValue ; TMOD := % 00100001 ; { Timer1: no GATE, 8 bit timer, autoreload } SCON := % 01010000 ; { Sériový režim 1, Povolit příjem } TI := True ; { Označte TX připraveno } TR1 := True ; { Povolit časovač 1 } Přiřadit ( SerialPort , WriteToSerialPort ) ; konec ; začít Init ; Writeln ( SerialPort , 'Ahoj světe!' ) ; konec .

Text zkompilovaného programu v assembleru:

; Turbo51 verze 0.1.3.10, Copyright 2000 - 2011 Igor Funa $REGISTERBANK ( 0 ) _CODE KÓD SEGMENTU _CONST KÓD SEGMENTU _DATA DATA SEGMENTU EXTRN DATA ( CurrentIO ) EXTRN IDATA ( StackStart ) EXTRN CODE ( sysWriteStr_CODE ) EXTRN CODE ( sysWriteLine ) ; Program HelloWorld; ; ; Const RSEG_CONST _ ; Osc = 22118400; ; přenosová rychlost = 19200; ; ; BaudRateTimerValue = Byte(- Osc div 12 div 32 div BaudRate); ; ; VarSerialPort:Text; RSEG_DATA _ Sériový port : DS4 ; ; Napište ProcedureToSerialPort; assembler; RSEG_CODE _ POUŽITÍ 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 ; konec; RET ; ; V procesu; Init: ; start ; 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 := Pravda; { Indicate TX ready } SETB SCON.1 ; TR1 := Pravda; { Povolit časovač 1 } SETB TCON.6 ; ; Assign(SerialPort, WriteToSerialPort); MOV SerialPort , #LOW (WriteToSerialPort) MOV SerialPort + 1 , #HIGH (WriteToSerialPort) ; konec; RET RSEG_CONST _ C_0071: DB 12 , ' Ahoj světe ! ' CSEG za 0000 $ HelloWorld: ; ; begin MOV SP , #StackStart-1 ; init; LCALL Init ; Writeln(SerialPort, 'Ahoj světe!'); MOV CurrentIO , SerialPort MOV CurrentIO + 1 , SerialPort + 1 MOV DPTR , #C_0071 MOV R6 , #0 LCALL sysWriteStr_CODE LCALL sysWriteLine ; konec. L_0017: SJMP L_0017 KONEC

Integrované vývojové prostředí

MC-51

Integrované vývojové prostředí pro mikrokontroléry 8051.

MC-51 obsahuje:

  • Textový editor se zvýrazněním syntaxe pro tvorbu zdrojového kódu programů v assembleru a Pascalu;
  • Rozhraní k Turbo51 pro kompilaci z Pascalu;
  • Rozhraní k ASEMW pro montáž;
  • Komplexní simulátor a debugger pro všechny hlavní funkce, včetně časovačů a sériového rozhraní;
  • Terminálové okno pro komunikaci s programovým monitorem v mikrokontroléru a načítání programů do paměti mikrokontroléru ve formátu Intel Hex;
  • Flash programovací modul pro mikrokontroléry Atmel AT89S8252/53 přes sériové rozhraní.

Ke kompilaci zdrojových souborů používá MC-51 volání příkazového řádku programu (ASEMW nebo Turbo51) s odpovídajícími parametry. Když kliknete na chybovou zprávu, editor vám umožní přejít přímo na řádek obsahující chybu. Vestavěný textový editor využívá open source komponenty SynEdit. Kromě toho mnoho pokročilých funkcí editoru SynEdit podporuje zvýraznění syntaxe specifické pro zdroj. Mnoho z těchto funkcí může uživatel konfigurovat individuálně.

MS-51 také obsahuje simulátor/ladicí program. S ním můžete sledovat provádění programu bez jakéhokoli hardwaru.

Viz také

Odkazy