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

📄 szintr41.c.bak

📁 数字面板开发的单片机的软件仿正程序
💻 BAK
字号:
#define DSP595W1 {/*DSPTM1 to 595OUT*/DSPTMP0=8;/*DSP595L:*/do{U595SCK=0;PDISP=OUTDISP;U595SIN=1;if(!bit_test(DSPTMP1,7)){U595SIN=0;}PDISP=OUTDISP;U595SCK=1;PDISP=OUTDISP;DSPTMP1<<=1;}while(--DSPTMP0);}
void interrupt intall_isr(void) 
{
TWOINTR:	
	if(T0IF)
	{
        T0IF=0;
        TMR0+=6;
		T1MS++;//m.seconds++;
//		T3MS++;
	/*	if(!dsponi)
		{
			dsponi=1;
			;
			#asm
	  		movf	saved_fsr,w
	  		movwf	_saved_fsr1
	  		movf	saved_pclath,w
	  		movwf	_saved_pclath1
  			movf	0x73,w
  			movwf	_saved_tmp01
  			movf	0x6f,w
  			movwf	_saved_tmp11
	  		movf	saved_status,w
	 		movwf	_saved_status1
	 		movwf	3
	 		movf	saved_w,w
	 		movwf	_saved_w1
			clrf	3
			#endasm
			;*/
		//	ei();
				/*	DSKYWKI();
		void DSKYWKI(void)//OUTPUT(DSDT)+READ(KEY)
		{*/
			if(!kydly)
			{
			/*	DSP595K();//
			void	DSP595K(void)
			{*/
			    //READ KEY BY 595OUT
			    ;
	DSB&=0XF;
	switch(DSB)
	{
		case 4:
			DSPTMP1=0XFE;
			break;
		case 5:
			DSPTMP1=0XFD;
			break;
		case 6:
			DSPTMP1=0XFB;
			break;
		case 7:
			DSPTMP1=0XF7;
			break;
		case 8:
			DSPTMP1=0XEF;
			break;
		case 9:
			DSPTMP1=0XDF;
			break;
		case 10:
			DSPTMP1=0XBF;
			break;
		case 11:
			DSPTMP1=0X7F;
			break;
		case 0:
		case 1:
		case 2:
		case 3:
		case 12:
		case 13:
		case 14:
		default:
			DSPTMP1=0XFF;
			break;
			
	}
//0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff		
				
			//	DSPTMP1=DSP595B[(DSB-1)&0XF];
				DSP595W1;//();
				U595SIN=0;
				DSPTMP0=0X8;
			//DSP595M:
			    do
			    {
			        U595SCK=0;
			    	PDISP=OUTDISP;
			    	U595SCK=1;
				    PDISP=OUTDISP;
				}while(--DSPTMP0);
				U595RCK=1;
				PDISP=OUTDISP;
				U595RCK=0;
				PDISP=OUTDISP;
				U595SCK=0;
				PDISP=OUTDISP;
			//DSP595R:
			//DSP595END:
			//}
		#ifndef	simkvvv
				if(!KEYIN)//if(!KEYIN)if(!KEYIN)
				{
					kyst=1;
				//	DSDA0++;
				}
				//if(KEYIN)//if(!KEYIN)if(!KEYIN)
				{
					//kyst=0;
				//	DSDA1++;
				}
		#else
				if(KVVV==DSB)
				{
					kyst=1;
				}
		#endif	
			}
		//while(!KEYIN);
			/*DSP595I();
		void	DSP595I(void)
		{*/
		    //DISPLAY OUTPUT
		//	dspon=0;
		#ifdef simulate
			CHK1++;
			if(!CHK1)
			{
		    	CHK2++;
		        if(!CHK2)
		    	{
		        	CHK3++;
		        }
			}
			if((CHK1-T1MS)>0)
			{
		    	CHK1=T1MS;
		    }
		#endif    
			if(DSB>=DSBXXX)
			{
				DSB=0;
			}
	
	
	switch(DSB)
	{
		case 3:
			DSPTMP1=0XFE;
			break;
		case 4:
			DSPTMP1=0XFD;
			break;
		case 5:
			DSPTMP1=0XFB;
			break;
		case 6:
			DSPTMP1=0XF7;
			break;
		case 7:
			DSPTMP1=0XEF;
			break;
		case 8:
			DSPTMP1=0XDF;
			break;
		case 9:
			DSPTMP1=0XBF;
			break;
		case 10:
			DSPTMP1=0X7F;
			break;
		case 0:
		case 1:
		case 2:
		case 11:
		case 12:
		case 13:
		case 14:
		default:
			DSPTMP1=0XFF;
			break;
			
	}		
	//		DSPTMP1=DSP595B[DSB];
			
			DSP595W1;//();
			DSPTMP1=DSDABC[DSB];
			DSP595W1;//();
			DSPTMP1=DSB;
			OUTRC|=DSB012S;
			if(!DSPTMP1)
			{
				DSB0=0;
				goto	DXBX0;
			}
			if(!--DSPTMP1)
			{
				DSB1=0;
				goto	DXBX0;
			}
			if(!--DSPTMP1)
			{
				DSB2=0;
			}
		DXBX0:
		    PORTC=OUTRC;
			U595RCK=1;
			PDISP=OUTDISP;
			U595RCK=0;
			PDISP=OUTDISP;
			U595SIN=0;
			U595SCK=0;
			PDISP=OUTDISP;
		    DSB++;
		//}
			if(kyst)
			{
				kyst=0;
				if(DSB==(KOLDV&0XF))
				{
					KCNT+=2;
				}
				else if(!KCNT)
				{
					KOLDV=DSB+(KOLDV&0X0F0);
				}
			}
			if(DSB==1)
			{
				lpkf=1;
				if(kydly)if(!(--KCNT))
				{
					kydly=0;
				}
				if(!kydly)
				{
					KCNT--;
					if(bit_test(KCNT,7))
					{
						if(KCNT!=0XFF)
						{
							KCNT=0;
							KEYV=0;
							KOLDV=0;
							KVPP=0;
						}
					}
					else if(KCNT>5)//3)
					{
						if(KOLDV&0XF)
						{
							if(KEYV==(KOLDV&0XF))
							{
								if(!(++KVPP))
								{
									KVPP--;
								}
							}
							KEYV=(KOLDV&0XF);
							//dsdbnew=1;
							//DSPB=KEYV;
							//PARAMS3[MINP3]=KEYV;
							kyold=1;
							KCNT=17;//0XC;
							kydly=1;
							kyold=1;
							p3ks=1;
						}
					}
				}
			}
		//}
		/*	di();
    		dsponi=0;
			;
			#asm
  			movf	_saved_tmp01,w
  			movwf	0x71//73
  			movf	_saved_tmp11,w
  			movwf	0x70//6f
  			movf	_saved_fsr1,w
  			movwf	4
  			movf	_saved_pclath1,w
  			movwf	10
  			movf	_saved_status1,w
 			movwf	3
 			swapf	_saved_w1
 			swapf	_saved_w1,w
 			retfie	
			#endasm
			;*/
		}
//	}
	else if(INTF)
	{
		INTF=0;
	}
	else
	{
		INTCON&=INTCONF;
	}
}
void	DSP595W(void)
{
    //DSPTM1 to 595OUT
	DSPTMP0=8;
//DSP595L:
    do
    {
        U595SCK=0;
    	PDISP=OUTDISP;
	    U595SIN=1;
    	if(!bit_test(DSPTMP1,7))
	    {
		    U595SIN=0;
    	}
	    PDISP=OUTDISP;
        U595SCK=1;
    	PDISP=OUTDISP;
	    DSPTMP1<<=1;
	}while(--DSPTMP0);
}

⌨️ 快捷键说明

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