arduino程序
int j=0,n=0,num=0;
unsigned char qq[] = {
10,10,10,10,5,4,3,9,0,4, 4, 4, 9,10,10,10,10};// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
int latchPin = 4;
int clockPin = 7;
int dataPin = 8; //定义控制数码管三个引脚 //0 1 2 3 4 5 6 7 8 9 空 .
unsigned char Dis_table[] = {
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0x7F}; //数码管显示的值
unsigned char Dis_buf[] = {
0xF1,0xF2,0xF4,0xF8}; //数码管位
void setup ()
{
pinMode(latchPin,OUTPUT);pinMode(clockPin,OUTPUT);pinMode(dataPin,OUTPUT); //让三个脚都是输出状态// pinMode(LED1,OUTPUT);// pinMode(LED2,OUTPUT);// pinMode(LED3,OUTPUT);// pinMode(LED4,OUTPUT);//led输出状态// LED1=0;// LED2=0;// LED3=0;// LED4=0;//led初始化
}
void loop()
{
for(char i=0; i<=3;i++) //扫描四个数码管{
digitalWrite(latchPin,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据shiftOut(dataPin,clockPin,MSBFIRST,Dis_table[qq[num]]); //发送显示码shiftOut(dataPin,clockPin,MSBFIRST,Dis_buf[i] ); //发送通值 digitalWrite(latchPin,HIGH); //将ST_CP这个针脚恢复到高电平delay(2); //延时2ms num++;j++;n++;while (j>500){
j=0;num++;}while (n>=4){
num=num-4;n=0;}while (num>15){
num=0;}}
}
最后出现三位乱码,还很稳定?,然后之后继续正常循环,只是循环的后三位有问题。