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

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

?? t9_v1.c

?? 基于單片機的拼音輸入程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <REG52.H>
#include <stdio.h>
#include<ziku.h>
#include<string.h>




#define uint  unsigned int
#define uchar unsigned char
#define DISP_ON    0x3f
#define DISP_OFF   0x3e
#define COL        0x40    //列地址
#define PAGE 0xb8          //行地址
#define START_LINE 0xc0
#define LCD_BUS     P2 
#define LCD_CON     P3 
#define key_bus     P1




//==========================================口定義=================================================

sbit CS1=LCD_CON^0;             //  CS1
sbit CS2=LCD_CON^1;             //  CS2
sbit E =LCD_CON^2;              //液晶使能
sbit RW=LCD_CON^3;              //液晶讀寫
sbit DI=LCD_CON^4;              //液晶數據指
sbit sw0=P3^6;					//OK
sbit sw1=P3^7; 					//Cancel
sbit SCL=P0^0;
sbit SDA=P0^1;

//===========================================END===================================================






//=============================================函數聲明============================================

void display_h(uchar page,uchar col,uchar code *str,uchar n);
void display_e(uchar page,uchar col,uchar code *str,uchar n);
void display_num(uchar page,uchar col,uchar code *str,uchar n);
void line_v(uchar x,uchar y,uchar l);
void line_h(uchar x,uchar y,uchar l);
void init();
void cls();
void delay(uint);         //延時程序
void write_cmd(uchar);    //寫命令操作字
void write_data(uchar);   //寫數據
uchar read_data();        //讀數據
uchar key_ii();
unsigned char code *py_v1(unsigned char input_py_val[]);
void point(uchar x,uchar y);
unsigned char *T9PY(char *strInput_t9PY_str,uchar length);
//==============================================END================================================


#include<iic.h>


//========================================全局變量聲明=============================================
uchar *p_py;
unsigned char PY_num;
struct t9PY_index code  * T9PY_mb[4];

/**************************************************************************************************
*
*T9 輸入法查找函數
*函數聲明:unsigned char *T9PY(char *strInput_t9PY_str,uchar length);
*參數說明:strInput_t9PY_str為字符串的地址,length為字符串的長度
*函數功能:把找到的漢字點陣表的首地址放在數組T9PY_mb中
*
**************************************************************************************************/

unsigned char *T9PY(char *strInput_t9PY_str,uchar length)
{
    struct t9PY_index *cpHZ,*cpHZedge;
    unsigned char i;
    PY_num=0;                              
    if(*strInput_t9PY_str=='\0')return(0);         //如果輸入空字符返回0

    cpHZ=&(t9PY_index2[0]);                        //查首字母索引
    cpHZedge=t9PY_index2+sizeof(t9PY_index2)/sizeof(t9PY_index2[0]);
    while(cpHZ < cpHZedge)                         //待查詢記錄條數
    {											
        for(i=0;i<length;i++)
        {
               if(*(strInput_t9PY_str+i)!=*((*cpHZ).t9PY_T9+i))    //檢查字符串匹配
               {
                     
					break;                                         //發現字母串不配,退出/
               }
			   
			               
        }
		if(i==length&&PY_num<=3)    
        {
                              
  			   T9PY_mb[PY_num]=cpHZ;
               PY_num++;
			   //break;   
        }

        cpHZ++;
    }
	if (PY_num>0)
    {
          p_py=T9PY_mb[0]->PY;
		  return(T9PY_mb[0]->PY_mb);                
	}
	else
	{
		  return(PY_mb_a);
	}
}


