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

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

?? t9_v1.c

?? 基于51單片機的T9輸入法的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:


	  }

}



/**************************************************************************************************
*
*顯示6*16點陣的英文函數
*函數聲明:void display_e(uchar page,uchar col,uchar code *str,uchar n);
*函數參數:page為頁地址(0-7),col為列地址(0-127),str為數組名,n為要顯示第n個英文點陣
*函數作用:
*
**************************************************************************************************/
void display_e(uchar page,uchar col,uchar code *str,uchar n)
{
    uchar i,j,num;
	if(col<=58)
	{
		  CS2=1;CS1=0; 
		  for(j=0;j<2;j++)
	      {
		        write_cmd(PAGE+page+j);write_cmd(COL+col);
		        for(i=0;i<6;i++)
			          write_data(str[n*12+6*j+i]);
	      }
	}
	else if(col>=64)
	{
		  CS2=0;CS1=1;
		  col=col-64;
		  for(j=0;j<2;j++)
	      {
		        write_cmd(PAGE+page+j);write_cmd(COL+col);
		        for(i=0;i<6;i++)
			          write_data(str[n*12+6*j+i]);
	      }

	}
	else if(col>58&&col<64)
	{
	      num=64-col;
		  CS2=1;CS1=0;
		   
		  for(j=0;j<2;j++)
	      {
		        write_cmd(PAGE+page+j);write_cmd(COL+col);
		        for(i=0;i<num;i++)
			          write_data(str[n*12+6*j+i]);
	      }
		  CS2=0;CS1=1;
		  col=0;
		  for(j=0;j<2;j++)
		  {
		          write_cmd(PAGE+page+j);write_cmd(COL+col);
		          for(i=num;i<6;i++)
		                write_data(str[n*12+6*j+i]);  
		  }
	}

	

}



/**************************************************************************************************
*顯示小數字函數
*函數聲明:void display_num(uchar page,uchar col,uchar code *str,uchar n);
*函數參數:page為頁地址(0-7),col為列地址(0-127),str為數組名
*函數作用:顯示數字0-9
*
*
**************************************************************************************************/
void display_num(uchar page,uchar col,uchar code *str,uchar n)
{
    uchar i;
	if(col<64)
	{
		  CS2=1;CS1=0;
	}
	else
	{
		  CS2=0;CS1=1;
		  col=col-64;
	}
	write_cmd(PAGE+page);write_cmd(COL+col);
	for(i=0;i<5;i++)
		write_data(str[5*n+i]);
	

}




/**************************************************************************************************
*
*界面1函數
*函數聲明:void screen_1();
*函數參數:無
*函數作用:顯示歡迎界面
*
**************************************************************************************************/
void screen_1()
{
      uchar i;
	  uchar ii,iii;

	  init();
	  cls();

	  for(i=0;i<7;i++)display_h(2,20+12*i,str_2,i);
	  for(i=0;i<3;i++)display_h(4,44+12*i,str_2,i+7);
	  for(i=0;i<10;i++)display_h(6,4+12*i,str_2,10+i);
	  while(1)
	  {
	         ii=key_ii();
			 iii=key();
			 if(ii!=0xff||iii!=0)
			 {
			       state=1;
				   break;
			 }
	       
	  }

}


/**************************************************************************************************
*
*界面2函數
*函數聲明:void screen_2();
*函數參數:無
*函數作用:
*
*		 1:[讀短信]
*		 2:[寫短信]
*	 確定		   取消
**************************************************************************************************/
void screen_2()
{
      uchar i;
	  uchar ii,iii;
	  uchar cnt=0;

	  init();
	  cls();
	  display_h(2,40-12,symbol,0);
	  display_h(2,40+36,symbol,1);

	  display_h(2,40,symbol,2);
	  display_h(2,40+12,symbol,4);
	  display_h(2,40+24,symbol,5);

      display_e(2,5,b_num,1);
	  display_e(2,5+6,b_num,10);

	  display_e(4,5,b_num,2);
	  display_e(4,5+6,b_num,10);
	  for(i=0;i<3;i++)display_h(4,40+12*i,symbol,3+i);
	  for(i=0;i<2;i++)display_h(6,12*i,str_1,i);	     //顯示“確定”
	  for(i=0;i<2;i++)display_h(6,100+12*i,symbol,6+i);  //顯示“取消”
	
	  while(1)
	  {
	        iii=key();
			ii=key_ii();
			if(ii==8)
			{
			      
			     display_h(2,40-12,symbol,0);   //“〔”
	             display_h(2,40+36,symbol,1);	// “〕”
				 display_h(4,28,str_1,4);
				 display_h(4,76,str_1,4);
				 cnt=0; 
			}
			else if(ii==9)
			{
			     display_h(4,40-12,symbol,0);   //“〔”
	             display_h(4,40+36,symbol,1);	// “〕”
				 display_h(2,28,str_1,4);
				 display_h(2,76,str_1,4);
				 cnt=1; 
			}
			if (iii==6)
			{
			     if(cnt==1)
				 {
				       state=2;
				       break; 
				 }
				 else if(cnt==0)
				 {
				       state=3;
				       break;
				 }
			     
			}
			if(iii==7)
			{
			      state=0;
				  break;
			}
	  }


}


