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 UNO + 74HC595联级+数码管实现00-99循环计数显示+ Proteus仿真
Arduino UNO + 74HC595联级+数码管实现000-999循环计数显示+ Proteus仿真
Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真