芯片复制单片机通过PCF8574T模块驱动程序
| 芯片复制单片机通过 PCF8574T 模块驱动 1602/2004 LCD芯片复制//------------------------------------------------------------------------------------------------------------------------------------------------------- #include <reg52.h> #include "intrins.h" #define uchar unsigned char #define uint unsigned int //#define L1 0x80 // 第一行写入地址 //#define L2 0xc0 // 第二行写入地址 sbit SCL = P2^0; sbit SDA = P2^1; //char ADDR = 0x4E; // PCF8574 T 模块的地址码 char ADDR = 0x7e; // PCF8574 AT 模块的地址码 //***************************** 延时 y ms *********************************************** void delay1(int y) // { ; while(y--) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--); } } //******************************** IIC 串口开始 ******************************************** void IIC_start(void) { SDA=1; _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SDA=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; } //********************************** IIC 串口写1个字节 ****************************************** void IIC_writeByte(char temp) { char i; for(i=0;i<8;i++) { SDA=(bit)(temp & 0x80) ; // 根据规定1602的数据最高位必须为 1 temp <<=1; _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; } _nop_(); _nop_(); _nop_(); _nop_(); SDA=1; _nop_(); _nop_(); _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); while(SDA); _nop_(); SCL=0; } |

芯片解密