i have change the def file for S51 to that : ( compare with the original that come with the compiler... a lot of mistyping there ...lol)
Code: Select all
unit AT89S51;
var R0 : char ; absolute 0x00; register;
var R1 : char ; absolute 0x01; register;
var R2 : char ; absolute 0x02; register;
var R3 : char ; absolute 0x03; register;
var R4 : char ; absolute 0x04; register;
var R5 : char ; absolute 0x05; register;
var R6 : char ; absolute 0x06; register;
var R7 : char ; absolute 0x07; register;
//
// * individual bit access constats
// const char F0 = 0; // intentionally commented out
const F1 : byte = 1;
const F2 : byte = 2;
const F3 : byte = 3;
const F4 : byte = 4;
const F5 : byte = 5;
const F6 : byte = 6;
const F7 : byte = 7;
const B0 : byte = 0;
const B1 : byte = 1;
const B2 : byte = 2;
const B3 : byte = 3;
const B4 : byte = 4;
const B5 : byte = 5;
const B6 : byte = 6;
const B7 : byte = 7;
//------------------------------------------------
//Byte Registers
//------------------------------------------------
var P0 : byte; absolute 0x80; sfr; // Port 0 //
var SP : byte; absolute 0x81; sfr; // Stack Pointer //
var DPL : byte; absolute 0x82; sfr; // Data Pointer Low Byte //
var DP0L : byte; absolute 0x82; sfr; // Alternate Definition //
var DPH : byte; absolute 0x83; sfr; // Data Pointer High Byte //
var DP0H : byte; absolute 0x83; sfr; // Alternate Definition //
var DP1L : byte; absolute 0x84; sfr; // Data Pointer 1 Low Byte , different to AT89C52 //
var DP1H : byte; absolute 0x85; sfr; // Data Pointer 1 High Byte , different to AT89C52 //
var PCON : byte; absolute 0x87; sfr; // Power Control Register //
var TCON : byte; absolute 0x88; sfr; // Timer Control Register //
var TMOD : byte; absolute 0x89; sfr; // Timer Mode Control Register //
var TL0 : byte; absolute 0x8A; sfr; // Timer 0 Low Byte //
var TL1 : byte; absolute 0x8B; sfr; // Timer 1 Low Byte //
var TH0 : byte; absolute 0x8C; sfr; // Timer 0 High Byte //
var TH1 : byte; absolute 0x8D; sfr; // Timer 1 High Byte //
var AUXR : byte; absolute 0x8E; sfr; // Auxiliary Register, DISALE //
var P1 : byte; absolute 0x90; sfr; // Port 1 //
var SCON : byte; absolute 0x98; sfr; // Serial Port Control //
var SBUF : byte; absolute 0x99; sfr; // Serial Port Buffer //
var P2 : byte; absolute 0xA0; sfr; // Port 2 //
var AUXR1 : byte; absolute 0xA2; sfr; // Auxiliary Register, DISALE
var WDTRST : byte; absolute 0xA6; sfr; // WDT Reset Register //
var IE : byte; absolute 0xA8; sfr; // Interrupt Enable Register 0 //
var P3 : byte; absolute 0xB0; sfr; // Port 3 //
var IP : byte; absolute 0xB8; sfr; // Interrupt Priority Register //
var PSW : byte; absolute 0xD0; sfr; // Program Status Word //
var ACC : byte; absolute 0xE0; sfr; // Accumulator //
var B : byte; absolute 0xF0; sfr; // B Register //
//------------------------------------------------
//P0 (0x80) Bit Registers
//------------------------------------------------
var P0_0: sbit at P0.B0;
var P0_1: sbit at P0.B1;
var P0_2: sbit at P0.B2;
var P0_3: sbit at P0.B3;
var P0_4: sbit at P0.B4;
var P0_5: sbit at P0.B5;
var P0_6: sbit at P0.B6;
var P0_7: sbit at P0.B7;
//------------------------------------------------
//TCON (0x88) Bit Registers
//------------------------------------------------
var IT0: sbit at TCON.B0; // Interrupt 0 Type Control Bit //
var IE0: sbit at TCON.B1; // Interrupt 0 Edge Flag //
var IT1: sbit at TCON.B2; // Interrupt 1 Type Control Bit //
var IE1: sbit at TCON.B3; // Interrupt 1 Edge Flag //
var TR0: sbit at TCON.B4; // Timer 0 Run Control Bit //
var TF0: sbit at TCON.B5; // Timer 0 Overflow Flag //
var TR1: sbit at TCON.B6; // Timer 1 Run Control Bit //
var TF1: sbit at TCON.B7; // Timer 1 Overflow Flag //
//------------------------------------------------
//P1 (0x90) Bit Registers
//------------------------------------------------
var P1_0: sbit at P1.B0;
var P1_1: sbit at P1.B1;
var P1_2: sbit at P1.B2;
var P1_3: sbit at P1.B3;
var P1_4: sbit at P1.B4;
var P1_5: sbit at P1.B5;
var P1_6: sbit at P1.B6;
var P1_7: sbit at P1.B7;
// only for programming purposes, MCU does not actually have SPI module
var MOSI: sbit at P1.B5; // SPI: MOSI - Master data output, slave data input //
var MISO: sbit at P1.B6; // SPI: MISO - Master data input, slave data output //
var SCK: sbit at P1.B7; // SPI: SCK - Master clock output, slave clock input //
//------------------------------------------------
//SCON (0x98) Bit Registers
//------------------------------------------------
var RI: sbit at SCON.B0; // Receive Interrupt Flag //
var TI: sbit at SCON.B1; // Transmit Interrupt Flag //
var RB8: sbit at SCON.B2; // 9th data bit received //
var TB8: sbit at SCON.B3; // 9th data bit to be transmitted in modes 2 & 3 //
var REN: sbit at SCON.B4; // Receive Enable
var SM2: sbit at SCON.B5; // Serial Port Mode Bit 2 //
var SM1: sbit at SCON.B6; // Serial Port Mode Bit 1 //
var SM0: sbit at SCON.B7; // Serial Port Mode Bit 0 //
//------------------------------------------------
//P2 (0xA0) Bit Registers
//------------------------------------------------
var P2_0: sbit at P2.B0;
var P2_1: sbit at P2.B1;
var P2_2: sbit at P2.B2;
var P2_3: sbit at P2.B3;
var P2_4: sbit at P2.B4;
var P2_5: sbit at P2.B5;
var P2_6: sbit at P2.B6;
var P2_7: sbit at P2.B7;
//------------------------------------------------
//IE (0xA8) Bit Registers
//------------------------------------------------
var EX0: sbit at IE.B0; // 1=Enable External interrupt 0
var ET0: sbit at IE.B1; // 1=Enable Timer 0 interrupt
var EX1: sbit at IE.B2; // 1=Enable External interrupt 1
var ET1: sbit at IE.B3; // 1=Enable Timer 1 interrupt
var ES: sbit at IE.B4; // 1=Enable Serial port interrupt
var ET2: sbit at IE.B5; // 1=Enable Timer 2 interrupt
var EA: sbit at IE.B7; // 0=Disable all interrupts
//------------------------------------------------
//P3 (0xB0) Bit Registers (Mnemonics & Ports)
//------------------------------------------------
var P3_0: sbit at P3.B0;
var P3_1: sbit at P3.B1;
var P3_2: sbit at P3.B2;
var P3_3: sbit at P3.B3;
var P3_4: sbit at P3.B4;
var P3_5: sbit at P3.B5;
var P3_6: sbit at P3.B6;
var P3_7: sbit at P3.B7;
var RXD: sbit at P3.B0; // Serial data input //
var TXD: sbit at P3.B1; // Serial data output //
var INT0: sbit at P3.B2; // External interrupt 0 //
var INT1: sbit at P3.B3; // External interrupt 1 //
var T0: sbit at P3.B4; // Timer 0 external input //
var T1: sbit at P3.B5; // Timer 1 external input //
var WR: sbit at P3.B6; // External data memory write strobe //
var RD: sbit at P3.B7; // External data memory read strobe //
//------------------------------------------------
//IP (0xB8) Bit Registers
//------------------------------------------------
var PX0: sbit at IP.B0; // External Interrupt 0 Priority Bit //
var PT0: sbit at IP.B1; // Timer 0 Interrupt Priority Bit //
var PX1: sbit at IP.B2; // External Interrupt 1 Priority Bit //
var PT1: sbit at IP.B3; // Timer 1 Interrupt Priority Bit //
var PS: sbit at IP.B4; // Serial Port Interrupt Priority Bit //
var PT2: sbit at IP.B5; // Timer 2 Interrupt Priority Bit //
//------------------------------------------------
//PSW (0xD0) Bit Registers
//------------------------------------------------
var P: sbit at PSW.B0; // Parity Flag //
var FL: sbit at PSW.B1; // User Flag //
var OV: sbit at PSW.B2; // Overflow Flag //
var RS0: sbit at PSW.B3; // Register Bank Select Bit 0 //
var RS1: sbit at PSW.B4; // Register Bank Select Bit 1 //
var F0: sbit at PSW.B5; // User Flag 0 //
var AC: sbit at PSW.B6; // Auxiliary Carry Flag //
var CY: sbit at PSW.B7; // Carry Flag //
//------------------------------------------------
//PCON (0x87) Bit Values
//------------------------------------------------
const IDL : byte = 0; // Idle Mode Bit: 1=Active
const STOP : byte= 1; // Stop Mode Bit: 1=Active
const PD : byte = 1; // Alternate definition
const GF0 : byte = 2; // General Purpose Flag 0
const GF1 : byte = 3; // General Purpose Flag 1
const SMOD : byte = 7; // Double Baud Rate Bit for use with Timer 1
//------------------------------------------------
//TMOD (0x89) Bit Values
//------------------------------------------------
const T0_M0 : byte = 0; // Timer 0 Mode Bit 0 //
const T0_M1 : byte = 1; // Timer 0 Mode Bit 1 //
const T0_CT : byte = 2; // Timer 0 Counter/Timer Select: 0=Timer, 1=Counter //
const T0_GATE : byte = 3; // Timer 0 Gate Control //
const T1_M0 : byte = 4; // Timer 1 Mode Bit 0 //
const T1_M1 : byte = 5; // Timer 1 Mode Bit 1 //
const T1_CT : byte = 6; // Timer 1 Counter/Timer Select: 0=Timer, 1=Counter //
const T1_GATE : byte= 7; // Timer 1 Gate Control //
const T1_MASK : byte= 0xF0; // Timer 0 Mask //
const T0_MASK : byte= 0x0F; // Timer 1 Mask //
//------------------------------------------------
//AUXR (0x8E) Bit Values
//------------------------------------------------
const DISALE : byte = 0; // ALE management//
const DISRTO : byte = 3; // Disable/Enable Reset out
const WDIDLE : byte = 4; // Disable/Enable WDT in IDLE mode
//------------------------------------------------
//AUXR1 (0xA2) Bit Values
//------------------------------------------------
const DPS : byte = 0; // Data Pointer Register Select
//------------------------------------------------
//Interrupt Vectors:
//Interrupt Address = (Number * 8) + 3
//------------------------------------------------
const IE0_VECTOR : byte = 0; // 0x03 External Interrupt 0 //
const TF0_VECTOR : byte = 1; // 0x0B Timer 0 //
const IE1_VECTOR : byte = 2; // 0x13 External Interrupt 1 //
const TF1_VECTOR : byte = 3; // 0x1B Timer 1 //
const SIO_VECTOR : byte = 4; // 0x23 Serial port //
implementation
end.
After this error, i have to close the software and reopen to be able to build again with another mcu. Just change the mcu dont eneble the build choice...0 1 mP8051.exe -DBG -MSF -N"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Keypad 4x4\Keypad4x4.mpproj" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\defs\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\uses\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Keypad 4x4\" "System.mcl" "Math.mcl" "Math_Double.mcl" "Delays.mcl" "__Lib_Conv.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Lcd.mcl" "__Lib_LcdConsts.mcl"
107 1016 Warning: Source size (5) does not match destination size (15) Keypad4x4.mpas
im in way to correct all def file... do you want i send you a copy of them ?