- #define HT1621IO_DIR P2DIR |= BIT4+BIT5+BIT6+BIT7
- #define CS1 P2OUT |= BIT7
- #define CS0 P2OUT &= ~BIT7
- #define RD1 P2OUT |= BIT6
- #define RD0 P2OUT &= ~BIT6
- #define WR1 P2OUT |= BIT5
- #define WR0 P2OUT &= ~BIT5
- #define DAT1 P2OUT |= BIT4
- #define DAT0 P2OUT &= ~BIT4
- #define DAT_IN P2IN & BIT4
- //读LCD单个地址的数据码
- unsigned char Read_1621(unsigned char addr)
- {
- P2DIR &=~BIT4;
- unsigned char Data_Byte;
- unsigned char i;
- unsigned char temp;
- Data_Byte=0x00;
- temp=0x01;
- CS0;
- SendBit_1621(0xa0,3); //写入标志码"110"
- SendBit_1621(addr<<2,6); //写入6 位addr
- RD0;
- _NOP();
- for(i=0;i<4;i++)
- {
- _NOP();
- RD1;
- _NOP();
- if(DAT_IN)
- {
- Data_Byte=Data_Byte|temp;
- }
- RD0;
- temp=temp<<1;
- }
- CS1;
- P2DIR |= BIT4;
- return(Data_Byte);
- }
- void SendBit_1621(unsigned char data,unsigned char cnt) //data的高cnt位写入HT1621,高位在前
- {
- unsigned char i;
- for(i =0; i <cnt; i ++)
- {
- if((data&0x80)==0) DAT0;
- else DAT1;
- WR0;
- _NOP();
- WR1;
- data<<=1;
- }
- }
单片机用的MSP430F5438A 能进行写操作 进行不了读操作!附上时序图跟代码!求解
|