rjps.net
当前位置:首页 >> 单片机两个灯交替闪烁 >>

单片机两个灯交替闪烁

#include<reg51.h>#define P1^0 LED1#define P1^1 LED2 void delay(){ int i,j; for (i=0;i<10000;i++)//可以通过调成10000和1000这两个数来改变延时时间达到最佳效果. for (j=0;j<1000;j++);//这两个数最好实验确定.} void main(){ LED1=1; LED2=0; while(1) { LED1=!LED1; LED2=!LED2; delay(); }}

不用定时器,用延时程序;

你根据你的单片机硬件接线图,把小灯的端口对应改一下就可以了#include<reg52.h>#define uint unsigned int#define uchar unsigned char uchar count; sbit led_1 = P2^1; sbit led_2 = P2^2; void main() { TMOD =0x01; TH0 = (65535-46080)/256;//

#include "reg51.h"sbit LED1 =P1^1;sbit LED2 =P1^2;void delay(unsigned int i){ unsigned int j; for(;i--;)for(j=450;j--;);}void main(){ while(1){ LED2=LED1; LED1=!LED1; delay(100); }}

1 两个LED反向并联 用频率低点的交流电即可 2 最简单的就是 你可以找一个机械钟(装1.5V 5号电池的那种哦) 拆出里面的电路板 把接线圈的两端改接两个反向并联的LED 输入端该接3V电源(注意不要接反+ - 极 否者烧掉电路 LED不会烧)这样通电后两个LED就会交替的闪光了

一个开关,比如导通了1秒一个模式,3秒一个模式,5秒一个模式. 要么在一定时间内,检测开关导通的次数 我觉得应该弄的直观点,从51上接4个led做指示用,一个灯表示待运行,还有3个灯,亮一个表示模式1,亮两个表示模式2,亮3个表示模式3 开机的时候,待运行灯亮,等待设定模式,这时候开始按按键设定模式,同时待运行灯灭.模式灯随按键操作变化. 模式设定好了,停止按键操作,两秒后待运行灯亮,表示模式设定完毕.这时候长按按键,开始跑马灯.短按按键则返回模式设定. 当开始运行跑马灯的时候,可以设定运行一遍返回,也可以中断返回. 个人想法,不知行不行

先设置一个位变量,表征现在是启动还是停止.再设置一个位变量,表征应该是LED1亮还是LED2亮.然后在检测到按键的同时,启动定时器,取反第一个变量,计时五秒后取反第二个变量.

1 两个LED反向并联 用频率低点的交流电即可 2 最简单的就是 你可以找一个机械钟(装1.5V 5号电池的那种哦) 拆出里面的电路板 把接线圈的两端改接两个反向并联的LED 输入端该接3V电源(注意不要接反+ - 极 否者烧掉电路 LED不会烧) 这样通电后两个LED就会交替的闪光了

这是一个简单的震荡电路,由散件组成,可以使两个LED交替闪烁.两个电容C1、C2轮流充放电,是关键.1、Q1导通时C1放电,LED1亮.此时C2充电.2、Q2导通时C2放电,LED2亮.此时C1充电.电路会轮流重复1、2两个过程.

简单到离谱了,一楼还有脸说代做细节你没说明,以下是按下开关不放时,两个灯一起闪,1秒亮1秒暗.开关松开就停止闪烁.#include sbit d1=P0^0; sbit d2=P0^1; sbit k1=P3^0; void delay(int x) { char y; while(x--) for(y=0;y} void main() { while(1) if(k1==0) { d1=~d1; d2=~d2; delay(1000); } } 因为我偷懒的关系,程序有个小漏洞,延时函数的x和y应该定义成无符号数更合理

网站首页 | 网站地图
All rights reserved Powered by www.rjps.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com