📄 main.h
字号:
/******************************************************************************
MAIN.H
主程序头文件
******************************************************************************/
#include <REG51.H>
#include <intrins.h>
#include <stdio.h>
#include <stdlib.h>
#define nop() _nop_(); /*定义空指令*/
#define soft_reset() ((void(code *)(void))0x0000)();/*软件复位*/
#define uchar unsigned char
#define uint unsigned int
/////////////////////////////////////////
#define porta P0
#define portb P1
/////////////////////////////////////////
#define bitset(var,bitno)((var)|=1<<(bitno))
#define bitclr(var,bitno)((var)&=~(1<<(bitno)))
#ifdef main_c
//**************************************************
volatile uchar dsbuf[2],sta,sta1,sta2;
volatile uchar key_Cnt;
volatile uchar Bit_Select,dspoint;
volatile uchar year,month,day,week;
volatile uchar hour,minute,second,seccounter;
volatile uint idata award_num[60];//随机数寄存器
//***************************************************
union{
struct
{
unsigned k0:1; unsigned k1:1;
unsigned k2:1; unsigned k3:1;
unsigned k4:1; unsigned k5:1;
unsigned k6:1; unsigned k7:1;
unsigned k8:1; unsigned k9:1;
unsigned k10:1; unsigned k11:1;
}b;
unsigned char halfkey[2];
unsigned int allkey;
}key;
//***************************************************
union{
struct
{
unsigned lk0:1; unsigned lk1:1;
unsigned lk2:1; unsigned lk3:1;
unsigned lk4:1; unsigned lk5:1;
unsigned lk6:1; unsigned lk7:1;
unsigned lk8:1; unsigned lk9:1;
unsigned lk10:1; unsigned lk11:1;
}b;
unsigned char halfkey[2];
unsigned int allkey;
}lastkey;
/////////////////////////////////////////
//段码定义
/////////////////////////////////////////
const unsigned char LED8[48]={ 0X11,0Xd7,0X32,0X92, /*0,1,2,3*/
0Xd4,0X98,0X18,0Xd3, /*4,5,6,7*/
0X10,0X90,0Xff,0Xff, /*8,9,a,b*/
0Xff,0Xff,0Xff,0xff, /*c,d,e,f***/
0X88,0Xbe,0Xc4,0X94, /*0,1,2,3*/
0Xb2,0X91,0X81,0Xbc, /*4,5,6,7*/
0X80,0X90,0Xff,0Xff, /*8,9,a,b*/
0Xff,0Xff,0Xff,0xff, /*c,d,e,f***/
0X11,0Xd7,0X23,0X83, /*0,1,2,3*/
0Xc5,0X89,0X09,0Xd3, /*4,5,6,7*/
0X01,0X81,0Xff,0Xff, /*8,9,a,b*/
0Xff,0Xff,0Xff,0xff}; /*c,d,e,f***/
/////////////////////////////////////////
#else
//**************************************************
extern volatile uchar dsbuf[2],sta,sta1,sta2;
extern volatile uchar key_Cnt;
extern volatile uchar Bit_Select,dspoint;
extern volatile uchar year,month,day,week;
extern volatile uchar hour,minute,second,seccounter;
extern volatile uint idata award_num[60];
//***************************************************
extern union{
struct
{
unsigned k0:1; unsigned k1:1;
unsigned k2:1; unsigned k3:1;
unsigned k4:1; unsigned k5:1;
unsigned k6:1; unsigned k7:1;
unsigned k8:1; unsigned k9:1;
unsigned k10:1; unsigned k11:1;
}b;
unsigned char halfkey[2];
unsigned int allkey;
}key;
//***************************************************
extern union{
struct
{
unsigned lk0:1; unsigned lk1:1;
unsigned lk2:1; unsigned lk3:1;
unsigned lk4:1; unsigned lk5:1;
unsigned lk6:1; unsigned lk7:1;
unsigned lk8:1; unsigned lk9:1;
unsigned lk10:1; unsigned lk11:1;
}b;
unsigned char halfkey[2];
unsigned int allkey;
}lastkey;
/////////////////////////////////////////
//段码定义
/////////////////////////////////////////
extern const unsigned char LED8[48];
#endif
//=======================================
//panel 显示与键盘
#ifdef panel_c
//主机通过P口扫描按键
void Keyscan(void);
//主机通过P口显示驱动数码管
void Display(void);
#else
//主机通过P口扫描按键
extern void Keyscan(void);
//主机通过P口显示驱动数码管
extern void Display(void);
#endif
//=======================================
//sub 子程序集
#ifdef sub_c
//***************************
//上电初始化
//***************************
void Power_set(void);
//***************************
//5mS定时子程序
//***************************
void Timer(void);
//***************************
//时钟走时子程序
//***************************
void Clock(void);
//***************************
//随机数发生器
//由T2产生随机数
//***************************
uint Rand(void);
//***************************
//数据的有效性测试
//****************************
uchar Check(uint dat);
#else
//***************************
//上电初始化
//***************************
extern void Power_set(void);
//***************************
//5mS定时子程序
//***************************
extern void Timer(void);
//***************************
//时钟走时子程序
//***************************
extern void Clock(void);
//***************************
//随机数发生器
//由T2产生随机数
//***************************
extern uint Rand(void);
//***************************
//数据的有效性测试
//***************************
extern uchar Check(uint dat);
#endif
//===================================
/*
//inter
#ifdef inter_h
void extern0_ISR() interrupt 0{} // not used
void timer0_ISR () interrupt 1{} // not used
void extern1_ISR() interrupt 2{} // not used
void timer1_ISR () interrupt 3{} // not used
void serial_ISR () interrupt 4{} // not used
void timer2_ISR () interrupt 5{} // not used
#else
extern void extern0_ISR() interrupt 0{} // not used
extern void timer0_ISR () interrupt 1{} // not used
extern void extern1_ISR() interrupt 2{} // not used
extern void timer1_ISR () interrupt 3{} // not used
extern void serial_ISR () interrupt 4{} // not used
extern void timer2_ISR () interrupt 5{} // not used
#endif
//=======================================
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -