这是我的代码: 还有比这个更简化的代码吗: 我这个不是读写一体的,我是刚刚学单片机的菜鸟哈,别笑话! void DS_Write_Byte(unsigned char dat) { unsigned char i; for(i=0;i<8;i++) { if(dat&0x01) { DS_IO=1; } else { DS_IO=0; } DS_SCLK=1; _nop_(); _nop_(); DS_SCLK=0; dat>>=1; } DS_IO=1; }
unsigned char DS_Read_Byte(void) { unsigned char i,dat; for(i=0;i<8;i++) { dat>>=1; if(DS_IO) { dat+=0x80; } DS_SCLK=1; _nop_(); _nop_(); DS_SCLK=0; } return dat; } |