⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4094.c

📁 Multiplexing with cd4094
💻 C
字号:
// Usando el CD4094 para manejar 1 display 7 segmentos


#include <16F84A.h>
#fuses XT,NOPROTECT,NOWDT,PUT
#use delay(clock=4000000)

// Definici髇 de pines de control
#define DATA PIN_A0
#define CLOCK PIN_A1
#define STROBE PIN_A2

// tabla de numeros constantes que contienen el correspondiente valor
// en 7 segmentos
int   const segmentos[16]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,
                           0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

// declaraci髇 de la funci髇 escribir_4094
void escribir_4094(int caracter);

// programa principal
void  main(){
   output_a(0x0);
   output_b(0x0);
   set_tris_a(0x0);
   set_tris_b(0x0);

  while(true){
      for(t=0;t<16;t++){
         escribir_4094(t);          // env韆 el n鷐eros en hexadecimal al display 7-seg
         delay_ms(1000);
      }
   }
}

//**************************************************************
// Funci髇 escribir_4094
//
// Descripci髇: env韆 serialmente el datode 8 bits de acuerdo al 
// argumento caracter y activa las se馻les de control establecidas
// en el mapa de tiempos del CD4094
//
// datos de entrada: caracter un n鷐ero entero
// datos de salida: ninguno
//**************************************************************
void escribir_4094(int caracter){
int contador_8;
   output_low(PIN_A0);
   output_low(STROBE);
   output_low(CLOCK);
   for(contador_8=0;contador_8<8;contador_8++){
      output_bit(DATA,bit_test(segmentos[caracter],contador_8));
      output_high(CLOCK);
      delay_cycles(1);
      output_low(CLOCK);
   }
   output_low(CLOCK);
   output_high(STROBE);
   delay_cycles(1);
   output_low(STROBE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -