51单片机流水灯程序
p0-p7八个二极管。1使发光二极管每隔1秒循环点亮。循环时间由定时器控制。要求使用51内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1益出中断一次。...
p0-p7八个二极管。
1 使发光二极管每隔1秒循环点亮。循环时间由定时器控制。要求使用51内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1益出中断一次。
2 模拟一时序控制装置。开机后一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮…… 一直循环下去。
要求C语言或者51单片机语言 展开
1 使发光二极管每隔1秒循环点亮。循环时间由定时器控制。要求使用51内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1益出中断一次。
2 模拟一时序控制装置。开机后一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮…… 一直循环下去。
要求C语言或者51单片机语言 展开
1个回答
展开全部
程序如下,仿真见附件。有问题请追问。
#include <AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
bit flag_1s=0;
uchar code tab[8]={1,2,4,8,16,32,64,128};//[第1小题用这个表]
//uchar code tab[8]={0x05,0x0a,0x50,0xa0,0xaa,0x55,0xff,0x00};//[第2小题用这个表]
void InitTimer1(void)
{
TMOD = 0x10;
TH1 = 0x3C;
TL1 = 0x0B0;
EA = 1;
ET1 = 1;
TR1 = 1;
}
void main(void)
{
static uchar j;
InitTimer1();
P0=0;
P1=0;
P2=0;
P3=0;
flag_1s=1;
while(1)
{
if(flag_1s==1)
{
flag_1s=0;
P2=tab[j];
j++;
if(j>=8) j=0;
}
}
}
void Timer1Interrupt(void) interrupt 3
{
static uchar i;
TH1 = 0x3C;
TL1 = 0x0B0;
//add your code here!
i++;
if(i>=20)//50ms*20=1000ms
{
i=0;
flag_1s=1;
}
}
意法半导体(中国)投资有限公司
2021-01-14 广告
2021-01-14 广告
单片机中流水灯控制: 硬件连接很简单,只要将8个led指示灯接在p1口上 另一端通过20欧姆的电阻接+5v电源上,就可以了。 主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制led指示灯逐渐一个一个地点亮或...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询