|
El circuito siguiente utiliza el microcontrolador 16F84 de
Microchip y puede sustituir al PC como interfaz de la controladora. Realiza las mismas
funciones de control del motor: - lee el estado de los interruptores de fin de carrera
S1 y S2 y el de los pulsadores P1 y P2 |
SEUDOCÓDIGO PARA CONTROLADORA
|
|
Este es el listado en PicBasic del programa: device 16f84 dim n,t,sa,sb,pa,pb symbol pulse=b.0 define portb=00000000 define porta=00010111 start: outb(15) sa=INPORTA & 16 sb=INPORTA & 1 Pa=INPORTA & 4 delayms(1) Pb=INPORTA & 2 if pa=4 then gosub Puno if pb=2 then gosub Pdos goto start Puno: outb(5) delayms(1) sb=INPORTA & 1 if sb=0 then goto Puno return Pdos: outb(10) delayms(1) sa=INPORTA & 16 if sa=0 then goto Pdos: return end |
PROGRAMA EN ENSAMBLADOR MPASM: ;----------------------------------------------------- ; (C) Leading Edge Technology Ltd ; --- Pic Basic Compiler V4.6 --- ; Website: http://LET.cambs.net ; EMail: johnmorr@mail.keyworld.net ;----------------------------------------------------- W equ 00 F equ 01 LIST p=16F84 , r=DEC ; ----- DIM N,T,SA,SB,PA,PB ----- NTMP equ 20 TTMP equ 21 SA equ 22 SB equ 23 PA equ 24 PB equ 25 ; ----- DEFINE PORTB=00000000 ----- movlw 0 tris 06 ; ----- DEFINE PORTA=00010111 ----- movlw 23 tris 05 START ; ----- OUTB(15) ----- movlw 15 movwf 6 ; ----- SA=INPORTA & 16 ----- movf 05,W andlw 16 movwf SA ; ----- SB=INPORTA & 1 ----- movf 05,W andlw 1 movwf SB ; ----- PA=INPORTA & 4 ----- movf 05,W andlw 4 movwf PA ; ----- PB=INPORTA & 2 ----- movf 05,W andlw 2 movwf PB ; ----- IF PA=4 THEN GOSUB PUNO ----- movlw 4 xorwf PA,W btfss 03,02 goto pb_lab2 call PUNO pb_lab2 ; ----- IF PB=2 THEN GOSUB PDOS ----- movlw 2 xorwf PB,W btfss 03,02 goto pb_lab3 call PDOS pb_lab3 goto START PUNO ; ----- OUTB(5) ----- movlw 5 movwf 6 ; ----- SB=INPORTA & 1 ----- movf 05,W andlw 1 movwf SB ; ----- IF SB=0 THEN GOTO PUNO ----- movlw 0 xorwf SB,W btfss 03,02 goto pb_lab4 goto PUNO pb_lab4 return PDOS ; ----- OUTB(10) ----- movlw 10 movwf 6 ; ----- SA=INPORTA & 16 ----- movf 05,W andlw 16 movwf SA ; ----- IF SA=0 THEN GOTO PDOS: ----- movlw 0 xorwf SA,W btfss 03,02 goto pb_lab5 goto PDOS pb_lab5 return END |
Volcado hex del programa de la controladora para motor cc: :1000000000306600173065000F3086000508103993 :10001000960005080139970005080439980005087D :100020000239990004301806031D17281D200230DC :100030001906031D1C282820042805308600050801 :100040000139970000301706031D27281D280800D6 :100050000A30860005081039960000301606031D88 :06006000322828280800E8 :00000001FF |