中级会员
- 积分
- 249
- 金钱
- 249
- 注册时间
- 2018-10-17
- 在线时间
- 40 小时
|
1金钱
void LCD1602_I2C_WRITE_COM(u8 com){ //发送指令 要求RS=0,RW=0,E=上升沿
u8 comer;
comer=(com&0xf0)|0x08; //获取com的高四位并把低四位设为1000
delay_us(16); //用延时代替读忙
I2C_SAND_A_BYTE(LCD1602_I2C_ADD,comer); //发送xxxx 1000 让除了E的七位准备好
delay_us(4);
I2C_SAND_A_BYTE(LCD1602_I2C_ADD,comer|0x04); //只改变E,生成一个上升沿
com=com<<4; //移动低四位至高四位位置
comer=(com&0xf0)|0x08; //获取com的高四位并把低四位设为1000
I2C_SAND_A_BYTE(LCD1602_I2C_ADD,comer); //发送xxxx 1000 让除了E的七位准备好
delay_us(4);
I2C_SAND_A_BYTE(LCD1602_I2C_ADD,comer|0x04); //只改变E,生成一个上升沿
delay_us(4);
I2C_SAND_A_BYTE(LCD1602_I2C_ADD,comer); //让E返回低电平状态
}
這是我正點原子討論區下載一個I2C pcf8574 控制DS1602的範例程式碼
但是我真的看不懂作者為什麼要這樣寫????
現在要寫一個DS1602控制碼進去是可以正常顯示使用的,但是我看不懂程式碼
為什麼要這樣寫????
假設我寫一筆控制光標打開並且閃爍的控制碼0x0F進去雖然可以正常咦
但是DS1602 的另外三隻腳 EN /RW/RST是如何控制????請問有誰知道呢??
因為我查了pcf8574 的Datasheet從頭到尾只有八支Pin腳做輸出阿~~~
請問誰看得懂上面的程式碼在寫什麼~~~講解給小弟一下謝謝!
|
|