矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: cwhenao

超长时间延时可以只用一级RC充电吗?

[复制链接]
     
发表于 2019-2-1 17:12:15 来自手机 | 显示全部楼层
看漏眼了,不会。
回复 支持 反对

使用道具 举报

     
发表于 2019-2-1 18:28:54 | 显示全部楼层
本帖最后由 washu 于 2019-2-1 18:50 编辑
cwhenao 发表于 2019-2-1 09:37
好的好的,受益匪浅,你说的两种方法我都有空试一下,还没接触过数字电路呢


来了计数器+比较器的逻辑 IC 搭电路之后,我们来看看单片机如何实现。

cr10106.png

我就知道有人一上来就汇编,可以说大多数坛友对单片机避而远之,就是这些人害的,搞得要用单片机多难似的 我上次还在群里提到过矿坛有个坛友的学单片机的文章,居然说 AVR 不推荐初学者的原因是它用 C 语言,难学。群友纷纷表示,先不说 AVR 都快凉了,居然有人说 C 语言难学的,难道非得汇编不成?

所以,我们首先要干掉这个拦路虎,那种甚么不会用汇编就没法在单片机领域做出多少成就啦之类的,我们只是业余爱好者!

那么用高级语言写刚才那个用计数器+比较器的逻辑电路如何呢?非常简单,就那么几句代码:


  1. Count = Count + 1                ' 计数器加 1
  2. If Count > 28800 Then                 ' 达到你设计的间隔时间后               
  3.         PORTB.4 = 1                        ' 让该 IO 输出高电平
  4. End If
  5. If Count > 30600 Then                ' 达到 IO 高电平持续时间后
  6.         Count = 0                        ' 重置计数器
  7.         PORTB.4 = 0                        ' 并让该 IO 复位
  8. End If
复制代码


你看够简单吧 下面是完整的程序,当然为了便于测试我缩小了时间间隔。除了上面的代码之外的代码是初始化单片机的,比如初始化定时器,让它每 0.5 秒溢出一次,相当于得到一个 2HZ 时钟(对应 32768HZ 晶振 + CD4060);初始化单片机 IO,配置为输出之类,都是一些很固定的格式化代码。

cr10105.png

评分

3

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-2-2 19:13:34 | 显示全部楼层
washu 发表于 2019-2-1 16:55
回老家过年中,刚才下好 MS,画了两个示意图  不过这个只是让你明白原理,我非常不建议你自己试,因 ...

才买了个单片机学习套装,还没来得及看,就好像是最简单的80C51,过了年学下最简单的C语言 你发的程序我先学习学习,顺祝你春节快乐

补充内容 (2019-2-6 11:13):
我仔细看了下是89C52
回复 支持 反对

使用道具 举报

     
发表于 2019-2-2 20:44:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2019-2-2 21:00:51 | 显示全部楼层
cwhenao 发表于 2019-2-2 19:13
才买了个单片机学习套装,还没来得及看,就好像是最简单的80C51,过了年学下最简单的C语言 你发的程 ...

写个 C 的版本 其实我觉得没啥区别,不过我那个 Basic 的封装得更好一些,起码不用直接访问寄存器。

cr10107.png



但要按 C 的风格写也可以,不直观罢了
cr10108.png

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2019-2-4 00:29:08 | 显示全部楼层
说的越来越复杂,楼主都快被学单片机了一个机电定时器,简单粗暴。最小15分钟,24小时循环,周波电机。楼主若用4060,也挺热闹,如果输入一个一秒脉冲,16384分频后不是4小时,四小时应该14400分频,要用与非门神马的实现。秒脉冲发生器也可以用4060加一个手表晶振32768Hz。出来是2Hz,还要变1Hz。总之并不容易。
02DD30AF-FF29-41DD-A257-B8FCEC79D573.jpeg
回复 支持 反对

使用道具 举报

     
发表于 2019-2-4 11:50:06 | 显示全部楼层
用555搭15分钟双稳,后接两片4017做17分频,工作间隔正好符合要求,恐怕是抛开单片机之外最实用的方法了
回复 支持 反对

使用道具 举报

     
发表于 2019-2-4 16:48:47 | 显示全部楼层
本帖最后由 sjp 于 2019-2-4 16:51 编辑

一个15F104W的最小系统,直接复制到编译器里编译就可以用了。

;    15F104W  内部振荡选6MHZ
         ORG   000H
         MOV   P3,#00011001B  ;配置P3口
         AJMP  STR
          ORG   100H           ;