/**************************************************************************************************
*         P17>---0-----1-----2-----3      
*				 |	   |	 |	   |
*		  P16>---4-----5-----6-----7
*				 |	   |	 |	   |
*		  P15>---8-----9-----A-----B
*				 |	   |	 |	   |
*		  P14>---C-----D-----E-----F
*				 |	   |	 |	   |
*				P13   P12	P11	  P10
*4*4鍵盤輸入函數
*函數聲明:uchar key_ii();
*函數參數:無
*
*
*
**************************************************************************************************/
uchar key_ii()
{
    uchar keycode=0xff,temp,i;
    key_bus=0x0f;
	temp=key_bus&0x0f; 
	if(temp!=0x0f)              //有鍵按下
	{
	    key_bus=0x7f;
	    for(i=0;i<4;i++)
		{
			temp=key_bus&0x0f;
            if(temp==0x07)
	        {    
			    keycode=i*4;
				break;
			}
	        else if(temp==0x0b)
			{
	            keycode=i*4+1;
				break;
			}
    	    else if(temp==0x0d)
			{
	            keycode=i*4+2;
				break;
			}
    	    else if(temp==0x0e)
			{
	            keycode=i*4+3;
				break;
			}
			key_bus=(key_bus>>1)|0x80;
		}

	     while((key_bus&0x0f)!=0x0f)   //等待釋放
		 {
		     key_bus=0x0f; 
		 }								             
	    
	 }
	 return keycode;
}

/**************************************************************************************************
*
*
*
*
*
*
**************************************************************************************************/
uchar key()
{
      uchar keycode=0,temp;
	  //鍵盤口,先置1
	  sw0=1; sw1=1;
	  temp=P3&0xD0;
	  if(temp!=0xD0)
	  {
            sw0=1; sw1=1;
			temp=P3&0x40;
	        if(temp==0)keycode=6;
	        temp=P3&0x80;
	        if(temp==0)keycode=7;
			while(temp!=0xD0)
			{
			      temp=P3&0xD0;
			}
	  }
	  return keycode;

	     
}


/**************************************************************************************************
*
*延時函數
*函數聲明:void delay(uint t);
*函數參數:t
*
*
**************************************************************************************************/

void delay(uint t)             
{
      uint i,j;
      for(i=0;i<t;i++)
            for(j=0;j<10;j++);
}


/**************************************************************************************************
*
*向LCD寫命令函數
*函數聲明:void write_cmd(uchar cmd);
*函數參數:cmd(具體命令查看數據手冊)
*
*
**************************************************************************************************/

void write_cmd(uchar cmd)  
{

      DI=0; RW=0;
      LCD_BUS=cmd;
      E=1;
      E=0;
}

/**************************************************************************************************
*
*向LCD寫數據函數
*函數聲明:void write_data(uchar dout);
*函數參數:dout為要向LCD寫的數據
*
*
**************************************************************************************************/
void write_data(uchar dout)  
{

      DI=1; RW=0;
      LCD_BUS=dout;
      E=1;
      E=0;
}


/**************************************************************************************************
*
*從LCD的RAM中讀數據
*函數聲明:uchar read_data();  
*返回參數:uchar型為RAM中的數據
*
*
**************************************************************************************************/
uchar read_data()  
{
	  uchar din;
	  LCD_BUS=0xff;
	  DI=1; RW=1;
      E=0;
	  E=0;
	  E=1;
	  E=1;
	  E=1;
	  din=LCD_BUS;
	  return din;        
}


/**************************************************************************************************
*
*畫豎線函數
*函數聲明:void line_v(uchar x,uchar y,uchar l);
*函數參數:x,y分別為LCD的橫向和縱向的坐標值,l為豎線的長度
*
*
**************************************************************************************************/
void line_v(uchar x,uchar y,uchar l)
{
    uchar i;
	for(i=0;i<l;i++) point(x,y+i);
      
}

/**************************************************************************************************
*
*畫橫線函數
*函數聲明:void line_h(uchar x,uchar y,uchar l);
*函數參數:x,y分別為LCD的橫向和縱向的坐標值,l為橫線的長度
*
*
**************************************************************************************************/
void line_h(uchar x,uchar y,uchar l)
{
    uchar i;
	for(i=0;i<l;i++) point(x+i,y);
      
}

