hi friends,
this is part of the code used to read the binary data from a motorola Oncore gps timing RX (they do/did a version that can output 10Khz as well).
its got 4 errors so plz tell me what is bad
GetRx call readst ; read receiver data string iorlw 0 ; test W, 0 = checksum good btfss status,z ; if read error do not update lcd return ; Call again for second string call readst ; read receiver data string iorlw 0 ; test W, 0 = checksum good btfss status,z return ; if read error do not update lcd MOVLW 0x01 ; Clear LCD CALL cout CALL chkbsy movf day,w ;Send date call p_bin movlw '-' call dout movf month,w call p_bin movlw '-' call dout movf year_hb,w movwf hbyte movf year_lb,w movwf lbyte call bin2bcd call p_4 ; send 4 lsd from "R" reg to LCD movlw ' ' ; send space call dout movf hour,w ; send time return
You need to do two things:
1. Use the assembler to show you the syntax erros;
2. Use the simulator to step through the code, and observe what happens.
In fact, you could do both of them just with pencil & paper and referring to the Instruction Set manual - Chapter 2 of the so-called "bible" for the 8051:
Chapter 1 - 80C51 Family Architecture: www.nxp.com/.../80C51_FAM_ARCH_1.pdf
Chapter 2 - 80C51 Family Programmer's Guide and Instruction Set: www.nxp.com/.../80C51_FAM_PROG_GUIDE_1.pdf
Chapter 3 - 80C51 Family Hardware Description: www.nxp.com/.../80C51_FAM_HARDWARE_1.pdf