[ บทความ : ตัวอย่างสำหรับ 68HC11 V2 ตอนที่ 6 ] ทดสอบติดต่อกับ 8255 |
ตัวอย่างซอร์สโค้ดสำหรับติดต่อกับ 8255 กับบอร์ด CP-68HC11 V2 สำหรับการเขียนเพื่อเป็นโปรแกรมมอนิเตอร์เป็นดังนี้
;/**********************************/; ;/* Demo Program For Output (8255) */; ;/* Hardware : ET-CP68HC11 Ver 2.0 */; ;/* Complier : AS11NEW.EXE (V1.03) */; ;/**********************************/; ; ;/* Address Port of 8255 PA8255 EQU $1200 ; PortA = Output PB8255 EQU $1201 ; PortB = Input PC8255 EQU $1202 ; PCL = Input,PCH = Output CTL8255 EQU $1203 ; Control 8255 ORG $A000 ; Start at ROM Monitor ; START LDS #$9FFF ; Stack on RAM 32KB LDX #$1000 ; Base Register Index ; PSHX LDX #$FFFF ; Power-on Delay PWR_DLY DEX BNE PWR_DLY PULX ; LDAA #$80 ; PA,PB,PC = Output STAA CTL8255 ; OUT_8255 CLRA ; Clear All Output STAA PA8255 STAA PB8255 STAA PC8255 ; SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PA STAA PA8255 ; Write Data to PortA JSR DELAY ROLA ; Rotate Left data DECB BNE OUT_PA ; CLRA STAA PA8255 STAA PC8255 SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PB STAA PB8255 ; Write Data to PortB JSR DELAY ROLA ;Rotate Right data DECB BNE OUT_PB ; ; CLRA STAA PA8255 STAA PB8255 SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PC STAA PC8255 ; Write Data to PortC JSR DELAY ROLA ;Rotate Right data DECB BNE OUT_PC JMP OUT_8255 ;/*******************/; ;/* Delay Time Sub. */; ;/*******************/; ; DELAY PSHX PSHB LDAB #2 DLY0 LDX #$FFFF DLY1 DEX BNE DLY1 DECB BNE DLY0 PULB PULX RTS ORG $FFFE ; Reset Vector FDB START ENDส่วนสำหรับเขียนเพื่อทำงานกับมอนิเตอร์ของอีทีที จะเป็นดังนี้
;/**********************************/; ;/* Demo Program For Output (8255) */; ;/* Hardware : ET-CP68HC11 Ver 2.0 */; ;/* Complier : AS11NEW.EXE (V1.03) */; ;/**********************************/; ; ;/* Address Port of 8255 PA8255 EQU $1200 ; PortA = Output PB8255 EQU $1201 ; PortB = Input PC8255 EQU $1202 ; PCL = Input,PCH = Output CTL8255 EQU $1203 ; Control 8255 ORG $2200 ; Start of Debugger User Area MAIN LDAA #$80 ; PA,PB,PC = Output STAA CTL8255 ; OUT_8255 CLRA ; Clear All Output STAA PA8255 STAA PB8255 STAA PC8255 ; SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PA STAA PA8255 ; Write Data to PortA JSR DELAY ROLA ; Rotate Left data DECB BNE OUT_PA ; CLRA STAA PA8255 STAA PC8255 SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PB STAA PB8255 ; Write Data to PortB JSR DELAY ROLA ;Rotate Right data DECB BNE OUT_PB ; ; CLRA STAA PA8255 STAA PB8255 SEC ; 1 00000000 (Carry & Data) LDAB #9 ; Counter OUT_PC STAA PC8255 ; Write Data to PortC JSR DELAY ROLA ;Rotate Right data DECB BNE OUT_PC JMP OUT_8255 ;/*******************/; ;/* Delay Time Sub. */; ;/*******************/; ; DELAY PSHX PSHB LDAB #2 DLY0 LDX #$FFFF DLY1 DEX BNE DLY1 DECB BNE DLY0 PULB PULX RTS ENDสามารถ download ไฟล์ตัวอย่างของบอร์ด พร้อม assembler ได้เลยครับ