关于单片机流水灯的问题
如果使用单片机来控制一个发光二极管,使发光二极管按亮1s暗1s的规律交替变化,说明该如何使用和设置定时器,硬件上应该如何连接该发光二极管?假定单片机频率为12MHz。...
如果使用单片机来控制一个发光二极管,使发光二极管按亮1s暗1s的规律交替变化,说明该如何使用和设置定时器,硬件上应该如何连接该发光二极管?假定单片机频率为12MHz。
展开
展开全部
12MHz为时钟周期,如果不分频,定时器周期也为12MHz,51单片机为12分频。
以下计算均为不分频。
Fc = 12MHz, Time = 1s ,计数次数为12_000_000,如果有16bit定时器,计数上限65535,不可以满足,因此要配合软件计数。12000000 = 60_000 X 200.
硬件连接为:
发光二极管的压降为1~3V,
额定电流:20mA
如果用单片机IO口直接驱动,假设输出电压为5V,压降1.2V,那么分压电阻R = (5-1.2)/0.02 =240(ohm),当然了一般可以用1K的电阻。有时候单片机驱动能力不足,要上拉电阻,这个阻值要根据单片机倒灌电流的阈值计算,一般阻值1~10K
以下计算均为不分频。
Fc = 12MHz, Time = 1s ,计数次数为12_000_000,如果有16bit定时器,计数上限65535,不可以满足,因此要配合软件计数。12000000 = 60_000 X 200.
硬件连接为:
发光二极管的压降为1~3V,
额定电流:20mA
如果用单片机IO口直接驱动,假设输出电压为5V,压降1.2V,那么分压电阻R = (5-1.2)/0.02 =240(ohm),当然了一般可以用1K的电阻。有时候单片机驱动能力不足,要上拉电阻,这个阻值要根据单片机倒灌电流的阈值计算,一般阻值1~10K
宿兴电子
2024-11-28 广告
2024-11-28 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡...
点击进入详情页
本回答由宿兴电子提供
展开全部
硬件上很好办,5V--电阻(560欧姆)--发光二级管---单片机IO(P1.0)
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R2,#20
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV R2,#20
CPL P1.0
T0E:
RETI
END
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R2,#20
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV R2,#20
CPL P1.0
T0E:
RETI
END
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<reg52.h>
unsigned char a;
sbit led=P1.0; //IO口定义
void main()
{
TMOD=0x01;//设置定时器0为工作方式2
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;;//启动定时器
while(1);设置完成后主程序什么也不做,等待
}
void timer0()interrupt 1//定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(aa==20)//1次中断花50ms,20次中断花1S
{
led=~led;
a=0;
}
}
LED正反接入P1.0均可,,若负极接P1.0,正极接VCC更亮,最好加限流电阻100-500欧
若正极接P1.0,负极接GND,用蓝色或白色LED ,可不加限流电阻
unsigned char a;
sbit led=P1.0; //IO口定义
void main()
{
TMOD=0x01;//设置定时器0为工作方式2
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;;//启动定时器
while(1);设置完成后主程序什么也不做,等待
}
void timer0()interrupt 1//定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(aa==20)//1次中断花50ms,20次中断花1S
{
led=~led;
a=0;
}
}
LED正反接入P1.0均可,,若负极接P1.0,正极接VCC更亮,最好加限流电阻100-500欧
若正极接P1.0,负极接GND,用蓝色或白色LED ,可不加限流电阻
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
流水灯简易版讲解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询