Professional Documents
Culture Documents
Display Tarama Yolları
Display Tarama Yolları
DEFINE OSC 4
SAYAC
var
WORD Saylacak deerleri tutacak olan deikenimiz
SIRA
var
BYTE
display gsterim sras
BIRLER
var
BYTE
saymzn birler hanesi
ONLAR
VAR
BYTE saymzn onlar hanesi
YUZLER VAR
BYTE saymzn yzler hanesi
BINLER
VAR
BYTE saymzn binler hanesi
I
VAR
BYTE dng deikenimiz
SAYI
VAR
BYTE evirme deikeni
X
VAR
BYTE ara deiken
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
PAUSE 100
INTCON.7=1 tm kesmeler ak
TMR0=99
ON INTERRUPT GoTo KESME kesme
BASLA:
IF TUS=0 then
GOSUB DELAY
SAYAC=SAYAC+1
IF SAYAC>9999 then SAYAC=0
while tus=0:wend
ENDIF
IF RESET=0 then SAYAC=0
X=SAYAC DIG 0 :GOSUB AL:BIRLER=SAYI
X=SAYAC DIG 1 :GOSUB AL:ONLAR=SAYI
X=SAYAC DIG 2 :GOSUB AL:YUZLER=SAYI
X=SAYAC DIG 3 :GOSUB AL:BINLER=SAYI
GOTO BASLA
AL:
LOOKUP
X,[63,6,91,79,102,109,125,7,127,111,99,57],SAYI :RETURN
DELAY:
for I=0 to 35000
PAUSEUS 5
Next
RETURN
DISABLE
KESME:
SIRA=SIRA+1:IF SIRA>3 then SIRA=0
belirliyor
deeri registere
END
* Notes
: MULTIPLEX SAAT
*
*
:
*
****************************************************************
PORTA=0:TRISA=%11100000
PORTB=0:TRISB=%00000000
CMCON=7
OPTION_REG=%00000100 Pull up direnleri AIK (PORTB.7 iin) Blme oran
1/32. blc ayarlamas 000=1/2, 001=1/4 , 010=1/8 , 011=1/16 ,
100=1/32 , 101=1/64 , 110=1/128, 111=1/256
INTCON=%00100000
Kesmeler aktif ve TMR0 kesmesi aktif
DEFINE OSC 4
ZAMAN
VAR BYTE 60 saniye sayac
SIRA
var BYTE 61 display gsterim sras
SN
VAR BYTE 62
DAK
VAR BYTE 63
SAAT
VAR BYTE 64
SAYI
VAR BYTE evirme deikeni
X
VAR BYTE ara deiken
BIRLER VAR BYTE
ONLAR
VAR BYTE
YUZLER VAR BYTE
BINLER VAR BYTE
I
VAR word dng deikenimiz
POZ
VAR byte 75
Z
var byte
Y
VAR BIT
SYMBOL Disp0=PORTA.0 birler hanesi ortak u
SYMBOL Disp1=PORTA.1 onlar hensie ortak u
SYMBOL Disp2=PORTA.2 yzler hanesi ortak u
SYMBOL Disp3=PORTA.3
binler hanesi ortak u
SYMBOL SEC =PORTA.7
SYMBOL ARTIR=PORTA.6 Buton
SYMBOL AZALT=PORTA.5
SYMBOL LED=PORTB.7
PAUSE 100
INTCON.7=1 tm kesmeler ak
TMR0=99
ON INTERRUPT GoTo KESME kesme
DAK=15:saat=18
BASLA:
IF SEC=0 then
AYAR
GOSUB BAK
GOTO BASLA
AL:
LOOKUP X,[63,6,91,79,102,109,125,7,127,111,99,57],SAYI
DELAY: POZ=0
for I=0 to 5000
IF SEC=0 then
POZ=1
return
endif
PAUSEUS 5
Next
RETURN
AYAR:
WHILE SEC=0:WEND
:RETURN
Z=1
AYARBIR:
gosub delay:IF POZ=1 THEN AYARIKI
if sec=0 then AYARIKI
if z=1 then
if artir=0 then
dak=dak+1
if dak=60 then dak=0
endif
if azalt=0 then
dak=dak-1
if dak=255 then dak=59
endif
endif
Y=1-Y
IF y=0 then
Z=0
else
z=1
ENDIF
gosub bak
goto ayarbir
AYARIKI:
WHILE SEC=0 :WEND
Z=2
AYARUC:
gosub delay :IF POZ=1 then CIK
if sec=0 then CIK
IF Z=2 then ayet ekran kapal
if artir=0 then
SAAT=SAAT+1
if SAAT=24 then SAAT=0
endif
if azalt=0 then
SAAT=SAAT-1
if SAAT=255 then SAAT=23
endif
endif
Y=1-Y
IF y=0 then
Z=0
else
z=2
ENDIF
gosub Bak
goto AYARUC
CIK:
WHILE SEC=0:WEND
gosub delay
poz=0
GOTO BASLA
BAK:
X=DAK DIG 0 :GOSUB AL:BIRLER=SAYI :IF Z=1 then BIRLER=0 z=1 ise ekran
kapal
X=DAK DIG 1 :GOSUB AL:ONLAR=SAYI :IF Z=1 THEN ONLAR =0
X=SAAT DIG 0 :GOSUB AL:YUZLER=SAYI:IF Z=2 THEN YUZLER=0 z=2 ise ekran
kapal
sfrlanyor
END
*
PORTC=0:TRISC=%00000000
PORTD=0:TRISD=%00000000
PORTE=0:TRISE=%00000000
DEFINE OSC4
SUTUN VAR BYTE [8]
I
VAR BYTE
X
VAR BYTE
satr bilgisi stun taramal sistem
SUTUN[0]=%11111111
SUTUN[1]=%10000000
SUTUN[2]=%11110111
SUTUN[3]=%11110111
SUTUN[4]=%11110111
SUTUN[5]=%11110111
SUTUN[6]=%10000000
SUTUN[7]=%11111111
BASLA:
X=128
FOR I=0 TO 7
PORTB=x
PORTC=SUTUN[I]
X=X/2
PAUSE 5
NEXT
GOTO BASLA
* Notes
: Satr taramal stundan bilgi verilen sistem
*
*
:
*
****************************************************************
OPTION_REG=1
ADCON1=7
PORTA=0:TRISA=0
PORTB=0:TRISB=%00000000
PORTC=0:TRISC=%00000000
PORTD=0:TRISD=%00000000
PORTE=0:TRISE=%00000000
DEFINE OSC4
SUTUN VAR BYTE [8]
I
VAR BYTE
X
VAR BYTE
stn bilgisi , satr taramal sistem
SUTUN[0]=%01000010
SUTUN[1]=%01000010
SUTUN[2]=%01000010
SUTUN[3]=%01111110
SUTUN[4]=%01000010
SUTUN[5]=%01000010
SUTUN[6]=%01000010
SUTUN[7]=%00000000
BASLA:
X=1
FOR I=0 TO 7
PORTC=255-x
PORTB=SUTUN[I]
X=X*2
PAUSE 50
NEXT
GOTO BASLA
*
:
****************************************************************
@ DEVICE pic16F628
@ DEVICE pic16F628, WDT_ON
@ DEVICE pic16F628, PWRT_ON
@ DEVICE pic16F628, BOD_ON
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16F628, LVP_OFF
@ DEVICE pic16F628, CPD_OFF
@ DEVICE pic16F628, MCLR_OFF
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT
CMCON=7
TRISA=%11100000
TRISB=%00000000
PORTA=0
PORTB=255
DEFINE OSC 4
ESN
VAR BYTE
SN
VAR BYTE 60
DAK
VAR BYTE 61
SAAT
VAR BYTE 62
TEMP
YIL
AY
GUN
HAFGUN
YERI
VERI
HARF
SAYI
I
X
W
FLASH
SON
Z
VAR BYTE 63
VAR BYTE 64
VAR BYTE 65
VAR BYTE 66
VAR BYTE 67
VAR BYTE 68
VAR BYTE 69
VAR BYTE 70
VAR BYTE 71
VAR BYTE72
VAR BYTE 73
VAR BYTE 74
VAR BYTE 75
VAR
BYTE
VAR BYTE
SUT1
SUT2
SUT3
SUT4
VAR
VAR
VAR
VAR
BYTE[8]80
BYTE[8]88
BYTE[8]96
BYTE[8]104
SUT5
SUT6
SUT7
SUT8
VAR
VAR
VAR
VAR
BYTE[8]112
BYTE[8]120
BYTE[8]160
BYTE[8]168
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
SYMBOL
CLK=PORTA.0
DTA=PORTA.1
STL=PORTA.2
SLC=PORTA.3
SDA=PORTA.4
SEC=PORTA.5
ART=PORTA.6
AZL=PORTA.7
harf=:
gosub NOKTA
BASLA:
IF SEC=0 THEN AYAR SEC tuuna baslm ise ayar ksmna git
GOSUB ZAMANOKU RTC den zaman oku
GOSUB SAATAL Saat bilgisini displayde gsterecek hale evir
GOSUB DAKAL Dakika bilgisini displayde gsterilecek hale evir
GOSUB SNAL Saniye bilgisini displayde gsterilecek hale evir.
SON=29 gsterim sresini tekrar yaparak ayarlyor
az srmeli
GOSUB GOSTER
GOTO BASLA
GOSTER:
FLASH=0
FOR X= 1 TO SON
IF X>(SON/2) THEN FLASH=Z Z=3 , Z=24 , Z=192 FLASH SAYILARI
FOR I=0 to 7
SAYI=SUT8[I]
..SN bilgisi bir ler hanesi yklendi
IF FLASH.BIT7=1 THEN SAYI=0
GOSUB AKTAR birler hanesi matrix displayi sren 74HC595e yklendi
SAYI=SUT7[I] SN onlar hanesi yklendi
IF FLASH.BIT6=1 THEN SAYI=0
GOSUB AKTAR Onlar hanesi bilgisi 74HC595e yklendi.
SAYI=SUT6[I] : iareti bilgileri yklendi
IF X>=15 THEN SAYI=0
GOSUB AKTAR iaret bilgileri 74HC595e yklendi
SAYI=SUT5[I] Dakika birler hanesi yklendi
IF FLASH.BIT4=1 THEN SAYI=0
GOSUB AKTAR Dakika birler hanesi 74HC595e yklendi
SAYI=SUT4[I] Dakika onlar hanesi yklendi
IF FLASH.BIT3=1 THEN SAYI=0
GOSUB AKTAR dakika onlar hanesi 74HC595e yklendi
SAYI=SUT3[I] : iareti bilgileri yklendi
IF X=>15 THEN SAYI=0
GOSUB AKTAR iaret bilgileri 74HC595e yklendi
SAYI=SUT2[I] saat birler hanesi bilgileri yklendi
IF FLASH.BIT1=1 THEN SAYI=0
GOSUB AKTAR
74HC595e yklendi
HARF=sn DIG 0
GOSUB ARA
TEMP=YERI
FOR I=0 to 7
YERI=TEMP+I
GOSUB DATAAL
SUT8[I]=VERI
NEXT
RETURN
AKTAR:
SHIFTOUT DTA,CLK,1,[SAYI]
RETURN
NOKTA: : iaretine ait stun
gosub ARA
TEMP=YERI
FOR I=0 to 7
YERI=TEMP+I
GOSUB DATAAL
SUT3[I]=VERI
sut6[I]=VERI
NEXT
RETURN
ARA:
select case HARF
case :YERI=0:return
case .:YERI=8:return
CASE /:YERI=16:RETURN
case 0:YERI=24:return
case 1:YERI=32:return
case 2:YERI=40:return
case 3:YERI=48:return
case 4:YERI=56:return
case 5:YERI=64:return
case 6:YERI=72:return
case 7:YERI=80:return
case 8:YERI=88:return
case 9:YERI=96:return
case ::YERI=104:return
end select
RETURN
DATAAL:
lookup YERI,[$00,$00,$00,$00,$00,$00,$00,$00_
;boluk
,$00,$00,$00,$00,$00,$18,$18,$00_
;nokta
,$06,$0C,$18,$30,$60,$C0,$80,$00_
;/
,$3C,$66,$6E,$7E,$76,$66,$3C,$00_
;0
,$18,$38,$18,$18,$18,$18,$7E,$00_
;1
,$3C,$66,$06,$1E,$30,$66,$7E,$00_
;2
,$3C,$66,$06,$1C,$06,$66,$3C,$00_
;3
,$1C,$3C,$6C,$6C,$7E,$0C,$1E,$00_
;4
,$7E,$60,$7C,$06,$06,$66,$3C,$00_
;5
,$1C,$30,$60,$7C,$66,$66,$3C,$00_
;6
,$7E,$66,$06,$0C,$18,$18,$18,$00_
;7
,$3C,$66,$66,$3C,$66,$66,$3C,$00_
;8
,$3C,$66,$66,$3E,$06,$0C,$38,$00_
;9
,$00,$18,$18,$00,$00,$18,$18,$00],VERI ;:
return
,$7C,$CE,$DE,$F6,$E6,$C6,$7C,$00_
;0
,$30,$70,$30,$30,$30,$30,$FC,$00_
;1
,$78,$CC,$0C,$38,$60,$CC,$FC,$00_
,$78,$CC,$0C,$38,$0C,$CC,$78,$00_
,$1C,$3C,$6C,$CC,$FE,$0C,$1E,$00_
,$FC,$C0,$F8,$0C,$0C,$CC,$78,$00_
,$38,$60,$C0,$F8,$CC,$CC,$78,$00_
,$FC,$CC,$0C,$18,$30,$30,$30,$00_
,$78,$CC,$CC,$78,$CC,$CC,$78,$00_
,$78,$CC,$CC,$7C,$0C,$18,$70,$00_
;2
;3
;4
;5
;6
;7
;8
;9
ZAMANOKU:
I2CRead SDA,SLC,$D0,$00,[SN,DAK,SAAT],HAFGUN,GUN,AY,YIL,TEMP]
temp=saat
SAAT=(temp>>4) & $03
saat=saat*10+(temp & $0F)
dak=((dak>>4) & $0F)*10+(dak & $0F)
sn=((sn>>4) & $0F)*10+(sn & $0F)
RETURN
AYAR:
Z=3:SON=16:SN=0
GOSUB SNAL
gosub GOSTER
WHILE SEC=0:WEND
HOUR:
IF SEC=0 THEN MINBIR
IF ART=0 THEN SAAT=SAAT+1
IF SAAT=24 THEN SAAT=0
IF AZL=0 THEN SAAT=SAAT-1
IF SAAT=255 THEN SAAT=23
GOSUB SAATAL
GOSUB GOSTER
GOTO HOUR
MINBIR:
Z=24
GOSUB GOSTER
WHILE SEC=0:WEND
MINUTE:
IF SEC=0 THEN KAYIT
IF ART=0 THEN DAK=DAK+1
IF DAK=60 THEN DAK=0
IF AZL=0 THEN DAK=DAK-1
IF DAK=255 THEN DAK=59
GOSUB DAKAL
GOSUB GOSTER
GOTO MINUTE
KAYIT:
Z=0:sn=0
SAAT=(SAAT DIG 1)<<4+SAAT DIG 0
DAK =(DAK DIG 1)<<4+DAK DIG 0
I2CWrite SDA,SLC,$D0,$00,[SN,DAK,SAAT]
PAUSE 10
WHILE SEC=0:WEND
GOTO BASLA
END
*
Notes
: KAYDIRMA rnei
*
****************************************************************
OPTION_REG=1
ADCON1=7
PORTA=0:TRISA=0
PORTB=0:TRISB=%00000000
PORTC=0:TRISC=%00000000
PORTD=0:TRISD=%00000000
PORTE=0:TRISE=%00000000
DEFINE OSC4
SUTUN
temp
I
X
W
VAR
var
VAR
VAR
VAR
BYTE [8]
byte
BYTE
BYTE
BYTE
taramal sistem
SUTUN[0]=%11111111
SUTUN[1]=%10000000
SUTUN[2]=%11110111
SUTUN[3]=%11110111
SUTUN[4]=%11110111
SUTUN[5]=%11110111
SUTUN[6]=%10000000
SUTUN[7]=%11111111
BASLA:
BIR:
for w=0 to 10 kaydrma hz dng
X=128
FOR I=0 TO 7
PORTB=x
PORTC=SUTUN[I]
X=X/2
PAUSE 2
NEXT
next
pause 1
KAYDIR:
temp= sutun[0]
for w=0 to 6
sutun[w]=SUTUN[W+1]
next
sutun[7]=temp
GOTO BASLA
END
Notes
: KAYDIRMA rnei
*
****************************************************************
OPTION_REG=1
ADCON1=7
PORTA=0:TRISA=0
PORTB=0:TRISB=%00000000
PORTC=0:TRISC=%00000000
PORTD=0:TRISD=%00000000
PORTE=0:TRISE=%00000000
DEFINE OSC4
SUTUN
temp
I
X
W
M
VAR
var
VAR
VAR
VAR
var
BYTE [8]60
byte
BYTE
BYTE
BYTE
byte
BASLA:
SUTUN[0]=%11111111
SUTUN[1]=%10000000
SUTUN[2]=%11110111
SUTUN[3]=%11110111
SUTUN[4]=%11110111
SUTUN[5]=%11110111
SUTUN[6]=%10000000
SUTUN[7]=%11111111
M=0
BIR:
for w=0 to 10 kaydrma hz dng
X=128
FOR I=0 TO 7
PORTB=x
PORTC=SUTUN[I]
X=X/2
PAUSE 3
NEXT
next
pause 1
gosub kaydIR
M=M+1
IF M<15 then BIR
SUTUN[0]=%01000010
SUTUN[1]=%01000010
SUTUN[2]=%01000010
SUTUN[3]=%01111110
SUTUN[4]=%01000010
SUTUN[5]=%01000010
SUTUN[6]=%01000010
SUTUN[7]=%00000000
M=0
IKINCI:
FOR W=0 to 10
X=1
FOR I=0 TO 7
PORTC=255-x
PORTB=SUTUN[I]
X=X*2
PAUSE 3
NEXT
NEXT
PAUSE 1
GOSUB KAYDIR
M=M+1
IF M<15 then IKINCI
GOTO BASLA
KAYDIR:
temp= sutun[0]
for w=0 to 6
sutun[w]=SUTUN[W+1]
next
sutun[7]=temp
RETURN
END