arkadaşlar ccs kullanmaya yeni başladım ve 7 segment ile aşağıdaki gibi basit bir 0-9 kadar yazan program yazdım fakat bu yazdığımı for döngüsü ile ayrı ayrı yazmadan 0 dan 9 kadar nasıl yazdırırım.şimdiden teşekkürler.
0-9 kadar yazan program;
void main()
{
nt sayi;
int constsg[11]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7C,0x7,0x7F,0x6F,0}
set_tris_d(0);
for(;;)
{
sayi=~sg[0];
output_d(sayi);
delay_ms(1000);
sayi=~sg[1];
output_d(sayi);
delay_ms(1000);
sayi=~sg[2];
output_d(sayi);
delay_ms(1000);
sayi=~sg[3];
output_d(sayi);
delay_ms(1000);
sayi=~sg[4];
output_d(sayi);
delay_ms(1000);
sayi=~sg[5];
output_d(sayi);
delay_ms(1000);
sayi=~sg[6];
output_d(sayi);
delay_ms(1000);
sayi=~sg[7];
output_d(sayi);
delay_ms(1000);
sayi=~sg[8];
output_d(sayi);
delay_ms(1000);
sayi=~sg[9];
output_d(sayi);
delay_ms(1000);
cok uzatmısın kardeş aşagıdaki ayzılım işini görür ve anlamanda daha yarrlı olur ve altaki linkte üni de yaptıgımız giriş calışmaları var bu uygulamaları incele kolay gelsin
http://dosya.cc/MPLAB2007p_ccal__malar.rar.html
#include <16f628.h>
#use delay(clock=4000000)
main()
{
int sayac=0;
const int gosterge[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
output_b(0xff);// anotu ortak dispilay oldugu için
while(1)
{
for(sayac=0;sayac<10;sayac++)
{
output_b(gosterge[sayac]);
delay_ms(500);
}
sayac=0;
}
}
kardeşim verdiğin cevap ve ilgin için tşk.ler.bizim biraz yaşımız geçiyor heralde ama merakımız var.cevabından faydalandım ,sorularım biraz basit kaçabilir inşallah cevap verirsiniz. kolay gelsin iyi çalışmalar.
estağfurullah abiş demekki o yaşında azmin var saygı duyarız selametle iyi calışmalar
Bu program b portuna parelel baglı ıkı tane 7 led segmentli sayıcı devresı 1. dıjıt 0-f sayıyor sonra ıkıncı led 0-f sayıyır. Port_a= right bunun ıcın kullanılıyor.
umarım ısınıze yarar en azından bır fıkır verır.
Kolay gelsın
#include <16c84.h>
#USE DELAY( CLOCK=4000000 ) /* Using a 4 Mhz clock */
#FUSES XT,NOWDT,NOPROTECT,NOPUT
/* Use XT mode, No Watch Dog, No Code Protect, No Power-up Timer */
#byte port_b=6 /* define the location of register port_b */
#byte port_a=5 /* define the location of register port_b */
byte CONST LED_MAP[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
main(void){
byte cnt, right,num ;
set_tris_b(0); /* set port_b as outputs */
set_tris_a(0); /* set port_a as output */
port_b = 0; /* ZERO port_a & port_b */
port_a = 0;
for( ;; ){
for (right=1;right<3;right++){
port_a = right;
for (cnt=0;cnt<10;cnt++){
port_b = LED_MAP[cnt];
DELAY_MS(1000); /* one second delay */
}
}
}
}
Abi devrede displayleri sürmek için hangi entegreyi kullandığını belirtirsen yardımcı olabilirim bende bi ara çok uğratım display ile sayıcıya
4511 yada 7447 ilemi yaptın acaba onu bilmek istedim sorun yoksa devreni buraya verebilirsen daha iyi olur