davekav
- 16th April 2008, 15:59
I'm want to how to wire my 16F818 PIC up for interface my with PC and want to read to data from the PIC using VB.
I have a max233cpp chip and also RS232 to usb convertor.
I have set reg sspcon bit 5 to 1 on PIC for data output as thats all I need to use.
Any help would be great thanks.
duncan303
- 16th April 2008, 16:29
Welcome
Any help would be great thanks.
Any code/details would be great thanks
Duncan
__________________
davekav
- 16th April 2008, 19:20
This is my first PIC Project and have enjoyed it so far but having trouble moving forward at the minute.
Details:
The PIC is been used for a prototype alarm system for toy car and hoping to then interface with PC to give a nice GUI and display which sensor was triggered.
Code:
list p=16f818 ; list directive to define processor
#include <p16F818.inc> ; processor specific variable definitions
errorlevel -302 ; suppress message 302 from list file
__CONFIG H'3F10'
;***** VARIABLE DEFINITIONS
OPTION_R EQU 81H ;Option Register
ZEROBIT EQU 2 ;means ZEROBIT is bit 2.
COUNT EQU 20H ;COUNT a register to count events.
COUNTA EQU 21H
;************************************************* *********************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
; SUBROUTINE SECTION.
DELAY MOVLW 0xFF ;load Decimal FF in W register
MOVWF COUNT ;load Count with contents of W register
LOADCA MOVLW 0xFF ;load Decimal FF in W register
MOVWF COUNTA ;load CountA with contents of W register
DEC DECFSZ COUNTA,F;decrement counterA and skip next line if Z=0
GOTO DEC ;if countA not 0 than go to DEC
DECFSZ COUNT,F ;decrement counter1 and skip next line if Z=0
GOTO LOADCA ;if count1 not 0 than go to LOADC2
RETURN ;else jump out of subroutine
;FLASH LEDS
LED BSF PORTA,0 ;Turn on A0
BSF PORTA,1 ;Turn on A1
BSF PORTA,2 ;Turn on A2
BSF PORTA,3 ;Turn on A3
CALL DELAY
BCF PORTA,0 ;Turn off A0
BCF PORTA,1 ;Turn off A1
BCF PORTA,2 ;Turn off A2
BCF PORTA,3 ;Turn off A3
RETURN
;FLASHING LEDS
LEDs BSF PORTA,0 ;Turn on A0
BSF PORTA,1 ;Turn on A1
BSF PORTA,2 ;Turn on A2
BSF PORTA,3 ;Turn on A3
CALL DELAY
BCF PORTA,0 ;Turn off A0
BCF PORTA,1 ;Turn off A1
BCF PORTA,2 ;Turn off A2
BCF PORTA,3 ;Turn off A3
CALL DELAY
GOTO LEDs
;************************************************* *********
; CONFIGURATION SECTION.
main BSF STATUS,5 ;change to bank1
MOVLW B'11110000' ;Bits for mixed I/Os on portA
MOVWF TRISA
MOVLW B'00111011' ;Bits for mixed I/Os on portB
MOVWF TRISB
MOVLW B'00000000'
MOVWF OSCCON ;oscillator 31.25kHz
MOVLW B'00000111' ;prescaler is /256
MOVWF OPTION_R ;TIMER is 1/32 secs
BCF STATUS,5 ;return to bank0
BSF SSPCON,5 ;Set bit 5 to high to enable RB1, RB2 as serial I/O ports
CLRF PORTB ;clear portB register
CLRF PORTA ;clear portA register
CLRF COUNT ;clear count register
CLRF COUNTA ;clear countA register
;************************************************* *********
;Program starts now.
ARM BTFSC PORTA,4 ;INPUT FOR TRANSMITTER
GOTO ALED
GOTO ARM
ALED CALL LED ;CALL LED SUBROUTINE
GOTO POLLING
POLLING BTFSS PORTB,0 ;CHECK ULTRASOUND
GOTO ALARM
BTFSS PORTB,1 ;CHECK DOOR 1
GOTO ALARM
BTFSS PORTB,5 ;CHECK DOOR 2
GOTO ALARM
BTFSS PORTB,4 ;CHECK TILT SWITCH
GOTO ALARM
GOTO POLLING
ALARM BSF PORTB,6 ;TURN ON ALARM
CALL LEDs ;FLASH LEDs
BTFSC PORTA,4 ;WAIT FOR PORT TO BE LOW
GOTO ALARM
CLRF PORTA
;BCF PORTA,6 ;TURN OFF ALARM
;BCF PORTA,0 ;Turn off A0
;BCF PORTA,1 ;Turn off A1
;BCF PORTA,2 ;Turn off A2
;BCF PORTA,3 ;Turn off A3
GOTO ARM
; initialize eeprom locations
ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03
END ; directive 'end of program'
So any help would be great also I'm using MPLAB V8 and a PICstart programmer to burn the PIC.
Thanks again
mister_e
- 16th April 2008, 20:05
MSSP is for I2C/SPI devices.
Why not using the Internal USART instead? Way simple! Check For SPBRG, TXSTA, RCSTA register... but yeah.. this pic don't have any UART/USART/EUSART... change to something else... 16F88, 16F628A... or Buy a copy of our beloved PICBASIC PRO COMPILER version... you will do it in seconds with it's built-in software serial features. Buy it HERE (http://www.rentron.com/PicBasic/products/PBP_E.htm)
BUT 31.xxx KHz is not going to be really helpful... 4MHz at very least.
For serious serial communication i would suggest an external crystal for now.
davekav
- 17th April 2008, 11:33
I wish I could afford PICBASIC but can't at the minute. So How would I go about setting up SSP, would it work in the same way for RS232 connection.
Thanks
Powered by vBulletin® Version 4.1.7 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.