⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 51单片机最小系统用的C语言程序
💻 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 + -