亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myboard.c

?? 單片機(jī)電子音樂程序
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
                                 0x04,0x05,0x06,0x0b,	         /*鍵盤4,5,6,B*/
                                 0x07,0x08,0x09,0x0c,	         /*鍵盤7,8,9,C*/
                                 0x0e,0x00,0x0f,0x0d};           /*鍵盤*,0,#,D*/
const uint code c_musicFreq[]={64260,64400,64524,64580,          /*低音5,6,7,中音1*/
                               64684,64777,64820,64898,          /*中音2,3,4,5*/
							   64968,65030,65058,65110,          /*中音6,7,高音1,2*/
							   65157,65178,65217};               /*高音3,4,5*/
/*Constant Tables Over*/
/*************************************************************************/
/*System Variables*/
uint keyFlag;					
uchar hour=10;min=0;sec=0;
uchar DisplayArray[6];	
uchar password[6]={0x00,0x00,0x00,0x00,0x00,0x00};	
static uchar LEDFlag=0;
bit LEDCycle100msFlag=0,LEDCycle500usFlag=0,LEDCycle10msFlag=0,LEDAutoFlag=1,LEDKeyFlag=0;
static uchar s_musicCounter=0x00,s_tableCounter;
bit musicAutoFlag=1,musicKeyFlag=1;
uchar Int0Flag,TH0Global,TL0Global;
uchar UARTKeyFlag=0xaa,modifyTimeFlag=0;
/*System Variables Over*/
/*************************************************************************/
/*System Functions*/
void IdleForLogin();              /*登陸系統(tǒng)前的密碼檢測(cè)模塊*/
void Login(void);	              /*系統(tǒng)登錄模塊*/
void MainSystem(void);            /*系統(tǒng)主程序*/
void ScanKeys(void);              /*掃描鍵盤模塊*/
uchar KeyJudge(void);             /*按鍵預(yù)處理*/
void KeyHandle(uchar keyIndex);   /*按鍵處理模塊*/
void LEDHandle(void);             /*流水燈方案選擇*/
void AutoShow(void);              /*開始流水燈自動(dòng)循環(huán)演示*/
void StopAutoShow(void);          /*停止流水燈自動(dòng)循環(huán)演示*/
void DropDown(void);              /*水滴方案*/
void CircleFlash(void);	          /*環(huán)掃方案*/
void GradualFlash(void);          /*漸明漸暗方案*/
void SlowFlash(void);             /*慢閃方案*/
void FastFlash(void);             /*快閃方案*/
void ScrShift(uchar keyIndex);	  /*六位數(shù)碼管順序左移*/
void ClearScr(void);              /*清屏*/
void ReadPassword();  	          /*從24C02中讀取密碼*/
void WritePassword();	          /*將屏幕的六位數(shù)字作為密碼存入24C02中*/
void StatusSend(void);	          /*下位機(jī)狀態(tài)反饋(串口)*/  
void Delay (uint value);          /*10us延時(shí)*/
void ModifyTime(void);			  /*調(diào)整時(shí)間*/
void ScanSeg7();                  /*數(shù)碼管掃描顯示*/	
/*System Functions Over*/
/*************************************************************************/
/*IIC Varialbes & Functions*/
sbit SCL=P3^4;				      /*定義IIC總線的時(shí)鐘線*/
sbit SDA=P3^5;				      /*定義IIC總線的數(shù)據(jù)線*/
void StartIIC();                  /*發(fā)送IIC總線啟動(dòng)時(shí)序*/       
void StopIIC();                   /*發(fā)送IIC總線停止時(shí)序*/ 
void IICClockDelay();             /*IIC總線時(shí)鐘電平延時(shí)*/
void IICAck(bit ackValue);        /*MCU對(duì)24C02的應(yīng)答函數(shù)*/
uchar IICRcvByte();               /*MCU從24C02接收一個(gè)字節(jié)*/
bit IICSendByte(uchar byteData);  /*MCU向24C02發(fā)送一個(gè)字節(jié)*/
/*MCU向24C02的指定地址寫入若干個(gè)字節(jié)數(shù)據(jù)函數(shù)*/
bit IICWrite(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num); 
/*MCU從24C02的指定地址度去若干個(gè)字節(jié)數(shù)據(jù)函數(shù)*/
bit IICRead(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num);  
/*IIC Varialbes & Functions Over*/

