74HC595 digital LED visas baserat på Arduino (koden försynt) (5 / 5 steg)
Steg 5: Kod för din referens
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
#define HC_DATA_H digitalWrite (data, hög) / / datalinje utgång hög
#define HC_DATA_L digitalWrite (data, låg) //date linjeutgång låg
#define HC_RCK_H digitalWrite (rck, hög) / / rck output hög
#define HC_RCK_L digitalWrite (rck, låg) / / rck output låg
#define HC_SCK_H digitalWrite (sck, hög) / / sck output hög
#define HC_SCK_L digitalWrite (sck, låg) / / sck output låg
unsigned char LED_BCD [16] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e}; gemensam anod digital tube BCD kod
Ange PIN-koden
int data = 2;
int rck = 3;
int sck = 5;
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
initiera digital PIN-koden som en utgång.
pinMode (data, produktionen);
pinMode (rck, produktionen);
pinMode (sck, produktionen);
pinMode (sclr, produktionen);
}
loop rutinen körs för evigt om och om igen:
void loop() {
unsigned char dopp = 0;
för (unsigned char jag = 0; jag < 4. ++ jag)
{
IF(i ==3) dopp = 1;
annat dopp = 0;
HC_data_analyze(i,i,dopp); Nixie Tube display
}
}
void HC_data_analyze (char LED_number, unsigned char LED_display, unsigned char LED_dp)
{
analysera data
unsigned int HC_DISP = 0, HC_LEDCODE, HC_LEDCODE_temp = 0;
IF(LED_display > 15) LED_display = 0;
HC_LEDCODE = LED_BCD [LED_display]; få BCD koden
för (unsigned char jag = 0; jag < 8. ++ jag)
{
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)
{
fall 0: HC_DISP | = 0x8000; semester.
fall 1: HC_DISP | = 0x4000; semester.
fall 2: HC_DISP | = 0x2000; semester.
fall 3: HC_DISP | = 0x1000; semester.
}
write_74HC595(HC_DISP); 74HC595 skiftande registrera dataöverföring
}
void write_74HC595 (unsigned int data_a) //communication med 74HC595
{
char ser = 0;
HC_RCK_L; spärren öppnar
HC_SCK_L;
för (; se < 16. ++ ser)
{
IF(data_a&0x0001) {HC_DATA_H;}
annat {HC_DATA_L;}
HC_SCK_H;
HC_SCK_L;
data_a >> = 1;
}
HC_RCK_H;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Denna fil kan hämtas från ICstation BBS
Om du har några frågor, vänligen besök vår BBS:
http://www.icstation.com/forum/