Stap 5: Code voor uw referentie
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
#define HC_DATA_H digitalWrite (gegevens, hoge) / / data lijn high output
#define HC_DATA_L digitalWrite (gegevens, laag) //date lijnuitgang lage
#define HC_RCK_H digitalWrite (rck, hoge) / / rck hoge output
#define HC_RCK_L digitalWrite (rck, LOW) / / rck lage output
#define HC_SCK_H digitalWrite (sck, hoge) / / sck hoge output
#define HC_SCK_L digitalWrite (sck, LOW) / / sck lage output
unsigned char LED_BCD [16] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e}; gemeenschappelijke anode digitale buis BCD-code
Definiëren van de pin
int gegevens = 2;
int rck = 3;
int sck = 5;
de setup-routine wordt uitgevoerd zodra wanneer u drukt op reset:
VOID Setup {}
Initialiseer de digitale pin als uitgang.
pinMode (gegevens, OUTPUT);
pinMode (rck, OUTPUT);
pinMode (sck, OUTPUT);
pinMode (sclr, OUTPUT);
}
de routine van de lus wordt uitgevoerd over en weer forever:
void loop {}
unsigned char dopp = 0;
voor (unsigned char ik = 0; ik < 4; ++ ik)
{
if(i ==3) dopp = 1;
anders dopp = 0;
HC_data_analyze(i,i,dopp); Nixie-buis weergeven
}
}
VOID HC_data_analyze (char LED_number, unsigned char LED_display, unsigned char LED_dp)
{
gegevens analyseren
unsigned int HC_DISP = 0, HC_LEDCODE, HC_LEDCODE_temp = 0;
if(LED_display > 15) LED_display = 0;
HC_LEDCODE = LED_BCD [LED_display]; BCD-code krijgen
voor (unsigned char ik = 0; ik < 8; ++ ik)
{
HC_LEDCODE_temp << = 1;
if(HC_LEDCODE&0x01) HC_LEDCODE_temp | = 0x01;
HC_LEDCODE >> = 1;
}
if(LED_dp) HC_LEDCODE_temp & = 0xfe;
HC_DISP = HC_LEDCODE_temp;
switch(LED_number)
{
geval van 0: HC_DISP | = 0x8000; break;
geval 1: HC_DISP | = 0x4000; break;
geval 2: HC_DISP | = 0x2000; break;
Case 3: HC_DISP | = 0x1000; break;
}
write_74HC595(HC_DISP); Overdracht van de gegevens van het register van 74HC595 het verschuiven
}
VOID write_74HC595 (unsigned int data_a) //communication met 74HC595
{
char kijken = 0;
HC_RCK_L; Klink open
HC_SCK_L;
voor (; < 16; kijk ++ kijken)
{
if(data_a&0x0001) {HC_DATA_H;}
else {HC_DATA_L;}
HC_SCK_H;
HC_SCK_L;
data_a >> = 1;
}
HC_RCK_H;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dit bestand is te downloaden van ICstation BBS
Als je nog vragen hebt, bezoek dan onze BBS:
http://www.icstation.com/forum/