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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ?

?? 此程序使用單片機C言語編寫的液晶顯示及鍵盤輸出程序
??
字號:
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

sbit LCM_RS=P3^2; //定義LCD引腳
//sbit LCM_RW=P3^3; 
sbit LCM_E=P3^4;
#define LCM_Data P0


sbit Key_Data=P3^5; //定義Keyboard引腳
sbit Key_CLK=P3^3;


//#define DDS_Word P0   //定義DDS控制字接口
//sbit RESET_9852=P1^1;
//sbit PD1=P1^5;
//sbit PD2=P1^6;
//sbit FQ_UD=P1^7;

//sbit W_CLK=P3^6;
//sbit RD_CLK=P3^7;

//sbit A0=P2^0;
//sbit A1=P2^1;
//sbit A2=P2^2;
//sbit A3=P2^3;
//sbit A4=P2^4;
//sbit A5=P2^5;
//sbit EN0=P2^6;
//sbit EN1=P2^7;

#define predefine 131   //2^32除以DDS晶振頻率(32.768MHz)

void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
void Decode(unsigned char ScanCode);
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM);

void UpdateData(void);
//void UpdateScale(void);
void UpdateLCM();
void UpdateDDS(void);

unsigned char code num1[] = {"KM0123456789Hz"};
unsigned char code num2[] = {"abcdefghijklmnopqrstuvwxyz"};
unsigned char disp_freq[16];
uchar disp_freq_1[16];
uchar disp_freq_2[16];

uchar IntNum = 0; //中斷次數(shù)計數(shù)
uchar KeyV; //鍵值
uchar BF=0; //標識是否有字符被收到
ulong freq=0;
ulong word=0;
//uchar number;

uint i,x,j;
uint a=0;

/*----------------------------------主程序-------------------------------*/

void main()
{

	Delay400Ms(); //啟動等待,等LCM講入工作狀態(tài)
	LCMInit(); //LCM初始化
	LCMInit();
	LCMInit();
	DisplayListChar(0,0,"zhang xiao guang");
	 
	Delay5Ms(); //延時

	// InitDDS();    //向DDS送入初設值

	IT1 = 0; //設外部中斷1為低電平觸發(fā)
	EX1 = 1; //開中斷
	EA=1;
	i=0;

	while(1)
	{
		do
		{
			if (BF)
			{
				if (i==0)
				{
					WriteCommandLCM(0x01); //清屏
					break;
				}
				else break;
			}
		}while(1);
		EA=0;
	    UpdateData();
		if (KeyV==0x5A)    //按下"Enter"更新頻率
		{
			WriteCommandLCM(0x01);
		    Delay5Ms();
			a=0;
			for(x=0;x<j;x++)
            {DisplayOneChar(16-j+x,0,disp_freq_1[x]);
			 //DisplayOneChar(16-i+x,1,disp_freq_2[x]);
            }
			for(x=0;x<i;x++)
            {//DisplayOneChar(16-j+x,0,disp_freq_1[x]);
			 DisplayOneChar(16-i+x,1,disp_freq_2[x]);
            }
			//UpdateScale();
          
           // for(number=0;number<16;number++)
            //disp_freq_temp[number]=disp_freq[number];
            //switch(a)
             //{case 0:a=1;
             //       break;
             // case 1:a=0;
              //      break;
             // default:
              //      break;
             //}
             
            
		    word=predefine*freq;   //計算頻率控制字
			//UpdateDDS();             //更新DDS function to be completed
		    freq=0;     //清空數(shù)據(jù)緩沖區(qū)
			i=0;
           
         
		}
		else
		{
			i++;
   			UpdateLCM();      //更新LCD顯示
			if ((KeyV==0x42) || (KeyV==0x3A) || (KeyV==0x33))
            {
				   if(!a)
					{
						j=i;
						a=1;
						i=0;
				    }
			}
	
        } 

		BF=0;       //按鍵標志歸零 
		EA=1;       //重新開中斷
	}
        

}



