The Internet Power Line Adapter - University of Queensland
The Internet Power Line Adapter - University of Queensland
The Internet Power Line Adapter - University of Queensland
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