/**************************************************************************************************
*
*在LCD的任意位置畫點的函數
*函數聲明:void point(uchar x,uchar y);
*函數參數:x為lcd的列坐標(0-127),y為lcd的縱坐標(0-63)
*利用此函數能在LCD12864的任意位置畫一個點
*
**************************************************************************************************/
void point(uchar x,uchar y)
{
  uchar y1,y2,pp;
  uchar datain;
  pp=1;
  y1=y>>3;
  y2=y%8;
  pp=pp<<y2;
  if (x<64)
  {
    CS2=1;
	CS1=0;
	write_cmd(PAGE+y1);
    write_cmd(COL+x);  
    datain=read_data();
    write_cmd(PAGE+y1);
    write_cmd(COL+x);
    delay(10);
    datain=read_data();

    write_cmd(PAGE+y1);
    write_cmd(COL+x);
    datain=datain|pp;
    write_data(datain);
  }
  else
  {

    CS2=0;
	CS1=1;
	write_cmd(PAGE+y1);
	write_cmd(COL+x-64);
    datain=read_data();
    write_cmd(PAGE+y1);
    write_cmd(COL+x-64);
    delay(10);
    datain=read_data();
    write_cmd(PAGE+y1);
    write_cmd(COL+x-64);
    datain=datain|pp;
    write_data(datain);
  }
  

  
}


