📄 mf.c
字号:
//用31来模拟串口,向PC发送数据
//波特率4800 bit/s 每一位208us
#include<reg51.h>
#define uchar unsigned char
uchar c1;//分别用来存储K1-K4
sbit led=P1^0;
sbit k1=P2^4;//按钮K1
sbit k2=P2^5;//按钮K2
sbit tx=P3^1;//模拟串口的数据发送引脚
void yanshi()//208us延时子函数
{
uchar x=29;//207us
while(x--);
}
void longyanshi(uchar x)//长延时
{
uchar y;
for(;x>0;x--)
for(y=100;y>0;y--);
}
void fasong(uchar d)//发送数据子函数
{
uchar i,temp;
tx=0;//起始信号开始
yanshi();//起始信号结束
for(i=0;i<8;i++)//发送8位数据
{
temp=d&0x01;
if(temp==1)
{
tx=1;
}
else//否则要发送的位是0
{
tx=0;
}
yanshi();
d=d>>1;//移除所发送的位
}
tx=1;//停止信号开始
yanshi();//停止信号结束
}
void key()//按钮
{
if(k1!=1)//k1按下了
{
longyanshi(200);
if(k1==0)//再次确认k1的状态
{
while(k1==0);//等待放手
longyanshi(200);//放手去抖动
}
}
}
void key()//
{
if(k2==0)//
longyanshi(200);
if(k2==0)
fasong('B');
{
c1++;
}
}
led=0;
while(c1<2)
{
if(k1==0)
{
c1++;
}
}
led=1;
while(1)
{
key()2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -