Page 205 - Embedded Microprocessor Systems Real World Design
P. 205
MSET3: BSF PORTD,O
MSDON: NOP
NOP
BCF PORTD,O ; TERMINATE WITH A 0.
MOVLB 0 ; END OF DIAGNOSTIC OUTPUT.
Listing 6.2. 8051/8052 Assembly Code for Serial Status Output
; THIS CODE FRAGMENT OUTPUTS A FOUR-BIT STATUS
; VALUE, DIAGNOSTIC, TO PORT 0 BIT 0 OF AN
; 8051/8052 PROCESSOR. OUTPUT SEQUENCE IS:
; START BIT (1)
; DIAGNOSTIC BIT 0
; DIAGNOSTIC BIT 1
; DIAGNOSTIC BIT 2
; DIAGNOSTIC BIT 3
; ZERO.
; ON AN 8051 WITH AN 8MHZ CRYSTAL,
; EACH BIT WILL BE ABOUT 4.4 MICROSECONDS LONG.
MOV ACC,DIAGNOSTIC
SETB PO.0 ; OUTPUT START BIT (1)
RRC A
MOV PO.0,C ; OUTPUT DIAG BIT 0
RRC A
MOV PO.0,C ; OUTPUT DIAG BIT 1
RRC A
MOV PO.O,C ; OUTPUT DIAG BIT 2
RRC A
MOV PO.O,C ; OUTPUT DIAG BIT 3
NOP
NOP
CLR PO.0 ; ALL DONE
Listing 6.3. PIC Assembly Code for Self-clocking Serial Status Output
. ...................................................................................
,
; Synchronous serial diagnostic output on PIC.
; Sends 16-bit diagnostic word in DIAGLSB/DIAGMSB,
; to RB7. LSB of DIAGLSB is sent Arst, MSB of DIAGMSB
; is sent last.
; Output is clock bit followed by data clock if bit
; was a ‘l’, no data clock if bit was a ‘0’:
186 Embedded Microprocessor System