Teknomerkez
TR EN ES
Konular

16F628A LCD ve ASM ile buton kontrollü gösterge devresi

Yazar: Mehmet Yılmaz
Tarih: 03.04.2017
Türkçe

Devre programlandığı şekliyle, açılışta "m" harfini gösteriyor. Azalt butonuna basınca harfleri geriye doğru, artır butonuna basınca ileri doğru sayıyor. Merkez butonuna basınva "M" harfini gösteriyor.

Devre DC 5 volt ile beslenmelidir.

Devre şeması:

Devreye ait malzeme listesi:

U1: PIC16F628A
Y1: 4Mhz kristal
DS1: 2x16 Lcd gösterge
C1: 100nF
C2-C3: 22pF
RV1: 10k ayarlı direnç
R1-R4: 10k
R5-R6: 470R
D1-D2: Kırmızı led

Devrenin çalışma resmi:

Devrenin çalışma vidyosu:

Devreye ait ASM kaynak kodları:

; ********* ************* ********************** *********
; 16F628A LCD ve ASM ile buton kontrollü gösterge devresi
; MPASM derleyicisi kullanınız
; Tarih: 03.04.2017 19:19:35
; http://teknomerkez.com/index.php?git=1662
; ********* ************* ********************** *********
        TITLE "Lcd buton"
        LIST p=16F628A
        #INCLUDE <p16f628a.inc>
        __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF

        CBLOCK  0x20    ;Değişkenler Tanımlanıyor
        TRLCD01
        TRLCD02
        TRLCD100MA
        TRLCD100MB
        TRLCD100MC
        TRLCD200UA
        TRLCD2MA
        TRLCD2MB
        TRLCD2MC
        TR500MA
        TR500MB
        TR500MC
        TR500MSEKA
        TR500MSEKB
        TR500MSEKC
        TR2SNA
        TR2SNB
        TR2SNC
        TR2SND
        YOL
        ENDC

        ORG     0x00
        GOTO    BASLA

BASLA           ;Başlangıç noktası
        CLRF    PORTA
        CLRF    PORTB
        BANKSEL TRISA
        MOVLW   b'11111100'
        MOVWF   TRISA
        MOVLW   b'00000000'
        MOVWF   TRISB
        BANKSEL CMCON
        MOVLW   0x07
        MOVWF   CMCON
        MOVLW   0x67
        MOVWF   OPTION_REG
        BCF     3,5
        CALL    TRLCDTANIMLA
        GOTO    GIRIS

GIRIS           ;Başlangıçta işlemler burada
        MOVLW   'm'
        MOVWF   YOL
        CALL    TRLCDTEMIZLE
        ;--- Lcd 1,1 "Teknomerkez" yaz ---
        MOVLW   d'128'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   'T'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   'o'
        CALL    TRLCDYAZ
        MOVLW   'm'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'z'
        CALL    TRLCDYAZ
        ;--- Lcd 2,1 "Teknik Bilgiler" yaz ---
        MOVLW   d'192'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   'T'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   'B'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'l'
        CALL    TRLCDYAZ
        MOVLW   'g'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'l'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        BSF     PORTB,0
        BSF     PORTB,3
        CALL    TR2SN   
        CALL    TRLCDTEMIZLE
        ;--- Lcd 1,1 "Bir buton sec" yaz ---
        MOVLW   d'128'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   'B'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   'b'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'o'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   's'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'c'
        CALL    TRLCDYAZ
        ;--- Lcd 2,1 "<Azal> <M> <Art>" yaz ---
        MOVLW   d'192'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   '<'
        CALL    TRLCDYAZ
        MOVLW   'A'
        CALL    TRLCDYAZ
        MOVLW   'z'
        CALL    TRLCDYAZ
        MOVLW   'a'
        CALL    TRLCDYAZ
        MOVLW   'l'
        CALL    TRLCDYAZ
        MOVLW   '>'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   '<'
        CALL    TRLCDYAZ
        MOVLW   'M'
        CALL    TRLCDYAZ
        MOVLW   '>'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   '<'
        CALL    TRLCDYAZ
        MOVLW   'A'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   '>'
        CALL    TRLCDYAZ
        BSF     PORTB,0
        BSF     PORTB,3

