Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真相关的知识,希望对你有一定的参考价值。

Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真


  • Proteus仿真

实例代码(do{}while();实现方法)

/*74HC595控制1位共阳数码管
 * 
 * 
 * 
 * 
 * 
  */
unsigned   char  table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

const byte Pin_DS = 11;   //data
const byte Pin_ST_CP = 12;  //latch
const byte Pin_SH_CP = 13; //clock
const byte CT = 10; 
char Buff[1];

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(Pin_ST_CP, OUTPUT);//ST_CP
  pinMode(Pin_DS, OUTPUT);//DS
  pinMode(Pin_SH_CP, OUTPUT);//SH_CP
  digitalWrite(Pin_DS, LOW);
   pinMode(CT, OUTPUT);
  digitalWrite(CT, HIGH); 
}

void loop() {
    int i=0;
do{
    digitalWrite(CT, HIGH); 
    digitalWrite(Pin_ST_CP, LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
    shiftOut(Pin_DS, Pin_SH_CP, MSBFIRST, table[i]);//串行数据输出,高位在先 MSBFIRST    
    digitalWrite(Pin_ST_CP, HIGH); //将ST_CP这个针脚恢复到高电平
    delay(500);
    digitalWrite(CT, LOW); 
   i++;
  }
  while(i%=10);//当i等于10时,让i等于0
}


实现方法二(for循环)

/*74HC595控制1位共阳数码管
 * 
 * 

  */
unsigned   char  table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
const byte Pin_DS = 11;   //data
const byte Pin_ST_CP = 12;  //latch
const byte Pin_SH_CP = 13; //clock
const byte CT = 10; 
char Buff[1];

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(Pin_ST_CP, OUTPUT);//ST_CP
  pinMode(Pin_DS, OUTPUT);//DS
  pinMode(Pin_SH_CP, OUTPUT);//SH_CP
  digitalWrite(Pin_DS, LOW);
   pinMode(CT, OUTPUT);
  digitalWrite(CT, HIGH); 
}

void loop() {
    int i=0;
 for(;i<10;i++){
    digitalWrite(CT, HIGH); 
    digitalWrite(Pin_ST_CP, LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
    shiftOut(Pin_DS, Pin_SH_CP, MSBFIRST, table[i]);//串行数据输出,高位在先 MSBFIRST   
    digitalWrite(Pin_ST_CP, HIGH); //将ST_CP这个针脚恢复到高电平
    delay(500);
    digitalWrite(CT, LOW); 
   i++;
  }

}


函数介绍

  • shiftOut()

描述:将数据在时钟引脚脉冲控制下按位移出写入到数字引脚。
函数原型:

shiftOut(dataPin, clockPin, bitOrder, value)

参数:
dataPin: 数据输入引脚。
clockPin: 时钟引脚。
bitOrder: 移位顺序。MSBFIRST(高位在前)、LSBFIRST(低位在前)。
value: 需要移位的数据。

  • 返回值:没有。

以上是关于Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真的主要内容,如果未能解决你的问题,请参考以下文章

Arduino与74HC595驱动数码管

Arduino UNO + 74HC595联级+数码管实现00-99循环计数显示+ Proteus仿真

Arduino UNO + 74HC595联级+数码管实现000-999循环计数显示+ Proteus仿真

Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真

Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真(修复篇)

Arduino UNO+DS1302+74HC595联级+8位共阴数码管时钟+Proteus仿真