新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ZLG7290矩陣鍵盤控制forMSP40

ZLG7290矩陣鍵盤控制forMSP40

作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
  • /*************************************************************************
  • //名稱:Read_IIC_Random()
  • //參數(shù):startaddr-讀數(shù)據(jù)的首地址
  • //返回值:讀出的數(shù)據(jù)
  • //功能:讀數(shù)據(jù)到微控制器
  • *************************************************************************/
  • BYTERead_IIC_Random(BYTEstartaddr)
  • {
  • BYTEtemp;
  • do
  • {
  • Start();
  • SendToBus(CHIP);//選片地址
  • if(BackAns())//從機(jī)的回答信息
  • continue;
  • SendToBus(startaddr);//選擇芯片上的內(nèi)在地址
  • if(BackAns())
  • continue;
  • Start();
  • SendToBus(CHIP+1);
  • if(!BackAns())
  • break;
  • }
  • while(1);
  • temp=ReadFromBus();//從線上讀數(shù)據(jù)
  • NoAck();
  • Stop();
  • returntemp;
  • }
  • /*************************************************************************
  • //名稱:AckToBus()
  • //參數(shù):無
  • //返回值:無
  • //功能:向IIC發(fā)送應(yīng)答信號
  • *************************************************************************/
  • voidAckToBus()
  • {
  • SDA_DOWN;
  • IIC_delay();
  • SCL_UP;
  • IIC_delay();
  • SCL_DOWN;
  • IIC_delay();
  • }
  • /*************************************************************************
  • //名稱:NoAck()
  • //參數(shù):無
  • //返回值:無
  • //功能:向IIC發(fā)送應(yīng)答信號
  • *************************************************************************/
  • voidNoAck()
  • {
  • SDA_UP;
  • IIC_delay();
  • SCL_UP;
  • IIC_delay();
  • SCL_DOWN;
  • IIC_delay();
  • }
  • /*************************************************************************
  • //名稱:Write_IIC_Serious()
  • //參數(shù):data-待寫數(shù)據(jù)的指針,startaddr-待寫數(shù)據(jù)的起始地址,len-待寫數(shù)據(jù)的長度
  • //返回值:無
  • //功能:連續(xù)寫多個(gè)字
  • *************************************************************************/
  • voidWrite_IIC_Serious(char*data,BYTEstartaddr,BYTElen)
  • {
  • do
  • {
  • Start();
  • SendToBus(CHIP);//選片地址
  • if(BackAns())//從機(jī)的回答信息
  • continue;
  • SendToBus(startaddr);//選擇芯片上的內(nèi)在地址
  • if(BackAns())
  • continue;
  • SendToBus(data[0]);//傳輸數(shù)據(jù)
  • if(BackAns())
  • continue;
  • SendToBus(data[1]);
  • if(!BackAns())
  • break;
  • }
  • while(1);
  • Stop();
  • }
  • /*************************************************************************
  • //名稱:Read_IIC_Curent()
  • //參數(shù):data-待讀數(shù)據(jù)存放的指針,len-待讀數(shù)據(jù)的長度
  • //返回值:無
  • //功能:連續(xù)讀多個(gè)字
  • *************************************************************************/
  • voidRead_IIC_Curent(BYTE*data,BYTElen)
  • {
  • inti;
  • Start();
  • SendToBus(CHIP+1);
  • BackAns();//放松讀命令
  • i=1;
  • do
  • {
  • i++;
  • data[i]=ReadFromBus();
  • if(i
  • AckToBus();
  • else
  • break;
  • }
  • while(1);
  • Stop();
  • }
  • /*************************************************************************
  • //名稱:init_IIC()
  • //參數(shù):無
  • //返回值:無
  • //功能:初始化I2C
  • *************************************************************************/
  • voidinit_IIC()
  • {
  • P2IE|=BIT7;
  • P2IES|=BIT7;
  • P2IFG&=~0x80;
  • _EINT();
  • }
  • /*************************************************************************
  • //名稱:zlg7290_cmd()
  • //參數(shù):cmd-待寫入的命令
  • //返回值:無
  • //功能:ZLG7290純指令發(fā)送
  • *************************************************************************/
  • voidzlg7290_cmd(unsignedcharcmd)
  • {
  • Write_IIC_Byte(cmd,0x07);
  • return;
  • }
  • /*************************************************************************
  • //名稱:IsKeyDown()
  • //參數(shù):無
  • //返回值:1-有鍵按下,0-無鍵按下
  • //功能:ZLG7290純指令發(fā)送
  • *************************************************************************/
  • charIsKeyDown()
  • {
  • chartemp;
  • temp=0;
  • temp=Read_IIC_Random(0x00);
  • if(temp&0x01)
  • {
  • return1;
  • }
  • else
  • {
  • return0;
  • }
  • }
  • /*************************************************************************
  • //名稱:ReadKey()
  • //參數(shù):無
  • //返回值:讀取的鍵值
  • //功能:讀取鍵值
  • *************************************************************************/
  • charReadKey()
  • {
  • returnRead_IIC_Random(0x01);
  • }
  • /*************************************************************************
  • //名稱:ReadCnt()
  • //參數(shù):無
  • //返回值:連擊次數(shù)
  • //功能:讀取連擊次數(shù)
  • *************************************************************************/
  • charReadCnt()
  • {
  • returnRead_IIC_Random(0x02);
  • }


  • 上一頁 1 2 下一頁

    關(guān)鍵詞: ZLG7290矩陣鍵盤控制MSP4

    評論


    相關(guān)推薦

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

    關(guān)閉