GOREVLER        ;Yapılacak işlemler burada
        BTFSS   PORTA,3
        GOTO    TR_ISE0
        MOVLW   'M'
        MOVWF   YOL
        CALL    TRLCDTEMIZLE
        ;--- Lcd 1,1 "Merkez Butonu" yaz ---
        MOVLW   d'128'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   'M'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   'z'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   'B'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'o'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        ;--- Lcd 2,1 YOL yaz ---
        MOVLW   d'192'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVF    YOL,W
        CALL    TRLCDYAZ
        BCF     PORTB,0
        BCF     PORTB,3
TR_ISE0
        BTFSS   PORTA,4
        GOTO    TR_ISE1
        INCF    YOL,F
        CALL    TRLCDTEMIZLE
        ;--- Lcd 1,1 "Artma Butonu" yaz ---
        MOVLW   d'128'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   'A'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'm'
        CALL    TRLCDYAZ
        MOVLW   'a'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   'B'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'o'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        ;--- Lcd 2,1 YOL yaz ---
        MOVLW   d'192'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVF    YOL,W
        CALL    TRLCDYAZ
        ;--- Lcd 2,4 "(arttir)" yaz ---
        MOVLW   d'195'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   '('
        CALL    TRLCDYAZ
        MOVLW   'a'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'r'
        CALL    TRLCDYAZ
        MOVLW   ')'
        CALL    TRLCDYAZ
        BCF     PORTB,0
        BSF     PORTB,3
        CALL    TR500MS
TR_ISE1
        BTFSS   PORTA,2
        GOTO    TR_ISE2
        DECF    YOL,F
        CALL    TRLCDTEMIZLE
        ;--- Lcd 1,1 git ---
        MOVLW   d'128'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        ;Lcd "Eksilme Butonu" yaz
        MOVLW   'E'
        CALL    TRLCDYAZ
        MOVLW   'k'
        CALL    TRLCDYAZ
        MOVLW   's'
        CALL    TRLCDYAZ
        MOVLW   'i'
        CALL    TRLCDYAZ
        MOVLW   'l'
        CALL    TRLCDYAZ
        MOVLW   'm'
        CALL    TRLCDYAZ
        MOVLW   'e'
        CALL    TRLCDYAZ
        MOVLW   ' '
        CALL    TRLCDYAZ
        MOVLW   'B'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   'o'
        CALL    TRLCDYAZ
        MOVLW   'n'
        CALL    TRLCDYAZ
        MOVLW   'u'
        CALL    TRLCDYAZ
        ;--- Lcd 2,1 YOL yaz ---
        MOVLW   d'192'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVF    YOL,W
        CALL    TRLCDYAZ
        ;--- Lcd 2,4 "(azalt)" yaz ---
        MOVLW   d'195'
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   '('
        CALL    TRLCDYAZ
        MOVLW   'a'
        CALL    TRLCDYAZ
        MOVLW   'z'
        CALL    TRLCDYAZ
        MOVLW   'a'
        CALL    TRLCDYAZ
        MOVLW   'l'
        CALL    TRLCDYAZ
        MOVLW   't'
        CALL    TRLCDYAZ
        MOVLW   ')'
        CALL    TRLCDYAZ
        BSF     PORTB,0
        BCF     PORTB,3
        CALL    TR500MS
TR_ISE2
        GOTO    GOREVLER


TRLCDTANIMLA
        CALL    TRLCD100MS
        BCF     PORTA,0  
        BCF     PORTA,1   

        MOVLW   b'00110000'  
        MOVWF   PORTB       
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        CALL    TRLCD100MS
        MOVLW   b'00110000'    
        MOVWF   PORTB       
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        CALL    TRLCD200US
        MOVLW   b'00110000'   
        MOVWF   PORTB       
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        CALL    TRLCD200US
        MOVLW   b'00100000'
        MOVWF   PORTB        
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        CALL    TRLCD200US
        MOVLW   b'00001100'   
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   b'00000110'   
        CALL    TRLCDYAP
        CALL    TRLCD200US
        MOVLW   b'00000001'  
        CALL    TRLCDYAP
        CALL    TRLCD2MS
        RETURN