/**************************************************************************************************
*
*界面3函數
*函數聲明:void screen_3();
*函數參數:無
*函數作用:用于寫短信
*
**************************************************************************************************/
void screen_3()
{
      unsigned char *p,input_string[5];
	  unsigned char *temp;//用于保存上一次查找的漢字 
	  uchar page=0;
	  uchar i,ii,iii;
	  uchar cnt=0;
	  uchar keycode,length=0;
	  //uchar iic;
      //unsigned char *p_mem;
	  unsigned int mem,cmp;
	  
	  length_h=0;     
	  init();
	  cls();
	  line_v(63,16,15);
	  line_v(64,16,15);
	  line_h(0,30,128);

	  //========================================================
	  //中間為測試代碼
	  //IICWrite(0x100,84);
	  //IICWrite(0x150,88);
	  //iic=IICRead(0x100);
	  //iic=IICRead(0x150);
	  //p=T9PY("334",3);
	  //mem=(unsigned int)p;
	  //IICWrite(0x150,mem&0xff);
	  //IICWrite(0x151,mem>>8);
	  //mem=IICRead(0x150)+(IICRead(0x151)<<8);
	  //p=(uchar code *)mem;
	  //for(i=0;i<8;i++)display_h(0,12*i,p,i);
	  //========================================================


	  for(i=0;i<2;i++)
	  {
	        display_h(6,i*12,str_1,i);		  //顯示“確定”
			display_h(6,104+i*12,str_1,i+2);  //顯示“拼音”
	  }
	  line_v(0,0,16);						  //顯示光標

	  
      while(1)
	  {
	        iii=key();//判斷“確定”鍵是否被按下
			if(iii==6)
			{
			      state=1;
				  break;
			}
			if(cnt==0)	                      //CNT=0時為拼音輸入狀態
			{								  //掃描鍵盤,并且判斷是否是在“1”-“9”之間
			      ii=key_ii();
			      if(ii!=0xff)
			      {
				        if(ii==0)keycode='7';
						if(ii==1)keycode='8';
						if(ii==2)keycode='9';
						if(ii==4)keycode='4';
						if(ii==5)keycode='5';
						if(ii==6)keycode='6';
						if(ii==9)keycode='2';
						if(ii==10)keycode='3';
						
						if(ii>=0&&ii<=10&&ii!=3&&ii!=8)			           //當按鍵為字母鍵時
				        {		
                        	  for(i=0;i<8;i++) display_h(4,i*16+5,str_1,4);//清屏
							  for(i=0;i<8;i++)display_num(4,i*16,str_num,10);
							  input_string[length]=keycode;	               //將鍵值賦給input_string數組
				              p=T9PY(input_string,length+1);		   //查表,并且取得點陣表的地址
							  if(PY_num>0)                                  //find為1表示找到了與輸入拼音匹配的漢字
						      {											//保存下此次的漢字點陣地址,一旦下次沒找到相匹配的漢字
							        temp=p;								//則調用顯示最后匹配的漢字,否則將顯示亂碼
									for(i=0;i<8;i++)display_h(4,i*16+5,T9PY_mb[0]->PY_mb,i);     //顯示漢字		  
                                    length++;								       //length用于記錄輸入字母的長度,每按一次鍵length的值加一
							        for(i=0;i<length;i++)
						                  display_e(2,66+6*i,asc,*(p_py+i)-'a'); //顯示輸入的拼音,字母的點陣放在asc數組中
                                    line_h(0,30,128);
									page=0;    //重新輸入拼音,page置為0,否則會出錯
							  }
							  else
							  {
							        for(i=0;i<8;i++)display_h(4,i*16+5,temp,i);     //顯示漢字

							  }
                        }
						if (ii==15&&(PY_num>0))
						{
						      for(i=0;i<8;i++) display_h(4,i*16+5,str_1,4);//清屏
							  for(i=0;i<8;i++)display_num(4,i*16,str_num,10);
							  page++;
							  if(page==PY_num)page=0;
							  for(i=0;i<8;i++)display_h(4,i*16+5,T9PY_mb[page]->PY_mb,i);     //顯示漢字		  
                                   								     
							  for(i=0;i<length;i++)
						            display_e(2,66+6*i,asc,*(T9PY_mb[page]->PY+i)-'a'); //顯示輸入的拼音,字母的點陣放在asc數組中
                              line_h(0,30,128);
						      
						      
						}


						if(ii==3&&length>0)//此鍵為選漢字鍵,當此鍵按下時會在每個漢字的左上角出現小的數字
						{
						      for(i=0;i<8;i++)display_num(4,i*16,str_num,i);
							  cnt=1;
						}
						if(ii==12)//當按鍵為刪除鍵時
						{
						      
							  if (length>0)//當拼音長度大于0時
							  {
							      length--;
								  for(i=0;i<8;i++) display_h(4,i*16+5,str_1,4);//清屏
							      for(i=0;i<8;i++)display_num(4,i*16,str_num,10);
								  if(length>0)
								  {
								        
										p=T9PY(input_string,length);     
								        for(i=0;i<8;i++)display_h(4,i*16+5,p,i);//顯示漢字
								        for(i=0;i<6;i++)display_e(2,66+6*i,asc,26);
								        for(i=0;i<length;i++)
						                display_e(2,66+6*i,asc,*(p_py+i)-'a');
								   }
								   else//當全部刪除時,指針P指向數組PY_mb_a
								   {
								        p=PY_mb_a;
									    for(i=0;i<8;i++)display_h(4,i*16+5,p,i);//顯示漢字
								        for(i=0;i<6;i++)display_e(2,66+6*i,asc,26);
								   }
							       line_h(0,30,128);
							  }
							  else if(length_h>0)
							  {
								      length_h--;
									  display_h(0,length_h*12,str_1,4);
									  display_h(0,(length_h+1)*12,str_1,4);
									  line_v(length_h*12,0,16);
							  }
						}



			      }
				  		     
			}
		    else if(cnt==1)//選漢字狀態,輸入數字“0”-“7”,選擇相應的漢字
			{
			       ii=key_ii();
				   if(ii!=0xff)
				   {
				        if(ii==0)keycode=7;
						if(ii==4)keycode=4;
						if(ii==5)keycode=5;
						if(ii==6)keycode=6;
						if(ii==8)keycode=1;
						if(ii==9)keycode=2;
						if(ii==10)keycode=3;
						if(ii==13)keycode=0;

						if(ii==0||ii==4||ii==5||ii==8||ii==6||ii==9||ii==10||ii==13)
				        {
				              if(length_h==10)
					          {
					                length_h=0;
						    
						            for(i=0;i<10;i++)display_h(0,i*12,str_1,4);
						            display_e(0,120,asc,26);  
					          }
					          display_h(0,length_h*12,T9PY_mb[page]->PY_mb,keycode);
							  //在AT24C64的0-255地址空間開辟一個緩存,用于存儲當前正在編輯的短信
					  		  mem=(unsigned int)(T9PY_mb[page]->PY_mb)+keycode*24;

							  do
							  {
							        IICWrite(length_h*2,mem&0xff);
							        //delay(200);
	                                IICWrite(length_h*2+1,mem>>8);
							        //在此加入防錯程序,先把漢字點陣的地址寫入AT24C64,然后讀出直到相等時結束
									//cmp=IICRead(2*length_h);
									cmp=IICRead(2*length_h)+(IICRead(2*length_h+1)<<8);
									//此處優先級一定要注意,“+”的優先級大于“<<”,所以后面的括號不要忘記了!
							  }while(mem!=cmp);


					          length_h++;
					          line_v(length_h*12,0,16);
					  
					          //清屏
					          for(i=0;i<8;i++) display_h(4,i*16+5,str_1,4);
	                          for(i=0;i<8;i++)display_num(4,i*16,str_num,10);
					          for(i=0;i<length;i++)display_e(2,66+6*i,asc,26);
					          line_h(0,30,128);	
					          length=0;
					          cnt=0;
						}//end if(ii==0||ii==4||ii==5||ii==8||ii==6||ii==9||ii==10||ii==13) 
				   }//end if(ii!=0xff)
			      
			}	          
	  }//end while(1)
    
        
    
}//end main()

	   
void screen_4()
{
      uchar i,iii;
	  unsigned char code *p_mem;

      init();
      cls();

	  display_h(0,0,symbol,8);
	  for(i=0;i<2;i++)
	  {
	        
			p_mem=(uchar code *)(IICRead(2*i)+(IICRead(2*i+1)<<8));
			//此處優先級一定要注意,“+”的優先級大于“<<”,所以后面的括號不要忘記了!
			display_h(0,20+12*i,p_mem,0);
	        
	  }

	  display_e(0,44,b_num,12);
	  display_e(0,50,b_num,1);
	  display_e(0,50+6,b_num,11);
	  display_e(0,50+12,asc,'t'-'a');
	  display_e(0,50+18,asc,'x'-'a');
	  display_e(0,50+24,asc,'t'-'a');

	  while(1)
	  {
	        iii=key();
			if(iii==7)
			{
			      state=1;
				  break;
			}
	        
	  }
	        
}


