main.c

来自「基于凌阳单片机的简易语音数字频率计源码.实验了语音播报测量的频率,幅度值等.」· C语言 代码 · 共 63 行

C
63
字号

//#define	 	P_TimerA_Data      	(volatile int*)0x7000
unsigned char 	g_ucIntFlag=0;     
unsigned int  	g_uisum=0;

#include "spce061a.h"
#include "dig.h"
unsigned int g_Data[11] = {0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f,0x0077};
unsigned int iData[6]={3,0,0,0,0,0};						   //0,	     1,		2,		3,		4,	  5,	6,		7,		8,		9
int main(void)
{
 unsigned int key,i,j,k;
 unsigned int g_uifx=0;
		unsigned int fx=0;
 DIG_Init();
        DIG_Set(1,g_Data[iData[0]]);                              //第一位数码管显示
		DIG_Set(2,g_Data[iData[1]]);                              //第二位数码管显示
		DIG_Set(3,g_Data[iData[2]]);                              //第三位数码管显示
		DIG_Set(4,g_Data[iData[3]]);                              //第四位数码管显示
		DIG_Set(5,g_Data[iData[4]]);                              //第五位数码管显示
		DIG_Set(6,g_Data[iData[5]]);                              //第六位数码管显示
         key_init();
    
		Init_IOB();
		RunTime2Hz();			//开中断
		TmbCount();				//开始计数

  while(1)
  	
  { 
  		while(g_ucIntFlag)		//定时2秒后读计数值
				{						
					g_uifx=*(P_TimerA_Data);										
					g_ucIntFlag = 0;				
					*(P_TimerA_Data)=0;
					fx=	g_uifx;	//计算出外部时钟源的频率
				  } 
				
			i=fx/10000;
		iData[4]=i;
		j=fx%10000;
		i=j/1000;
		iData[3]=i;	
		j=j%1000;
		i=j/100;
		iData[2]=i;	
		j=j%100;
		i=j/10;
		iData[1]=i;
		j=j%10;
			iData[0]=j;		
			
	  DIG_Set(1,g_Data[iData[0]]);                              //第一位数码管显示
		DIG_Set(2,g_Data[iData[1]]);                              //第二位数码管显示
		DIG_Set(3,g_Data[iData[2]]);                              //第三位数码管显示
		DIG_Set(4,g_Data[iData[3]]);                              //第四位数码管显示
		DIG_Set(5,g_Data[iData[4]]);                              //第五位数码管显示
		DIG_Set(6,g_Data[iData[5]]);                              //第六位数码管显示			
				
   *P_Watchdog_Clear=0x0001;

 }
}

⌨️ 快捷键说明

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