最近入了一个 “74HC595静态驱动2段数码管显示模块”(似乎称作两位更好一些)。我不清楚他是怎么连接的,但是使用网上的代码经过修改,可以成功的控制并进行显示。 int LATCH = 9;//锁存端口 int SRCLK = 10;//时钟端口 int SER = 8;//数据端口 unsigned char Num[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf};//这里是显示0-9的数字编码,对应的二进制编码可以看出对应辉管的开闭,这里只是方便使用,可以直接发送编码显示 unsigned charPoint[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//这个是显示位置,大家可以转换到二进制看看到底怎么回事 void setup() { pinMode(LATCH,OUTPUT); pinMode(SRCLK,OUTPUT); pinMode(SER,OUTPUT);//三个语句全部设定Arduino管脚为输出 Serial.begin(115200);//串口通信Init,这里主要为了以后开发,顺手习惯加了,本Demo删掉即可 } void SendByte(unsigned char dat)//发送Btye,也是写入的核心部分 { uint8_t i;//定义一个循环变量i for(i=0;i<8;i++) { digitalWrite(SRCLK,LOW);//首先根据手册,将时钟输出Low,然后才可以输入数据信号 if(dat &0x80)//这里是一个LSB digitalWrite(SER,HIGH); else digitalWrite(SER,LOW); dat<<=1; digitalWrite(SRCLK,HIGH); } } void Send2Byte(unsigned char dat1,unsigned char dat2) { SendByte(dat1); SendByte(dat2); } void loop() { for(inti=0;i<100;i++) { //Arg[0] 是高位 Arg[1] 是低位 Send2Byte(Num[i%10],Num[i/10]); digitalWrite(LATCH,LOW); delay(1); digitalWrite(LATCH,HIGH); delay(100); } } 线路方面:VCC 5V, GND,,SDI 接Pin8, SCLK 接 Pin10,LOAD接 Pin9。 参考:
|