/**************************************************************************************************
*
*主函數
*函數聲明:void main (void) ;
*函數參數:無
*函數作用:實現一個有限的狀態機
*
**************************************************************************************************/
void main () 
{
	  
	  while(1)
	  {
	          if(state==0)        screen_1();//歡迎界面
			  else if(state==1)   screen_2();
			  else if(state==2)   screen_3();//寫短信界面
			  else if(state==3)	  screen_4();//讀短信界面
	  }
        
    
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
喷水一区二区三区| 99re这里只有精品视频首页| 国产99久久久国产精品潘金网站| 91片黄在线观看| 精品国产乱码久久久久久免费 | 在线不卡的av| 国产精品女主播av| 国内成+人亚洲+欧美+综合在线| 在线视频你懂得一区| 国产精品欧美一区二区三区| 蜜桃久久精品一区二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 91精品国产综合久久精品图片| 中文字幕精品一区二区精品绿巨人| 丝袜亚洲另类欧美| 色狠狠综合天天综合综合| 欧美高清在线视频| 国产剧情av麻豆香蕉精品| 91精品国产乱码| 婷婷激情综合网| 91成人免费在线视频| 一区免费观看视频| 国产suv一区二区三区88区| 精品日韩一区二区三区| 日韩和欧美的一区| 欧美老肥妇做.爰bbww| 亚洲3atv精品一区二区三区| 欧洲精品视频在线观看| 亚洲一区中文日韩| 在线观看日韩毛片| 亚洲h动漫在线| 欧美精品日韩一区| 日本91福利区| 日韩精品中文字幕一区二区三区| av在线不卡电影| 久久久久久久久久久黄色| 激情六月婷婷综合| 久久久久9999亚洲精品| 成人在线一区二区三区| 中文字幕一区二区三区色视频| 成人精品视频网站| 中文字幕在线一区免费| 91麻豆自制传媒国产之光| 亚洲视频精选在线| 欧美午夜电影在线播放| 天堂在线亚洲视频| 精品国产一二三| 成人一区二区三区视频在线观看| 国产精品久久久久毛片软件| gogo大胆日本视频一区| 亚洲一区影音先锋| 欧美一区二区私人影院日本| 国产一区在线不卡| 亚洲欧美怡红院| 欧美日韩国产a| 国产一区二区三区四区五区美女 | 国产精品无圣光一区二区| www.视频一区| 婷婷久久综合九色综合绿巨人| 日韩欧美国产1| av一区二区久久| 亚洲午夜视频在线观看| 欧美电影免费观看高清完整版在线 | 日本中文在线一区| 久久综合久久综合九色| 波多野结衣一区二区三区| 亚洲国产精品一区二区久久恐怖片| 欧美一区二区三区爱爱| 国产a精品视频| 亚洲午夜在线视频| 久久亚洲综合色一区二区三区| 波多野结衣中文字幕一区 | 久久色在线观看| 色婷婷亚洲婷婷| 久久99这里只有精品| 综合久久久久综合| 欧美不卡一区二区三区| av中文字幕不卡| 免费成人在线视频观看| 中文字幕永久在线不卡| 这里只有精品视频在线观看| 成人国产精品免费网站| 美女视频免费一区| 亚洲一区二区欧美日韩| 亚洲欧洲日韩一区二区三区| 日韩欧美成人激情| 欧美日韩一区精品| av午夜一区麻豆| 国产麻豆精品一区二区| 日韩国产欧美在线播放| 亚洲精品久久久蜜桃| 国产欧美日韩另类一区| 日韩小视频在线观看专区| 色综合咪咪久久| 成人小视频免费在线观看| 麻豆国产91在线播放| 亚洲精品免费在线| 国产精品嫩草影院av蜜臀| 精品福利一二区| 日韩精品在线一区二区| 欧美日韩精品是欧美日韩精品| 91蜜桃免费观看视频| 成人美女视频在线观看18| 国产精品一区免费视频| 韩国av一区二区| 麻豆成人久久精品二区三区红| 亚洲一区二区三区不卡国产欧美 | 一区二区欧美国产| 最新国产成人在线观看| 国产精品婷婷午夜在线观看| 国产欧美一区二区在线| 久久在线免费观看| 久久亚洲精精品中文字幕早川悠里| 正在播放亚洲一区| 日韩欧美成人一区| 精品国产伦一区二区三区观看方式 | 日韩亚洲欧美一区| 欧美一级久久久久久久大片| 日韩一级二级三级精品视频| 91麻豆精品国产91久久久更新时间 | 亚洲国产精品ⅴa在线观看| 日韩午夜电影在线观看| 日韩一级黄色片| 精品国产髙清在线看国产毛片 | 日韩制服丝袜av| 天天av天天翘天天综合网| 日韩高清中文字幕一区| 久久国内精品自在自线400部| 久久电影网电视剧免费观看| 国产一区欧美日韩| 高清beeg欧美| 欧美最猛性xxxxx直播| 欧美日本韩国一区二区三区视频 | 精品久久久久av影院| 久久久噜噜噜久噜久久综合| 欧美国产欧美综合| 一区二区三区国产精华| 日本91福利区| 国产成人综合网| 欧洲视频一区二区| 欧美变态tickling挠脚心| 欧美国产精品中文字幕| 一区二区三区欧美| 另类小说视频一区二区| www.综合网.com| 在线成人免费视频| 国产欧美日韩一区二区三区在线观看| 国产精品久久久久天堂| 午夜激情久久久| 丁香亚洲综合激情啪啪综合| 欧美在线色视频| 夜色激情一区二区| 日韩电影在线观看网站| 成人一级片网址| 欧美精品在线视频| 国产精品美女久久久久久久| 午夜精彩视频在线观看不卡| 成人精品视频一区二区三区尤物| 欧洲一区二区三区免费视频| 久久嫩草精品久久久久| 一区二区三区在线观看动漫| 极品少妇xxxx偷拍精品少妇| 色欲综合视频天天天| 久久美女高清视频 | 亚洲美腿欧美偷拍| 久久国产精品露脸对白| 91国产免费看| 久久精品夜色噜噜亚洲a∨| 亚洲国产视频直播| 国产91精品入口| 精品少妇一区二区三区| 丝袜美腿亚洲综合| aaa国产一区| 国产三级精品在线| 男人的j进女人的j一区| 欧美图区在线视频| 136国产福利精品导航| 精品一区二区国语对白| 欧美精选一区二区| 亚洲一区二区在线播放相泽| 99精品久久99久久久久| 国产日本一区二区| 精品一区二区三区香蕉蜜桃| 欧美精品一卡二卡| 一区二区三区在线免费视频| 丁香一区二区三区| 久久欧美一区二区| 国产一区在线观看麻豆| 日韩一级黄色大片| 秋霞av亚洲一区二区三| 在线不卡一区二区| 亚洲超碰精品一区二区| 色成人在线视频| 亚洲日穴在线视频| 91同城在线观看| 亚洲欧美色图小说| 色婷婷综合久久久久中文一区二区| 欧美激情一区二区三区不卡| 国产大陆亚洲精品国产| 五月综合激情日本mⅴ|