Turbo51 | |
---|---|
| |
Tip de | Compilator |
Dezvoltator | Igor Funa |
Sistem de operare | Win32 |
ultima versiune | 0.1.3.16 (14 octombrie 2012 ) |
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.
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 ;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şitMediu de dezvoltare integrat pentru microcontrolere 8051.
MC-51 conține:
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.
Pascal | |||||||
---|---|---|---|---|---|---|---|
Dialectele |
| ||||||
Compilatoare |
| ||||||
IDE | |||||||
Persoane |