demo2 PAGE 1 1 ; MCU 8051 IDE - Demonstration code 2 ; Interrupts, hexadecimal editor and code validator 3 ; ------------------------------------------------------ 4 ; THIS REQUIRES ANOTHER MCU THAN AT89C2051 BECAUSE 5 ; AT89C2051 HAS NO XDATA MENORY. CLICK ON 6 ; [Main menu] -> [Project] -> [Edit project] AND SELECT 7 ; FOR INSTANCE AT89C51 AND SET XDATA TO SOME VALUE 8 ; ------------------------------------------------------ 9 10 ; * Click on [Main menu] -> [Simulator] -> [Show XDATA memory] 11 ; * Press F2 and F6 (start simulator and animate) 12 13 14 15 ; Code with syntax errors 16 nolist ; Disable code listing 23 list ; Enable code listing 24 25 ; Constants 26 ; -------------------- 27 cseg at 0D0h 00D0 57656C636F 28 string: db 'Welcome in MCU 8051 IDE ! ' 6D6520696E 204D435520 3830353120 4944452021 20 29 001A 30 string_legth equ 26d 31 32 ; Macro instructions 33 ; -------------------- 34 write_to_xdata macro str, code_ptr, xdata_ptr 35 mov A, code_ptr 36 mov DPTR, #str 37 movc A, @A+DPTR 38 mov DPL, xdata_ptr 39 movx @DPTR, A 40 inc xdata_ptr 41 inc code_ptr 42 endm 43 44 ; Program initialization 45 ; -------------------- 46 org 0h ; Reset vector ****WARNING:ThisORGhaslowervaluethanthepreviousone 0000 801C 47 sjmp start 48 49 org 0Bh ; Interrupt vector - T0 000B 8000 50 sjmp T0_int 51 52 ; Sub-programs 53 ; -------------------- 54 55 ;; Handle interrupt from TF0 000D 7F1A 56 T0_int: mov R7, #string_legth 000F 7E00 57 mov R6, #0h 58 +1 loop: write_to_xdata string, R6, R5 0011 EE 59 +1 mov a , R6 0012 9000D0 60 +1 mov dptr , #string 0015 93 61 +1 movc a , @a+dptr 0016 8D82 62 +1 mov dpl , R5 0018 F0 63 +1 movx @dptr , a 0019 0D 64 +1 inc R5 001A 0E 65 +1 inc R6 001B DFF4 66 djnz R7, loop 001D 32 67 reti 68 69 ; Program start 70 ; -------------------- 71 start: ; Start timer 0 in mode 2 001E 7D00 72 mov R5, #0h 0020 75A8FF 73 mov IE, #0FFh 0023 758AFF 74 mov TL0, #255d 0026 758903 75 mov TMOD, #03h 0029 D28C 76 setb TR0 002B 8000 77 sjmp main 78 79 ; Main loop 80 ; -------------------- 002D 80FE 81 main: sjmp $ ; Infinite loop 82 83 ; Program end 84 ; -------------------- 85 end ASSEMBLY COMPLETE, NO ERRORS FOUND, 1 WARNING ERROR SUMMARY: Line 48, WARNING:ThisORGhaslowervaluethanthepreviousone SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0149H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED LOOP . . . . . . . . . . . . . . . . C ADDR 0011H MAIN . . . . . . . . . . . . . . . . C ADDR 002DH OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 001EH STRING . . . . . . . . . . . . . . . C ADDR 00D0H STRING_LEGTH . . . . . . . . . . . . N NUMB 001AH T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T0_INT . . . . . . . . . . . . . . . C ADDR 000DH T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H TR0. . . . . . . . . . . . . . . . . B ADDR 008CH TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USED