隐约 发表于 2024-12-20 20:12:14

用STC8G1K08做一个定时给鱼缸打氧气的小模块

<p>今天使用STC8G1K08做个定时器,配个继电器实现定时给鱼缸打氧玩玩</p>
<p><img src="data/attachment/forum/202507/02/164303itvax49cnlhast2x.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202507/02/164326t15z6t5vxh6z4k2z.png" alt="image.png" title="image.png" /></p>
<p>P5.5作为输出,实现开关定时</p>
<p>代码如下:</p>
<p>#include &lt;stc8g.h&gt;// 包含 STC8G1K08 单片机的寄存器定义头文件</p>
<p>#define uint unsigned int<br />
#define uchar unsigned char</p>
<p>// 定义 P5.5 引脚<br />
sbit P5_5 = P5^5;// P5.5 接 输出</p>
<p>// 定时器 0 初始化<br />
void timer0_init() {<br />
TMOD |= 0x01;// 定时器 0 模式 1(16 位定时器)<br />
TH0 = 0xFC;    // 定时器初值,12MHz 晶振下约 1ms<br />
TL0 = 0x18;<br />
ET0 = 1;       // 使能定时器 0 中断<br />
EA = 1;      // 使能总中断<br />
TR0 = 1;       // 启动定时器 0<br />
}</p>
<p>// 全局变量<br />
uint ms_count = 0;      // 毫秒计数器<br />
uint seconds_count = 0; // 秒计数器<br />
uint minutes_count = 0; // 分钟计数器</p>
<p>// 定时器 0 中断服务函数<br />
void timer0_isr() interrupt 1 {<br />
TH0 = 0xFC;// 重装定时器初值<br />
TL0 = 0x18;</p>
<pre><code>ms_count++;// 每 1ms 计数一次
if (ms_count &gt;= 1000) {// 1 秒
    ms_count = 0;
    seconds_count++;
    if (seconds_count &gt;= 60) {// 1 分钟
      seconds_count = 0;
      minutes_count++;
    }
}
</code></pre>
<p>}</p>
<p>void main() {<br />
P5M0 = 0x00;// 设置 P5 口为准双向口<br />
P5M1 = 0x00;</p>
<pre><code>P5_5 = 1;// 初始化 P5.5 为高电平

timer0_init();// 初始化定时器 0

while (1) {
    if (minutes_count &gt;= 1) {// 1 分钟后
      P5_5 = 0;// P5.5 输出低电平
    }
    if (minutes_count &gt;= 30) {// 30 分钟后
      P5_5 = 1;// P5.5 输出高电平
      minutes_count = 0;// 重置分钟计数器
    }
}
</code></pre>
<p>}</p>
<p>粗略制作,还请大佬指导</p>

神农鼎 发表于 2024-12-20 20:27:42

学习打卡,放在同一个帖子中

神农鼎 发表于 2024-12-20 20:43:11

隐约 发表于 2024-12-20 20:40
一个帖子写上所有学习内容吗?

是,在自己的帖子中,一集一个楼层

隐约 发表于 2024-12-20 21:06:32

神农鼎 发表于 2024-12-20 20:43
是,在自己的帖子中,一集一个楼层

好的谢谢

隐约 发表于 2025-7-2 16:48:01

实现每约30分钟打开继电器一次约10分钟

隐约 发表于 2025-7-3 08:51:49

这个模块使用小功率电器还行,如果使用大功率需要单独给继电器和单片机供电,继电器单独做开关作用{:4_167:}

隐约 发表于 2025-7-3 08:56:32

粗糙的焊接成品
页: [1]
查看完整版本: 用STC8G1K08做一个定时给鱼缸打氧气的小模块