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

📄 mjt.c

📁 这是一个PIC单片机的实时操作系统
💻 C
字号:

#define	root

#include"config.h"

static uint8   tt[8];//按键的值的缓存
void LcdDisp(void);
//static volatile BEEP_CONTROL beepBuf;
//12-17 写的程序是仿电源测试架写的状态机程序,还没有完成
//12-19 号把程序做了一下修正,基本上有点模型了
//12-31 程序对蜂鸣器由静态变量的定义进行了更改,使蜂鸣器程序独立开后
//还能正确运行
//080104程序增加了点了删除卡时的显示,还没有处理好
//080108把程序增加了删除卡菜单的处理程序,但是在删除数据这一级还没有处理好
//010109的程序对删除卡的菜单做了处理是可以,另外把24LC04的程序也补了上来,不过没有调试好 
//080110的程序对头文件的定义方式做了改进
//080111的程序对局变量的传递还是有错
//080112 的程序对原来的UITASK.C中的消息处理做了优化处理
//12345678  卡号为7b b2 6e
const   char HZ_HYSY2[26] = {
 	0XBB, 0XB6, 0XD3, 0XAD, 0XCA, 0XB9, 0XD3, 0XC3, 0XC3, 0XC5, 0XBD, 0XFB, 0XCA, 0XFD, 0XBE, 0XDD, 0XB4, 0XA6, 0XC0, 0XED, 0XCF, 0XB5, 0XCD, 0XB3, 0XA3, 0XA1
 };


void IOINT(void) //IO口初始化
{
		ADCON1 = 0x07;  
	/*	
		TRISA=0X28;
		TRISB=0X00;
		TRISC=0XC4;
		TRISD=0X00;
		TRISE=0X07;
	*/
	//RA口定义
	//RA0  RA1  RA2  LCD使用
	TRISA=0X28;
	
	//RB口定义
	/*     RB2 RB1  RB0
	  RB3  1    2   3 
	  RB4  4    5   6  
	  RB5  7    8   9
	  RB6  取消 0  确认
	*/
	TRISB=0XF8; 
	PORTB=0XFF;
	//RC口定义
	// RC0  DATA
	// RC1  SCL  待写芯片
	//RC2  DATA
	//RC3  SCL  母片位置
	//RC4  RFDATA  未用
 //RC5   BEEP 
 //RC6 RC7  串口通讯
  TRISC=0XDF;
  RC5=0;
 //RD口定义
 //RD LCD 数据
	TRISD=0X00; 
	
	}	

void tmint(void)
{   T0CS=0;
 PSA=0; //分频器给定时器
 PS2=0;
 PS1=1;//分频比为1:16
 PS0=1;
 T0IF=0;
 T0IE=1;
}
/*
void interrupt clkint(void)   //定时器中断函数
{  if(T0IF=1)  //增加是定时中断时进入
  {
    TMR0=0xC2;
    T0IF=0;
    ledadr=ledadr+1;
    if (ledadr==10) //定时时间到10MS
    	{
		    if(shake_cancel_timer!=0)
		    	 shake_cancel_timer--;
		    if (repeat_key_timer!=0)
		    	 repeat_key_timer--;	 
		    if (complex_key_timer!=0)
		    	  complex_key_timer--;
		    ledadr=0; 	  
	    }
   }	
 }
*/
void interrupt clkint(void)   //定时器中断函数
{  if(T0IF=1)  //增加是定时中断时进入
  {
    TMR0=0xC2;
    T0IF=0;
    ledadr=ledadr+1;
    if (ledadr==10) //定时时间到10MS
    	{

		    TickFlag=1;
		    if(shake_cancel_timer!=0)
		    	 shake_cancel_timer--;
		    if (repeat_key_timer!=0)
		    	 repeat_key_timer--;	 
		    if (complex_key_timer!=0)
		    	  complex_key_timer--;
		    ledadr=0; 	  
	    }
   }	
 }

void pollTask()
{
      process_panel_key();
                   	  if(current_key!=NO_KEY)
	  	               {
	  	                    nop;
							nop;
							testkey=current_key;
	  	                    current_key=NO_KEY;
	  		                scan_key_state = KEY_IDLE_STATE;
	  	                    nop;
                            nop;
                            nop;
						//   	beepBuf=BEEP_ONE;
                            nop;
						    MessagePush( SYS_KEY_DOWN );
							nop;
							nop;
	  	                 }

	// 1S定时-------------------------------------------------------------
	++secTimeCounter;
    nop;
   nop;
	if(timer500msFlag)
		if((secTimeCounter%50)==0)
		{
          nop;
			MessagePush(MES_500MS_TIME);
		}			
              if(secTimeCounter==200)
	
		{
         nop;
		  secTimeCounter=0;			
		if(timer1sFlag)
		 MessagePush(MES_SEC_TIME);	
		}
	/*		  
        if(secTimeCounter==500)
            	{
            	nop;
	        nop;
		secTimeCounter=0;			
		 if(timer5sFlag)
			MessagePush(MES_5SEC_TIME);	
		}
               
         */

		
		//喂狗---------------------------------------------------
		
		//运行指示灯------------------------------------------
	 

}

void LcdDisp(void)
{             
              nop;
              *KeyB=testkey;   
	    KeyB++; 
     // KeyBuf[0]=0x08;
	      nop;
		LCD_Write_Com(0x90+LcdCount);	
		LCD_Write_Dat(0XA3) ;
		LCD_Write_Dat(testkey+0XB0);
	        
		LcdCount++;
		nop;
		nop;
		if(LcdCount==8)
		{
          nop;
          nop;
		Key( ) ;
                 MessagePush(MES_COUNEND8);
		 }
		
	}	
	



void  main(void)
  {

		IOINT( );
		GIE=1;	
		KEYINT();
		Lcdint();
		KeyB=KeyBuf;
		nop;
		err_count=50;
		
            tt[0]=0x08;
         nop;
		EEType=EE8;
		MessageInit();
		LcdFuc2(26,&HZ_HYSY2);
		OPEN_1S_TIMER();
		while(1)
			{
              if(TickFlag==1)
              	{
					TickFlag=0;
					nop;
					nop;
					pollTask();
					nop;
					nop;
					beepControl();
                   }    
			     nop;
			     nop;
			     Task();
				 
               
				  
		       }

  }


⌨️ 快捷键说明

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