/*************************************************************************/
/*************************************************************************/
void main(void)		    /*主程序入口*/
{
    TMOD=0x11;			/*Timer0工作在案MODE1,16位定時(shí)器,Timer1工作在MODE2,自動(dòng)重新裝載模式*/
       					/*|    定時(shí)器1        |     定時(shí)器1       |*/
       					/*| GATE|C/T| M1 | M0 | GATE|C/T| M1 | M0 |*/
	TH0=(65536-SCAN_CYCLE)/256; /*設(shè)定Timer0每隔SCAN_CYCLEu中斷一次*/
    TL0=(65536-SCAN_CYCLE)%256;
    TR0=1;				        /*啟動(dòng)TEMER0*/
    TH1=(65536-10000)/256;		/*設(shè)定Timer1每10ms中斷一次*/
    TL1=(65536-10000)%256;
	T2CON=0x38;			/*令定時(shí)器2作為串口波特率發(fā)生器
       					/*|TF2|EXF2|RCLK|TCLK|EXEN2|TR2|C/T2|CP/RL2|*/
	TL2=0xd9;			/*設(shè)定串口波特率為9600,晶振為12MHz*/
	TH2=0xff;		
	RCAP2L=0xd9;	    /*根據(jù)串口波特率9600設(shè)定自動(dòng)重載寄存器*/
	RCAP2H=0xff;		
    TR2=1;				/*啟動(dòng)定時(shí)器2*/
	SCON=0x50;			/*設(shè)定UART工作在MODE3模式,可傳送和接收數(shù)據(jù),REN=1*/
					    /*| SM0| SM1| SM2| REN| TB8| RB8| TI | RI |*/
    IE=0x9a;			/*使能總中斷、Timer0,1中斷、外部中斷1,2*/
       					/*| EA| - | ET2| ES | ET1| EX1| ET0| EX0|*/
    IP=0x12;			/*優(yōu)先Timer0中斷*/
       					/*| - | - | PT2| PS | PT1| PX1| PT0| PX0|*/
    ReadPassword();	    /*先把24C02中的密碼讀到密碼緩沖區(qū)中*/
    ClearScr();			/*預(yù)清屏*/
    P3_3=1;				/*關(guān)喇叭*/
	P2=0x00;            /*點(diǎn)亮8個(gè)發(fā)光二極管*/
    while(1)
	{
		IdleForLogin();
	}
}
/*************************************************************************/
void IdleForLogin()                  /*登陸系統(tǒng)前的密碼檢測(cè)模塊*/
{
    static uint s_UARTSendCounter;
    uchar keyPtr,i;
    keyPtr=KeyJudge();               /*鍵盤掃描判斷*/
	if(keyPtr!=0x55)
    {
		switch(c_keyCode[keyPtr])
        {
	    case 0x0a: ReadPassword();   /*按A鍵:讀取24C02中的密碼并顯示*/
	               for(i=0;i<5;i++)  /*顯示密碼1秒后恢復(fù)*/
			       {
          	           Delay(20000);   
			       }
			       ClearScr();
                   break;		
        case 0x0b: WritePassword();  /*按B鍵:將屏幕中的六位數(shù)字設(shè)為密碼*/
			       ClearScr();      
                   break;		
        case 0x0c: ClearScr();       /*按C鍵:清屏*/
                   break;		
        case 0x0d: Login();          /*按D鍵:比較密碼,如果密碼正確則進(jìn)入系統(tǒng)*/	
                   break;		
        case 0x0e: 	                 /*按*鍵:保留*/			       
                   break;		                   
        case 0x0f:      		     /*按#鍵:保留*/
                   break;		
        default:   ScrShift(keyPtr); /*以上均不是則為數(shù)字鍵,六位數(shù)碼管順序左移*/
                   break;		
        }
		UARTKeyFlag=0xaa;            /*清串口鍵盤命令標(biāo)志位*/
	}
	if(++s_UARTSendCounter>200)      /*定期上傳系統(tǒng)狀態(tài)*/
	{
	    s_UARTSendCounter=0;
	    StatusSend();
	}
}
/*************************************************************************/
void Login(void)				/*系統(tǒng)登錄模塊*/
{
    uchar i;			
    for(i=0;i<6;i++)			/*比較密碼是否正確*/
    {
        if(DisplayArray[i]!=password[i])		
        {
		    return;			
		}
    }
    TR1=1;                      /*啟動(dòng)系統(tǒng)時(shí)基Timer1,中斷周期10ms*/
    ClearScr();		            /*清屏*/
    s_musicCounter=0x01;
    LEDFlag=0x01;
	ModifyTime();               /*初始設(shè)定時(shí)間*/
    while (1)
    {
	    MainSystem();           /*進(jìn)入系統(tǒng)主程序*/
	}
}
/*************************************************************************/
void MainSystem(void)           /*系統(tǒng)主程序*/
{
    static uint s_UARTSendCounter;
	uchar keyPtr;
    keyPtr=KeyJudge();          /*鍵盤掃描判斷*/
	if(keyPtr!=0x55)            /*如果按某鍵則進(jìn)行相應(yīng)處理*/
    {
		KeyHandle(keyPtr);
		UARTKeyFlag=0xaa;       /*清串口鍵盤命令標(biāo)志位*/
    }
	LEDHandle();                /*流水燈處理模塊*/
	if(++s_UARTSendCounter>200) /*定期上傳系統(tǒng)狀態(tài)*/
	{
	    s_UARTSendCounter=0;
	    StatusSend();
	}
	if(modifyTimeFlag==1)
	{
	    ModifyTime();		    /*根據(jù)新秒值調(diào)整時(shí)間*/
		modifyTimeFlag=0;
	}
}
/*************************************************************************/
void ScanKeys(void)	                        /*掃描鍵盤模塊*/
{
	uchar scanValue=0xef,iScan,scanTempUchar;
    for(iScan=0;iScan<4;iScan++)
    {
        P1=scanValue;                       /*發(fā)掃描值*/
        scanTempUchar=P1;                   /*讀入掃描值*/
        if((scanTempUchar&0x01)==0x00)      /*第一列被按*/
        {  
            keyFlag|=(0x0001<<(iScan*4+0)); /*置此鍵的標(biāo)志位*/
        }
        else
        {  
            keyFlag&=~(0x0001<<(iScan*4+0));/*清此鍵的標(biāo)志位*/
        }
        if((scanTempUchar&0x02)==0x00)      /*第二列被按*/
        { 
            keyFlag|=(0x0001<<(iScan*4+1)); /*置此鍵的標(biāo)志位*/
        }
        else
        {  
            keyFlag&=~(0x0001<<(iScan*4+1));/*清此鍵的標(biāo)志位*/
        }                                                
        if((scanTempUchar&0x04)==0x00)      /*第三列被按*/
        { 
            keyFlag|=0x0001<<(iScan*4+2);   /*置此鍵的標(biāo)志位*/     
        }
        else
        { 
            keyFlag&=~(0x0001<<(iScan*4+2));/*清此鍵的標(biāo)志位*/
        }    
        if((scanTempUchar&0x08)==0x00)      /*第四列被按*/
        { 
            keyFlag|=0x0001<<(iScan*4+3);   /*置此鍵的標(biāo)志位*/     
        }
        else
        { 
            keyFlag&=~(0x0001<<(iScan*4+3));/*清此鍵的標(biāo)志位*/
        }
        scanValue=scanValue<<1|0x01;        /*置下一次掃描值*/
    }  
}
/*************************************************************************/
uchar KeyJudge(void)             /*按鍵預(yù)處理*/
{
    uchar j,counterKeyPressedNum;
    uchar keyRet=0x55;           /*初始按鍵返回碼設(shè)定為無按碼0x55*/
    uint uintTemp;
    ScanKeys();                  /*掃描鍵盤*/
    if(keyFlag!=0)
    {
        Delay(1000);             /*延時(shí)10ms以消除抖動(dòng)*/
        ScanKeys(); 
        P1=0x0f;
		while((P1&0x0f)!=0x0f);  /*沒松開按鍵就等按鍵松開*/
        counterKeyPressedNum=0;  
        for(j=0;j<16;j++)
        { 
            uintTemp=((uint)0x0001)<<j;
            if((keyFlag&uintTemp)==uintTemp)/*依次檢測(cè)鍵盤掃描標(biāo)志KeyFlag,如某位置一則按鍵個(gè)數(shù)寄存器加一*/
            {   
                counterKeyPressedNum++;
				keyRet=j;
            }
        }
        if(counterKeyPressedNum>1)   /*如果不止一個(gè)鍵被按則丟棄此狀態(tài)返回?zé)o按碼0x55*/
        {
            return 0x55;            
        }  
		else                         /*某鍵被按,返回此鍵的標(biāo)識(shí)碼*/
		{
		    return(keyRet);         
		}
	}
	if(UARTKeyFlag!=0xaa)            /*如果上位機(jī)發(fā)鍵盤指令則返回此鍵盤值*/
	{
	    return(UARTKeyFlag);
	}
	return(0x55);	
}
/*************************************************************************/
void KeyHandle(uchar keyIndex)    /*按鍵處理模塊*/
{
    switch(c_keyCode[keyIndex])   /*按數(shù)字鍵N:循環(huán)播放第N首音樂*/
    {
	case 0x00: s_musicCounter=0; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x01: s_musicCounter=1; musicAutoFlag=0; s_tableCounter=0x00; break;
    case 0x02: s_musicCounter=2; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x03: s_musicCounter=3; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x04: s_musicCounter=4; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x05: s_musicCounter=5; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x06: s_musicCounter=6; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x07: s_musicCounter=7; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x08: s_musicCounter=8; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x09: s_musicCounter=9; musicAutoFlag=0; s_tableCounter=0x00; break;
	case 0x0a: sec++;                         /*按A鍵:調(diào)整時(shí)鐘秒值*/
          	   ModifyTime();   	
               break;		
    case 0x0b: min++;                         /*按B鍵:調(diào)整時(shí)鐘分值*/
			   ModifyTime();      
               break;		
    case 0x0c: hour++;                        /*按C鍵:調(diào)整時(shí)鐘時(shí)值*/
	           ModifyTime();
               break;		
    case 0x0d: if(musicKeyFlag==1)            /*按D鍵:開始/停止音樂自動(dòng)循環(huán)播放*/
	           {
	               s_musicCounter=1;
				   musicAutoFlag=1;
				   musicKeyFlag=~musicKeyFlag;
			   }
			   else
			   {
			       s_musicCounter=0;
				   musicAutoFlag=0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃一区二区三区在线观看| 欧美性受xxxx| 亚洲精品午夜久久久| 色综合久久久久| 亚洲国产毛片aaaaa无费看| 欧美精品欧美精品系列| 日韩电影在线观看网站| 久久综合久久综合久久| av成人免费在线| 亚洲成av人影院| 日韩精品一区二区三区四区| 国产不卡在线一区| 亚洲精品久久7777| 日韩一区二区在线观看视频| 国产成人欧美日韩在线电影| 亚洲麻豆国产自偷在线| 91精品在线观看入口| 国产成人在线视频网站| 亚洲女爱视频在线| 日韩三级在线免费观看| 成人av在线影院| 首页国产欧美久久| 久久久久久久久久久久久久久99 | 首页亚洲欧美制服丝腿| 精品免费国产二区三区| 不卡高清视频专区| 日韩在线观看一区二区| 欧美激情一区二区三区蜜桃视频 | 欧美久久久久久久久久| 国产精品18久久久久久久网站| 亚洲免费观看高清在线观看| 91精品国产乱码久久蜜臀| 成人免费高清在线观看| 日欧美一区二区| 国产精品久久久久久久久动漫| 欧美肥妇bbw| 成人动漫一区二区| 男男gaygay亚洲| 国产日韩欧美一区二区三区综合| 91福利小视频| 国产福利精品导航| 日韩精品亚洲一区| 国产精品传媒视频| 欧美一级高清片在线观看| 北条麻妃国产九九精品视频| 蜜臀av亚洲一区中文字幕| 亚洲欧美一区二区三区国产精品| 日韩一级黄色片| 在线亚洲+欧美+日本专区| 国产一区视频导航| 午夜精彩视频在线观看不卡| 日本一区二区三区电影| 欧美一区二区三区视频| 99视频精品全部免费在线| 久久精品国产色蜜蜜麻豆| 一级中文字幕一区二区| 国产日韩三级在线| 91精品福利在线一区二区三区 | 欧美三级电影精品| 成人精品鲁一区一区二区| 免费看日韩精品| 亚洲制服欧美中文字幕中文字幕| 中文字幕不卡在线观看| 日韩欧美在线观看一区二区三区| 日本乱码高清不卡字幕| 成人免费视频一区二区| 国产制服丝袜一区| 欧美aaaaa成人免费观看视频| 夜夜爽夜夜爽精品视频| 国产精品国产三级国产| 久久精品欧美一区二区三区不卡| 欧美一二三区精品| 欧美视频精品在线| 色婷婷久久综合| 99久久精品99国产精品| 国产成人精品免费看| 国产在线一区观看| 久久不见久久见中文字幕免费| 亚洲成av人片| 亚洲午夜av在线| 一区二区视频免费在线观看| 中文字幕一区二| 中文无字幕一区二区三区| 久久精品在这里| 欧美精品一区二区不卡 | 国产精品久久久久9999吃药| 久久网站最新地址| 精品美女在线播放| 欧美成人猛片aaaaaaa| 欧美精品一二三| 欧美剧在线免费观看网站| 欧美日韩一区成人| 精品视频在线免费观看| 欧美色成人综合| 欧美性xxxxx极品少妇| 91久久久免费一区二区| 日本韩国欧美一区| 91福利在线看| 欧美在线免费视屏| 欧美色电影在线| 欧美高清视频在线高清观看mv色露露十八 | 色狠狠一区二区| 色婷婷综合久久久久中文一区二区| 97成人超碰视| 色狠狠色噜噜噜综合网| 在线影院国内精品| 欧美日韩一级片网站| 欧美日韩成人综合在线一区二区| 欧美精品在线视频| 日韩免费高清av| 亚洲精品一区在线观看| 久久一区二区三区四区| 国产欧美中文在线| 国产精品福利电影一区二区三区四区| 中文字幕在线一区免费| 亚洲欧美电影院| 亚洲福利一区二区| 日本美女一区二区三区| 精品亚洲成a人| 国产超碰在线一区| 91在线免费视频观看| 日本精品裸体写真集在线观看| 欧美日韩亚洲综合在线| 日韩一区二区电影在线| 欧美精品一区二区久久久| 欧美激情一区二区三区不卡| 最好看的中文字幕久久| 夜夜嗨av一区二区三区四季av| 亚洲成年人网站在线观看| 美日韩黄色大片| 国产福利一区二区三区视频 | 波多野结衣亚洲一区| 色av成人天堂桃色av| 91精品免费在线观看| 精品福利av导航| 国产精品女同一区二区三区| 欧美一区二区三区在线观看| 色婷婷精品大在线视频| 欧美日韩视频在线观看一区二区三区 | 国产欧美中文在线| 国产免费成人在线视频| 精品国产凹凸成av人网站| 欧美日韩大陆一区二区| 国产一区二区三区免费播放 | 欧美久久久久久久久中文字幕| 成人免费不卡视频| 日韩高清在线观看| 韩国女主播成人在线| 韩国成人精品a∨在线观看| 性做久久久久久久免费看| 亚洲一区二区欧美| 亚洲最大成人网4388xx| 亚洲国产精品一区二区久久恐怖片| 欧美国产乱子伦| 精品国产伦一区二区三区免费| 欧美成人a视频| 26uuu久久综合| 精品国产一区a| 欧美日韩小视频| 欧美日韩一级大片网址| 在线观看91精品国产麻豆| 3atv一区二区三区| 911精品产国品一二三产区| 欧美一区二区三区在线| 91社区在线播放| 91精品办公室少妇高潮对白| 91小视频在线免费看| 国产毛片精品一区| 久久国产精品无码网站| 热久久一区二区| 久久国产精品色| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲国产成人tv| 亚洲成人午夜影院| 久久99国产精品免费网站| 久久99精品久久久| 国产激情视频一区二区三区欧美 | 中文字幕日韩精品一区| 亚洲国产中文字幕| 国产91精品一区二区麻豆网站 | 91在线视频18| 欧美一级国产精品| 亚洲人成网站在线| 国产精品资源在线看| 欧美日韩中文字幕精品| 中文字幕久久午夜不卡| 另类调教123区| 91国偷自产一区二区三区观看| 2023国产一二三区日本精品2022| 亚洲一区二区美女| 9久草视频在线视频精品| 久久综合久久综合九色| 偷拍与自拍一区| 色妹子一区二区| 国产精品视频麻豆| 国产乱码精品一区二区三区五月婷 | 国产福利精品一区二区| 日韩欧美色电影| 亚洲va中文字幕| 色伊人久久综合中文字幕|