/*---------------------------------函數(shù)-----------------------------------*/

//寫數(shù)據(jù)
void WriteDataLCM(unsigned char WDLCM) 
{
	LCM_Data = WDLCM;
	LCM_RS=1;
	//LCM_RW=0;
	LCM_E=0; //若晶振速度太高可以在這后加小的延時
	Delay5Ms();
	LCM_E=0; //延時
	LCM_E=1;
}

//寫指令
void WriteCommandLCM(unsigned char WCLCM)
{
	LCM_Data = WCLCM;
	LCM_RS = 0;
	//LCM_RW = 0; 
	LCM_E = 0;
	Delay5Ms();
	LCM_E = 0;
	LCM_E = 1; 
}

void LCMInit(void) //LCM初始化
{
	LCM_Data=0;
	WriteCommandLCM(0x38); //三次顯示模式設置,不檢測忙信號
	Delay5Ms(); 
	WriteCommandLCM(0x38);
	Delay5Ms(); 
	WriteCommandLCM(0x38);
	Delay5Ms(); 

	WriteCommandLCM(0x38); //顯示模式設置,開始要求每次檢測忙信號
	Delay5Ms();
	WriteCommandLCM(0x08); //關閉顯示
	Delay5Ms();
	WriteCommandLCM(0x01); //顯示清屏 
	Delay5Ms();
	WriteCommandLCM(0x06); // 顯示光標移動設置
	Delay5Ms();
	WriteCommandLCM(0x0C); // 顯示開及光標設置
	Delay5Ms();
}

//按指定位置顯示一個字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{

     Y&=0x1;
	 X&=0xF; //限制X不能大于15,Y不能大于1
	 if (Y) X|=0x40; //當要顯示第二行時地址碼+0x40;
	 X|=0x80; //算出指令碼
	 WriteCommandLCM(X); //發(fā)命令字
	 WriteDataLCM(DData); //發(fā)數(shù)據(jù)
     

}

void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
	unsigned char ListLength;

	ListLength = 0;
	Y &= 0x1;
	X &= 0xF; //限制X不能大于15,Y不能大于1
	while (DData[ListLength]>0x19) //若到達字串尾則退出
	{
		if (X <= 0xF) //X坐標應小于0xF
		{
			DisplayOneChar(X, Y, DData[ListLength]); //顯示單個字符
			ListLength++;
			X++;
		}
	}
}

//5ms延時
void Delay5Ms(void)
{
	unsigned int TempCyc = 5552;

	while(TempCyc--);
}

//400ms延時
void Delay400Ms(void)
{
	unsigned char TempCycA = 5;
	unsigned int TempCycB;

	while(TempCycA--)
	{
		TempCycB=7269;
		while(TempCycB--);
	}
}
void Keyboard_out(void) interrupt 2
{
	if ((IntNum > 0) && (IntNum < 9))
	{ 
		KeyV = KeyV >> 1; //因鍵盤數(shù)據(jù)是低>>高,結合上一句所以右移一位
		if (Key_Data) KeyV = KeyV | 0x80; //當鍵盤數(shù)據(jù)線為1時為1到最高位
	}
	IntNum++;
	while (!Key_CLK); //等待PS/2CLK拉高

	if (IntNum > 10)
	{
		IntNum = 0; //當中斷11次后表示一幀數(shù)據(jù)收完,清變量準備下一次接收
		BF = 1; //標識有字符輸入完了
		EA = 0; //關中斷等顯示完后再開中斷
	}
}

