elektrobi
Üye
- Katılım
- 18 Ocak 2013
- Mesajlar
- 14
- Puanları
- 1
Merhabalar
74hc164 ile 8x8 dot matriksi çalıştırmaya çalışıyorum ancak isiste gayet güzel çalışmasına rağmen gerçekte çalışmıyor.
Örneğin ekte gönderdiğim çizimde yarısı yanarken gerçekte çok farklı şeyler çıkıyor. bağlantıları isisteki gibi yaptığıma eminim neden çalışmıyor anlamadım.Kullandığım mikroişlemci 16f877a . Yardımcı olabilirseniz çok çok sevineceğim, çok teşekkürler, herkese iyi çalışmalar
#include <sondisplay.h>
//TODO: User Code
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=4000000)
#define DATA pin_d7
#define CLOK pin_d6
int i;
int Shdata[8]={0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f};
void HCLK164(int a)
{
switch (a)
{
case 0: output_high(DATA);break;
case 1: output_low(DATA);break;
case 2: output_low(DATA);break;
case 3: output_low(DATA);break;
case 4: output_low(DATA);break;
case 5: output_low(DATA);break;
case 6: output_low(DATA);break;
case 7: output_low(DATA);break;
}
output_high(CLOK);
delay_us(10);
output_low(CLOK);
}
//Main Program------------------------------------------------------------------
void main() {
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
output_b(0x00);
output_d(0x00);
{
while(1)
for(i=0;i<8;i++)
{
HCLK164(i);
output_b(~Shdata);
delay_us(100);
}
}
}
74hc164 ile 8x8 dot matriksi çalıştırmaya çalışıyorum ancak isiste gayet güzel çalışmasına rağmen gerçekte çalışmıyor.
Örneğin ekte gönderdiğim çizimde yarısı yanarken gerçekte çok farklı şeyler çıkıyor. bağlantıları isisteki gibi yaptığıma eminim neden çalışmıyor anlamadım.Kullandığım mikroişlemci 16f877a . Yardımcı olabilirseniz çok çok sevineceğim, çok teşekkürler, herkese iyi çalışmalar
#include <sondisplay.h>
//TODO: User Code
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=4000000)
#define DATA pin_d7
#define CLOK pin_d6
int i;
int Shdata[8]={0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f};
void HCLK164(int a)
{
switch (a)
{
case 0: output_high(DATA);break;
case 1: output_low(DATA);break;
case 2: output_low(DATA);break;
case 3: output_low(DATA);break;
case 4: output_low(DATA);break;
case 5: output_low(DATA);break;
case 6: output_low(DATA);break;
case 7: output_low(DATA);break;
}
output_high(CLOK);
delay_us(10);
output_low(CLOK);
}
//Main Program------------------------------------------------------------------
void main() {
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
output_b(0x00);
output_d(0x00);
{
while(1)
for(i=0;i<8;i++)
{
HCLK164(i);
output_b(~Shdata);
delay_us(100);
}
}
}