TM1638 PIC16F877 CALISMASI

Başlatan Dtmf, 24 Nisan 2020, 15:52:57

Dtmf

s.a arkadaslar TM1638 ıle yaptıgım basıt bır calısmayı paylasmak ıstedım tek adres yontemını kullanarak 8 dıgıtıde   calıstırdım 1881-1938 yazdırdım.ve portd.0 portd.1 den gırıs yaptıgım ıkı buton ıle ekran parlaklıgını max ve mın degerlerı ıle oynama ımkanısagladım :) dahada gelıstırecek arkadaslara kolay gelsın.
Device=16F877A
XTAL=20  
ALL_DIGITAL TRUE
TRISA=0:PORTA=0
TRISB=0:PORTB=0
TRISC=0:PORTC=0
PORTD=3:PORTD=0
TRISE=0:PORTE=0
Declare LCD_TYPE alpha  
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1 
Dim I_max As $8F     ; %10001111     ( Işık Full )
Dim I_off As $87     ; %10000111     ( Işık Off  )

Dim X As $88    ; %10001000     ( Işık  1/16 )
Dim isik_2 As $89    ; %10001001     ( Işık  2/16 )
Dim isik_3 As $8A    ; %10001010     ( Işık  4/16 )
Dim isik_4 As $8B   ;  %10001011     ( Işık 10/16 )
Dim isik_5 As $8C   ;  %10001100     ( Işık 11/16 )
Dim isik_6 As $8D   ;  %10001101     ( Işık 12/16 )
Dim isik_7 As $8E   ;  %10001110     ( Işık 13/16 )
Symbol SDA=PORTC.7
Symbol SCL=PORTC.6
Symbol STB=PORTC.0

Dim A As Byte
Dim ISK As Byte
Dim C As Byte
Dim AL As Byte
Dim HK As Byte
Dim SIL As Byte
HK=$3F
DelayMS 500
Print At 1,1,"    TM1638   "
;============;TUM EKRANITEMIZLEME=============
For SIL=0 To 14         
  STB=0
  SHOut SDA,SCL,0,[$40,$C0]
  STB=1 
Next
;===============ILK ISIK AYARI========
STB=0
SHOut SDA,SCL,0,[$89]
STB=1
DelayMS 500

;==============  START ==================
BASLA:
Print At 1,1,"    TM1638   "
If PORTD.0=1 Then GoSub ISIK1
If PORTD.1=1 Then GoSub ISIK2

STB=0
SHOut SDA,SCL,0,[$44] ;$44  TEK ADRES MODU ,$40 ARDISIK OTOMATIK ARTAN ADRES MODU
STB=1
;==========================1881===============
  STB=0
  SHOut SDA,SCL,0,[$C0,$06] ;SEGMENT ADRESLERI IKISE IKISER ILERLER UNUTME 1.SEG=C0 2.SEG.C2 3.SEG=C4 4.SEG=C6 ILERLER UNUTMA
  STB=1 
   STB=0
  SHOut SDA,SCL,0,[$C2,$7F]
  STB=1 
   STB=0
  SHOut SDA,SCL,0,[$C4,$7F]
  STB=1 
   STB=0
 SHOut SDA,SCL,0,[$C6,$06]
  STB=1 
;;;============================1938======= 
  STB=0
  SHOut SDA,SCL,0,[$C8,$06]
  STB=1 
   STB=0
 SHOut SDA,SCL,0,[$CA,$6F]
  STB=1 
  STB=0
  SHOut SDA,SCL,0,[$CC,$4F]
  STB=1 
   STB=0
 SHOut SDA,SCL,0,[$CE,$7F]
  STB=1
  
DelayMS 100 
GoTo BASLA
;======================END==============================
;============ISIK AYAR1===============
ISIK1:
STB=0
SHOut SDA,SCL,0,[$8F]
STB=1
Return
;===========ISIK AYAR2==============
ISIK2:
STB=0
SHOut SDA,SCL,0,[$89]
STB=1
Return

Dtmf

#1
Bu arada Modul uzerindeki ledler kontrol edilmek istenirse
 1.led:SHOut SDA,SCL,0,[$C1,01]
SHOut SDA,SCL,0,[$C3,01]
SHOut SDA,SCL,0,[$C5,01]
SHOut SDA,SCL,0,[$C7,01]
SHOut SDA,SCL,0,[$C9,01]
SHOut SDA,SCL,0,[$Cb,01]
SHOut SDA,SCL,0,[$Cd,01]
8:led SHOut SDA,SCL,0,[$Cf,01]
 
$01 led aktif $00 led pasif

dnaci

Elinize sağlık @Dtmf  2 pinle 8 dijit display kullanmak için tm1638 gayet mantıklı.


Dtmf


aRci

Merhaba
Paylaşım için teşekkürler.

Powered by EzPortal