| ??? 04/13/11 21:56 Modified: 04/13/11 22:03 Read: times |
#181873 - Experimenting with 8051 embedded Responding to: ???'s previous message |
Since you started experimenting with 8051-like embedded controllers, take a look at this, it might help.
;-------------------------------------- RESET Startup --------------------------
org 0x0100
Start: mov SP, #SPstart ; if 128 bytes iRAM may use upper 32bytes
acall sys_init
acall uart_init
ljmp main
;-------------------------------------- main -----------------------------------
main:
mov DPTR, #msg1 ; point to msg1
mov R2, #msgsize ; message size
acall send_msg ; send msg to FIM (25bytes)
mov R0, #buf ; start of receive buffer in iRAM
mov R2, #bufsize ; fixed size reply from FIM
acall recv_msg ; get reply from FIM (25bytes) to buf
mov R0, #buf ; start of receive buffer in iRAM
mov R2, #bufsize ; fixed size reply from FIM
acall show_buf ; show reply on P2 with 1s delay
mov DPTR, #msg2 ; point to msg2
mov R0, #buf ; start of msg buffer in iRAM
mov R2, #bufsize ; fixed size of msg received
acall cmp_msg ; compare msg to buf, eq A=0, ne A=1
jz case_eq ; decide program execution based on A
case_ne: ; ... when not equal
case_eq: ; ... when equal
jmp $ ; STOP
http://www.8052.com/users/angelis/fim_main.txt |



