⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap3.asm

📁 Motorola 6805嵌入式接口设计开发原程序
💻 ASM
字号:
; Chapter 3 6805 assembly language programs; Jonathan W. Valvano; This software accompanies the book,; Real Time Embedded Systems published by Brooks Cole;; Program 3.3. Assembly language routines to initialize and output to a printer.; MC68HC705J1A; PortA is DATA, PB0=GOInit   lda  #$FF ;Ports A,B       sta  DDRA ;are       sta  DDRB ;outputs       rtsOut    sta  PORTA ;set data       lda  #0       sta  PORTB ;GO=0       lda  #1       sta  PORTB ;GO=1       lda  #20       ldx  #0    ;5120OLoop  decx       ;[1]       bne  OLoop ;[3]       deca       bne  Oloop ;wait       rts; Program 3.5. MC68HC705J1A assembly language routine to create an accurate time delay.; 68705; 256*(RegA) is the number of cycles to waitWait   tax        RegX is a loop counterLoop   lda  #$08  TOFR bit       sta  TSCR  clear TOFLoop2  tst  TSCR  wait for TOF       bpl  Loop2 set every 256 counts       decx       bne  Loop       rts; Program 3.8. Assembly language routines to initialize and read from an A/D.; MC68HC705J1A; PortA is DATA, PB0=GOInit  clr  DDRA      lda  #$FF      sta  DDRB      clr  PORTB ;GO=0      rtsIn    lda  #1      sta  PORTB ;GO=1      clr  PORTB ;GO=0      mul        ;[11]      lda  PORTA      rts; Program 3.10. Assembly language routines to initialize and read from a keyboard.; MC68HC705J1A; PA6-0 is DATA, PA7=STROBEInit  clr  DDRA      rtsIn    brset 7,PORTA,InLoop  brclr 7,PORTA,Loop      lda  PORTA      and  #$7F      rts; Program 3.12. Assembly language routines to initialize and read from an A/D.; MC68HC705J1A; PortA=DATA PB1=DONE PB0=GOInit lda  #$01  ;PB1 input     sta  DDRB  ;PB0 output     clr  DDRA  ;PA inputs     clr  PORTB ;GO=0     rtsIn   lda  #1     sta  PORTB ;GO=1     clr  PORTB ;GO=0;wait for rise of DONELoop brclr 1,PORTB,Loop     lda  PORTA     rts; Program 3.14. Handshaking assembly language routines to initialize and read from a sensor.; MC68HC705J1A; PortA=DATA PB1=READY PB0=ACKInit lda  #$01  ;PB1 input     sta  DDRB  ;PB0 output     clr  DDRA  ;PA inputs     lda  #$01     sta  PORTB ;ACK=1     rtsIn   brclr 1 PORTB In     clr  PORTB ;ACK=0     lda  PORTA ;read DATA     inc  PORTB ;ACK=1Loop brset 1,PORTB,Loop     rts; Program 3.17. Handshaking assembly language routines to initialize and write to a printer.; MC68HC705J1A; PA=DATA PB1=READY PB0=STARTInit lda  #$01  ;PB1 input     sta  DDRB  ;PB0 output     lda  #$FF     sta  DDRA  ;PA outputs     lda  #$01     sta  PORTB ;START=1     rts; Reg A is data to printOut  clr  PORTB ;START=0     sta  PORTA ;write DATA     inc  PORTB ;START=1; wait for the rising edgeWait brset 1,PORTB,WaitLoop brclr 1,PORTB,Loop     rts; Program 3.19. Assembly language initialization of the DS1620; MC68HC705J1A; PB2=RST PB1=CLK PB0=DQInit lda  #$07  ;PB2-0 output     sta  DDRB     lda  #$03  ;RST=0,CLK=1       sta  PORTB ;DQ=1     rts; Program 3.21. Assembly language helper functions for the DS1620; MC68HC705J1A;output 8 bits, Reg A=dataout8  ldx  #8      ;8 bitsclop  bclr 1,PORTB ;CLK=0      lsra         ;lsb first      bcc  set0      bset 0,PORTB ;DQ=1      bra  nextset0  bclr 0,PORTB ;DQ=0next  bset 1,PORTB ;CLK=1      decx      bne  clop      rtsstart bset 3,PORTB ;RST=1      lda  #$EE      bsr  out8      bclr 3,PORTB ;RST=0      rtsstop  bset 3,PORTB ;RST=1      ldaa #$22      bsr  out8      bclr 3,PORTB ;RST=0      rts; Program 3.23. Assembly language functions to set the configuration register on the DS1620; MC68HC705J1Aconfig sta  temp    ;temporary       bset 3,PORTB ;RST=1       lda  #$0C       bsr  out8       lda  temp       bsr  out8       bclr 3,PORTB ;RST=0       rts; Program 3.25. Assembly language 9-bit output helper function for the DS1620; MC68HC705J1A;output 9 bits, Reg X:A=dataout9  stx  temp      ldx  #8      ;8 bitsolop  bclr 1,PORTB ;CLK=0      lsra         ;lsb first      bcc  oset0      bset 0,PORTB ;DQ=1      bra  onextoset0 bclr 0,PORTB ;DQ=0onext bset 1,PORTB ;CLK=1      decx      bne  olop      lda  temp    ;msbit      bclr 1,PORTB ;CLK=0      lsra         ;msb last      bcc  mset0      bset 0,PORTB ;DQ=1      bra  mnextmset0 bclr 0,PORTB ;DQ=0mnext bset 1,PORTB ;CLK=1      rts; Program 3.26. Assembly language functions to set the threshold registers on the DS1620; MC68HC705J1AWriteTH sta  wtemp        stx  wtemp2        bset 3,PORTB ;RST=1        lda  #$01        bsr  out8        lda  wtemp        ldx  wtemp2        bsr  out9        bclr 3,PORTB ;RST=0        rtsWriteTL sta  wtemp        stx  wtemp2        bset 3,PORTB ;RST=1        lda  #$02        bsr  out8        lda  wtemp        ldx  wtemp2        bsr  out9        bclr 3,PORTB ;RST=0        rts; Program 3.28. Assembly language functions to read the configuration register on the DS1620; MC68HC705J1A;input 8 bits, Reg A=datain8   ldx  #8      ;8 bits      lda  DDRB      and  #$FE    ;DQ input      sta  DDRBilop  bclr 1,PORTB ;CLK=0      lsra         ;lsb first      brclr 0,PORTB,inext      ora  #$80    ;DQ=1inext bset 1,PORTB ;CLK=1      decx      bne  ilop      tax      lda  DDRB      ora  #$01   ;DQ output      sta  DDRB      txa      rts;Reg A is config valueReadConfig bset 3,PORTB ;RST=1        lda  #$AC        bsr  out8        bsr  in8        bclr 3,PORTB ;RST=0        rts; Program 3.29. Assembly language 9-bit read helper function for the DS1620; MC68HC705J1A;input 9 bits, Reg A:X=datain9   ldx  #9      ;9 bits      lda  DDRB      and  #$FE    ;DQ input      sta  DDRB      clra         ;ms bytejlop  bclr 1,PORTB ;CLK=0      lsra         ;lsb first      ror  temp9      brclr 0,PORTB,jnext      ora  #$80    ;DQ=1jnext bset 1,PORTB ;CLK=1      decx      bne  jlop      tax      lda  DDRB      ora  #$01   ;DQ output      sta  DDRB      txa      ldx  temp9      rts; Program 3.30. Assembly language functions to read the temperatures from the DS1620; MC68HC705J1A;Reg A:X returned as TH valueReadTH bset 3,PORTB ;RST=1       lda  #$A1       bsr  out8       bsr  in9       bclr 3,PORTB ;RST=0       rts;Reg A:X returned as TL valueReadTL bset 3,PORTB ;RST=1       lda  #$A2       bsr  out8       bsr  in9       bclr 3,PORTB ;RST=0       rts;Reg A:X returned temperatureReadT  bset 3,PORTB ;RST=1       lda  #$AA       bsr  out8       bsr  in9       bclr 3,PORTB ;RST=0       rts

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -