基于CODEWARRIORDE 3*8阵列的灯如何依次点亮,程序示例
时间: 2024-02-21 09:59:42 浏览: 13
以下是一个基于CodeWarrior的程序示例,可以实现3*8阵列的灯按照行的顺序依次点亮和熄灭:
```c
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define LED_ROW1 PTAD_PTAD0
#define LED_ROW2 PTAD_PTAD1
#define LED_ROW3 PTAD_PTAD2
#define LED_COL1 PTAD_PTAD3
#define LED_COL2 PTAD_PTAD4
#define LED_COL3 PTAD_PTAD5
#define LED_COL4 PTAD_PTAD6
#define LED_COL5 PTAD_PTAD7
void delay(unsigned long time);
void main(void) {
/* put your own code here */
DDRAD = 0xFF; // Set all pins to output mode
while (1) {
// Turn on Row 1
LED_ROW1 = 1;
LED_COL1 = 1;
delay(1000);
LED_COL1 = 0;
LED_COL2 = 1;
delay(1000);
LED_COL2 = 0;
LED_COL3 = 1;
delay(1000);
LED_COL3 = 0;
LED_COL4 = 1;
delay(1000);
LED_COL4 = 0;
LED_COL5 = 1;
delay(1000);
LED_COL5 = 0;
LED_ROW1 = 0;
// Turn on Row 2
LED_ROW2 = 1;
LED_COL1 = 1;
delay(1000);
LED_COL1 = 0;
LED_COL2 = 1;
delay(1000);
LED_COL2 = 0;
LED_COL3 = 1;
delay(1000);
LED_COL3 = 0;
LED_COL4 = 1;
delay(1000);
LED_COL4 = 0;
LED_COL5 = 1;
delay(1000);
LED_COL5 = 0;
LED_ROW2 = 0;
// Turn on Row 3
LED_ROW3 = 1;
LED_COL1 = 1;
delay(1000);
LED_COL1 = 0;
LED_COL2 = 1;
delay(1000);
LED_COL2 = 0;
LED_COL3 = 1;
delay(1000);
LED_COL3 = 0;
LED_COL4 = 1;
delay(1000);
LED_COL4 = 0;
LED_COL5 = 1;
delay(1000);
LED_COL5 = 0;
LED_ROW3 = 0;
}
}
void delay(unsigned long time) {
unsigned long i;
for (i = 0; i < time; i++) {
// Do nothing
}
}
```
在这个示例程序中,LED_ROW1、LED_ROW2和LED_ROW3分别表示第一行、第二行和第三行的控制引脚,LED_COL1至LED_COL5分别表示第一列至第五列的控制引脚。在程序中,先将所有引脚设置为输出模式(即第8行代码),然后通过循环控制每行和每列的点亮和熄灭。在每个循环中,先将对应行的引脚置为高电平,然后依次将对应列的引脚置为高电平并保持一段时间,最后将对应列的引脚置为低电平。其中,delay函数用于等待一段时间,这里简单实现的是一个循环等待,实际中可能需要使用定时器等更精确的方法。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)