inkrementální snímač+cpu
Napsal: 04 lis 2007, 20:00
zdravím, udělal jsme si tento modul pro dekódování signálu z ikrementálného snímače(použil jsem fototranzistor a diodu ze staré kuličkové myši). Naprogramoval jsem si atmel 89C2051 pro čítání pulsů nahoru/dolů (podle výstupu směr) ze snímače; počet načtených pulsů zobrazuji na led připojených přes 74ls245 na port P1; signál směr na P3.0, pulsy - P3.4, chyba se +- periodicky opakuje jakmile načtu cca 254 pulsů - signál směr začne pulsovat se stejnou frekvencí jako pulsy, zkoušel jsem signál směr připojit přes tranzistor, hradlo - nepomohlo; když signál směr odpojím od cpu pak vše funguje jak má - signál směr nekmitá. V programu by být chyba neměla, z portu P3 jen čtu
Kód: Vybrat vše
org 0
jmp main
org 0bh ;obsluha přerušení časovače
mov tl0,#0ffh
jb p3.0,plus ;rozhodnutí čítání nahoru/dolů podle směru
cjne r4,#0,sem
dec r4
dec r5
reti
sem: dec r4
reti
plus: cjne r4,#0ffh,sem2
inc r4
inc r5
reti
sem2: inc r4
reti
main: mov tmod,#0110b
mov tl0,#0ffh
setb ea
setb et0
setb tr0
clr tf0
mov r4,#0
mov r5,#0
sem3: jnb p3.1,sem4
mov a,r5
cpl a
mov p1,a
jmp sem3
sem4: mov a,r4
cpl a
mov p1,a
jmp sem3
end