单片机C语言 串口求教 求高手帮忙编一个程序要求:发送01时,灯1以400MS闪烁,发送02时,灯1以100MS闪烁
展开全部
#include <reg51.h>
sbit LED = P1^0;
unsigned char DL=0;
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void delayms(unsigned int x) //误差 -0.651041666667us
{
unsigned char a,b;
while(x--)
for(b=4;b>0;b--)
for(a=113;a>0;a--);
}
void main(void)
{
InitUART();
while(1)
{
LED=~LED;
delayms(DL);
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
switch(SBUF)
{
case 01:DL=400;break;
case 02:DL=100;break;
}
}
else
TI = 0;
}
有其他要求留言
晶振是11.0592
sbit LED = P1^0;
unsigned char DL=0;
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void delayms(unsigned int x) //误差 -0.651041666667us
{
unsigned char a,b;
while(x--)
for(b=4;b>0;b--)
for(a=113;a>0;a--);
}
void main(void)
{
InitUART();
while(1)
{
LED=~LED;
delayms(DL);
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
switch(SBUF)
{
case 01:DL=400;break;
case 02:DL=100;break;
}
}
else
TI = 0;
}
有其他要求留言
晶振是11.0592
2012-03-29
展开全部
建议 去 我的领地 5d6d 的 proteus 论坛看看
那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词
那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询