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

📄 main.c

📁 程序在IAR上调试
💻 C
字号:

#include <msp430x16x.h>
#include"iic.h"
#include "general.h"
#include "7290_soft.h"


 //unsigned char Int_7290 ;	    //用于储存P30上读入电平,中断时会变低,不能放在这里,不知为何
unsigned char p[8] = { 0x1f , 0x1f , 0x1f , 0x1f , 0x1f , 0x1f , 0x1f , 0x1f ,} ;

void Initsys()
{       unsigned char iq0 ;
	BCSCTL1 &= ~XT2OFF ;           //打开XT2振荡器,XT2OFF在PUC后为1,
					//表示关闭
	

	  do	
	{
	IFG1 &= ~ OFIFG ;             //清除振荡器失效标志,OFIFG在PUC后为1,
					//表示振荡器失效
	  
	for(iq0 = 0XFF ; iq0 > 0 ; iq0 --) ;//延时,等待XT2起振
	}

	while (( IFG1 & OFIFG ) != 0) ;            //若OFIFG为1,表示振荡器失效,
						  // 继续循环,等待




	BCSCTL2 =SELM_2 + SELS ;                 //选择MCLK ,SMCLK 为XT2

}


main()
{
       
	int t ;     // char t 时,t不能为0
	int n = 0 ;  //n表示已经输入了 n个数
	
	WDTCTL = WDTPW +WDTHOLD ;
	Initsys() ;
	
	P1DIR |= 0x01 ;
        P5DIR |= 0x10 ;
	
        
        DelayMs (1000 ) ; //上电时感觉信号不稳定, 红灯会亮,复位后会显示数。延时后信号稳定,红灯不亮
	InitIIC() ;
	P1OUT &= ~0x01 ;
	P5OUT &= ~0x10 ;
	
 	IIC_DIR &= ~BIT0 ;    //P30 input
	//Int_7290 = ( IIC_IN & BIT0 )    ;//读入P30电平,这句放在这里时编译无法通过
	
 //        zlg7290_control(  0 ,8 ,0 ,0 )	;
	while(1)
	{
		if( zlg7290_Int() )
		{   
		   // DelayMs ( 10 ) ;
		    //if( !zlg7290_Int() )  {break ;}
		    n++ ;
		    for( t = 1; t < 8; t++)
		    {
		    p[t - 1] = p[ t ] ;
		    }
		  
		p[7] = zlg7290_getkey() ; 
		 
		    for( t = 7; t >= 8 - n; t--)
		    {
		     zlg7290_control(  t , p[ t ] ,0 ,0 )   ; 
		    }	
		    if( n > 8 ) 
		     {
		     n = 0 ;
		     zlg7290_clear() ;
		     }
		     DelayMs ( 1000 ) ;
		     P5OUT ^=  0x10 ;
		}
		
  	}
	
}



//#define		IIC_Delay_Value   100
//#define		IIC_Delay_Value   5   ,不建议太短,有人说IIC_Delay()至少延时4微秒
//都可以显示一位数字

⌨️ 快捷键说明

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