7 Segment display sürme

Başlatan Maxim, 07 Haziran 2007, 11:29:36

muhittin_kaplan

device 16f877a
xtal 4

Output Porta
Output Portb

Dim Binler as byte
dim Yuzler as Byte
Dim Onlar As Byte
Dim Birler as byte
dim Dongu as byte

basla:
	for binler=0 to 9
		for yuzler=0 to 9
			for onlar=0 to 9
				for birler=0 to 9
					gosub Goster
				next
			next
		next
	next
	goto basla
Goster:
	for dongu=0 to 50
		high porta.3
		portb=LookUpL birler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.2
		portb=LookUpL Onlar,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.1
		portb=LookUpL Yuzler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.0
		portb=LookUpL binler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
	next
	return

muhittin_kaplan

Alıntı yapılan: muhittin_kaplan - 18 Ocak 2011, 23:25:43
device 16f877a
xtal 4

Output Porta
Output Portb

Dim Binler as byte
dim Yuzler as Byte
Dim Onlar As Byte
Dim Birler as byte
dim Dongu as byte

basla:
	for binler=0 to 9
		for yuzler=0 to 9
			for onlar=0 to 9
				for birler=0 to 9
					gosub Goster
				next
			next
		next
	next
	goto basla
Goster:
	for dongu=0 to 50
		high porta.3
		portb=LookUpL birler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.2
		portb=LookUpL Onlar,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.1
		portb=LookUpL Yuzler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
		high porta.0
		portb=LookUpL binler,[192,249,164,176,153,146,130,248,128,144]
		delayms 2
	next
	return

şunu bir deneyiniz (proton yüklü değil Not defterinde yazdım)

FUNKY

 muhittin_kaplan  hocam verdiğiniz kod  sayıcı olarak  0 dan ...n    başlayarak sayıyor  gayet düzgün gözüküyor..


ben "1234" yazdırma sorunum kodlar   böyle olursa   doğru gösteriyor.

PORTB=segments
High PORTA.0
birler= Dig var1,2
'
PORTB=segments
High PORTA.1
onlar= Dig var1,1
'
PORTB=segments
High PORTA.2
yuzler= Dig var1,0
'
PORTB=segments
High PORTA.3
binler = Dig var1,3

doğru çalışıyor ama   aktif edilen   anodla oraya yazılan "Dig" karmaşası var..?



FUNKY

#33
halloldu sonunda.. aklımada yatması önemliydi   ..birsürü kod var çalışan  ben zorlanarak  yardım alarak en önemlisi anlayarak yapmayı istedim    yardım  edenlere teşekkür ederim.

muhittin hocamın verdigi kod daki tarama şekli en sıhhatlisi oldu   sorunsuz çalıştı  artık bunu bir projede  gösterici olarak kullanabilirim...
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 19.01.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

Device 16F877A
Xtal 4

Output PORTA
Output PORTB
Dim Binler As Byte
Dim Yuzler As Byte
Dim Onlar As Byte
Dim Birler As Byte
Dim Dongu As Byte
Dim sayi As Word
Dim x As Byte

  basla:
  sayi=1234

           
   GoSub Goster   
    GoTo basla
       
  Goster:	
 Binler=Dig sayi,3
 Yuzler=Dig sayi,2
 Onlar =Dig sayi,1
 Birler=Dig sayi,0  


   High PORTA.3		
  PORTB=LookUpL Birler,[192,249,164,176,153,146,130,248,128,144]		
  DelayMS 2		
  High PORTA.2		
  PORTB=LookUpL Onlar,[192,249,164,176,153,146,130,248,128,144]		
  DelayMS 2		
  High PORTA.1		
  PORTB=LookUpL Yuzler,[192,249,164,176,153,146,130,248,128,144]		
  DelayMS 2		
  High PORTA.0		
  PORTB=LookUpL Binler,[192,249,164,176,153,146,130,248,128,144]		
  DelayMS 2	
   Return



düzeltme yapıldı : gereksiz for nex döngüsü  çıkarıldı..