在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            PS/2處理C51頭文件

            作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
            /**********************中文版本*******************************/

            /*****功能描述 : PS/2鍵盤應(yīng)用頭文件(中斷處理) *****/
            /*****調(diào)試平臺 : 51單片機(jī) 11.0592M晶振 *****/
            /*****作 者 : 鄭文(ClimberWin) *****/
            /*****編寫日期 : 2009年10月5日 *****/
            /*****版本信息 : V1.0 *****/
            /*****修改日期 : *****/
            /*************************************************************/
            #ifndef __C51_PS_2_H__
            #define __C51_PS_2_H__

            本文引用地址:http://www.biyoush.com/article/201611/316031.htm

            #include
            #define uchar unsigned char
            #define uint unsigned int
            ///////////////數(shù)據(jù)定義////////////////////////////////////
            sbit PS2_key_Data= P2^0; //定義PS2 Data引腳
            sbit PS2_key_CLK =P3^3; //定義PS2 Clk 引腳
            bit PS2_flag=0; //是否有PS/2按鍵數(shù)據(jù)接收標(biāo)志位
            bit PS2_key_UP=0, Shift=0;//PS2_key_UP是否松開標(biāo)識位,是否Shift鍵按下標(biāo)識位
            uchar clk_num = 0; //中斷次數(shù)計(jì)數(shù),用于判斷接收數(shù)據(jù)的位數(shù)
            uchar PS2_data; //鍵值存儲地址
            uchar LCD1602_cursor = 0; //顯示光標(biāo)位置
            ///////////////使用函數(shù)定義///////////////////////////////////
            void PS2_decode(unsigned char PS2_Code);
            ///////////////數(shù)據(jù)接收子程序(中斷處理)////////////////////////
            //鍵盤協(xié)議一幀包含11位的串行協(xié)議
            //bit1 :START=0
            //bit2-9:數(shù)據(jù)位DATA0-DATA7
            //bit10 :奇偶校驗(yàn)位
            //bit11 :STOP=1
            void PS2_data_receive(void) interrupt 2
            {
            clk_num++;//中斷次數(shù)加1
            if ((clk_num>1) && (clk_num<10))
            {
            if(PS2_key_Data==0) //位0接收保存
            {PS2_data=PS2_data>>1 | 0x00;}
            else //位1接收保存
            {PS2_data=PS2_data>>1 | 0x80;}

            }
            while (!PS2_key_CLK); //等待PS/2CLK拉高
            if (clk_num > 10) //當(dāng)中斷11次后表示一幀數(shù)據(jù)收完
            {
            clk_num = 0; //清計(jì)數(shù)值
            PS2_flag = 1; //打開鍵值標(biāo)志位
            EA = 0; //關(guān)中斷
            }
            }
            //////////////////////鍵值處理子程序///////////////////////////////
            void PS2_decode(unsigned char PS2_Code) //注意:如SHIFT+G為12H 34H F0H 34H F0H 12H,也就是說shift的通碼+G的通碼+shift的斷碼+G的斷碼
            {
            uchar tab_num;

            if (PS2_key_UP==0) //初始狀態(tài)下
            {
            switch (PS2_Code)
            {
            case 0xF0 :// 當(dāng)收到0xF0,PS2_key_UP置1表示斷碼開始
            PS2_key_UP = 1;
            break;

            case 0x12 :// 左 SHIFT
            Shift = 1;
            break;

            case 0x59 :// 右 SHIFT
            Shift = 1;
            break;

            default:

            if(!Shift)//如果SHIFT沒按下
            {
            for (tab_num = 0;(UnShifted[tab_num][0]!=PS2_Code)&&(tab_num<59); tab_num++); //查表顯示
            if (UnShifted[tab_num][0] == PS2_Code) //按鍵處理程序
            }
            else //按下SHIFT
            {
            for(tab_num = 0; (Shifted[tab_num][0]!=PS2_Code)&&(tab_num<59); tab_num++); //查表顯示
            if (Shifted[tab_num][0] == PS2_Code) //按鍵處理程序

            }

            break;
            }
            }
            else //當(dāng)PS2_key_UP==1,也就是按鍵彈起來后。
            {
            PS2_key_UP = 0; //清標(biāo)志位
            if(PS2_Code==0x12 || PS2_Code==0x59) Shift = 0;//當(dāng)有SHIFT鍵按下過時,需要清零
            }
            PS2_flag = 0; //標(biāo)識字符處理完了
            }

            #endif



            關(guān)鍵詞: PS2處理C51頭文

            評論


            技術(shù)專區(qū)

            關(guān)閉