Closed seanshpark closed 4 weeks ago
8051 Stack: push
will increment SP
How to init SP
value?
one of compile output file .mem
will show RAM usage
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|a|a|a|a|a|a|a|a|
0x10:|a|a|a|a|a|a|a|a|a|a|a|a|S|S|S|S|
0x20:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
How to use bit space?
__bit
as data type
__bit flag_a, flag_b;
__bit
variables
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|a|a|a|a|a|a|a|a|
0x10:|a|a|a|a|a|a|a|a|a|a| | | | | | |
0x20:|B|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x30:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
How to use register bank 1, 2, 3 ?
void timer0_isr(void) __interrupt (1) __using (1) { ... }
__using (2)
-> use bank 2__using (1)
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|1|1|1|1|1|1|1|1|
0x10:| | | | | | | | | | | | | | | | |
0x20:|B|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|
0x30:|a|a|a|S|S|S|S|S|S|S|S|S|S|S|S|S|
Test with my old SE-511p
programmer
COM1
se516v31.exe
as Admin78L12
regulator so it's OKLow Vpp voltage will fail to write.
done
A simple blink program will do to check the Programmer is working OK.
sdcc
blink.asm
sourcesdcc
8051 instruction set
8051 hardware manual