void UpdateData(void)
{
	switch (KeyV)
	{
		case 0x45:   // 按下"0"
		freq=freq*10+0;
		disp_freq[i]='0';
		break;
		case 0x16:   // 按下"1"
		freq=freq*10+1;
		disp_freq[i]='1';
		break;
		case 0x1E:   // 按下"2"
		freq=freq*10+2;
		disp_freq[i]='2';
		break;
		case 0x26:   // 按下"3"
		freq=freq*10+3;
		disp_freq[i]='3';
		break;
		case 0x25:   // 按下"4"
		freq=freq*10+4;
		disp_freq[i]='4';
		break;
		case 0x2E:   // 按下"5"
		freq=freq*10+5;
		disp_freq[i]='5';
		break;
		case 0x36:   // 按下"6"
		freq=freq*10+6;
		disp_freq[i]='6';
		break;
		case 0x3D:   // 按下"7"
		freq=freq*10+7;
		disp_freq[i]='7';
		break;
		case 0x3E:   // 按下"8"
		freq=freq*10+8;
		disp_freq[i]='8';
		break;
		case 0x46:   // 按下"9"
		freq=freq*10+9;
		disp_freq[i]='9';
		break;
		case 0x33:   //按下"h"
		freq=freq*1;
        //DisplayOneChar(14,a,'H');
	    //DisplayOneChar(15,a,'z');
		//a=1;
		disp_freq[i]='H';
		disp_freq[i=i+1]='z';
        break;
		case 0x42:   // 按下"k"
		freq=freq*1000;
	    //DisplayOneChar(13,a,'K');
        //DisplayOneChar(14,a,'H');
	    //DisplayOneChar(15,a,'z');
        //a=1;
		disp_freq[i]='K';
		disp_freq[i=i+1]='H';
		disp_freq[i=i+1]='z';
		break;
		case 0x3A:   // 按下"m"
		freq=freq*1000000;
		//DisplayOneChar(13,a,'M');
        //DisplayOneChar(14,a,'H');
        //DisplayOneChar(15,a,'z');
        //a=1;
		disp_freq[i]='M';
	    disp_freq[i=i+1]='H';
        disp_freq[i=i+1]='z';	
		break;
		case 0x1c: disp_freq[i]='a';
		break;
		case 0x32: disp_freq[i]='b';
		break;
		case 0x21: disp_freq[i]='c';
		break;
		case 0x23: disp_freq[i]='d';
		break;
		case 0x24: disp_freq[i]='e';
		break;
		case 0x2b: disp_freq[i]='f';
		break;
		case 0x34: disp_freq[i]='g';
		break;
		//case 0x33: disp_freq[i]='h';
		//break;
		case 0x43: disp_freq[i]='i';
		break;
		case 0x3b: disp_freq[i]='j';
		break;
		//case 0x42: disp_freq[i]='k';
		//break;
		case 0x4b: disp_freq[i]='l';
		break;
		//case 0x3a: disp_freq[i]='m';
		//break;
		case 0x31: disp_freq[i]='n';
		break;
		case 0x44: disp_freq[i]='o';
		break;
		case 0x4d: disp_freq[i]='p';
		break;
		case 0x15: disp_freq[i]='q';
		break;
		case 0x2d: disp_freq[i]='r';
		break;
		case 0x1b: disp_freq[i]='s';
		break;
		case 0x2c: disp_freq[i]='t';
		break;
		case 0x3c: disp_freq[i]='u';
		break;
		case 0x2a: disp_freq[i]='v';
		break;
		case 0x1d: disp_freq[i]='w';
		break;
		case 0x22: disp_freq[i]='x';
		break;
		case 0x35: disp_freq[i]='w';
		break;
		case 0x1a: disp_freq[i]='z';
		break;
		
	}
}


/*void UpdateScale(void)
{
	
   
    DisplayOneChar(14,a,'H');
	DisplayOneChar(15,a,'z');
    
	switch (KeyV)
	{   
        
		case 0x42:
		DisplayOneChar(13,a,'K');
		UpdateLCM(3);
		break;
		case 0x3A:
		DisplayOneChar(13,a,'M');
		UpdateLCM(3);
		break;
		case 0x5A:
		UpdateLCM(2);
		break;
	}
    
   //if(a==1) 
    // a=0;
     
    
    
}*/

