#include<reg52.h> #define DataPort P0; sbit LATCH2=P2^2; sbit LATCH1=P2^3; unsigned char code zima[]={0x76,0x73,0x38,0x38,0x7f}; unsigned char code wm[]={0xfe,0xfd,0xfb,0xf7,0xef}; void delay(unsigned int t); void main() { unsigned char i=0; while(1){ DataPort=wm[i]; LATCH2=1; LATCH2=0; DataPort=zima[i]; LATCH1=1; LATCH1=0; delay(20); i++; if(i==5) i=0; } } void Delay(unsigned int t) { while(--t); } 哪里错了
时间: 2023-10-27 17:07:04 浏览: 228
#include <stdio.h>
4星 · 用户满意度95%
这段代码中有几个问题:
1. 在 `#define DataPort P0;` 这一行中,应该将分号(;)去掉,否则会导致后续使用 `DataPort` 宏时出现语法错误。
2. `void Delay(unsigned int t)` 函数名称大小写不一致,应该统一为 `delay`。
3. `delay` 函数中的 `while(--t);` 应该改为 `while(--t) ;`,添加一个空格以避免编译器误解为语句结束。
4. 在 `void main()` 函数中,应该添加 `Delay(20);` 语句,以调用 `delay` 函数。
下面是修改过的代码:
```C
#include<reg52.h>
#define DataPort P0
sbit LATCH2 = P2^2;
sbit LATCH1 = P2^3;
unsigned char code zima[] = {0x76,0x73,0x38,0x38,0x7f};
unsigned char code wm[] = {0xfe,0xfd,0xfb,0xf7,0xef};
void delay(unsigned int t);
void main() {
unsigned char i = 0;
while(1) {
DataPort = wm[i];
LATCH2 = 1;
LATCH2 = 0;
DataPort = zima[i];
LATCH1 = 1;
LATCH1 = 0;
Delay(20);
i++;
if (i == 5) i = 0;
}
}
void delay(unsigned int t) {
while(--t) ;
}
```
希望这可以帮助您解决问题。
阅读全文