Hi!
I’m receiving a string of 10 digit number & I’m saving each number in 10 GP registers.
After receiving the 10 digit number it will show the number in binary form.
Problem is its working for first round & after no more work.
This is the code that I use in my terminal program to send a string.
I’m receiving a string of 10 digit number & I’m saving each number in 10 GP registers.
After receiving the 10 digit number it will show the number in binary form.
Problem is its working for first round & after no more work.
Code:
LIST P=16F628A
#include <P16F628A.INC>
errorlevel -302
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
cblock 20h
Read_Count,Enable,d1,d2,d3
endc
cblock 30h
Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8,Data9,Data10,Data11
endc
org 0x0000
clrf STATUS
goto Init_Ports
org 0x0004
retfie
;*********************************
;Initialisation & setup the ports
;*********************************
Init_Ports movlw 07h ;turn off comparators & make pins for GP
movwf CMCON
bsf STATUS,RP0 ;B1
movlw b'00000010' ;RB1 = Input & others output
movwf TRISB
movlw b'00000000' ;make all portA ports outputs
movwf TRISA
bcf STATUS,RP0 ;B0
nop
nop
Init_USART bsf STATUS,RP0 ;B1
movlw b'00100100' ;Enable TXEN,High Baud rate
movwf TXSTA
movlw .25 ;set Baud Rate = 9600
movwf SPBRG
bsf PIE1,RCIE ;enable Recieve Interrupt Enable
nop
nop
bcf STATUS,RP0 ;B0
nop
nop
clrf RCSTA
movlw b'10010000' ;Enable SPEN,CREN
movwf RCSTA
bcf PIR1,RCIF ;recieve more reception
nop
nop
Init_INTCON movlw b'01000000' ;GIE,PEIE
movwf INTCON
bcf PIR1,RCIF ;recieve more reception
clrf PORTA
clrf PORTB
clrf Enable
call Data_Clear
goto Begin
Data_Clear clrf Data1
clrf Data2
clrf Data3
clrf Data4
clrf Data5
clrf Data6
clrf Data7
clrf Data8
clrf Data9
clrf Data10
return
;******************************
;Main program starts from here
;******************************
Begin movlw 30h
movwf FSR
movlw .11
movwf Read_Count ;load number of characters to be recieved
Read_Loop call Read_CHR
movwf INDF
incf FSR,F
decfsz Read_Count,F
goto Read_Loop
bsf Enable,0
goto Start
Read_CHR btfss PIR1,RCIF ;is it a reception?
goto Read_CHR
bcf PIR1,RCIF
movf RCREG,W ;yes,then take a copy of the character
return
Start btfss Enable,0
goto Start
movf Data1,W ;display number1
andlw b'00001111'
movwf PORTA
call Delay
movf Data2,W ;display number2
andlw b'00001111'
movwf PORTA
call Delay
movf Data3,W ;display number3
andlw b'00001111'
movwf PORTA
call Delay
movf Data4,W ;display number4
andlw b'00001111'
movwf PORTA
call Delay
movf Data5,W ;display number5
andlw b'00001111'
movwf PORTA
call Delay
movf Data6,W ;display number6
andlw b'00001111'
movwf PORTA
call Delay
movf Data7,W ;display number7
andlw b'00001111'
movwf PORTA
call Delay
movf Data8,W ;display number8
andlw b'00001111'
movwf PORTA
call Delay
movf Data9,W ;display number9
andlw b'00001111'
movwf PORTA
call Delay
movf Data10,W ;display number10
andlw b'00001111'
movwf PORTA
call Delay
bcf Enable,0
clrf PORTA
call Data_Clear
goto Begin
This is the code that I use in my terminal program to send a string.
Code:
Private Sub Command1_Click()
MSComm1.Output = Text1.Text & vbCr
End Sub