/**************************************************************************************************
*
*初始化LCD屏函數
*函數聲明:void init(); 
*函數參數:無

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蜜桃在线观看| 天堂在线亚洲视频| 一区二区三区在线视频观看| 成人一二三区视频| 中文字幕一区二区三区不卡| 97超碰欧美中文字幕| 一片黄亚洲嫩模| 欧美日韩一区中文字幕| 日韩av在线播放中文字幕| 欧美mv日韩mv| 国产成人免费网站| 亚洲精品一二三四区| 欧美日韩国产免费| 韩国v欧美v日本v亚洲v| 国产精品美女视频| 欧美日韩在线一区二区| 久久99在线观看| 亚洲欧洲一区二区在线播放| 欧美在线你懂得| 久久99久久精品| 中文字幕在线不卡一区二区三区 | 国产日产精品一区| 9l国产精品久久久久麻豆| 亚洲国产日韩精品| 精品区一区二区| 91色乱码一区二区三区| 午夜国产精品影院在线观看| 午夜不卡在线视频| 久久综合九色综合97婷婷女人 | 欧美在线视频日韩| 国产在线精品一区二区三区不卡| 国产精品无码永久免费888| 欧美亚洲自拍偷拍| 国产乱理伦片在线观看夜一区| 亚洲手机成人高清视频| 日韩久久久精品| 日本精品一区二区三区高清| 久久99精品久久久| 亚洲最大色网站| 国产日本欧美一区二区| 欧美精品精品一区| 97久久人人超碰| 久久99精品国产麻豆婷婷| 伊人色综合久久天天人手人婷| 欧美第一区第二区| 在线欧美小视频| 粉嫩av一区二区三区在线播放| 婷婷亚洲久悠悠色悠在线播放| 日本一区二区成人| 精品国产免费视频| 欧美日韩日本视频| 色综合天天综合在线视频| 国产一区美女在线| 免费成人av资源网| 亚洲成人高清在线| 亚洲欧美激情插| 国产精品久99| 欧美激情自拍偷拍| 日韩精品资源二区在线| 在线成人高清不卡| 欧美日韩情趣电影| 色哦色哦哦色天天综合| 91丨porny丨中文| 成人av影视在线观看| 国产米奇在线777精品观看| 日本在线观看不卡视频| 午夜影院久久久| 亚洲夂夂婷婷色拍ww47 | 一本久久综合亚洲鲁鲁五月天| 国产精品99久久久久久久vr| 精品视频1区2区3区| www.亚洲国产| 成人深夜视频在线观看| 国产乱码字幕精品高清av| 久久er99热精品一区二区| 另类综合日韩欧美亚洲| 久久99久久99| 黑人精品欧美一区二区蜜桃| 国产综合一区二区| 国产一区二区不卡在线| 精品一区二区三区视频在线观看| 奇米色一区二区| 另类欧美日韩国产在线| 黑人巨大精品欧美黑白配亚洲| 久久99这里只有精品| 国产乱码精品1区2区3区| 国产 日韩 欧美大片| 成人av资源下载| av一区二区不卡| 在线观看精品一区| 91.麻豆视频| 精品免费国产一区二区三区四区| 精品久久久久久无| 欧美韩国一区二区| 亚洲欧美日韩一区| 亚洲国产精品久久久久婷婷884 | 日欧美一区二区| 欧美aaa在线| 国产美女主播视频一区| av在线不卡网| 欧美人伦禁忌dvd放荡欲情| 91精品国产色综合久久ai换脸| 日韩视频免费观看高清完整版| 久久久久久久久99精品| 亚洲色图19p| 婷婷久久综合九色综合绿巨人| 麻豆91精品91久久久的内涵| 成人永久看片免费视频天堂| 日本韩国一区二区三区视频| 欧美精品久久一区二区三区| 久久久777精品电影网影网| 亚洲天堂a在线| 蜜臀av性久久久久蜜臀aⅴ| 国产suv精品一区二区6| 99re在线视频这里只有精品| 制服丝袜一区二区三区| 国产精品麻豆99久久久久久| 午夜久久久久久| 国产精品乡下勾搭老头1| 欧美亚洲免费在线一区| 久久综合九色综合欧美就去吻| 亚洲人xxxx| 精品一区二区三区在线视频| 一本色道亚洲精品aⅴ| 精品日韩99亚洲| 亚洲精品一二三| 国产寡妇亲子伦一区二区| 欧美特级限制片免费在线观看| 久久理论电影网| 99精品黄色片免费大全| 欧美一区二区三区免费大片| 综合激情成人伊人| 国内一区二区在线| 欧美丰满嫩嫩电影| 曰韩精品一区二区| 国产成人av一区| 欧美一级欧美三级在线观看| 亚洲欧美一区二区三区久本道91 | 亚洲欧美日韩在线不卡| 国产综合色视频| 欧美性受极品xxxx喷水| 国产精品免费av| 国产一区二区三区免费观看| 欧美一区二区三区四区高清| 一区二区三区在线观看国产| 成人午夜av影视| 久久久久久麻豆| 美女一区二区在线观看| 欧美日韩三级视频| 一区二区不卡在线播放 | 欧美日本一区二区三区四区| 亚洲图片你懂的| 成人妖精视频yjsp地址| 26uuu欧美| 麻豆成人久久精品二区三区红| 欧美精品在欧美一区二区少妇| 亚洲精品久久久久久国产精华液| 成人免费毛片嘿嘿连载视频| 26uuu成人网一区二区三区| 日本免费在线视频不卡一不卡二| 欧美亚洲一区二区三区四区| 亚洲伊人色欲综合网| 色综合天天综合网天天看片| 亚洲日本成人在线观看| jlzzjlzz欧美大全| 国产精品久久综合| 99久久亚洲一区二区三区青草| 国产精品毛片大码女人| 丁香婷婷综合网| 国产精品乱人伦中文| 成人三级伦理片| 中文字幕日韩一区| 色综合久久88色综合天天免费| 亚洲丝袜另类动漫二区| 欧洲一区二区av| 亚洲国产精品麻豆| 日韩欧美中文字幕一区| 久久激情五月婷婷| 国产网红主播福利一区二区| 成人av午夜电影| 亚洲欧美视频一区| 欧美精品在线视频| 国产一区二区精品久久99| 国产欧美日韩视频一区二区| 99国内精品久久| 亚洲福利一二三区| 日韩欧美一区二区视频| 国产精品一区二区果冻传媒| 国产精品成人网| 欧美三级日本三级少妇99| 青青国产91久久久久久| 久久久久国产精品麻豆ai换脸 | 91看片淫黄大片一级在线观看| 亚洲精品日产精品乱码不卡| 色综合久久综合| 日韩经典中文字幕一区| 欧美精品一区二区三区一线天视频| 国产成人在线观看| 一卡二卡三卡日韩欧美| 日韩免费成人网|