📄 10.4.c
字号:
#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit Sda=P1^1; //串行数据
sbit Scl=P1^2; //串行时钟
void mDelay(uchar j) //廷时
{
uint i;
for(;j>0;j--)
for(i=0;i<10;i++)
{}
}
void Start(void) //起始条件
{
Sda=1;
Scl=1;
Sda=0;
}
void Stop(void) //停止条件
{
Sda=0;
Scl=1;
Sda=1;
}
void Ack(void) //应答位
{
Sda=0;
Scl=1;
Scl=0;
}
void Send(uchar Dat) //发送数据子程序,Dat为要求发送的数据
{
uchar BitCounter=8; //位数控制
uchar temp; //中间变量控制
do
{
temp=Dat;
Scl=0;
if((temp&0x80)==0x80) //如果最高位是1
Sda=1;
else
Sda=0;
Scl=1;
temp=Dat<<1; //RLC
Dat=temp;
BitCounter--;
}
while(BitCounter);
Scl=0;
}
void moveout(uchar num)
{
Start(); //发送启动信号
Send(0x58); //发送器件地址
Ack();
Send(0x00); //发送命令
Ack();
Send(num);
Ack();
Stop();
mDelay(2);
}
void main()
{
uchar shuju;
moveout(shuju);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -