Turbo51

Turbo51

Ieșire din linia de comandă Turbo51
Tip de Compilator
Dezvoltator Igor Funa
Sistem de operare Win32
ultima versiune 0.1.3.16 (14 octombrie 2012 ) ( 2012-10-14 )
Licență Freeware
Site-ul web turbo51.com

Turbo51  este un compilator pentru limbajul de programare Pascal pentru familia de microcontrolere Intel MCS-51 (8051) .

Are sintaxă Borland Turbo Pascal 7, inclusiv suport pentru programarea orientată pe obiecte. Compilatorul este scris în Object Pascal și dezvoltat în Delphi.

În 1980, Intel a introdus 8051 ca primul membru al familiei de procesoare MCS-51. Astăzi, zeci de întreprinderi produc sute de varietăți ale acestei familii de microcontrolere cu multe modificări și completări care extind capacitățile familiei. Prin urmare, arhitectura microcontrolerelor este încă de interes pentru profesioniști și amatori. Există multe compilatoare C pentru microcontrolere MCS-51, dar foarte puține compilatoare Pascal.

Turbo51 a fost conceput pentru a fi un compilator gratuit care este la fel de rapid ca Turbo Pascal, folosește aceeași sintaxă și generează cod optimizat de înaltă calitate.

Autorul compilatorului este Igor Funa, Slovenia.

Dialectul limbii

Turbo51 folosește dialectul limbajului Borland Turbo Pascal 7. Sintaxa a fost extinsă cu unele constructe pentru a sprijini caracteristicile microcontrolerelor MCS-51.

Var RS485_TX : P3 absolut boolean . 2 ; I2C . SDA : P3 absolut boolean . 7 ; I2C . SCL : P3 absolut boolean . 4 ; EEPROM_Data : TEEPROM_Data XDATA absolut 0 ; ModuleAddress : Byte ; RX_LedTimer : octet ; TX_LedTimer : octet ; SavedOutput : TOutputData IDATA ; OutputsAuxData : Matrice [ 1 .. 8 ] de octet IDATA ;

Caracteristici

  • Aplicație de consolă Win32
  • Compilator rapid de optimizare cu o singură trecere
  • Sintaxă Borland Turbo Pascal 7
  • Suport complet în virgulă mobilă
  • Programare mixtă în Pascal și asamblator
  • Utilizarea completă a băncilor de registru
  • Optimizator avansat pentru mai multe treceri
  • Linker „inteligent”.
  • Generează cod compact de înaltă calitate
  • Formate de fișiere de ieșire: Binary, Intel HEX, OMF51

Exemplu de program „Hello World”

Cod sursa programului:

Programul HelloWorld ; Const Osc = 22118400 ; BaudRate = 19200 ; BaudRateTimerValue = Byte ( -Osc div 12 div 32 div BaudRate ) ; _ Var SerialPort : Text ; Scrieți ProcedureToSerialPort ; Asamblator ; Asm CLR TI MOV SBUF , A @ WaitLoop : JNB TI , @ WaitLoop final ; În ProcedureIt ; începe TL1 := BaudRateTimerValue ; TH1 := BaudRateTimerValue ; TMOD := % 00100001 ; { Timer1: no GATE, 8 bit timer, autoreload } SCON := % 01010000 ; { Serial Mode 1, Enable Reception } TI := Adevărat ; { Indicați TX gata } TR1 := Adevărat ; { Activați cronometrul 1 } Atribuire ( SerialPort , WriteToSerialPort ) ; sfârşitul ; începe Init ; Writeln ( SerialPort , „Bună lume!” ) ; sfârşitul .

Textul programului compilat în asamblator:

; Turbo51 versiunea 0.1.3.10, Copyright 2000 - 2011 Igor Funa $REGISTERBANK ( 0 ) _COD SEGMENT COD _CONST SEGMENT COD _DATE SEGMENT DATE EXTRN DATA ( CurrentIO ) EXTRN IDATA ( StackStart ) COD EXTRN ( sysWriteStr_CODE ) COD EXTRN ( sysWriteLine ) ; Programul HelloWorld; ; ; Const RSEG_CONST _ ; Osc = 22118400; ; BaudRate = 19200; ; ; BaudRateTimerValue = Byte (- Osc div 12 div 32 div BaudRate); ; ; VarSerialPort:Text; RSEG_DATA _ Port serial : DS4 ; ; Scrieți ProcedureToSerialPort; asamblator; RSEG_CODE _ UTILIZAREA 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 ; Sfârşit; RET ; ; În procedură; Init: ; începe ; 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 := Adevărat; { Indica TX ready } SETB SCON.1 ; TR1 := Adevărat; { Activare cronometru 1 } SETB TCON.6 ; ; Atribuire(SerialPort, WriteToSerialPort); MOV SerialPort , #LOW (WriteToSerialPort) MOV SerialPort + 1 , #HIGH (WriteToSerialPort) ; Sfârşit; RET RSEG_CONST _ C_0071: DB 12 , Bună lume ! ' CSEG LA 0000 USD HelloWorld: ; ; începe MOV SP , #StackStart-1 ; init; LCALL Init ; Writeln(SerialPort, „Bună lume!”); MOV CurrentIO , SerialPort MOV CurrentIO + 1 , SerialPort + 1 MOV DPTR , #C_0071 MOV R6 , #0 LCALL sysWriteStr_CODE LCALL sysWriteLine ; Sfârşit. L_0017: SJMP L_0017 Sfârşit

Mediu de dezvoltare integrată

MC-51

Mediu de dezvoltare integrat pentru microcontrolere 8051.

MC-51 conține:

  • Editor de text cu evidențiere de sintaxă pentru crearea codului sursă pentru programe în asamblare și Pascal;
  • Interfață cu Turbo51 pentru compilare din Pascal;
  • Interfață cu ASEMW pentru asamblare;
  • Simulator cuprinzător și depanator pentru toate funcțiile majore, inclusiv cronometre și interfață serială;
  • Fereastra terminalului pentru comunicarea cu monitorul programului din microcontroler și încărcarea programelor în memoria microcontrolerului în format Intel Hex;
  • Modul de programare flash pentru microcontrolere Atmel AT89S8252/53 prin interfață serială.

Pentru a compila fișiere sursă, MC-51 utilizează un apel de linie de comandă a programului (ASEMW sau Turbo51) cu parametri adecvați. Când faceți clic pe un mesaj de eroare, editorul vă permite să săriți direct la linia care conține eroarea. Editorul de text încorporat folosește componentele open source SynEdit. În plus, multe caracteristici avansate ale editorului SynEdit acceptă evidențierea sintaxei specifice sursei. Multe dintre aceste caracteristici pot fi configurate individual de către utilizator.

MS-51 include, de asemenea, un simulator/depanator. Cu acesta, puteți monitoriza execuția programului fără niciun hardware.

Vezi și

Link -uri