STR:   JB    P3.4,$           ;等待开关按下
BB:    MOV R5,#16         ;立即数16送R5            ;
         CPL   P3.0             3.0输出红灯点亮,开风扇
         ACALL DELP           ;7.5分钟延时一次
         ACALL DELP           ;7.5分钟延时二次
         SETB  P3.0           3.0输出高红灯关闭,关风扇
JJ:     CLR   P3.3            3.3输出低(指示灯)
         ACALL DELP          ;7.5分钟延时一次
         SETB  P3.3           3.3输出高(指示灯)
         ACALL DELP          ;7.5分钟延时二次
         DJNZ  R5,JJ           ;没减完16次跳到JJ,减完下去
         NOP                      ;延时16次=4小时
        AJMP  BB               ;反复循环
;*********7.5分钟延时*****************
DELP:  MOV R0,#150
LOOP1: MOV R1,#100
LOOP2: MOV R2,#50
LOOP3: MOV R3,#30
LOOP4: MOV R4,#30
       DJNZ R4,$
       DJNZ R3,LOOP4
       DJNZ R2,LOOP3
       DJNZ R1,LOOP2
       DJNZ R0,LOOP1
       RET
       END
IMG_20190204_133050.jpg

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2019-2-4 17:00:33 | 显示全部楼层
要用一时基电路,分频的方法,取出秒基准,分基准,-------。。
回复 支持 反对

使用道具 举报

     
发表于 2019-2-5 00:33:45 来自手机 | 显示全部楼层
采用555必须考虑电容本身的漏电电阻的影响,长时间定时采用级联法比较容易。另外采用单片机是最简单最精确最便宜的方法,寥寥几句程序就解决问题了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2019-2-5 19:03:38 | 显示全部楼层
本帖最后由 bg1trk 于 2019-2-5 19:20 编辑

长延时还是用单片机简单。除去电源,硬件上就一片单片机、一只三极管和一个继电器,3个元器件就行了。

值班闲的没事,拿以前STM8做的项目改了改,一小会弄出您需要的程序。
程序主要流程是开启一个定时器,用定时中断的方式累计秒数,秒数达到一定值后使继电器吸合,大于一定值后继电器释放、秒数清零,反复循环。


主程序很简单,引用2个头文件,定义一个变量,然后反复执行继电器控制函数,JDQ_CONT()根据定时秒数决定继电器开闭。
main.png


中断服务,每20ms进一次中断,执行一次秒数累加函数:
it.png


定时器相关,TIM3.H定义俩函数,TIM3.C内的函数体是定时器初始化和秒数累计。每50ms进一次中断,20次中断后秒数加1.
tim3-h.png
tim3-c.png


继电器控制相关,JDQ.H定义了继电器控制口线和俩函数,JDQ.C内有口线GPIO和继电器控制函数。秒数达到14400(4小时)令继电器吸合,大于15300(1小时15分)后继电器释放、秒数清零。
jdq-h.png
jdq-c.png


您是长时间定时,可调整定时器计数值,减少进入中断的次数。




硬件电路,STM8无需外接晶振和复位电路也能工作,1只三极管驱动继电器即可,很简单。
单片机可换成STM8S001,8个引脚,很简单。STC的8脚单片机也行,稍微改改程序。
SCH.png

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-2-6 11:03:41 | 显示全部楼层
加糖的咖啡 发表于 2019-2-4 00:29
说的越来越复杂,楼主都快被学单片机了一个机电定时器,简单粗暴。最小15分钟,24小时循环,周波电机。楼 ...

时间是大约4小时和15分,实际并不一样要十分精准。机电定时器没用过,如果原理是普通风扇这样的机械定时器,他要一直响过不停,也烦人。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-2-6 11:09:06 | 显示全部楼层
sjp 发表于 2019-2-4 16:48
一个15F104W的最小系统,直接复制到编译器里编译就可以用了。

;    15F104W  内部振荡选6MHZ

新年快乐!买了个89C52单片机,程序是一样的吗?能否给写个程序?谢谢
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-2-6 11:11:23 | 显示全部楼层
bg1trk 发表于 2019-2-5 19:03
长延时还是用单片机简单。除去电源,硬件上就一片单片机、一只三极管和一个继电器,3个元器件就行了。

...

买了个89C52单片机,能给个程序吗?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-2-6 11:12:40 | 显示全部楼层
大孔景元 发表于 2019-2-4 11:50
用555搭15分钟双稳,后接两片4017做17分频,工作间隔正好符合要求,恐怕是抛开单片机之外最实用的方法了

论坛能人多,方案也多,把我给说傻了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-5-8 02:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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