void UpdateLCM()
{
	int b,c,number1,number2;
     
   
       if(!a)
		 {
			for(b=0;b<i;b++)
		     {		
			  //for(number1=j;number<j+1;number++)
	          disp_freq_1[number1]=disp_freq[b];
			  DisplayOneChar(number1,0,disp_freq_1[number1]);
	          number1++;
		      }
				number1=0;
		  }
       else	
	      {  
				
			  //for( k=0;k<j;k++)
		         //DisplayOneChar(k,0,disp_freq_1[k]);	
			  for(c=0;c<i;c++)
			   { 
		         
		
		          //for(number2=0;number<16;number++)
		            disp_freq_2[number2]=disp_freq[c]; 		
		            DisplayOneChar(c,1,disp_freq[c]);		
                    number2++;
		        
			    }
                 number2=0;
		  
		   }
	
}

/*void UpdateDDS(void)
{
	int j;
    unsigned char CON[5];

	RESET_9852=0;
	RESET_9852=1;
	RESET_9852=0;

	FQ_UD=0;
	CON[0]=0x00;
	for(j=4;j>0;j--)
	{
		CON[j]=word;
		word=word>>8;
	}
	for(j=0;j<5;j++)
	{
		W_CLK=0;
		DDS_Word=CON[j];
		W_CLK=1;
	}
	FQ_UD=1;
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日本在线| 美女网站一区二区| 亚洲bdsm女犯bdsm网站| 日韩不卡手机在线v区| 国产一区二区成人久久免费影院 | 豆国产96在线|亚洲| 在线国产电影不卡| 欧美大片一区二区| 亚洲人成小说网站色在线| 亚州成人在线电影| 成人在线视频首页| 91精品国产色综合久久久蜜香臀| 国产三级一区二区三区| 亚洲国产精品成人综合色在线婷婷| 一区二区三区免费在线观看| 蜜乳av一区二区三区| 91小视频在线| 精品粉嫩aⅴ一区二区三区四区| 国产精品久久久久久久久晋中| 亚洲成a人片在线观看中文| 国产精品一区二区果冻传媒| 欧美日韩亚洲综合一区| 中文字幕不卡在线观看| 奇米亚洲午夜久久精品| 色综合久久久久网| 国产亚洲成年网址在线观看| 欧美精品一区二| 亚洲.国产.中文慕字在线| 懂色一区二区三区免费观看| 欧美一级免费大片| 一区二区三区**美女毛片| 国产成人精品亚洲日本在线桃色 | 91精品国产91综合久久蜜臀| 亚洲视频中文字幕| 国产suv精品一区二区883| 9191国产精品| 亚洲九九爱视频| 国产精品一区2区| 日韩午夜电影在线观看| 日韩主播视频在线| 欧美日韩视频专区在线播放| 亚洲麻豆国产自偷在线| 国产一区二区三区四区五区美女| 日韩视频免费观看高清在线视频| 青草国产精品久久久久久| 欧美剧情电影在线观看完整版免费励志电影 | 日韩欧美美女一区二区三区| 午夜精品爽啪视频| 色婷婷激情综合| 一区二区三区在线播| 成人av高清在线| 在线91免费看| 麻豆91在线观看| 精品久久人人做人人爽| 国内精品国产成人| 亚洲精品在线观看网站| 国产精品一区2区| 中文字幕免费在线观看视频一区| 亚洲乱码中文字幕| 欧美亚洲精品一区| 亚洲一区二三区| 色妹子一区二区| 三级在线观看一区二区 | 日韩黄色免费电影| 欧美美女喷水视频| 亚洲一区视频在线| 欧美r级电影在线观看| 国产一区二区免费在线| 国产网站一区二区| 免费视频一区二区| 久久网站最新地址| 99久久婷婷国产综合精品电影 | 五月激情六月综合| 欧美一级精品在线| 成人免费高清在线| 亚洲国产另类av| 精品国产电影一区二区| 成人午夜激情影院| 亚洲成人高清在线| 精品日韩一区二区三区免费视频| 国产福利一区二区三区视频| 国产精品久久久久久一区二区三区| 高清成人在线观看| 天天操天天综合网| 国产校园另类小说区| 在线免费亚洲电影| 亚洲免费色视频| 国产日韩欧美精品综合| 在线看不卡av| 国产精品一二三区| 亚洲综合无码一区二区| 久久蜜桃香蕉精品一区二区三区| 91麻豆福利精品推荐| 全部av―极品视觉盛宴亚洲| 中文字幕永久在线不卡| 精品免费国产一区二区三区四区| 成人黄色小视频| 麻豆精品视频在线观看免费| 国产精品天美传媒| 欧美精品1区2区3区| 成人午夜在线视频| 久久精品99国产精品日本| 亚洲欧美日韩国产手机在线| 欧美一卡在线观看| 在线观看视频欧美| 成人国产精品免费观看动漫 | 岛国一区二区三区| 日韩国产欧美在线播放| 国产精品福利av| 国产亚洲欧洲997久久综合| 色av成人天堂桃色av| 国产精品88888| 日韩av一区二区三区| 一区二区三区自拍| 国产精品久久夜| 久久看人人爽人人| 日韩欧美一区二区免费| 精品视频在线免费观看| 91在线视频免费观看| 91视频.com| 成人国产精品视频| 懂色av一区二区三区蜜臀| 国产伦精一区二区三区| 美女网站色91| 看电视剧不卡顿的网站| 视频一区二区三区入口| 国产精品色婷婷久久58| 亚洲天堂中文字幕| 亚洲最大成人网4388xx| 亚洲人成7777| 综合在线观看色| 亚洲欧洲日产国产综合网| 国产精品卡一卡二卡三| 国产日韩欧美电影| 中文成人av在线| 亚洲欧洲精品成人久久奇米网| 国产视频一区二区三区在线观看| 久久综合国产精品| 欧美欧美午夜aⅴ在线观看| 欧美浪妇xxxx高跟鞋交| 欧美日韩激情一区二区三区| 欧美精品 国产精品| 欧美日韩一区精品| 欧美一区国产二区| 精品福利二区三区| 国产三级一区二区| 一色屋精品亚洲香蕉网站| 久久久精品国产免大香伊| 精品国产一区二区亚洲人成毛片| 国产人成亚洲第一网站在线播放| 久久久亚洲午夜电影| 欧美激情资源网| 亚洲另类在线一区| 日韩精品一二三四| 国产一区二区h| 色美美综合视频| 欧美一级高清大全免费观看| 久久久久久久久蜜桃| 国产精品卡一卡二| 日韩精彩视频在线观看| 狠狠色丁香婷综合久久| 国内不卡的二区三区中文字幕| 91久久精品一区二区三| 51精品视频一区二区三区| 精品国产乱子伦一区| 亚洲免费av高清| 久久99精品久久久久久动态图| 国产成人在线网站| 色嗨嗨av一区二区三区| 国产亚洲视频系列| 图片区小说区区亚洲影院| 国产伦精品一区二区三区视频青涩| 99久久婷婷国产综合精品| 欧美日本一区二区| 国产欧美视频一区二区| 亚洲一区二区五区| 97久久人人超碰| 久久久久久9999| 亚洲国产成人av好男人在线观看| 国产在线不卡一区| 欧美在线观看视频一区二区三区| 精品久久久久一区二区国产| 亚洲精选一二三| 国产在线不卡一卡二卡三卡四卡| 在线观看区一区二| 欧美国产精品久久| 蓝色福利精品导航| 欧美日韩免费观看一区三区| 国产精品萝li| 狠狠色2019综合网| 337p亚洲精品色噜噜噜| 亚洲男同1069视频| 国产成人福利片| 久久免费视频色| 美女视频免费一区| 制服丝袜av成人在线看| 国产精品久久久久久久久免费相片| 国产成人无遮挡在线视频| 日韩一区二区三区视频| 一区二区三区欧美亚洲|