Good morning! I'm 47 years old, married with two children, and I work as a technology teacher for teenagers.
I am currently looking for a technical job in maintenance, electrical, or electronic industries, for example, in agricultural facilities. I'm seeking a primary role and am open to tasks that may differ from my main specialization
My educational stages-from when I was 6 years old until I was 15 involved basic schooling
-From the age of 15 to 18, I received technical secondary education specializing in electricity and electronics. I completed this without any failures, even though I was studying at a boarding school and the conditions were difficult."
- When I was 18 until I was 22, I completed four years of university education at the Higher Technical Education School, specializing in Electronics."
My Professional Journey After University-From 2000 to 2001, I undertook small jobs and repaired electronic devices from home, without a commercial license
-From 2001 to 2003, I completed my military service, during which I was responsible for the maintenance of medical equipment.
-In 2004, I worked as a substitute teacher.
-From 2005 to 2008, I opened a workshop for repairing electronic devices(Repair of televisions, electronic circuit boards for electrical appliances, and electronic equipment used in fishing vessels…..). I had to close it because I couldn't obtain a commercial license.
-From 2009 to the present day, I have been working as a technology teacher for students aged between 11 and 17.
Knowledge and Skills I Master-I program microprocessors using assembly language. Here's an example of programs I've written for a device I built:
This program is the core of a device that precisely controls the switching on and off of appliances, synchronized with a GPS clockIt consists of a µc a keypad, a screen, and relays.
#include <p16F84.inc> ; remove this if not necessary
__config _CP_OFF & _WDT_OFF & _PWRTE_ON &_XT_OSC
#define PRECISION 2 ; byte size for registers
M_STOR_STATUS macro WHERE
movf STATUS,w
movwf WHERE
endm
M_RETR_STATUS macro WHERE
movf WHERE,w
movwf STATUS
endm
BANC0 MACRO
BCF STATUS,RP0
ENDM
BANC1 MACRO
BSF STATUS,RP0
ENDM
URT EQU 4
RS equ 3
EN equ 2
DB0 equ 0
DB1 equ 0
DB2 equ 0
DB3 equ 0
x0 equ 0x0C
x1 equ 0x0D
y0 equ 0xE
y1 equ 0xF
z0 equ 0x10
z1 equ 0x11
cblock 0x0C
REG_X:PRECISION
REG_Y:PRECISION
REG_Z:PRECISION
REG_COUNTER
REG_STATUS
REG_T1
REG_T2
REG_ROT_COUNTER
w_temp
status_temp
fx0
fx1
T3
T4
second
minute
heure
N
UART
TEMP1
heure2
heure1
minute2
minute1
seconde2
seconde1
MINUTE1_H
MINUTE1_B
MINUTE2_H
MINUTE2_B
MINUTE3_H
MINUTE3_B
B0
k0
k1
A0
A1
A2
endc
org 0x0000
goto STAR
;_____________________________
ORG 0x0004
movwf w_temp
swapf STATUS,w
movwf status_temp
BANK0
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
movlw D'8'
addwf TMR0,f
INCF fx0
BCF STATUS,C
MOVLW D'16'
SUBWF fx0,W
BTFSS STATUS,C
GOTO NX
CALL INCFsecond
BCF STATUS,C
MOVLW D'59'
SUBWF second,W
BTFSS STATUS,C
GOTO NX
CALL INCFminute
BCF STATUS,C
MOVLW D'59'
SUBWF minute,w
BTFSS STATUS,C
GOTO STOP
CALL INCFheure
BCF STATUS,C
MOVLW D'23'
SUBWF heure,w
BTFSS STATUS,C
GOTO NX
CALL ZERO
STOP
NOP
NX
bcf INTCON,T0IF
swapf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
RETFIE
INCFsecond
CLRF fx0
INCF second ;second
RETURN
INCFminute
CLRF fx0
CLRF second
INCF minute
RETURN
INCFheure
CLRF fx0
CLRF second
CLRF minute
INCF heure
RETURN
ZERO
CLRF fx0
CLRF second
CLRF minute
CLRF heure
RETURN
M_CLR ; clear a register
movwf FSR
movlw PRECISION
movwf REG_COUNTER
M_CLR_loop
clrf INDF
incf FSR,f
decf REG_COUNTER,f
btfss STATUS,Z
goto M_CLR_loop
return
M_ROL ; rotate a register to the left
movwf FSR
M_STOR_STATUS REG_STATUS
clrf REG_COUNTER
M_ROL_loop
M_RETR_STATUS REG_STATUS
rlf INDF,f
M_STOR_STATUS REG_STATUS
incf FSR,f
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_ROL_loop
return
M_ROR ; rotates a register to the right
movwf FSR
movlw PRECISION-1
addwf FSR,f
M_STOR_STATUS REG_STATUS
clrf REG_COUNTER
M_ROR_loop
M_RETR_STATUS REG_STATUS
rrf INDF,f
M_STOR_STATUS REG_STATUS
decf FSR,f
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_ROR_loop
return
M_ADD ; Z + X -> Z
bcf STATUS,C
clrf REG_STATUS
clrf REG_COUNTER
M_ADD_loop
clrf REG_T1
btfsc REG_STATUS,C
incf REG_T1,f
clrf REG_STATUS
movlw REG_X
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movlw REG_Z
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
addwf REG_T1,f
btfsc STATUS,C
bsf REG_STATUS,C
movf REG_T1,w
movwf INDF
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_ADD_loop
return
M_MUL ; X * Y -> Z
movlw REG_Z
call M_CLR
movlw PRECISION*8+1
movwf REG_ROT_COUNTER
M_MUL_loop
decf REG_ROT_COUNTER,f
btfsc STATUS,Z
return
btfsc REG_Y,0
call M_ADD
bcf STATUS,C
movlw REG_Y
call M_ROR
bcf STATUS,C
movlw REG_X
call M_ROL
goto M_MUL_loop
return
M_CMP ; Z <=> X -> STATUS(C,Z)
; STATUS,C set if Z => X;
; STATUS,Z set if Z == X
clrf REG_COUNTER
M_CMP_loop
movf REG_COUNTER,w
sublw REG_Z+PRECISION-1 ; chargé l'adresse de dernier byte de Z dans fsr,puis chargé l'avant dernier byte de Z dans fsr en deuxiemme boucle .......ext
movwf FSR
movf INDF,w
movwf REG_T1 ; z4>>T1 transfré le contenu de dernier byte de Z dans un registre temporaire T1 tous ça pour utulisé fsr pour d'autre aplication (x>fsr)
movf REG_COUNTER,w
sublw REG_X+PRECISION-1 ; chargé l'adresse de dernier byte de X dans fsr,puis chargé l'avant dernier byte de z dans fsr en deuxiemme boucle .......ext
movwf FSR
movwf FSR;
movf INDF,w ;z4-x4, puis z3-x3 dans la deuxieme boucle ; puis......
subwf REG_T1,f
btfss STATUS,Z
return ; si z4<x4 returne en programme principale pour
incf REG_COUNTER,f ; Z = X
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_CMP_loop
return
M_SUB ; Z - X -> Z
clrf REG_COUNTER
bsf REG_STATUS,C
M_SUB_loop
bsf REG_T2,C
movlw REG_Z
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
movwf REG_T1
movlw REG_X
addwf REG_COUNTER,w
movwf FSR
movf INDF,w
subwf REG_T1,f
btfss STATUS,C
bcf REG_T2,C
btfsc REG_STATUS,C
goto M_SUB_no_carry
movlw 0x01
subwf REG_T1,f
btfss STATUS,C
bcf REG_T2,C
M_SUB_no_carry
movlw REG_Z
addwf REG_COUNTER,w
movwf FSR
movf REG_T1,w
movwf INDF
bsf REG_STATUS,C
btfss REG_T2,C
bcf REG_STATUS,C
incf REG_COUNTER,f
movlw PRECISION
subwf REG_COUNTER,w
btfss STATUS,Z
goto M_SUB_loop
btfss REG_STATUS,C
bcf STATUS,C
return
M_DIV ; Z / X -> Y; remainder -> Z
movlw REG_Y
call M_CLR
movlw PRECISION*8
movwf REG_ROT_COUNTER
M_DIV_rot_loop
btfsc REG_X+PRECISION-1,7
goto M_DIV_loop
movlw REG_X
bcf STATUS,C
call M_ROL
decf REG_ROT_COUNTER,f
btfss STATUS,Z
goto M_DIV_rot_loop
bsf STATUS,Z
return
M_DIV_loop
call M_CMP
M_STOR_STATUS REG_T2
movlw REG_Y
call M_ROL
M_RETR_STATUS REG_T2
btfsc STATUS,C
call M_SUB
bcf STATUS,Z
bcf STATUS,C
movlw REG_X
call M_ROR
incf REG_ROT_COUNTER,f
movlw PRECISION*8+1
subwf REG_ROT_COUNTER,w
btfss STATUS,Z
goto M_DIV_loop
return
US50
MOVLW 0XE
MOVWF x0
LOOP2
DECFSZ x0
GOTO LOOP2
RETURN
seconde5
RETURN
;__________________________________________________________________________________________________________________________________________________________
symbole_identification
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOVLW 8
MOVWF T3
call US50
LOOPSY
call US50
CALL US50
BCF STATUS,C
RRF UART
BTFSS PORTB,URT ;URT=4
BSF UART,7
BTFSC PORTB,URT ;URT=4
BCF UART,7
DECFSZ T3
GOTO LOOPSY
RETURN
;_________________________________________________________________________________________________________________________________
syncronisation
AV1 ;
MOVLW D'255'
MOVWF N
AV2
BTFSC PORTB,URT ;URT=4 ;TEST SI gps =1 ; il ya un ampli inversseur 5v 3.3V
GOTO AV1 ;non comancé a neveau
DECFSZ N ;fais d'autre teste
GOTO AV2
;YES
AV3
BTFSS PORTB,URT ;URT=4;attendre que le front decendant vien ; il ya un ampli inversseur 5v 3.3V
GOTO AV3
RETURN
TRAKT_FRONT_decendent
encor1
BTFSC PORTB,URT ;URT=4 ; il ya un ampli inversseur 5v 3.3V
GOTO encor1
encor2
BTFSS PORTB,URT ;URT=4 ; il ya un ampli inversseur 5v 3.3V
GOTO encor2
RETURN
;________________________________________________________________________________________________________________________________________________________________________
gps_syncro
DEC_to_hex ;transfer de (heur2 ou minute2 ou seconde2 vers y0
MOVWF y0
CLRF y1
MOVLW 0X0A
MOVWF x0
CLRF x1
CLRF z0
CLRF z1
CALL M_MUL ; X * Y -> Z
MOVF z0,W
return
;________________________________________________________________________________________________________________________________________________________________________
hex_to_dec
MOVF heure,w
CALL M_DIV ; Z / X -> Y; remainder -> Z
RETURN
;_______________________________________________________________________________________________________________________________________________________
LCD_WRITE
MOVLW B'00000001'
CALL COMMANDE
CALL ms100
MOVLW B'00000010'
CALL COMMANDE
CALL ms100
MOVF heure2,w
CALL DONNE
MOVLW b'00110000'
MOVF heure1,w
CALL DONNE
MOVLW ":"
CALL DONNE
MOVF minute2,w
CALL DONNE
MOVF minute1,w
CALL DONNE
MOVLW ":"
CALL DONNE
MOVLW b'00110000'
MOVF seconde2,w
CALL DONNE
MOVF seconde1,w
CALL DONNE
RETURN
;____________________________________________________________________________________________________________________________________________________________
COMMANDE
BCF PORTA,RS ;RS=4
MOVWF B0
SWAPF B0,w
MOVWF PORTB ; sous programme qui écrit un command
CALL VALIDATION
MOVF B0,w
MOVWF PORTB
CALL VALIDATION
return
;____________________________________________________________________________________________________________________________________________________________
VALIDATION
CALL US100
BSF PORTA,EN ;EN=3
CALL US100
BCF PORTA,EN ;EN=3
CALL US100
RETURN
;__________________________________________________________________________________________________________________________________________________________
DONNE
BSF PORTA,RS ; rs=4
MOVWF B0
SWAPF B0,w
MOVWF PORTB
CALL VALIDATION ;sous programme qui ecrit une donné
MOVF B0,w
MOVWF PORTB
CALL VALIDATION
return
;_____________________________________________________________________________________________________________________________________________________________
LCD_init
CALL ms100
BCF PORTA,RS ; rs=0 ça veut dir en va entrée des commande
MOVLW b'00000010' ;\
MOVWF PORTB ; > mode 4 bit
CALL VALIDATION ;/
CALL ms100
MOVLW b'00001111';\
CALL COMMANDE ; > 0001abc a=1 afichage on / b=1 curseur en service/ c= 1curseur clignote
CALL ms100 ;/
MOVLW b'00000001' ;\
CALL COMMANDE ; > effcace l'ecran et positionne le curseur a 0(haut gauche
CALL ms100 ;/
RETURN
;_______________________________________________________________________________________________________________________________________________________
ms100
MOVLW 0X30
MOVWF x1
LOOPX1
NOP
NOP
NOP
MOVLW 0xFF
MOVF k0
LOOPX0
DECFSZ k0
GOTO LOOPX0
DECFSZ x1
GOTO LOOPX1
NOP
NOP
NOP
RETURN
;_______________________________________________________________________________________________________________________________________________
S1
MOVLW 0X17
MOVWF k1
LIP
CALL ms100
DECFSZ k1
GOTO LIP
RETURN
;_____________________________________________________________________________________________________________________________________________________
US100
MOVLW 0X70
MOVWF x0
LOOP1
DECFSZ x0
GOTO LOOP1
RETURN
;__________________________________________________________________________________________________________________________________________________
STAR
BANC1
MOVLW b'11110000' ; PORTB 0 et 1 et 2 et 3 des sortie vers lcd ==== portB 4 INPUT UART
MOVWF TRISB
MOVLW b'11110011' ;
MOVWF TRISA
BANC1
MOVLW b'00000111'
MOVWF OPTION_REG
BANC0
MOVLW b'10100000'
MOVWF INTCON
CLRF fx0
CLRF second
CLRF minute
CLRF heure
CLRF TMR0
CLRF UART
CLRF TEMP1
CLRF seconde1
CLRF minute1
CLRF heure1
CLRF seconde2
CLRF minute2
CLRF heure2
CALL LCD_init
MOVLW B'00000001'
CALL COMMANDE
CALL ms100
MOVLW B'00000010'
CALL COMMANDE
CALL ms100
MOVLW "R"
CALL DONNE
MOVLW "E"
CALL DONNE
MOVLW "C"
CALL DONNE
MOVLW "H"
CALL DONNE
MOVLW "E"
CALL DONNE
MOVLW "R"
CALL DONNE
MOVLW "C"
CALL DONNE
MOVLW "H"
CALL DONNE
MOVLW "E"
lp
;__________________________________________________________________________________________
cherche_syncro1
CALL syncronisation ; procedeure pour chercherche la syncronisation
CALL symbole_identification
BCF STATUS,Z
MOVLW B'00100100';$
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'01000111';G
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'01010000';P
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'01000111';G
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'01000111';G
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'01000001';A
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
CALL symbole_identification
BCF STATUS,Z
MOVLW b'00101100';,
SUBWF UART,w
BTFSS STATUS,Z
GOTO cherche_syncro1
CALL TRAKT_FRONT_decendent
MOVLW heure2 ; debut de zone d'adresse
MOVWF FSR
LOOPUART
CALL symbole_identification
MOVF UART,W
BCF STATUS,C
BCF STATUS,Z
BCF STATUS,DC
MOVLW B'00110000' ; test si
SUBWF UART,W
BTFSS STATUS,C
GOTO cherche_syncro1 ; echec en cas de characterre qui ne situe pas dans l'intervalle 0 a 9 c'est a dire en cas uart<00110000
MOVLW B'00111010'
BCF STATUS,C
BCF STATUS,Z
BCF STATUS,DC
SUBWF UART,W
BTFSC STATUS,Z
GOTO cherche_syncro1
BTFSC STATUS,C
GOTO cherche_syncro1
MOVF UART,w
MOVWF INDF
CALL TRAKT_FRONT_decendent
INCF FSR
BCF STATUS,C
MOVLW seconde1+1 ; fin de zone d'adresse
SUBWF FSR,w
BTFSS STATUS,C
GOTO LOOPUART
;___________________
CALL LCD_WRITE
nop
goto lp
END
- I created things that combine knowledge in mechanics, electronics, and programming. For example, the following car, which I built from simple tools, was an original idea and not copied from anyone. Although I don't prioritize aesthetics, it remains unique
-I invented a unique method in the world for manufacturing printed circuit boards (PCBs).
https://www.eevblog.com/forum/projects/is-this-a-new-method/msg5786653/#msg5786653-I have several ideas for manufacturing devices that could generate significant financial returns.
-I also have other skills, such as construction and plumbing, as I built the house I currently live in.
My WeaknessesLack of good command of English.
I don't know how to drive a car because I don't own one.
I have other strengths and weaknesses that I can mention privately