Toplam 2 adet sonuctan sayfa basi 1 ile 2 arasi kadar sonuc gösteriliyor
  1. #1
    ВЧ передатчика
    Üyelik tarihi
    Nisan.2010
    Nereden
    bartın
    Mesajlar
    133

    Lightbulb 16f84 ün ASM de hex dosyasını oluşturamadım

    aşagıdaki asm kodlarını birtürlü hex dosyasını oluşturamadım..bana yardımcı olurmusunuz lütfen bu konuda bunu kısa zamanda yapmam lazım yardımlarınızı bekliyorum..


    libre -| RA2 \/ RA1 |- LCD 04 RS
    ' controle mesure -| RA3 RA0 |- LCD 06 E
    ' entree mesure -| RA4 OSC1 |- 4 Mhz
    ' + 5 Volts -| MCLR OSC2 |- 4 MHz
    ' MASSE -| GND VCC |- + 5 Volts
    ' libre -| RB0 RB7 |- LCD 14 DATA
    ' PLUS BOUTON -| RB1 RB6 |- LCD 13 DATA
    ' MOINS BOUTON -| RB2 RB5 |- LCD 12 DATA
    ' MENU BOUTON -| RB3 RB4 |- LCD 11 DATA
    ' ------------------
    '
    '
    ' LCD 01 MASSE
    ' LCD 02 +5 volts
    ' LCD 03 point milieu d'un pot de 10k les 2 autres points sont masse et 5v
    ' LCD 05 RW à la masse
    ' LCD 07 à 10 non connectés
    ' les lignes des boutons sont au plus 5 volts par une resistance de 10K et actives par mise a la masse
    ' RA3 ET RA4 sont reliées entre elles et forment l'entrée du frequencemetre par une resistance de 470 Ohms serie
    '*******************************************************************
    ' L'amplificateur est constitué d'un 2N2369 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 resistance
    ' d'entrée du fréquencemètre (470 Ohms -> RA4).

    '******************************** LCD ***********************************

    DEFINE LCD_DREG PORTB 'datas sur port B
    DEFINE LCD_DBIT 4

    DEFINE LCD_RSREG PORTA 'Register Select sur RA1
    DEFINE LCD_RSBIT 1

    DEFINE LCD_EREG PORTA 'Enable sur RA0
    DEFINE LCD_EBIT 0

    DEFINE LCD_BITS 4 'Mode 4 bits
    DEFINE LCD_LINES 2 'LCD 2 lignes de 16 caractères

    '*********************************** VARIABLES *********************

    FREQ0 VAR WORD
    FREQ VAR WORD
    FRE VAR WORD
    FREQH VAR WORD
    FREQL VAR WORD
    FHI VAR BYTE
    FLO VAR BYTE
    FLAG VAR BYTE
    COUNT1 VAR BYTE
    TRISABUF VAR BYTE
    BMENU VAR PORTB.3
    PLUS VAR PORTB.1
    MOINS VAR PORTB.2
    MENU VAR BYTE
    TEMPS VAR BYTE
    P VAR WORD 'valeur du prédiviseur
    P2 VAR BYTE
    B1 VAR BYTE
    IND VAR BYTE
    B3 VAR BYTE
    B4 VAR BYTE
    FR VAR BYTE
    '*********************************** INITIALISATION ASM ***************
    Asm
    movlw 0x10 ;PORTA 4 en entree
    movwf 0x5
    MOVLW 0x37
    option ;charge 00100111 dans le registre option
    MOVLW 0x10 ;init freq avec RA4 en entrée
    MOVWF _trisabuf
    EndAsm
    '********************************* INITIALISATION BASIC **************
    MENU =2
    TEMPS=5

    '****************** LECTURE DE LA VALEUR DU PREDIVISEUR ***********
    READ 1, FLAG
    IF FLAG = 55 THEN
    READ 2,P.BYTE0
    READ 3,P.BYTE1

    ELSE
    P= 256 'valeur par défaut
    ENDIF

    PAUSE 100
    LCDOUT $FE,1," FREQUENCEMETRE"
    LCDOUT $FE,$C0," F6CSX - V 4.7"
    PAUSE 500

    '************************************************************************
    MAIN:

    BUTTON BMENU,0,255,0,B4,1,MEN
    GOTO TESTE

    MEN: MENU=MENU+1

    TESTE: IF MENU = 2 THEN NORMAL
    IF MENU = 3 THEN PREDIV
    IF MENU = 4 THEN BASE_TEMPS
    IF MENU > 4 THEN MENU = 2
    PAUSE 300
    GOTO MAIN

    '************************** CHOIX DU PREDIVISEUR *********************
    PREDIV:

    LCDOUT $FE,1,"* PREDIVISEUR *"
    LCDOUT $FE,$C0," P= ",#P
    LOOP1: BUTTON PLUS,0,10,5,B1,1,PICK1 'Va à pick1 si bouton PLUS appuyé
    BUTTON MOINS,0,10,5,B3,1,PICK2
    BUTTON BMENU,0,255,0,B4,1,MEN
    PAUSE 100
    GOTO LOOP1

    PICK1: IND = IND + 1
    IF IND< 9 THEN CHOIX
    IND= 0
    GOTO CHOIX

    PICK2: IF IND = 0 THEN SAUTE
    IND = IND - 1
    GOTO CHOIX
    SAUTE: IND = 8


    CHOIX: LOOKUP2 IND,[10,16,32,40,64,80,128,256,512],P
    LCDOUT $FE,1,"* PREDIVISEUR *"
    LCDOUT $FE,$C0," P= ",#P

    WRITE 1 , 55
    WRITE 2 , P.BYTE0 ' SAUVE LA VALEUR DE P
    WRITE 3 , P.BYTE1

    GOTO MAIN


    '*********************** MODIF BASE DE TEMPS ************************
    BASE_TEMPS:

    IF PLUS=0 THEN
    TEMPS=TEMPS+1
    ENDIF

    IF MOINS=0 THEN
    TEMPS=TEMPS-1
    ENDIF
    LCDOUT $FE,1,"TEMPS:",#TEMPS," "
    PAUSE 300
    GOTO MAIN

    '************************* MESURE ET AFFICHAGE***********************
    NORMAL:

    GOSUB MESURE

    '********************* FREQUENCE LUE SUR L' ENTREE DU PIC ************

    FREQ= (FHI*256)+FLO 'Mise sur 16 bits du résultat de mesure

    FREQH=FREQ / 5
    FREQL=FREQ //5
    FR=FREQL*2
    FRE=FREQH
    LCDOUT $FE,1,"FREQ ",#FRE,".",#FR," KHz "

    '****************** FREQUENCE A L'ENTREE DU PREDIVISEUR **************
    P2=P/2
    FREQH=FREQ / 250
    FREQL=FREQ //250
    FREQH=FREQH*P2 'Valeur du prédiviseur / 2
    FREQL=FREQL*P2 'Valeur du prédiviseur / 2
    FREQL=FREQL/250
    FREQ=FREQH+FREQL
    FREQH= FREQ/10
    FREQL= FREQ-(FREQH*10) 'un seul chiffre après la virgule

    ' *** AFFICHAGE FREQUENCE SUR LA 2ÈME LIGNE ***

    LCDOUT $FE,$C0,"x",#P," ",#FREQH,".",#FREQL," MHz"
    PAUSE 500
    GOTO MAIN

    '********************* ROUTINE DE MESURE ***************************
    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 8 bits 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 incrementé le timer
    btfsc STATUS,2 ;comparaison
    GoTo Toggle ;si le timer a pas incrementé on recommence
    comf _COUNT1,F ;complement au compteur
    incf _COUNT1,W ;incrementation du compteur
    movwf _FLO ;travail -> FLO 8 bits de poids faible comptage
    GoTo fin
    ;;;;;;;;;;;;;;;;;;;;;;;;;;; BASE DE TEMPS
    delay movlw 197 ; 1ms selon AN592
    movwf _COUNT1 ;
    nop ;
    GoTo $+1 ;
    GoTo $+1 ;
    dly GoTo $+1 ;
    decfsz _COUNT1 ;
    GoTo dly ;
    Return ;
    fin
    EndAsm
    RETURN
    Eklenen Dosyalar Eklenen Dosyalar

  2. #2
    özel üye
    Üyelik tarihi
    Mayıs.2009
    Mesajlar
    1.412

    Standart Cevap: 16f84 ün ASM de hex dosyasını oluşturamadım

    Merhaba
    Bu dosya işinize yarar mı?
    bartnl.rar

 

 

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Benzer Konular

  1. Asm. Hexe Çeviren Program
    Konu Sahibi ALBAYRAK55 Forum PIC PROGRAMLAYICILAR
    Cevap: 11
    Son Mesaj : 15.Ağustos.2010, 13:23
  2. Elektronik Kitapları, PLC kitaplar, PIC programlama ve uygulamalar
    Konu Sahibi elektrofizik Forum E-KİTAPLAR
    Cevap: 3
    Son Mesaj : 12.Temmuz.2010, 01:07
  3. Orjinal pbp dosyasını derleyince farklı hex oluyor???
    Konu Sahibi akselri Forum PIC YARDIM SORU VE İSTEKLER
    Cevap: 4
    Son Mesaj : 26.Mayıs.2010, 17:24
  4. DS1820 ve Pic16f84 ile lcd'li termometre hex yardım
    Konu Sahibi TUREL Forum PIC YARDIM SORU VE İSTEKLER
    Cevap: 1
    Son Mesaj : 06.Şubat.2009, 07:16
  5. 16f84 ile A arasındaki fark
    Konu Sahibi omikron Forum PIC YARDIM SORU VE İSTEKLER
    Cevap: 4
    Son Mesaj : 02.Kasım.2008, 09:48

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •