搜档网
当前位置:搜档网 › 简单串口通讯带控制命令

简单串口通讯带控制命令

由甲机的一个按键发出命令控制已机的数码管显示
甲机程序
#include
#define uint unsigned int
#define uchar unsigned char
sbit key=P1^0;
send(uchar n) //发送数据函数
{
SBUF=n; //将发送的数据保存在缓存器中
while(TI==0); // 查询是否发送完毕
TI=0; //等待下一次发送
}

main()
{
uint m;
TMOD=0x20; //方式2
TH1=0xf4; //波特率为2400
TL1=0xf4;
SCON=0x40; //串行工作方式1
TR1=1;
while(1) //while语句重复的执行按下开关的这个动作
{
if(key==0)
{while(key==0); //去抖
m=(m+1)%7;
}
switch(m) //根据m的值来判断发送过去的数据
{
case 0:send('a');break;
case 1:send('b');break;
case 2:send('c');break;
case 3:send('d');break;
case 4:send('e');break;
case 5:send('f');break;
case 6:send('g');break;
}
}

}

已机程序

#include
#define uint unsigned int
delay(uint i) // 延时函数
{
while(i--);
}
main()
{
uint t[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //1到10数字
TMOD=0x20;
TH1=0xf4;
TL1=0xf4;
SCON=0x50;
TR1=1;
RI=0; //接收标志
while(1)
{
if(RI==1) //判断是否接受完毕
RI=0; //接受完成后重复下次接受
switch(SBUF)
{
case 'a':P2=~t[0];break;
case 'b':P2=~t[1];break;
case 'c':P2=~t[2];break;
case 'd':P2=~t[3];break;
case 'e':P2=~t[4];break;
case 'f':P2=~t[5];break;
case 'g':P2=~t[6];break;
}
delay(100);


}

}

单片机初学者------重庆杜江华




相关主题