找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4530|回复: 4
打印 上一主题 下一主题
收起左侧

[求助]新手求助(延时实验)

[复制链接]
跳转到指定楼层
楼主
ID:33469 发表于 2012-1-14 22:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

 

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




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

 

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

 

请老师指点,不胜感激。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2012-1-15 01:32 | 只看该作者

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

 

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

回复

使用道具 举报

板凳
ID:27916 发表于 2012-1-15 09:05 | 只看该作者
你可以用定时器来做延时,晶振稳定的话,基本上是没有偏差的
回复

使用道具 举报

地板
ID:33469 发表于 2012-1-15 10:03 | 只看该作者

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

回复

使用道具 举报

5#
ID:33469 发表于 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;
  }
}

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

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

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表