Paso 5: Código para su referencia
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
#define HC_DATA_H digitalWrite (datos, alto) / línea de datos de salida alta
#define HC_DATA_L digitalWrite (datos, baja) salida de línea de //date baja
#define HC_RCK_H digitalWrite (rck, alto) / rck salida alta
#define HC_RCK_L digitalWrite (rck, bajo) / rck salida baja
#define HC_SCK_H digitalWrite (sck, alto) / sck de salida alta
#define HC_SCK_L digitalWrite (sck, bajo) / sck de salida baja
unsigned char LED_BCD [16] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0 x 80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e}; tubo digital ánodo común código BCD
Definir el pin
int datos = 2;
rck int = 3;
int sck = 5;
la rutina de instalación se ejecuta una vez al presionar reset:
void setup() {}
Inicializa el pin digital como salida.
pinMode (datos, salida);
pinMode (rck, salida);
pinMode (sck, salida);
pinMode (sclr, salida);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
unsigned char dopp = 0;
para (unsigned char i = 0; i < 4; ++ i)
{
if(i ==3) dopp = 1;
otro dopp = 0;
HC_data_analyze(i,i,dopp); Pantalla de tubo Nixie
}
}
void HC_data_analyze (char LED_number, unsigned char LED_display, unsigned char LED_dp)
{
Análisis de datos
unsigned int HC_DISP = 0, HC_LEDCODE, HC_LEDCODE_temp = 0;
if(LED_display > 15) LED_display = 0;
HC_LEDCODE = LED_BCD [LED_display]; obtener código BCD
para (unsigned char i = 0; i < 8; ++ i)
{
HC_LEDCODE_temp << = 1;
if(HC_LEDCODE&0x01) HC_LEDCODE_temp | = 0 x 01;
HC_LEDCODE >> = 1;
}
if(LED_dp) HC_LEDCODE_temp & = 0xfe;
HC_DISP = HC_LEDCODE_temp;
Switch(LED_number)
{
caso 0: HC_DISP | = 0x8000; break;
caso 1: HC_DISP | = 0 x 4000; rotura;
caso 2: HC_DISP | = 0x2000; break;
caso 3: HC_DISP | = 0x1000; break;
}
write_74HC595(HC_DISP); Transferencia de datos de registro de desplazamiento 74HC595
}
void write_74HC595 (unsigned int data_a) //communication con 74HC595
{
buscar char = 0;
HC_RCK_L; cierre abierto
HC_SCK_L;
para (; ver < 16; ++ ver)
{
if(data_a&0x0001) {HC_DATA_H;}
Else {HC_DATA_L;}
HC_SCK_H;
HC_SCK_L;
data_a >> = 1;
}
HC_RCK_H;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Este archivo es descargar de ICstation BBS
Si usted tiene cualquier pregunta, por favor visite nuestros BBS:
http://www.icstation.com/Forum/