syntax error near ')', expected '<id>'问题怎么解决
本帖最后由 angus 于 2022-2-26 00:39 编辑写了头文件,编译器只有seg.h报错(下按顺序附seg.h/seg.c/main.c的代码),望大佬相助!
********分割线********
seg.h
#ifndef _SEG_H_
#define _SEG_H_
#include "delay.h"
#include <REG52.H>
/*****引脚定义*****/
#define Duan_Port P0 //段码线端口
sbit digit1 = P1 ^ 0;//控制第一位数码管的引脚
sbit digit2 = P1 ^ 1;
sbit digit3 = P1 ^ 2;
sbit digit4 = P1 ^ 3;
void dis_seg(unsigned int data);//显示四位整形数据的函数
#endif
********分割线********
seg.c
#include "seg.h"
#include "delay.h"
unsigned char seg_data = {
0xc0, // 0
0xf9, // 1
0xa4, // 2
0xb0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xf8, // 7
0x80, // 8
0x90, // 9
0x88, // A
0x83, // b
0xc6, // c
0xa1, // d
0x86, // E
0xbf, // -
};
void dis_seg(unsigned int data)//显示4位整形数据的函数
{
Duan_Port = seg_data;//送段码到数码管
digit1 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit1 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data;//送段码到数码管
digit2 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit2 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data;//送段码到数码管
digit3 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit3 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data;//送段码到数码管
digit4 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit4 = 1;
Duan_Port = 0xff;//消影
}
********分割线********
main.c
#include <REG52.H>
#include "delay.h"
#include "key.h"
#include "seg.h"
#define time 130
//共阴极数码管
// 0: 0x3f ; 1: 0x06 ; 2: 0x5b ; 3: 0x4f ; 4: 0x66 ;
// 5: 0x6d ; 6: 0x7d ; 7: 0x07 ; 8: 0x7f ; 9: 0x6f
char nums = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void main()
{
while (1)
{
Duan_port = ~nums; //送段码到数码管
digit1 = 0; //控制第一位数码管公共端电源导通
delay_xms(time);
digit1 = 1;
Duan_port = ~0xff;
Duan_port = ~nums;
digit1 = 0;
delay_xms(time);
digit1 = 1;
Duan_port = ~0xff;
}
}
********分割线********
以下为报错数据
seg.h中有问题的代码为
void dis_seg(unsigned int data);
你这里用了全角的分号:
这里的 Duan_Port 里面的 Port 用了小写 p,你在头文件里面预定义的是大写:
本帖最后由 angus 于 2022-2-25 17:31 编辑
你好,main.c里面的Duan_Port已经解决了,全角我也改成了半角符号,但是seg.h还是报错了syntax error near ')', expected '<id>
data是C语言中表示定义数据存储区的关键字,修改之后,问题解决,感谢朋友的帮助
页:
[1]