中微单片机的3个io口控制6个led灯程序
时间: 2023-08-30 15:12:35 浏览: 251
以下是使用中微电子单片机的3个IO口控制6个LED灯的程序示例,同样使用了第一种方式,即使用74HC238译码器:
```c
#include "HT66F70A.h"
#define LED_PORT P13
#define ADDR_PORT P14
void GPIO_Config(void);
void Delay(uint32_t count);
int main(void)
{
GPIO_Config();
while (1)
{
// 点亮第1个LED灯
PORT_Write(ADDR_PORT, 0x01);
PORT_Write(LED_PORT, 0x01);
Delay(100000);
// 点亮第2个LED灯
PORT_Write(ADDR_PORT, 0x02);
PORT_Write(LED_PORT, 0x02);
Delay(100000);
// 点亮第3个LED灯
PORT_Write(ADDR_PORT, 0x04);
PORT_Write(LED_PORT, 0x04);
Delay(100000);
// 点亮第4个LED灯
PORT_Write(ADDR_PORT, 0x01);
PORT_Write(LED_PORT, 0x08);
Delay(100000);
// 点亮第5个LED灯
PORT_Write(ADDR_PORT, 0x02);
PORT_Write(LED_PORT, 0x10);
Delay(100000);
// 点亮第6个LED灯
PORT_Write(ADDR_PORT, 0x04);
PORT_Write(LED_PORT, 0x20);
Delay(100000);
}
}
void GPIO_Config(void)
{
PORT_InitTypeDef PORT_InitStructure;
// 配置LED引脚为推挽输出
PORT_InitStructure.PORT_Pin = 0x3F; // P13的6位和P14的3位
PORT_InitStructure.PORT_Mode = PORT_Mode_OUT;
PORT_InitStructure.PORT_OutType = PORT_OutType_PP;
PORT_InitStructure.PORT_Speed = PORT_Speed_10MHz;
PORT_Init(LED_PORT, &PORT_InitStructure);
// 配置地址引脚为推挽输出
PORT_InitStructure.PORT_Pin = 0x07; // P14的3位
PORT_InitStructure.PORT_Mode = PORT_Mode_OUT;
PORT_InitStructure.PORT_OutType = PORT_OutType_PP;
PORT_InitStructure.PORT_Speed = PORT_Speed_10MHz;
PORT_Init(ADDR_PORT, &PORT_InitStructure);
}
void Delay(uint32_t count)
{
for(uint32_t i = 0; i < count; i++);
}
```
需要注意的是,此程序只是一个示例,具体的引脚配置和控制方式需要根据实际情况进行修改。同时,需要根据实际使用的译码器型号,确定地址引脚的数量和连接方式。
阅读全文