|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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[16] = {
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[data/1000%10];//送段码到数码管
digit1 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit1 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data[data/100%10];//送段码到数码管
digit2 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit2 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data[data/10%10];//送段码到数码管
digit3 = 0;//控制第一位数码管公共端导通电源
delay_xms = (1);
digit3 = 1;
Duan_Port = 0xff;//消影
Duan_Port = seg_data[data%10];//送段码到数码管
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[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void main()
{
while (1)
{
Duan_port = ~nums[7]; //送段码到数码管
digit1 = 0; //控制第一位数码管公共端电源导通
delay_xms(time);
digit1 = 1;
Duan_port = ~0xff;
Duan_port = ~nums[4];
digit1 = 0;
delay_xms(time);
digit1 = 1;
Duan_port = ~0xff;
}
}
********分割线********
以下为报错数据
seg.h中有问题的代码为
void dis_seg(unsigned int data);
|
|