69

帖子

0

TA的资源

一粒金砂(中级)

21
 

回复 18楼 huo_hu 的帖子

同意,继电器开关有延时,芯片精确没多大用
此帖出自51单片机论坛
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

22
 

回复 13楼 小小白 的帖子

谢谢~~是的,我是用12864显示的,用遥控器切换功能,就是说一开机,屏幕有选项,按2的时候是定时关机,比如说2S后关机,键盘设定好时间,确定后,继电器马上闭合,电机工作,屏幕显示开始倒计时,等到时间一到,继电器松开,电机关机。此时如果不执行任何操作,一直都是关闭的;

按3是定时开机,屏幕切换到定时开机画面,设定时间,比如说2S后开机,设定好后,倒计时开始,等到2S后,继电器闭合,电机工作,如果没有执行任何操作,电机一直都是开启的。

继电器精度的话这里不考虑,谢谢大家了,我只是考虑定时开关机都用一个定时器。

[ 本帖最后由 mianbaoyjttao 于 2011-11-8 22:03 编辑 ]
此帖出自51单片机论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

23
 

回复 15楼 woyaodwn 的帖子

write_djs() 是倒计时写12864液晶的时分秒的一个函数
void write_djs(unsigned add,unsigned date)
{
  unsigned shi1,ge1;
  shi1=date/10;
  ge1=date%10;
  write_com(0x88+add);
  write_da(0x30+shi1);
  write_da(0x30+ge1);
}
此帖出自51单片机论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

24
 

图片

这个是开机画面,本来是打算做个屏幕锁的,但是没有做成,在此程序中没有屏幕锁的功能,只是一个开机画面,直接按遥控器的按键即可切换到所需的功能

 

这个是完整程序 12864红外电机.rar (4.42 KB, 下载次数: 4)

 

 

以上是主界面,在出现开机画面后,按下遥控器的功能键,是直接显示到功能界面的,比如说定时开机画面,而不是显示主界面,主界面是在按2之后启动电机,再次按2关闭的时候才显示的

 

按键释义,按2直接启动电机,显示总共运行时间界面,再次按下时,电机关闭,返回主界面。

按3 定时关机,设定好时间,即进入倒计时,倒计时一到,电机即刻关闭,无论在倒计时阶段,还是计时完成阶段,再次按下时,可从新输入定时关闭电机的时间

按5定时开机,设定好时间,即进入到计时,时间一到,电机开启,无论在倒计时阶段,还是计时完成阶段,在下按下时,可从新输入定时开机的时间

 

 

以上无论处在哪一个状态,任意按2,3,5均可自由切换到所需的状态。

[ 本帖最后由 mianbaoyjttao 于 2011-11-8 22:47 编辑 ]

20111006427.jpg (528.18 KB, 下载次数: 0)

20111006427.jpg
此帖出自51单片机论坛
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

25
 
学习了
此帖出自51单片机论坛
 
 
 

回复

1634

帖子

0

TA的资源

裸片初长成(高级)

26
 

回复 19楼 小小白 的帖子

他们告诉我在写程序的时候中断函数要尽可能的短小

因为以后会出现因为一个中断在执行,又出现另一个中断的情况啊

第二句是第一句的问题的回答,回答的已经很清楚了。

无非就是如果不短小精悍,那么这段程序就会执行很长时间,以至于紧接着再来的中断得不到及时滴被执行。

不要再说,那我们可以把紧接着再来的中断优先级提高啊这类的话,那样我也是可以反驳你滴。
此帖出自51单片机论坛
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

27
 
用一个定时器完全可以,每次定时就是一个倒计时程序
此帖出自51单片机论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

28
 

回复 12楼 mianbaoyjttao 的帖子

我晕.....
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

29
 
xu_changhua老师的程序试了没,该可以了吧..
另外,你的count1 count2只是1秒钟计数器吧?

你启动两个定时器的顺序是咋样子的?

是不是开了一个,到关或者开的时候再启动另一个......
或者是,,因为不同按键,不一样的功能选择,启动不同的定时器。

如果是后者,在xu_changhua老师的程序基础上加一个判断和对RELAY初始化成不同的值。
这几天没上来,楼刷的老高了,总算看见你的程序了。

这程序真的是,,,,写的一塌糊涂......
是看 郭天翔 的 过来的吧?
我有时间写个帖子,到时再说。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

30
 

借用xu_changhua老师的程序(加一点补充)

如果你的程序如我所猜测,是 根据(红外)接收到的指令,比如说2 是定时开启,3是定时关闭的话。
xu_changhua老师的程序,只要稍加修改即可。
记住老师用的一个 位取反 指令,在这里是一个很常用也是很巧妙的做法。

但愿这次你的问题能解决了

#include
#include
unsigned char Count1,fen1,shi1,miao1;

sbit RELAY=P1^0;
void main(void)
{
TMOD=0x01;
IE=0x82;
TH0 = (65536-45872)/256;
TL0 = (65536-45872)%256;
TR0=1;
while(1);//按键或别滴程序

//此处加1判断,判断是按2 定时启动 还是 按 3 定时关闭,然后
//根据 上述判断,把RELAY初始化,比方说, 定时启动,那么,RELAY的初始值
//就应该是对应于 让其关闭的那个RELAY值。从你的程序看,就应该是 RELAY = //0;
//反之依然,RELAY = 1;
}
void T0_Int() interrupt 1
{
  TH0 = (65536-45872)/256;
  TL0 = (65536-45872)%256;
  Count1++;
  if(Count1==20)
  {
    Count1=0;
    miao1--;
    if(miao1==-1)
    {
      fen1--;
      miao1=59;
      if(fen1==-1)
      {
        //TR0=0;在按键中启动
        shi1--;
        fen1=59;
        if(shi1==0)shi1=0;
        shi1=0;
        miao1=0;
        fen1=0;
        RELAY=~RELAY; //继电器动作
      }
    }
  }
}
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

31
 
谢谢,谢谢各位。初学者,很多东西都不熟悉,程序是写得一塌糊涂,郭天祥的视频可以说是启蒙了。我前几天把定时开机和定时关机合并了,自由切换没有问题。昨天将定时开关机,还有启动计时三项合并为一个定时器,只是有很多BUG吧,切换的时候会发生错误。我再仔细研究研究。不知道各位对于学习单片机有什么心得体会,指点指点。谢谢
此帖出自51单片机论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

32
 

回复 31楼 mianbaoyjttao 的帖子

唯一的心得就是,遇到问题,找出原因。

在这个过程里,你唯一需要知道的是:到底上哪去找这个答案,并且,要怎样做,才能把相应的一系列问题一并解决了。

这个时侯你就知道那些基础是你真正需要的了。
此帖出自51单片机论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表