标题: [求助]新手求助(延时实验) [打印本页]

作者: 猛农摄影    时间: 2012-1-14 22:50
标题: [求助]新手求助(延时实验)

各位老师大家好,我是新手想在本论坛的51hei板子上做个延时实验遇到问题请教各位老师

 

按下按键1时对应LED1亮1小时后熄灭
按下按键2时对应LED2亮1小时后熄灭




按下按键8时对应LED8亮1小时后熄灭

 

问题1:我看了教程的延时函数都是几毫秒或几秒,想要1小时或2小时的长时间精准延时应如何实现。
问题2: 8个LED灯如何同时工作,

 

请老师指点,不胜感激。


作者: admin    时间: 2012-1-15 01:32

编写延时程序的具体方法我曾经专门发过个一个帖子http://www.51hei.com/bbs/dpj-4711-1.html

 

理论上用上面帖子的方法也能实现延时一个小时,但实现起来比较麻烦,我还是建议你用板子上的ds1302时钟芯片来做会比较精准一点.


作者: 青苹果    时间: 2012-1-15 09:05
你可以用定时器来做延时,晶振稳定的话,基本上是没有偏差的
作者: 猛农摄影    时间: 2012-1-15 10:03

多谢楼上两位老师指点,我在学习下。


作者: 猛农摄影    时间: 2012-1-15 21:50

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;sbit key2=P3^5;
sbit key3=P3^6;sbit key4=P3^7;

sbit d1=P1^0;sbit d2=P1^1;
sbit d3=P1^2;sbit d4=P1^3;

 

void main()
{

 P1=0xff;
 while(1)
  {
   if(key1 == 0) d1 = 0;
   if(key2 == 0) d2 = 0;
   if(key3 == 0) d3 = 0;
   if(key4 == 0) d4 = 0;
  }
}

因为我刚接触单片机,是自学的没有基础,中断和定时器还没搞明白怎么回事,请老师在指点下,谢谢。

如何让这些发光管点亮后一段时间自动熄灭

我用了延时后第一个发光管亮后其他的就不能操作了,要等到灯灭了才能操作其他灯,不能同时进行






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1