W
wilyam
Guest
Ini apa yang akan saya ingin lakukan
; * Ra1 <--- serial pinout
; * RB7-RB0 <--- paralel input MSB-LSB
; * 19.200 adalah baudrate ([(fosc / 4) / BR] / 3) -2
; * 4MHz XT osc
; * Program ini hanya akan membuat paralel ke PORTB input ke output serial di Ra1
; "Tapi im mengalami masalah, program saya dont seem to work seperti shoud, seseorang bisa memeriksa sejenak ini. Mana saja saya pergi salah?
prosesor p16f84a
# include "p16f84a.inc"
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSCwidth EQU 23h
menghitung EQU 24H
txreg EQU 25H
ulitwidth EQU 26H
d3 EQU 29H
temp EQU 2AH
d1 EQU 2bh
d2 EQU 2ChORG 0x00
goto utama
awal panggilan utama
nextm panggilan putBw
mengirim panggilan panggilan onesec
goto nextm
awal bsf STATUS, Rp0
movlw h'FF 'movwf TRISB
movlw h'00 'movwf TRISA
bcf STATUS, Rp0
bcf STATUS, C
clrf temp
clrf txreg
kembali
mengirim movwf txreg
bcf PORTA, 1; mengirim mulai sedikit
movlw d'15 '
movwf width
movlw ,9
movwf menghitung
width txbaudwait decfsz
goto txbaudwait
movlw d'15 '
movwf width
movwf ulitwidth
decfsz menghitung
goto sendnextbit
movlw ,9
movwf menghitung
bsf PORTA, 1; kirim stop bit
loopw decfsz ulitwidth
goto loopw
kembali
sendnextbit rrf txreg, 1
btfss STATUS, C
goto setlo
bsf PORTA, 1; mengirim agak tinggi
goto txbaudwait
setlo bcf PORTA, 1; mengirim sedikit rendah
goto txbaudwaitputBw btfss PORTB, 0 <== polling
bcf temp, 0
btfsc PORTB, 0
bsf temp, 0
btfss PORTB, 1
bcf temp, 1
btfsc PORTB, 1
bsf temp, 1
btfss PORTB, 2
bcf temp, 2
btfsc PORTB, 2
bsf temp, 2
btfss PORTB, 3
bcf temp, 3
btfsc PORTB, 3
bsf temp, 3
btfss PORTB, 4
bcf temp, 4
btfsc PORTB, 4
bsf temp, 4
btfss PORTB, 5
bcf temp, 5
btfsc PORTB, 5
bsf temp, 5
btfss PORTB, 6
bcf temp, 6
btfsc PORTB, 6
bsf temp, 6
btfss PORTB, 7
bcf temp, 7
btfsc PORTB, 7
bsf temp, 7
movf temp, w
kembali
onesec; <== i got kode penundaan ini dari generator
movlw 0x08
movwf d1
movlw 0x2F
movwf d2
movlw 0x03
movwf d3
onesec_0
decfsz d1, f
goto $ 2
decfsz d2, f
goto $ 2
decfsz d3, f
goto onesec_0; 3 siklus
goto $ 1
nop
kembali
akhir
; * Ra1 <--- serial pinout
; * RB7-RB0 <--- paralel input MSB-LSB
; * 19.200 adalah baudrate ([(fosc / 4) / BR] / 3) -2
; * 4MHz XT osc
; * Program ini hanya akan membuat paralel ke PORTB input ke output serial di Ra1
; "Tapi im mengalami masalah, program saya dont seem to work seperti shoud, seseorang bisa memeriksa sejenak ini. Mana saja saya pergi salah?
prosesor p16f84a
# include "p16f84a.inc"
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSCwidth EQU 23h
menghitung EQU 24H
txreg EQU 25H
ulitwidth EQU 26H
d3 EQU 29H
temp EQU 2AH
d1 EQU 2bh
d2 EQU 2ChORG 0x00
goto utama
awal panggilan utama
nextm panggilan putBw
mengirim panggilan panggilan onesec
goto nextm
awal bsf STATUS, Rp0
movlw h'FF 'movwf TRISB
movlw h'00 'movwf TRISA
bcf STATUS, Rp0
bcf STATUS, C
clrf temp
clrf txreg
kembali
mengirim movwf txreg
bcf PORTA, 1; mengirim mulai sedikit
movlw d'15 '
movwf width
movlw ,9
movwf menghitung
width txbaudwait decfsz
goto txbaudwait
movlw d'15 '
movwf width
movwf ulitwidth
decfsz menghitung
goto sendnextbit
movlw ,9
movwf menghitung
bsf PORTA, 1; kirim stop bit
loopw decfsz ulitwidth
goto loopw
kembali
sendnextbit rrf txreg, 1
btfss STATUS, C
goto setlo
bsf PORTA, 1; mengirim agak tinggi
goto txbaudwait
setlo bcf PORTA, 1; mengirim sedikit rendah
goto txbaudwaitputBw btfss PORTB, 0 <== polling
bcf temp, 0
btfsc PORTB, 0
bsf temp, 0
btfss PORTB, 1
bcf temp, 1
btfsc PORTB, 1
bsf temp, 1
btfss PORTB, 2
bcf temp, 2
btfsc PORTB, 2
bsf temp, 2
btfss PORTB, 3
bcf temp, 3
btfsc PORTB, 3
bsf temp, 3
btfss PORTB, 4
bcf temp, 4
btfsc PORTB, 4
bsf temp, 4
btfss PORTB, 5
bcf temp, 5
btfsc PORTB, 5
bsf temp, 5
btfss PORTB, 6
bcf temp, 6
btfsc PORTB, 6
bsf temp, 6
btfss PORTB, 7
bcf temp, 7
btfsc PORTB, 7
bsf temp, 7
movf temp, w
kembali
onesec; <== i got kode penundaan ini dari generator
movlw 0x08
movwf d1
movlw 0x2F
movwf d2
movlw 0x03
movwf d3
onesec_0
decfsz d1, f
goto $ 2
decfsz d2, f
goto $ 2
decfsz d3, f
goto onesec_0; 3 siklus
goto $ 1
nop
kembali
akhir