手册中的一些重要信息
供电电压

相关引脚与引脚作用

WR信号可以看作触发器的时钟信号,只有WR为低电位时被A0、A1选中的段才会改变,否则显示之前的字符,这样就可以同时控制多个HPDL 1414了,A0、A1、D0~D6都可以复用只要单独控制WR即可。
字符集
这个字符表即是ASCII码表的后7个bit
ASCII表具体如图
真值表
D0D6使用来控制字符的显示,A1,A0用来控制时哪一个数码管来显示,并且可以通过WR位来控制多个HPDL_1414,这也说明了A0,A1,D0D6是可以复用的(WR要被拉低了才能控制HPDL1414)。

相关代码
void dispchar(int add,char data){ //add即是A0,A1,用来控制字符显示的位置,data即是D0~D6,用来控制对应位显示的字符
switch (add) { //字符显示的位置
case 0:
digitalWrite(10, 0);
digitalWrite(11, 0);
break;
case 1:
digitalWrite(10, 1);
digitalWrite(11, 0);
break;
case 2:
digitalWrite(10, 0);
digitalWrite(11, 1);
break;
case 3:
digitalWrite(10, 1);
digitalWrite(11, 1);
break;
default:
digitalWrite(10, 0);
digitalWrite(11, 0);
break;
}
digitalWrite(2, (data>>0) & 1); //获取char的各个bit,即ASCii的后7个bits,将其分配至各自的引脚
digitalWrite(3, (data>>1) & 1);
digitalWrite(4, (data>>2) & 1);
digitalWrite(5, (data>>3) & 1);
digitalWrite(6, (data>>4) & 1);
digitalWrite(7, (data>>5) & 1);
digitalWrite(8, (data>>6) & 1);
digitalWrite(9,0); //拉低WR引脚,改变状态
delay(1); //holdtime,使得触发器能够正确的采样各个引脚的电平(并不用这么久,实际只用200ns)
digitalWrite(9,1); //拉高WR引脚,防止已经成功保存的状态再次改变
}
void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT); //D0 8 HPDL_ 1414的管脚功能 HPDL_1414的管脚编号
pinMode(3,OUTPUT); //D1 9
pinMode(4,OUTPUT); //D2 10
pinMode(5,OUTPUT); //D3 11
pinMode(6,OUTPUT); //D4 2
pinMode(7,OUTPUT); //D5 1
pinMode(8,OUTPUT); //D6 12
pinMode(9,OUTPUT); //WR 3
pinMode(10,OUTPUT); //A0 5
pinMode(11,OUTPUT); //A1 4
}
void loop() {
// // put your main code here, to run repeatedly:
dispchar(3,'3');
dispchar(2,'3');
delay(80);
dispchar(3,'0');
dispchar(2,'2');
delay(80);
dispchar(3,'4');
dispchar(2,'4');
delay(80);
dispchar(3,'1');
dispchar(2,'6');
delay(80);
dispchar(3,'5');
dispchar(2,'3');
delay(80);
dispchar(3,'9');
dispchar(2,'8');
delay(80);
dispchar(3,'7');
dispchar(2,'1');
delay(80);
dispchar(3,'6');
dispchar(2,'3');
delay(80);
dispchar(3,'2');
dispchar(2,'5');
delay(80);
dispchar(3,'8');
dispchar(2,'7');
delay(80);
dispchar(3,'0');
dispchar(2,'9');
delay(2000);
}
慢慢来,准备的是先弄一个HPDL1414的驱动测试板来做些测试,要不然用洞洞板和Arduino来测试的话太鸡肋了。
后期将原驱动一个HPDL_1414的驱动函数改为驱动两个HPDL_1414的驱动函数