Ejemplo n.º 1
0
/*******************************************************************
函 数 名:W_1byte
入口参数:RW、RS、W_data
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:写一个字节的数据到12864液晶,包括指令和数据
说    明:RW=1,从液晶读数据到MCU;RW=0,写一个数据到液晶;
		 (一般RW都设为0,即只向液晶写数据,不读数据)
          RS=1,写入的是数据;RS=0,写入的是指令;
		  一般模式:RW=0,RS=1;写数据
		  			RW=0,RS=0;写指令
********************************************************************/
void W_1byte(unsigned char RW, unsigned char RS, unsigned char W_data)
{
    unsigned int H_data,L_data,S_ID = 0xf8;	 //11111RWRS0
    if(RW == 0)
    {
        S_ID &=~ 0x04;
    }
    else					//if(RW==1)
    {
        S_ID |= 0X04;
    }
    if(RS == 0)
    {
        S_ID &=~ 0x02;
    }
    else					//if(RS==1)
    {
        S_ID |= 0X02;
    }
    H_data = W_data;
    H_data &= 0xf0;			//屏蔽低4位的数据
    L_data = W_data;	   	//xxxx0000格式
    L_data &= 0x0f;			//屏蔽高4位的数据
    L_data <<= 4;			//xxxx0000格式
    Set_CS();
    Write_8bits(S_ID); 		//发送S_ID
    Write_8bits(H_data);	//发送H_data
    Write_8bits(L_data);	//发送L_data
    Clr_CS();
    Clr_CS();
    Clr_CS();


}
Ejemplo n.º 2
0
bool Csio::run(void)
{
    pSIOCONNECTOR_value = pSIOCONNECTOR->Get_values();

	// Read connector
    Set_SD( SIO_GET_PIN(S_SD) );
    Set_RR( SIO_GET_PIN(S_RR) );
    Set_RS( SIO_GET_PIN(S_RS) );
    Set_ER( SIO_GET_PIN(S_ER) );
//	Set_PRQ( SIO_GET_PIN(S_PRQ) );
	
    if (RS) {
        Set_CS(1);
        Set_CD(1);
//        if (mainwindow->dialoganalogic) mainwindow->dialoganalogic->setMarker(1);
    }

	Sii_bit = 0;
    if (ER && CD && RR)	{
//        if (mainwindow->dialoganalogic) mainwindow->dialoganalogic->setMarker(8);
        Sii_bit = transmit();


    }
	Set_RD( Sii_bit );	
	

    receive();

    SIO_SET_PIN(S_RD, Get_RD());
    SIO_SET_PIN(S_CS, Get_CS());
    SIO_SET_PIN(S_CD, Get_CD());
    //SIO_SET_PIN(SIO_PAK, 0);

    pSIOCONNECTOR_value = pSIOCONNECTOR->Get_values();
//    pTIMER->state++;
	return true;
}