MSP430 G2553 实现用两块 74HC595 级联控制4位LED
时间: 2024-05-28 19:15:28 浏览: 17
1. 硬件连接:
将74HC595的Q7’脚与下一块74HC595的SER脚相连,将两块芯片的OE、SRCLK、RCLK、SER脚分别连接到MSP430 G2553的P1.0、P1.1、P1.2、P1.3脚上,将两块芯片的Q0-Q7脚分别连接到4位共阳极LED的正极上,将LED的负极连接到MSP430 G2553的GND脚上。
2. 代码实现:
#include <msp430g2553.h>
#define SRCLK BIT1 //74HC595时钟信号
#define RCLK BIT2 //输出锁存信号
#define SER BIT3 //串行数据输入信号
#define OE BIT0 //输出使能信号
void delay(unsigned int t) //延时函数
{
unsigned int i;
for (i = 0; i < t; i++);
}
void send_byte(unsigned char data) //传输数据
{
unsigned char i;
for (i = 0; i < 8; i++)
{
if (data & 0x80) //如果data的最高位为1,则向74HC595输出高电平
{
P1OUT |= SER; //串行数据输入信号输出高电平
}
else //否则向74HC595输出低电平
{
P1OUT &= ~SER; //串行数据输入信号输出低电平
}
P1OUT &= ~SRCLK; //时钟信号输出低电平
delay(1); //延时1us
P1OUT |= SRCLK; //时钟信号输出高电平
data <<= 1; //左移1位,将下一位数据送入74HC595
}
P1OUT &= ~RCLK; //输出锁存信号输出低电平
delay(1); //延时1us
P1OUT |= RCLK; //输出锁存信号输出高电平
}
void display(unsigned char num) //显示数字
{
unsigned char i, data;
P1OUT &= ~OE; //输出使能信号输出低电平
for (i = 0; i < 4; i++) //循环输出4位数字
{
data = ~(1 << i); //计算第i位数字的码值
if (num & (1 << i)) //如果num的第i位为1,则该位数字亮
{
data &= ~(1 << 4); //将码值的第4位(小数点位)清零
}
send_byte(data); //向74HC595输出该位数字的码值
}
P1OUT |= OE; //输出使能信号输出高电平,关闭LED显示
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗定时器
P1DIR |= SRCLK + RCLK + SER + OE; //将74HC595的控制信号脚设置为输出
P1OUT &= ~(SRCLK + RCLK + SER + OE); //将74HC595的控制信号脚输出低电平
while (1)
{
display(0x09); //显示数字9
delay(50000); //延时50000us
display(0x08); //显示数字8
delay(50000); //延时50000us
}
}
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)