PicASM and PIC16F628A with Bluetooth sending data
With this circuit, the push-button information is sent to the phone via the HC-06 bluetooth module. The circuit must be fed with 5Vdc.
The circuit's work: When it press the first button when it is send "Teknomerkez - Teknoloji Merkezi" text to the phone.
When it press the second button it is send "Mehmet YILMAZ" text.
When it press the third button it is send "ASM ile PIC16F628A ve Bluetooth ile veri gonderme" text.
You are can change this informations from ASM codes.
The circuit's schematic diagram:
The circuit's material list:
U1: 16F628A
Y1: 4 Mhz kristal
C1: 100nF
C2-C3: 22pF
SW1-SW3: Button
R1-R4: 10K rezistans
J1: HC-06 k Connector for Bluetooth connection.
The circuit's working picture:
The circuit's working video demonstration:
Assembly source codes for the circuit:
; ********* ***************************** ********* ; PicASM and PIC16F628A with Bluetooth sending data ; Use the MPASM compiler ; Tarih: 28.03.2017 10:46:43 ; http://teknomerkez.com/index.php?git=1738 ; ************************************************* TITLE "Pic ASM and PIC16F628A with Bluetooth sending data" LIST p=16F628A #INCLUDE <p16f628a.inc> __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF CBLOCK 0x20 ;The variables are defining TR500MS1 TR500MS2 TR500MS3 YOL ENDC ORG 0x00 GOTO BASLA BASLA ;Starting point CLRF PORTA CLRF PORTB BANKSEL TRISA MOVLW b'11111111' MOVWF TRISA MOVLW b'00000000' MOVWF TRISB BANKSEL SPBRG MOVLW d'25' MOVWF SPBRG MOVLW b'00100100' MOVWF TXSTA BANKSEL RCSTA BSF RCSTA,SPEN BANKSEL CMCON MOVLW 0x07 MOVWF CMCON GOTO GOREVLER GOREVLER ;Initially transactions are here BTFSS PORTA,0 GOTO TR_ISE0 BSF PORTB,2 MOVLW 'T' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'k' CALL SERIPORT_GONDER MOVLW 'n' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 'm' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'r' CALL SERIPORT_GONDER MOVLW 'k' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'z' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW '-' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'T' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'k' CALL SERIPORT_GONDER MOVLW 'n' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 'l' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 'j' CALL SERIPORT_GONDER MOVLW 'i' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'M' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'r' CALL SERIPORT_GONDER MOVLW 'k' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'z' CALL SERIPORT_GONDER MOVLW 'i' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'13' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'10' CALL SERIPORT_GONDER CALL BEKLE500MS TR_ISE0 BTFSS PORTA,1 GOTO TR_ISE1 BSF PORTB,2 MOVLW 'M' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'h' CALL SERIPORT_GONDER MOVLW 'm' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 't' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'Y' CALL SERIPORT_GONDER MOVLW 'I' CALL SERIPORT_GONDER MOVLW 'L' CALL SERIPORT_GONDER MOVLW 'M' CALL SERIPORT_GONDER MOVLW 'A' CALL SERIPORT_GONDER MOVLW 'Z' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'13' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'10' CALL SERIPORT_GONDER CALL BEKLE500MS TR_ISE1 BTFSS PORTA,2 GOTO TR_ISE2 BSF PORTB,2 MOVLW 'A' CALL SERIPORT_GONDER MOVLW 'S' CALL SERIPORT_GONDER MOVLW 'M' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'i' CALL SERIPORT_GONDER MOVLW 'l' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'P' CALL SERIPORT_GONDER MOVLW 'I' CALL SERIPORT_GONDER MOVLW 'C' CALL SERIPORT_GONDER MOVLW '1' CALL SERIPORT_GONDER MOVLW '6' CALL SERIPORT_GONDER MOVLW 'F' CALL SERIPORT_GONDER MOVLW '6' CALL SERIPORT_GONDER MOVLW '2' CALL SERIPORT_GONDER MOVLW '8' CALL SERIPORT_GONDER MOVLW 'A' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'v' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'B' CALL SERIPORT_GONDER MOVLW 'l' CALL SERIPORT_GONDER MOVLW 'u' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 't' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 't' CALL SERIPORT_GONDER MOVLW 'h' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'i' CALL SERIPORT_GONDER MOVLW 'l' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'v' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'r' CALL SERIPORT_GONDER MOVLW 'i' CALL SERIPORT_GONDER MOVLW ' ' CALL SERIPORT_GONDER MOVLW 'g' CALL SERIPORT_GONDER MOVLW 'o' CALL SERIPORT_GONDER MOVLW 'n' CALL SERIPORT_GONDER MOVLW 'd' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER MOVLW 'r' CALL SERIPORT_GONDER MOVLW 'm' CALL SERIPORT_GONDER MOVLW 'e' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'13' CALL SERIPORT_GONDER BSF PORTB,2 MOVLW d'10' CALL SERIPORT_GONDER CALL BEKLE500MS TR_ISE2 GOTO GOREVLER SERIPORT_GONDER MOVWF TXREG BANKSEL TXSTA SERIPORT_TX_KONTROL BTFSS TXSTA,TRMT GOTO SERIPORT_TX_KONTROL BANKSEL PORTB RETURN BEKLE500MS ;Wait 500ms MOVLW d'5' MOVWF TR500MS1 BEKLE500MS1 MOVLW d'199' MOVWF TR500MS2 BEKLE500MS2 MOVLW d'166' MOVWF TR500MS3 BEKLE500MS3 DECFSZ TR500MS3, F GOTO BEKLE500MS3 DECFSZ TR500MS2, F GOTO BEKLE500MS2 DECFSZ TR500MS1, F GOTO BEKLE500MS1 RETURN END ; End the program
Working HEX file:
:020000040000FA
:1000000001288501860183160313FF308500003027
:100010008600831603131930990024309800831248
:10002000031398178312031307309F001728051C2A
:100030005F2806155430F0206530F0206B30F0203A
:100040006E30F0206F30F0206D30F0206530F02001
:100050007230F0206B30F0206530F0207A30F020E4
:100060002030F0202D30F0202030F0205430F020CF
:100070006530F0206B30F0206E30F0206F30F020D3
:100080006C30F0206F30F0206A30F0206930F020C2
:100090002030F0204D30F0206530F0207230F0201C
:1000A0006B30F0206530F0207A30F0206930F0209D
:1000B00006150D30F02006150A30F020F820851CBA
:1000C000832806154D30F0206530F0206830F02090
:1000D0006D30F0206530F0207430F0202030F020BA
:1000E0005930F0204930F0204C30F0204D30F020D5
:1000F0004130F0205A30F02006150D30F020061562
:100100000A30F020F820051DEF2806154130F020B8
:100110005330F0204D30F0202030F0206930F020B6
:100120006C30F0206530F0202030F0205030F0208E
:100130004930F0204330F0203130F0203630F020CC
:100140004630F0203630F0203230F0203830F020C9
:100150004130F0202030F0207630F0206530F02063
:100160002030F0204230F0206C30F0207530F0204C
:100170006530F0207430F0206F30F0206F30F020C8
:100180007430F0206830F0202030F0206930F0200A
:100190006C30F0206530F0202030F0207630F020F8
:1001A0006530F0207230F0206930F0202030F020EF
:1001B0006730F0206F30F0206E30F0206430F02097
:1001C0006530F0207230F0206D30F0206530F02086
:1001D00006150D30F02006150A30F020F8201728FB
:1001E000990083160313981CF32883120313080045
:1001F0000530A000C730A100A630A200A20BFE2847
:0A020000A10BFC28A00BFA2808004F
:04020A000034003488
:02400E00293F48
:00000001FF
Comments
Do you have a circuit and code for the PIC16F628A to RECEIVE data from a phone application (Bluetooth Control)? The idea is to activate relays on the board when the phone app sends a letter or number. This project will act as a remote control. Thank you for your kindness.