找回密码
 立即注册
查看: 366|回复: 6

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-07-03 08:49:27
已绑定手机

3

主题

25

回帖

45

积分

新手上路

积分
45
发表于 2024-12-20 20:12:14 | 显示全部楼层 |阅读模式

今天使用STC8G1K08做个定时器,配个继电器实现定时给鱼缸打氧玩玩

image.png

image.png

P5.5作为输出,实现开关定时

代码如下:

#include <stc8g.h> // 包含 STC8G1K08 单片机的寄存器定义头文件

#define uint unsigned int
#define uchar unsigned char

// 定义 P5.5 引脚
sbit P5_5 = P5^5; // P5.5 接 输出

// 定时器 0 初始化
void timer0_init() {
TMOD |= 0x01; // 定时器 0 模式 1(16 位定时器)
TH0 = 0xFC; // 定时器初值,12MHz 晶振下约 1ms
TL0 = 0x18;
ET0 = 1; // 使能定时器 0 中断
EA = 1; // 使能总中断
TR0 = 1; // 启动定时器 0
}

// 全局变量
uint ms_count = 0; // 毫秒计数器
uint seconds_count = 0; // 秒计数器
uint minutes_count = 0; // 分钟计数器

// 定时器 0 中断服务函数
void timer0_isr() interrupt 1 {
TH0 = 0xFC; // 重装定时器初值
TL0 = 0x18;

ms_count++;  // 每 1ms 计数一次
if (ms_count >= 1000) {  // 1 秒
    ms_count = 0;
    seconds_count++;
    if (seconds_count >= 60) {  // 1 分钟
        seconds_count = 0;
        minutes_count++;
    }
}

}

void main() {
P5M0 = 0x00; // 设置 P5 口为准双向口
P5M1 = 0x00;

P5_5 = 1;  // 初始化 P5.5 为高电平

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

while (1) {
    if (minutes_count >= 1) {  // 1 分钟后
        P5_5 = 0;  // P5.5 输出低电平
    }
    if (minutes_count >= 30) {  // 30 分钟后
        P5_5 = 1;  // P5.5 输出高电平
        minutes_count = 0;  // 重置分钟计数器
    }
}

}

粗略制作,还请大佬指导

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-07-03 09:40:59

742

主题

1万

回帖

1万

积分

管理员

积分
17375
发表于 2024-12-20 20:27:42 | 显示全部楼层
学习打卡,放在同一个帖子中
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-07-03 09:40:59

742

主题

1万

回帖

1万

积分

管理员

积分
17375
发表于 2024-12-20 20:43:11 | 显示全部楼层
隐约 发表于 2024-12-20 20:40
一个帖子写上所有学习内容吗?

是,在自己的帖子中,一集一个楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-07-03 08:49:27
已绑定手机

3

主题

25

回帖

45

积分

新手上路

积分
45
发表于 2024-12-20 21:06:32 | 显示全部楼层
神*** 发表于 2024-12-20 20:43
是,在自己的帖子中,一集一个楼层

好的谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-07-03 08:49:27
已绑定手机

3

主题

25

回帖

45

积分

新手上路

积分
45
发表于 前天 16:48 | 显示全部楼层
实现每约30分钟打开继电器一次约10分钟
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-07-03 08:49:27
已绑定手机

3

主题

25

回帖

45

积分

新手上路

积分
45
发表于 昨天 08:51 | 显示全部楼层
这个模块使用小功率电器还行,如果使用大功率需要单独给继电器和单片机供电,继电器单独做开关作用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-07-03 08:49:27
已绑定手机

3

主题

25

回帖

45

积分

新手上路

积分
45
发表于 昨天 08:56 | 显示全部楼层
粗糙的焊接成品
截图202507030856133913.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-4 01:09 , Processed in 0.126297 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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