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

438 篇文章 1642 订阅 ¥19.90 ¥99.00
该博客介绍了如何使用Arduino配合74HC595芯片驱动数码管进行0-9的循环显示,并提供了Proteus仿真的详细过程,包括两种实现方法和相关函数介绍。
摘要由CSDN通过智能技术生成

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: 需要移位的数据。

  • 返回值:没有。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值