TRLCDYAP
        BCF     PORTA,0
        GOTO    TRLCDYAZ1
TRLCDYAZ
        BSF     PORTA,0
TRLCDYAZ1
        MOVWF   TRLCD02
        ANDLW   b'11110000'
        MOVWF   PORTB     
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        MOVLW   b'10101010'  
        MOVWF   TRLCD01
TRLCDYAZ2
        DECFSZ  TRLCD01,1
        GOTO    TRLCDYAZ2
        MOVF    TRLCD02,0
        ANDLW   b'11110000'
        SWAPF   TRLCD02,0
        MOVWF   PORTB    
        BSF     PORTA,1
        NOP
        BCF     PORTA,1
        MOVLW   b'10101010'   
        MOVWF   TRLCD01
TRLCDYAZ3
        DECFSZ  TRLCD01,1
        GOTO    TRLCDYAZ3
        RETURN

TRLCDTEMIZLE
        MOVLW   b'00000001' 
        CALL    TRLCDYAP
        CALL    TRLCD2MS
        CALL    TRLCD2MS
        RETURN

TRLCD100MS
        MOVLW   d'100'
        MOVWF   TRLCD100MA
TRLCD100MS1
        MOVLW   d'27'
        MOVWF   TRLCD100MB
TRLCD100MS2
        MOVLW   d'11'
        MOVWF   TRLCD100MC
TRLCD100MS3
        DECFSZ  TRLCD100MC,F
        GOTO    TRLCD100MS3
        DECFSZ  TRLCD100MB,F
        GOTO    TRLCD100MS2
        DECFSZ  TRLCD100MA,F
        GOTO    TRLCD100MS1
        RETURN

TRLCD200US
        MOVLW   d'64'
        MOVWF   TRLCD200UA
TRLCD200US1
        DECFSZ  TRLCD200UA,F
        GOTO    TRLCD200US1
        NOP
        RETURN

TRLCD2MS
        MOVLW   d'2'
        MOVWF   TRLCD2MA
TRLCD2MS1
        MOVLW   d'27'
        MOVWF   TRLCD2MB
TRLCD2MS2
        MOVLW   d'11'
        MOVWF   TRLCD2MC
TRLCD2MS3
        DECFSZ  TRLCD2MC,F
        GOTO    TRLCD2MS3
        DECFSZ  TRLCD2MB,F
        GOTO    TRLCD2MS2
        DECFSZ  TRLCD2MA,F
        GOTO    TRLCD2MS1
        RETURN
TR500MS
        MOVLW   d'246'
        MOVWF   TR500MA
TR500MS1
        MOVLW   d'27'
        MOVWF   TR500MB
TR500MS2
        MOVLW   d'11'
        MOVWF   TR500MC
TR500MS3
        DECFSZ  TR500MC, F
        GOTO    TR500MS3
        DECFSZ  TR500MB, F
        GOTO    TR500MS2
        DECFSZ  TR500MA, F
        GOTO    TR500MS1
TR500MSEK
        MOVLW   d'255'
        MOVWF   TR500MSEKA
TR500MSEK1
        MOVLW   d'27'
        MOVWF   TR500MSEKB
TR500MSEK2
        MOVLW   d'11'
        MOVWF   TR500MSEKC
TR500MSEK3
        DECFSZ  TR500MSEKC, F
        GOTO    TR500MSEK3
        DECFSZ  TR500MSEKB, F
        GOTO    TR500MSEK2
        DECFSZ  TR500MSEKA, F
        GOTO    TR500MSEK1
        RETURN
        
TR2SN
        MOVLW   d'2'
        MOVWF   TR2SNA
