常用位操作,写8位 12864串口模式 I2C 1302 18B20
来源:互联网 发布:领航软件 编辑:程序博客网 时间:2024/06/07 00:36
/*以1302为例*/
void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数)
{
unsigned char i;
ACC = d;
for(i=8; i>0; i--)
{
DS1302_IO = ACC0; //相当于汇编中的 RRC
DS1302_CLK = 1; //先写底位
DS1302_CLK = 0;
ACC = ACC >> 1;
}
}
/*以18b20为例*/
/*---------------------------写一个字节------------------------------*/
writeonechar(uchar dat)
{
unsigned char i=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
delay_us(5);
DQ=1;
dat>>=1;
}
delay_us(4);
}
/*I2C*/
void write_byte(uchar dat) // 写函数
{
char i;
uchar temp;
temp=dat;
delaywus();
scl=0;
for(i=0;i<8;i++)
{
temp=temp<<1; //把temp左移一位
sda=CY; //把进位中的位送到SDA
delaywus();
scl=1;
delaywus();
scl=0;
delaywus();
}
sda=1; /*总线释放**/
delaywus();
}
/*I2C*/
uchar read_byte() //读一个字节的函数
{
uchar i,j,k;
scl=0;
delaywus();
sda=1;
delaywus();
for(i=0;i<8;i++) //8个循环,读一个字节
{
scl=1;
delaywus();
j=sda;
k=(k<<1)|j; //按位相或,把数据移入k
scl=0;
delaywus();
}
return k; //返回值是K,读得的数据
}
/*12864*/
void write_zj(uchar bbyte)
{ char i;
for(i=0;i<8;i++)
{
SID=bbyte&0x80; //取出最高位
SCLK=1;
SCLK=0;
bbyte<<=1; //左移
}
}
- 常用位操作,写8位 12864串口模式 I2C 1302 18B20
- 常用位操作,读8位 I2C 1302 18B20
- 寄存器位写操作
- C#---串口通信---位操作
- 温度传感器18B20(串口显示)
- 常用的位操作
- 常用位操作
- 常用位操作
- 常用位操作2
- java常用位操作
- sql 18位身份证常用操作
- 应用层读写I2C信息,可读写寄存器为8位或者16位的reg信息
- 应用层读写i2c设备可读写8位,16位设备地址小工具及源码
- 位运算常用操作总结
- 位运算常用操作总结
- 位运算常用操作总结
- 位运算常用操作总结
- 常用位操作小技巧
- .htaccess重写规则解析
- linux进程管理之信号处理(1)
- 将中文转换成unicode
- QQ不加群提取群成员软件V7.9
- zoj 2277 The Gate to Freedom
- 常用位操作,写8位 12864串口模式 I2C 1302 18B20
- python-swiftclient api 实例
- Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
- PHP 操作 MongoDB SQL对照表
- 构建高性能网站,针对前台工程师--总结篇
- 【转】eclipse快捷键大全
- 中断解析
- Linux shell脚本的字符串截取
- 快速判断素数