Seven segment display 4 digit For CSS Compiler




#include <16F877.h>
#device adc=8
#fuses NOWDT,HS, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG
#use delay(clock=4000000)

#define sw_up    pin_a0  // SWITCH UP
#define sw_down  pin_a1  // SWITCH DOWN

INT16    COUNT;
int8     A,B,C,D;
//int8    segment[10] ={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//common anode
  int8  num[10] ={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};//common cathode                         0    1    2    3    4    5    6    7    8      9         
                    //   0   1    2    3    4    5   6     7    8     9   
VOID HEX_BCD(INT16 VALUE);

void main(){
  setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);

    OUTPUT_LOW(PIN_C0);
    OUTPUT_LOW(PIN_C1);
    OUTPUT_LOW(PIN_C2);
    OUTPUT_LOW(PIN_C3);        
    COUNT=0; 
WHILE(true){

  IF(!INPUT(SW_up)){IF(COUNT++>9999)COUNT=0;delay_ms(150);}
  IF(!INPUT(SW_down)){IF(COUNT --<1)COUNT=9999;delay_ms(150);} 

        HEX_BCD(COUNT);

        OUTPUT_D(NUM[D]);   // nuoy
        OUTPUT_HIGH(PIN_C0);
        DELAY_MS(5);
        OUTPUT_LOW(PIN_C0);

        OUTPUT_D(NUM[C]);   // sib        
        OUTPUT_HIGH(PIN_C1);
        DELAY_MS(5);
        OUTPUT_LOW(PIN_C1);

        OUTPUT_D(NUM[B]);   // Roy        
        OUTPUT_HIGH(PIN_C2);
        DELAY_MS(5);
        OUTPUT_LOW(PIN_C2);

        OUTPUT_D(NUM[A]);   // PHUN        
        OUTPUT_HIGH(PIN_C3);
        DELAY_MS(5);
        OUTPUT_LOW(PIN_C3);                
        DELAY_MS(100);
     }        
 }

void HEX_BCD(INT16 VALUE){
   A=0;B=0;C=0;D=0;
  while(value>=1000){A++;value-=1000;}
  while(value>=100){B++;value-=100;}
  while(value>=10){C++;value-=10;}
  D=value;
 }

 




Current Project / Post can also be found using:

  • 3 digit counter program in ccs c
  • 7 seg ccs code
  • CCSC seven segment library
  • css multiple 7 segment led

Leave a Comment

*
= 3 + 3

Read previous post:
Stepping Motor Control For CSS Compiler

#include <16F877.h> #fuses XT,NOLVP,NOWDT,NOPROTECT #use delay(clock = 4000000) #use fast_io(A) #use fast_io(B) byte num[5] = {0x00,0x01,0x02,0x04,0x08}; int8 disp,i; void Forward(){...

Close
Scroll to top