TR2SN1
        MOVLW   d'8'
        MOVWF   TR2SNB
TR2SN2
        MOVLW   d'209'
        MOVWF   TR2SNC
TR2SN3
        MOVLW   d'200'
        MOVWF   TR2SND
TR2SN4
        DECFSZ  TR2SND, F
        GOTO    TR2SN4
        DECFSZ  TR2SNC, F
        GOTO    TR2SN3
        DECFSZ  TR2SNB, F
        GOTO    TR2SN2
        DECFSZ  TR2SNA, F
        GOTO    TR2SN1
        RETURN
        
        END     ; Program sonu

Devreya ait HEX dosya içeriği

:020000040000FA
:1000000001288501860183160313FC30850000302A
:1000100086008312031307309F006730810083122C
:10002000352112286D30B300732180305A2185218B
:1000300054305C2165305C216B305C216E305C217A
:100040006F305C216D305C2165305C2172305C2149
:100050006B305C2165305C217A305C21C0305A21E4
:10006000852154305C2165305C216B305C216E3021
:100070005C2169305C216B305C2120305C21423096
:100080005C2169305C216C305C2167305C21693017
:100090005C216C305C2165305C2172305C2106147F
:1000A0008615B121732180305A21852142305C218F
:1000B00069305C2172305C2120305C2162305C212F
:1000C00075305C2174305C216F305C216E305C21B6
:1000D00020305C2173305C2165305C2163305C2111
:1000E000C0305A2185213C305C2141305C217A307E
:1000F0005C2161305C216C305C213E305C21203021
:100100005C213C305C214D305C213E305C21203054
:100110005C213C305C2141305C2172305C217430C8
:100120005C213E305C2106148615851DBE284D30AD
:10013000B300732180305A2185214D305C21653018
:100140005C2172305C216B305C2165305C217A303F
:100150005C2120305C2142305C2175305C217430A0
:100160005C216F305C216E305C2175305C21C030C9
:100170005A21852133085C2106108611051EF828B6
:10018000B30A732180305A21852141305C217230BD
:100190005C2174305C216D305C2161305C21203049
:1001A0005C2142305C2175305C2174305C216F3001
:1001B0005C216E305C2175305C21C0305A21852174
:1001C00033085C21C3305A21852128305C216130FD
:1001D0005C2172305C2174305C2174305C216930A8
:1001E0005C2172305C2129305C2106108615982133
:1001F000051D3429B303732180305A2185214530F0
:100200005C216B305C2173305C2169305C216C3087
:100210005C216D305C2165305C2120305C214230F6
:100220005C2175305C2174305C216F305C216E3054
:100230005C2175305C21C0305A21852133085C2156
:10024000C3305A21852128305C2161305C217A300D
:100250005C2161305C216C305C2174305C21293080
:100260005C210614861198219528782105108510A7
:1002700030308600851400008510782130308600EB
:10028000851400008510852130308600851400001B
:100290008510852120308600851400008510852179
:1002A0000C305A21852106305A21852101305A21EE
:1002B0008B21080005105D290514A100F039860086
:1002C000851400008510AA30A000A00B6529210824
:1002D000F039210E8600851400008510AA30A00098
:1002E000A00B7029080001305A218B218B210800B6
:1002F0006430A2001B30A3000B30A400A40B7E29A5
:10030000A30B7C29A20B7A2908004030A500A50B7D
:100310008729000008000230A6001B30A7000B3020
:10032000A800A80B9129A70B8F29A60B8D290800DF
:10033000F630A9001B30AA000B30AB00AB0B9E2996
:10034000AA0B9C29A90B9A29FF30AC001B30AD00E9
:100350000B30AE00AE0BAA29AD0BA829AC0BA62919
:1003600008000230AF000830B000D130B100C83012
:10037000B200B20BB929B10BB729B00BB529AF0B3D
:04038000B329080095
:04038400003400340D
:02400E00293F48
:00000001FF


Yorumlarınız

Hiç yorum yapılmamış.

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>