TUNER SHARP Cet article concerne l'utilisation de modules additionnels au
démodulateur |
|
|
|
| A signaler que sur la platine Sharp il y a un régulateur 7805 (a droite sur le circuit ci-dessous). |
|
| Voici les sources du programme ... (pas comme certains... non je ne donne
pas de noms !) par contre attention une partie est en basic l'autre en assembleur.... Pour ceux que la programmation rebute envoyez moi un pic 16F84-04/P je me ferais un plaisir de vous le renvoyer programmé. Mais n'oubliez pas l'enveloppe retour affranchie a votre adresse. Téléchargez le "FMETRE10.HEX" |
![]() |
| '
************************************************************************** ' Version 1.0 ' Fréquence mètre pour platine avec tuner style sharp BSFD7501G. ' Pré-diviseur 128 ol tuner 479.5 MHz ' Réglage de l' OL 10 gigas ou autre, réglable et mémorisée ' Affichage fréquence directe entrée du pic ' Affichage fréquence BIS (bande intermediaire salelite) ' Affichage fréquence BIS + OL tete ' ________________ ' -| RA2 \/ RA1 |- LCD 04 RS ' control mesure -| RA3 RA0 |- LCD 06 E ' entrée mesure -| RA4 OSC1 |- 4 Mhz ' + 5 Volts -| MCLR OSC2 |- 4 MHz ' MASSE -| GND VCC |- + 5 Volts ' -| RB0 Rb7 |- LCD 14 DATA 'bouton menu plus moins -| RB1 RB6 |- LCD 13 DATA ' -| RB2 RB5 |- LCD 12 DATA ' -| RB3 RB4 |- LCD 11 DATA ' ---------------- ' ' ' LCD 01 MASSE ' LCD 02 +5 volts ' LCD 03 point milieu d'un potar de 20k les 2 autres points sont masse et 5v ' LCD 05 RW a la masse ' LCD 07 à 10 non conecté ' commun des boutons a une capa de 100nf a la masse ' MENU 330 Ohms vers RB1 ' PLUS 100 Ohms vers RB1 ' Moins 220 Ohms vers RB1 ' RA3 ET RA4 sont reliées entre elles et forment l'entrée du fréquencemètre ' par une résistance de 470 Ohms série '******************************************************************* ' L'amplificateur est constitué d'un 2N2222 en émetteur commun (à la masse), ' résistance de 560 Ohms ' (reliée au +5volts) dans le collecteur et résistance de 39K entre collecteur et ' base. ' Entrée par la base via une capa, sortie sur le collecteur vers la résistance ' d'entrée du fréquencemètre(470 Ohms -> RA4). ' Vu le système de polarisation, le point de repos collecteur devrait se situer ' vers 0,8 Volt. ' La fréquence de fonctionnement est limitée par la fréquence de coupure de la ' charge collecteur (résistance et capacité de charge) donc vers quelques ' mégahertz. '******************************** LCD *********************************** DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTA DEFINE LCD_RSBIT 1 DEFINE LCD_EREG PORTA DEFINE LCD_EBIT 0 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 '*********************************** variables ********************* FREQ0 var word FREQ var word FREQH var word FREQL var word FHI var BYTE FLO var BYTE flag var BYTE COUNT1 var BYTE trisabuf var BYTE potar var BYTE BMENU var portb.3 PLUS var portb.1 MOINS var portb.2 MENU var byte OL var word G10 var word TEMPS var byte bou var byte '*********************************** initialisations asm *************** ASM movlw 0x10 ;porta 4 en entrée movwf 0x5 MOVLW 0x37 option ;charge 00100111 dans le registre option MOVLW 0x10 ;init freq avec RA4 en entrée MOVWF _trisabuf ENDASM '********************************* initialisations basic ************** MENU =2 temps=2 '****************** recup memoire OL read 1, flag If flag = 55 then READ 2,OL.byte0 READ 3,OL.byte1 else OL= 9000 endif LCDOUT $FE,1,"F8BYC TELEVISION" ; ou votre call hi '************************************************************************ main: '****************** lecture des boutons ********************************* POT portb.1,255,potar ' rien bou = 0 'plus if (potar > 5) and (potar < 16) then bou = 1 endif 'moins if (potar > 16) and (potar < 25) then bou = 2 endif 'menu if (potar > 25) and (potar < 50) then bou = 3 endif '************************************************************************ if bou = 3 then '*** bouton MENU *** menu=menu+1 pause 300 if menu=7 then menu=3 endif endif '************************************************************************ if menu = 3 then '*** FREQUENCE LU SUR ENTREE DU PIC *** FREQ= (FHI*256)+FLO FREQH=freq / 10 FREQL=freq //10 freqh=freqh*4 freql=freql*4 freql=freql/10 freq=freqh+freql LCDOUT $FE,1,"IN: ",#freq," KHz " endif '************************************************************************ if menu = 4 then ' *** MODIFICATION OL *** if bou=1 then ' incremente la frequence OL OL=OL+1 endif if bou=2 then ' decremente la frequence OL OL=OL-1 endif write 2 , OL.byte0 ' sauve la frequence OL write 3 , OL.byte1 write 1 , 55 LCDOUT $FE,1,"OL:",#OL," Mhz " 'affiche la frequence OL endif '*********************************************************************** if menu = 5 then '*** AFFICHAGE FREQ + OL *** G10 = OL+FREQH LCDOUT $FE,1,"10G: ",#G10,".",#freql," Mhz " endif '********************************************************************** gosub mesure FREQ= (FHI*256)+FLO 'FREQ= 33877 ' -> 17345.024 -> 12550.024 valeures de test pour le calcul FREQH=freq / 125 FREQL=freq //125 freqh=freqh*64 freql=freql*64 freql=freql/125 freq=freqh+freql FREQ=FREQ-4795 freqh= freq/10 freql= freq-(freqh*10) ' affichage LCDOUT $FE,$C0,"BIS: ",#freqh,".",#freql," Mhz " pause 100 goto main mesure: ASM ;;;;;;;;;;;;;;;;;;;;;;;;;;;; AUTORISATION DU COMPTAGE clrf TMR0 ; RAZ timer bsf _trisabuf,3 ; RA4 en entrée et RA3 en entrée autorisation comptage movf _trisabuf,W tris PORTA ;;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE DE TEMPS movf _TEMPS,W movwf _COUNT1 dxxx nop decfsz _COUNT1 goto dxxx nop nop call delay call delay call delay call delay call delay ;;;;;;;;;;;;;;;;;;;;;;;;;;; ARRET DU COMPTAGE bcf _trisabuf,3 ;RA4 en entrée et RA3 en Sortie pour bloquer le comptage movf _trisabuf,W tris PORTA ;;;;;;;;;;;;;;;;;;;;;;;;;;; RECUPERATION DES COMPTEURS calcul MOVF TMR0,W ;timer -> travail MOVWF _FHI ;travail -> FHI 8bits de poids fort comptage clrf _COUNT1 ;remise a zero compteur toggle incf _COUNT1,F ;incrementation du compteur bsf PORTA,3 ;RA3 a 1 bcf PORTA,3 ;RA3 a 0 movf TMR0,W ;lecture du timer subwf _FHI,w ;on regarde si le prediviseur a incrementer le timer btfsc STATUS,2 ;comparaison goto toggle ;si le timer a pas incrementer on recommence comf _COUNT1,F ;complement au compteur incf _COUNT1,W ;incrementation du compteur movwf _FLO ;travail -> FLO 8bits de poids faible comptage goto fin ;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE DE TEMPS delay movlw 97 ; 1 1 pour 0.5 ms 100-3 =97 movwf _COUNT1 ; 1 2 nop ; 1 3 goto $+1 ; 2 5 goto $+1 ; 2 7 goto $+1 ; 2 9 dly goto $+1 ; 2 2 cycles decfsz _COUNT1 ; 1 1 3 cycles goto dly ; 2 5 cycles fois compteur 97 x 5 = 485 + 11 =496 return ; 2 11 497 x 5 = 2485µs fin ENDASM return |
|
| Comme dab je n'ais rien inventé, j'ai plutot adapter ce qui existait pour le tuner Sharp un grand merci a alain F1CJN pour ces nombreuses infos qui m'ont bien aidé au départ. |
Bonne réalisation, 73 à tous de F8BYC |