求这个单片机题目的答案,基于51单片机,要求用c语言编程并在开发板上实现。来大神

2024-07-04 13:47发布

#include#define uchar unsigned char#define uint unsigned intsbit K1=P1^玉素湖施既省浓精0
2条回答
1楼 · 2024-07-04 14:35.采纳回答
网站建设 - 宁波14年品质建站 原创品牌设计
2楼-- · 2024-07-04 14:44
#include
#define uchar unsigned char
#define uint unsigned int
sbit K1=P1^玉素湖施既省浓精0;
//延时
void DelayMS(uint ms)
{
uchar
i;
while(ms--)
for(i=0;i<120;i++);
}
//向串口发送字符
void Putc_to_SerialPort(uchar c)
{
洲创事消做SBUF=c;
while(TI==0);
TI=0;
}
//主程序
v顾汉钱部束却字田模oid main()
{
uchar
Operation_No=0;
SCON=0x40; //串口模式1
TMOD=0x20; //T方兴情1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
wh树异府起名计奏晶ile(1)
{
if(K1=音诗女=0) //按下K1时选择操作代码0,1,2,3
{
while(K1==0);
Operat洲指促精负进散善体处县ion_No=(Operation_No+1)%2;
}
Putc_to_SerialPort('A'+Operation_No);
DelayMS(100);
}
}

//乙机程序
#include
#define uchar unsigned char
#define uint unsigned int
uc听越态因雷采呀议har num=0;
sfr LED=P0;
//延时
void DelayMS(uint ms)
{
uchari;
while(ms--)for(i=0;i<120;i++);
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=20)
{
num=0;
LED=~LED;
}
}
//主程序
void main()
{
SCON=0x50; //串口模式1,允许接收
TMOD=0x21; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率9600
TL1=0xfd;
RI=0;
TR1=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
LED=0xff;
while(1)
{
if(RI) //收到则
{
RI=0;
switch(SBUF)//根据所收到的不同命令字符完成不同动作
{
case'A': TR0=1;break; //LED闪烁
case'B': LED=0xff;TR0=0;break; //LED灭
}
}
DelayMS(100);
}
}

    相关问题

    相关文章