Turbo51

Turbo51

Turbo51 parancssori kimenet
Típusú Fordítóprogram
Fejlesztő Igor Funa
Operációs rendszer Win32
legújabb verzió 0.1.3.16 (2012. október 14. ) ( 2012-10-14 )
Engedély Ingyenes szoftver
Weboldal turbo51.com

A Turbo51  az Intel MCS - 51 (8051) mikrokontrollercsalád Pascal programozási nyelvének fordítója .

Borland Turbo Pascal 7 szintaxissal rendelkezik, beleértve az objektum-orientált programozás támogatását. A fordítóprogram Object Pascal-ban íródott, és Delphiben fejlesztették.

1980-ban az Intel bemutatta a 8051-et az MCS-51 processzorcsalád első tagjaként. Napjainkban több tucat vállalkozás gyárt több száz fajtát ebből a mikrokontroller-családból, sok változtatással és kiegészítéssel, amelyek bővítik a család képességeit. Ezért a mikrokontrollerek architektúrája továbbra is érdekli a szakembereket és az amatőröket. Sok C fordító létezik az MCS-51 mikrokontrollerekhez, de nagyon kevés a Pascal fordító.

A Turbo51-et ingyenes fordítónak tervezték, amely olyan gyors, mint a Turbo Pascal, ugyanazt a szintaxist használja, és kiváló minőségű, optimalizált kódot generál.

A fordító szerzője Igor Funa, Szlovénia.

A nyelv dialektusa

A Turbo51 a Borland Turbo Pascal 7 nyelvi dialektust használja A szintaxist kibővítettük néhány konstrukcióval, hogy támogassa az MCS-51 mikrokontrollerek funkcióit.

Var RS485_TX : Logikai abszolút P3 . 2 ; I2C . SDA : Logikai abszolút P3 . 7 ; I2C . SCL : Logikai abszolút P3 . 4 ; EEPROM_Data : TEEPROM_Data XDATA abszolút 0 ; Modulcím : Byte ; RX_LedTimer : Byte ; TX_LedTimer : Byte ; SavedOutput : TOutputData IDATA ; OutputsAuxData : IDATA bájt [ 1..8 ] tömbje ; _ _ _

Jellemzők

  • Win32 konzol alkalmazás
  • Gyors egymenetes optimalizáló fordító
  • Szintaxis Borland Turbo Pascal 7
  • Teljes lebegőpontos támogatás
  • Vegyes programozás Pascalban és assemblerben
  • A regisztrációs bankok teljes körű használata
  • Fejlett Multi-Pass Optimizer
  • "Intelligens" linker
  • Kompakt, kiváló minőségű kódot generál
  • Kimeneti fájlformátumok: Bináris, Intel HEX, OMF51

Példaprogram "Hello World"

A program forráskódja:

Program HelloWorld ; Const Osc = 22118400 ; átviteli sebesség = 19200 ; BaudRateTimerValue = Byte ( -Osc div 12 div 32 div BaudRate ) ; _ Var SerialPort : Szöveg ; Írási eljárás a soros portba ; Összeszerelő ; Asm CLR TI MOV SBUF , A @ WaitLoop : JNB TI , @ WaitLoop vége ; In ProcedureIt ; begin TL1 := BaudRateTimerValue ; TH1 := BaudRateTimerValue ; TMOD := % 00100001 ; { Időzítő1: nincs GATE, 8 bites időzítő, automatikus újratöltés } SCON : = % 01010000 ; { 1. soros mód, vétel engedélyezése } TI := Igaz ; { Jelzi TX kész } TR1 := Igaz ; { 1. időzítő engedélyezése } Hozzárendelés ( SerialPort , WriteToSerialPort ) ; vége ; kezdődik Init ; Writeln ( SerialPort , 'Hello world!' ) ; vége .

Az összeállított program szövege assemblerben:

; Turbo51 0.1.3.10 verzió, Copyright 2000 - 2011 Igor Funa $REGISTERBANK ( 0 ) _CODE SEGMENT CODE _CONST SZEGMENT KÓD _ADATOK SZEGMENT ADATOK EXTRN DATA ( CurrentIO ) EXTRN ADATA ( StackStart ) KÜLSŐ KÓD ( sysWriteStr_CODE ) EXTRN KÓD ( sysWriteLine ) ; Program HelloWorld; ; ; Const RSEG_CONST _ ; Osc = 22118400; ; átviteli sebesség = 19200; ; ; BaudRateTimerValue = Byte(- Osc div 12 div 32 div BaudRate); ; ; VarSerialPort:Szöveg; RSEG_DATA _ Soros port : DS4 ; ; Írási eljárás a soros portba; szerelő; RSEG_CODE _ 0 HASZNÁLATA WriteToSerialPort: ; Asm ; CLR TI CLR SCON.1 ; MOV SBUF, A MOV SBUF , A ; @WaitLoop: L_001D: ; JNB TI, @WaitLoop JNB SCON.1 , L_001D ; vége; RET ; ; eljárásban; Init: ; start ; TL1 := BaudRateTimerValue; MOV TL1 , #$FD ; TH1 := BaudRateTimerValue; MOV TH1 , #$FD ; TMOD := %00100001; { Időzítő1: nincs GATE, 8 bites időzítő, automatikus újratöltés } MOV TMOD , #$21 ; SCON := %01010000; { 1. soros mód, vétel engedélyezése } MOV SCON , #50 $ ; TI := Igaz; { Jelzi az TX készenlétet } SETB SCON.1 ; TR1 := Igaz; { 1. időzítő engedélyezése } SETB TCON.6 ; ; Hozzárendelés (SerialPort, WriteTo SerialPort); MOV SerialPort , #LOW (WriteTo SerialPort) MOV SerialPort + 1 , #HIGH (WriteTo SerialPort) ; vége; RET RSEG_CONST _ C_0071 : DB 12 , Hello világ ! ' CSEG 0000 USD - ÉRT HelloWorld: ; ; kezdődik MOV SP , #StackStart-1 ; benne; 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 ; vége. L_0017: SJMP L_0017 VÉGE

Integrált Fejlesztési Környezet

MC-51

Integrált fejlesztői környezet 8051 mikrokontrollerekhez.

Az MC-51 a következőket tartalmazza:

  • Szövegszerkesztő szintaktikai kiemeléssel az assembler és a Pascal programok forráskódjának létrehozásához;
  • Interfész Turbo51-hez Pascalból való fordításhoz;
  • Interfész az ASEMW-hez az összeszereléshez;
  • Átfogó szimulátor és hibakereső minden fő funkcióhoz, beleértve az időzítőket és a soros interfészt;
  • Terminálablak a mikrokontrollerben lévő programmonitorral való kommunikációhoz és a programoknak a mikrokontroller memóriájába való betöltéséhez Intel Hex formátumban;
  • Flash programozó modul Atmel AT89S8252/53 mikrokontrollerekhez soros interfészen keresztül.

A forrásfájlok fordításához az MC-51 megfelelő paraméterekkel rendelkező program parancssori hívást (ASEMW vagy Turbo51) használ. Ha egy hibaüzenetre kattint, a szerkesztő lehetővé teszi, hogy közvetlenül a hibát tartalmazó sorra ugorjon. A beépített szövegszerkesztő a nyílt forráskódú SynEdit összetevőket használja. Ezenkívül a SynEdit szerkesztő számos fejlett funkciója támogatja a forrásspecifikus szintaxiskiemelést. Ezen funkciók közül sokat a felhasználó egyénileg konfigurálhat.

Az MS-51 egy szimulátort/hibakeresőt is tartalmaz. Ezzel hardver nélkül is figyelemmel kísérheti a program végrehajtását.

Lásd még

Linkek