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

📄 exam1.c

📁 前两天一个朋友要我写一个51例程
💻 C
字号:
//#include <inandout.h>
/********************************************************/	
/*文件名:  										*/
/*功能:  						*/
/*编写:  										*/
/*建立时间: 
/*修改纪录: 											*/
/********************************************************/
#include <exam1.h>	  
Data16B	DataCtReg	_at_	0x50 ;
//Data16B	DataCtRegBuf	_at_	0x52;
uchar	DataBufDis[4]	_at_ 0x52;	
/*BCD加1,并且转换成需要显示的数据,汇编实现*/
void	BCDADD();
uchar	PlusSecond=0;
uchar	Plus200ms;
uchar	KeyStory=10;
INT32U  SysRunTime=0;
uchar	OPDATA;
uchar	UartRecBuf[32];
uchar	*UartRecPoint=UartRecBuf;
void	CountSecondPlus()
{	
	if(Plus200ms>=5)
	{
		DisableInterrupt();
		Plus200ms-=5;	   	
		EnableInterrupt();//
		SysRunTime++;
		PlusSecond=1;
		
	}//		
}
/*该函数目前实现计数的功能,修改数码管的显示值*/
void	SecondTask()
{
//	uchar	DisBufC[4];
	if(PlusSecond==1)
	{
		PlusSecond=0;
		//DataCtReg.U16B=(SysRunTime%1000);
		BCDADD();
		AmendDisBuf(DataBufDis);
	//	DisBufC	=
		/**/
	}
}
/*	   LED动作::
按键1按下,按照第一种模式工作,一直工作	  ,按键5按下,按照模式1反方向工作
 2-8按键功能类推。

*/
void	KeyLedMenu()
{
	uchar	KeyStoryReg;
//	Data16B	LedRegData;
	KeyStoryReg=GetKeyValue();
//	KeyStoryReg=1;//tes
	if(KeyStoryReg!=0)
	{

		KeyStory=KeyStoryReg;
		/*复位LED显示,全部灭*/	 
		if(KeyStory>4) 
		{
			 OPDATA=1;
			 
		}
		else			OPDATA=0;
		KeyStory=(KeyStory-1)%4;
	}
	LedMenuSub(KeyStory,OPDATA);
}
void	main()
{
//	uchar	WeekData;
	DataCtReg.U16B=0;
	HardConfigSub();
//	WeekData=GetWeekDay(8,10,15);
	while(1)
	{
		CountSecondPlus();
		DisPlaySub();
		SecondTask();
		LEDTimeCtSub();
		KeyLedMenu();  		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -