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

📄 display.c

📁 51开发板调试程序
💻 C
字号:
#include<reg52.h>
#include <intrins.h>
#include "Define.h"
#include "Common.h"
#include "Set.h"

//////////////////////////////////////////////////////////////////
//extern  _dc;
//extern  _;
extern   _cs;
extern   _ucdLEDDisplayArray[];
extern   _LengthOfLEDDisplayArray;
extern   _cLCDDisplayArray[];
extern   _ucidLengthOfLCDDisplayArray;

extern   _CurrentTestItem;
extern   _TTLOfEachTestItem[];
extern   _TestItemArray[];
extern   _LCDFlag;
extern   _LEDFlag;
extern   _TestItemNeedInitFlag;
//////////////////////////////////////////////////////////////////////////////////////
UCHARIDATA  ucidT0Counter0 = 0;
UCHARIDATA  ucidT0Counter1 = 0;
UCHARIDATA  ucidT1Counter = 0;
UCHARIDATA  ucidT1Acc = 0;

UCHARDATA   ucdLCDCounter = 0;
UCHARDATA   ucdLEDCounter = 0;
UCHARDATA   ucdLEDCounterStart = 0;

/////////////////////////////////////
UCHARIDATA  TestItemTTLCounter = 0;
UCHARIDATA  TestItemPointer = 0;


/* LED显示段码表 */
UCHARCODE  uccTab[20] = {
                         0x3f,0x06,0x5b,0x4f,   /* 0 1 2 3 */
                         0x66,0x6d,0x7d,0x07,   /* 4 5 6 7 */
	                     0x7f,0x6f,0x77,0x7c,   /* 8 9 a b */
                         0x58,0x5e,0x79,0x71,   /* c d e f */
                         0x00,0x0c,0x40         /*   _|  - */
                        };

void Timer(void) interrupt 1 // T0中断 LCD  DISPLAY
{ 
    TH0=0xd8; /*12M,10ms*/
    TL0=0xf6;
    
	ucidT0Counter0++;
	ucidT0Counter1++;

	if(ucidT0Counter0 >= 100 )    //1S之后
	{
	    ucidT0Counter0 = 0;   //重新置零
		/////////////////////////////////

		TestItemTTLCounter++;
		if(TTLOfEachTestItem[CurrentTestItem] - TestItemTTLCounter <= 0)
		{
		    TestItemTTLCounter = 0;   //重新置零
            //////////////////////////

		    //TestItemPointer = ((TestItemPointer++)%TESTITEMCOUNT);

			CurrentTestItem = TestItemArray[TestItemPointer];
			TestItemNeedInitFlag = 1;
		}

	}

	if(ucidT0Counter1 >= 50)     //n ms之后
	{
	    ucidT0Counter1 = 0;    //重新置零
		///////////////////////

		//ucdLEDCounterStart = ((ucdLEDCounterStart++)%LengthOfLEDDisplayArray);
	}

	/////////////////////////////////////////////////////////////////////////////////
	/***********************一以下为LCD显示部分********************************/
	/*
    if(LCDFlag == 1)
	{
	    LCDFlag = 0;
		

	    if(ucdLCDCounter < ucidLengthOfLCDDisplayArray)
		{
		    if(ucdLCDCounter == 0)
			{
			    lcd_init(); //全黑
			}
	   
			P1 = 0x00;
			lcd_wrdata(cLCDDisplayArray[ucdLCDCounter]);
			ucdLCDCounter++;
		}
		else
		{
		    ucdLCDCounter = 0;
		    LCDFlag = 0; 
		}

		LEDFlag = 1;
    }
	*/
	////////////////////////////
	ucdLCDCounter++;
	if(ucdLCDCounter >= 20)
	{
        ucdLCDCounter = 0;
		//////////////////////////////
		//if(LCDFlag == 1)
		{
		    //P1 = 0x00;
	
	        LCDFlag = 0;
			LEDFlag = 1;
			//lcd_init(); //全黑
	        //lcd_string("ST");
			lcd_wrdata('H');
	
			//hard_10ms(2);
	
			
		}
	}
	

	/*
    if(sys10mscounter!=0)
	{
	    sys10mscounter--; //定时器10ms
	}
    if(syslimitcounter!=0)
	{
	    syslimitcounter--; //定时器10ms
	}
	*/
}

void    Display()  interrupt 3  using  2      //T1中断 LED DISPLAY 
{
    //TL1 = 0xf0;
    //TH1 = 0xf9;

	
    TL1 = 0xf0;
    TH1 = 0xf9;

	//if(LEDFlag == 1)
	{
	    

	    cs = 0;
								
	    P2 = 0;
	    P1 = P1&0xf0;
		P1 = P1|ucidT1Acc;
		ucidT1Acc = ucidT1Acc<<1;
		//P2 = uccTab[ucdLEDDisplayArray[ucidT1Counter]]; 
		P2 = 1;
		
		//////////////////////////////////////////////////////////
	
	    ucidT1Counter = ucidT1Counter + 1;
		if(ucidT1Acc >= 16)
		{
		    ucidT1Counter = 0;
	        ucidT1Acc = 1;
	    }
        
		LCDFlag = 1;
		//cs = 0;
	}
    //else
    {
        ;
    }
}

⌨️ 快捷键说明

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