找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1711|回复: 5
收起左侧

单片机的智能灯控制系统,是代码有问题还是电路有问题?

[复制链接]
ID:893304 发表于 2021-3-21 11:10 | 显示全部楼层 |阅读模式
是代码有问题还是电路有问题呀!!我基础比价薄弱!改了很久了实在没办法了才拿出来问大家 希望大家帮帮忙
#include<reg51.h>//单片机 C语言的头文件
#include<intrins.h>//包含 51 单片机的几条汇编
语句的 C 语言调用接口
#include<absacc.h>//头文件
#define uc unsigned char
#define ui unsigned int//定义
sbit GM=P1^0;//光敏
sbit RT=P1^5;//人体红外
sbit KZ=P3^5;//继电器控制灯
uc sec=0;
void init()//初始化子函数
{
GM=0;//光敏置低 //光敏输出低电平(复
位)
RT=0;//人体红外置低 //红外输出低电平
(复位)
TMOD=0x01;//定时器 0工作方式 1
TH0=0x3c;
TL0=0xb0;//赋初值 50ms
ET0=1;//打开定时中断 0允许开关
TR0=1;//打开定时器 0定时开关
EA=1;//打开中断 0总开关
}
void main()//主函数
{
init();//初始化函数
while(1);//空循环
}
void T0_time()interrupt 1 //定时器执行函数,
热释电模块和光线感应和控制继电器都是在定时器
里完成
{
uc m;//定义变量 m
TH0=0x3c;
TL0=0xb0;//重新赋初值 50 ms
m++;//m 加一次是 50 ms
if(m>=20)//加到 20次,就是一秒
{
m=0;//m 清零
if(RT==0||GM==0) //当热释电和光敏
有一个不符合条件(符合条件就是热释电检测到人,
光敏检测到环境光线弱)
{
sec++;//sec变量加
if(sec>10)//从亮灯到条件不符熄灯,中间延时
10秒钟
{
sec=0;//sec清零
KZ=1;//控制继电器关闭
}
}
if(RT==1&&GM==1)//当 热 释 电 和 光
敏都符合条件,则秒计时参数归零,开灯
{
sec=0;//sec清零
KZ=0;//控制继电器打开
}
}
}

X6LC3(SYWMTE4F}`HZF3~IB.png
回复

使用道具 举报

ID:814525 发表于 2021-3-21 11:59 | 显示全部楼层
第一个:KZ端口没有初始化;
第二个:uc m;//定义变量 m。m为局部变量,不能实现累加功能。要改为全局变量或静态局部变量。
第三个:仿真晶体没频率值

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:342822 发表于 2021-3-21 12:25 | 显示全部楼层
程序中  ;  () {}这些都是中文字符把他都替换成英文

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:893304 发表于 2021-3-21 13:31 | 显示全部楼层
taotie 发表于 2021-3-21 12:25
程序中  ;  () {}这些都是中文字符把他都替换成英文

好的 十分感谢
回复

使用道具 举报

ID:893304 发表于 2021-3-21 13:32 | 显示全部楼层
张天师 发表于 2021-3-21 11:59
第一个:KZ端口没有初始化;
第二个:uc m;//定义变量 m。m为局部变量,不能实现累加功能。要改为全局变 ...

好的 我改改试试  十分感谢
回复

使用道具 举报

ID:342822 发表于 2021-3-21 13:51 | 显示全部楼层
5551000.gif
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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