51单片机 通过串口发送控制LED灯 闪烁频率 c代码 跪求!!
其实质就是通过电脑串口调试助手控制发送多少则led灯就闪烁多少的#include<reg52.h>sbitLED0=P1^0;unsignedintt;voidmain(...
其实质就是通过电脑 串口调试助手控制 发送多少 则led灯 就闪烁 多少的
#include <reg52.h>
sbit LED0=P1^0;
unsigned int t;
void main ()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
EA= 1;
REN=1;
SM0=0;
SM1=1;
ES = 1;
//此方法使用bit位对单个端口赋值
while(1)
{
if(RI==1){ /*有串口数据过来*/
RI = 0;
t= SBUF;
}
}
}
void ser() interrupt 4
{
TH1=(65536-10^6/t) /256;
TL1=(65536-10^6/t) %256;
LED0=!LED0;
//打开串口中断
} 展开
#include <reg52.h>
sbit LED0=P1^0;
unsigned int t;
void main ()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
EA= 1;
REN=1;
SM0=0;
SM1=1;
ES = 1;
//此方法使用bit位对单个端口赋值
while(1)
{
if(RI==1){ /*有串口数据过来*/
RI = 0;
t= SBUF;
}
}
}
void ser() interrupt 4
{
TH1=(65536-10^6/t) /256;
TL1=(65536-10^6/t) %256;
LED0=!LED0;
//打开串口中断
} 展开
展开全部
下面的程序我已经调试过了,你可以直接使用,但是一秒闪烁次数告祥t的最大为2000,如果要大于这个数,你必须改小dalay1ms ()内的j值,就可以改大t
#include <reg52.h>
sbit LED0=P1^0;
unsigned int t=0,k;
void dalay1ms (unsigned int i) //晶振选用11.0592
{
unsigned int j;
for(i;i>0;i--)
for(j=922;j>0;j--);
}
void main ()
{
EA=1;
ES=1;
TMOD=0x20; //定时器T1方式为2
TH1=0xfa; //波御友搜特率设定为9600
TL1=0xfa;
while(1)
{
if(t!=0)
{
k=2000/镇历t;
dalay1ms (k) ;
LED0=!LED0;
}
if(t==0)
LED0=0;
}
}
void counter4(void) interrupt 4
{
while(RI==0);
RI = 0;
t= SBUF;
}
#include <reg52.h>
sbit LED0=P1^0;
unsigned int t=0,k;
void dalay1ms (unsigned int i) //晶振选用11.0592
{
unsigned int j;
for(i;i>0;i--)
for(j=922;j>0;j--);
}
void main ()
{
EA=1;
ES=1;
TMOD=0x20; //定时器T1方式为2
TH1=0xfa; //波御友搜特率设定为9600
TL1=0xfa;
while(1)
{
if(t!=0)
{
k=2000/镇历t;
dalay1ms (k) ;
LED0=!LED0;
}
if(t==0)
LED0=0;
}
}
void counter4(void) interrupt 4
{
while(RI==0);
RI = 0;
t= SBUF;
}
追问
这个程序 串口调试 输入值不改变灯的闪烁 急求···我会追加赏分的
追答
哦,对了,是我疏忽了,main()函数下,通讯部分要加上
PCON=0x80; // 波特率倍增.
SCON = 0x50; // 串行口工作方式.
TR1 = 1; // 启动T1
这时候才是波特率9600,其他没问题
宿兴电子
2024-11-28 广告
2024-11-28 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡...
点击进入详情页
本回答由宿兴电子提供
展开全部
问题不是很具体
可以控制的灯数有多少,是走马灯,还是只控制频率。
请写详细些。
可以控制的灯数有多少,是走马灯,还是只控制频率。
请写详细些。
追问
只需要控制一盏led灯,然后 通过串口通讯 就是在串口调试助手中 控制他的闪烁频率 例如在串口调试助手中输入50 那么led灯的闪烁频率 为 一秒钟闪烁50下 我再补充下程序 你能帮我修正下吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
顺序写也没问题,把他们的时序弄清就行棚肆了扰和肢 。点亮第一组要亮的灯,延时,在改成第二组再延时,继续第缓世三组。延时时还可以干别的,算好时间回来改灯就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询