10.4.c

来自「单片机c语言开发实例 包括很多实例」· C语言 代码 · 共 69 行

C
69
字号
#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 + =
减小字号Ctrl + -
显示快捷键?