30.11.2012 Views

The Internet Power Line Adapter - University of Queensland

The Internet Power Line Adapter - University of Queensland

The Internet Power Line Adapter - University of Queensland

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Home Automation, <strong>Power</strong> <strong>Line</strong>s and the <strong>Internet</strong> Quenten Alick<br />

Appendix D – Assembler Code Listing<br />

*--------------------------------------------------------------------<br />

* tser7.asc<br />

* P300 Initialisation and Serial (SPI) link<br />

* Author: Tony Truong<br />

*--------------------------------------------------------------------<br />

TCTL1 EQU $1020<br />

TCTL2 EQU $1021<br />

TFLG1 EQU $1023<br />

TFLG2 EQU $1025<br />

PORTB EQU $1004<br />

PORTC EQU $1003<br />

PORTD EQU $1008<br />

PORTA EQU $1000<br />

PORTE EQU $100A<br />

DDRC EQU $1007<br />

DDRD EQU $1009<br />

PACTL EQU $1026<br />

TMSK2 EQU $1024<br />

TOC2 EQU $1018<br />

TIC3 EQU $1014<br />

ADCTL EQU $1030<br />

ADR1 EQU $1031<br />

OPTION EQU $1039<br />

BAUD EQU $102B<br />

SCCR1 EQU $102C<br />

SCCR2 EQU $102D<br />

SCSR EQU $102E<br />

SCDR EQU $102F<br />

SPDR EQU $102A<br />

SPCR EQU $1028<br />

SPSR EQU $1029<br />

CONTROL EQU $8000 *LCD control<br />

DATA EQU $8001 *LCD data<br />

BIT0 EQU $01<br />

BIT1 EQU $02<br />

BIT2 EQU $04<br />

BIT3 EQU $08<br />

BIT4 EQU $10<br />

BIT5 EQU $20<br />

BIT6 EQU $40<br />

BIT7 EQU $80<br />

MASK1 EQU $80<br />

REG EQU $1000<br />

TIE EQU $88<br />

RECVEN EQU $24<br />

TRANSEN EQU $88<br />

TRUE EQU $01<br />

ISRIDLE EQU $01<br />

ISRXLEN EQU $02<br />

ISRX EQU $03<br />

ISRRLEN EQU $20<br />

ISRRCV EQU $30<br />

*****************************<br />

* Variables<br />

*****************************<br />

ORG $0000<br />

COUNT RMB 1<br />

MODE RMB 1<br />

*SCIFLAG RMB 1<br />

*SPIFLAG RMB 1<br />

POINTER RMB 2<br />

POINTR2 RMB 2<br />

POINTR3 RMB 2<br />

DIVTMP RMB 2<br />

*RCVCNT RMB 1<br />

- 44 -<br />

*TRNCNT RMB 1<br />

LENGTH RMB 1<br />

STORE FDB $0020<br />

STORE2 FDB $0030<br />

*----------------------------<br />

* IRQ Interrupt vector<br />

*----------------------------<br />

ORG $00EE<br />

JMP ISR<br />

*----------------------------<br />

* auto jump vector<br />

*----------------------------<br />

ORG $B600<br />

JMP BEGIN<br />

*****************************<br />

ORG $C000 *Start <strong>of</strong> program<br />

*****************************<br />

*--------------------------------------------------------------------<br />

* init stack and other setup stuff<br />

*--------------------------------------------------------------------<br />

BEGIN LDAA OPTION<br />

ORAA #BIT5<br />

STAA OPTION<br />

* hardware reset for the P300<br />

CLR PORTB<br />

LDS #$00C3<br />

* setup IO ports for output only<br />

LDAA #$FF<br />

STAA DDRC<br />

* setup data direction for portD for master<br />

LDAA #$38<br />

STAA DDRD<br />

* setup serial peripheral interface w/O interrupt<br />

LDAA #$5C<br />

STAA SPCR<br />

* setup input capture 2<br />

LDAA #BIT2<br />

STAA TCTL2<br />

LDAA #$01<br />

STAA TMSK2<br />

CLR COUNT<br />

*--------------------------------------------------------------------<br />

* LCD INITIALIZATION<br />

*--------------------------------------------------------------------<br />

LDY #CONTROL<br />

CONFIG1 BRSET 0,Y,#BIT7,CONFIG1<br />

LDAA #$30 * FUNCTION SET<br />

STAACONTROL<br />

CONFIG2 BRSET 0,Y,#BIT7,CONFIG2<br />

LDAA #$0F * DISPLAY SETTING<br />

STAACONTROL<br />

CONFIG3 BRSET 0,Y,#BIT7,CONFIG3<br />

LDAA #$07 * SET CURSOR MOVEMENT<br />

STAACONTROL<br />

CONFIG4 BRSET 0,Y,#BIT7,CONFIG4<br />

LDAA #$01 * CLEAR DISPLAY<br />

STAACONTROL<br />

CONFIG5 BRSET 0,Y,#BIT7,CONFIG5<br />

LDAA #$90<br />

STAA CONTROL * DD RAM START LOCATION<br />

LDAB OPTION

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!