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
   200   201   202   203   204   205   206   207   208   209   210