基于51单片机的定时插座设计

2024-02-15 16:30

本文主要是介绍基于51单片机的定时插座设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、方案流程及技术规格书设计

二、系统硬件电路设计

三、软件编写及调试

四、系统调试测试与分析

前言

       随着现代社会的不断进步,人们的生活水平也不断提高,人们对生活品质的要求也就越来越高,开始追求个性化、智能化,追求快捷、高效,充满乐趣的生活方式。人们在居住条件不断改善和提升的基础上,对家庭电器的档次要求越来越高,对家居环境也追求一种人性化、智能化,智能家居也就应运而生。由此,智能电子技术也开始在智能家居电子产品中得到广泛了应用,而网络通信技术的飞速发展,给现代人们的家居生活也带来了全新的体验。智能家居正在口渐兴起,插座智能化正在成为一种趋势。

       智能化系统是从上个世纪八十年代兴起于欧美国家和口本,并于九十年代末进入我国,经过十几年发展,尤其是伴随我国住宅与房地产业的高速发展。“智能插座”是以住宅为平台,集系统、结构、服务、管理、控制于一体,利用先进的网络通讯技术、电力自动化技术、计算机技术、将与居家生活有关的各种设备有机地结合起来,通过网络化的综合管理家中插座设备,来创造一个优质、高效、安全、便利、节能、健康、环保的居住生活环境空间。

       传统的家居插座系统一般采用集中控制器为中心,采用界面按键操作的方式来控制家居家电。采用界面操作控制的弊端是操作复杂,必须在固定地点操作。随着定时识别技术的快速发展,定时识别的准确率和可靠性大幅提高。定时识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。定时识别TTI(Timing To Identify)的最大优势在于使得人机用户界面更加自然和容易使用。

       基于定时识别技术的上述特点,同时结合当代智能家居在控制中的实际需求,我们选择定时控制插座系统。本系统具有良好的开发和应用前景,在智能插座这个概念广为人知的时代,定时控制技术与智能插座的融合,最终会让智能插座引领市场并且走向更为广泛的应用。

 

软件工具准备

软件:

电路设计:protel99 se(up主使用版本) 或者其他版本,或者其他电路设计软件;

单片机开发:Keil5;

调试测试:串口调试助手,逻辑分析仪等;

工具:

电路焊接:电烙铁,SMT(有条件的);

调试:

万用表、示波器(基础入门即可,可以白嫖学校或者公司)USB转串口工具、仿真器;

一、方案流程及技术规格书设计

方案流程设计

技术规格书设计

1.单片机读取实时时钟DS1302时间。

2.实时时钟信号输入单片机IAP15F2K61S2,单片机处理相关数据并在LCD1602液晶显示。

3.有信息提示,当系统检测到达设定定时时间,蜂鸣器发出鸣响, 控制继电器断开电源,控制插座断电。

4.按键可以设置当前时间和定时时间并通过LCD1602显示。

5.设计运用单片机来控制系统,DS1302实时时钟、LCD1602显示和蜂鸣器模块在与它周围连接,模块与模块之间传送信号实现最终要求。本设计采用IAP15F2K61S2芯片。IAP15F2K61S2 是一款有4k字节FLASH的8位单片机。本芯片是一款可以为许多嵌入式控制应用提供高效灵活低成本解决方案的微控器。我对其中原理的理解是:单片机读取DS1302实时时钟芯片时间,在IAP15F2K61S2单片机识别按键操作后,单片机根据命令设定定时时间,使用LCD1602闪烁显示,判断是否检测到达设定时间,检测到蜂鸣器发出鸣响,控制继电器断开电源,控制插座断电。综上总体硬件设计框图如图所示。

系统的硬件整体框图如下:

系统硬件电路设计

2.1微处理控制电路

       单片机采用了宏晶公司的IAP15F2K61S2,单片或微型计算机集成电路中通常有复位电路、晶振时钟电路等,从而避免了外部的复位环和周边晶振。

2.2  LCD1602液晶显示电路

       LCD1602A是LCD1602A的 LCD驱动 IC (HD44780 LCD)的功率电路,以及与 LCD组件连接的16个插头,电路如上图;LCD1602是一个具有32个字符的显示单元,、一行16个字符,可以同时显示两行16*2个字符,电路如图所示

2.3  继电器驱动电路

       继电器由永久磁铁保持释放状态,加上工作电压后,电磁感应使衔铁与永久磁铁产生吸引和排斥力矩,产生向下运动,最后达到吸合状态。1,它具有控制系统和被控制系统之间的互动关系。2,继电器是一种当输入量变化到某一定值时。3,继电器是一种电控制器件,当输入量的变化达到规定要求时。

2.4  DS1302实时时钟电路

       DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,并且具有闰年补偿等多种功能。电路如上图。

2.5  蜂鸣器电路设计

       采用被动式蜂鸣器,当蜂鸣器不响时,P33端口输出低电平,Q1不导电,没有电流通过蜂鸣器,P33端口输出4 KHz的方波,Q1在P33高电平时导通,在低压时导通。蜂鸣器的电流也是4千赫兹,因此蜂鸣器发出声音。

2.6 电平转换电路

       本系统采用外部9 V的电源适配器,但 MCU、 LCD均要求5 V的电压,采用7805三端稳压集成电路。

2.7 原理图及PCBA版图

三、软件编写及调试

3.1 protues软件仿真设计

       电路的仿真使用了Proteus软件,Proteus是一款电路设计和模拟的软件。

       上电初始状态的仿真如图,显示当前时间00-00-00

       上电后通过控制按键设定目标时间为00-01-00,当当前时间为00-01-00时继电器闭合,插座通电,蜂鸣器提示。

        一分钟继电器闭合后通过控制按键设定目标时间为00-02-00,当当前时间为00-02-00时继电器断开,插座断电,蜂鸣器提示

四、系统调试测试与分析

4.1  步进电机

/* 步进电机启动函数、angle-需要转过的角度 */

void StartMotor(unsigned long angle)

{

//在计算前关闭中断,完成再开启,避免中断打断计算过程而造成错误

//EA = 0;

beats = (angle * 4076) / 360; // 实测为4076拍转一圈

//EA = 1;

}

void turn_motor_1(unsigned long angle)

{

unsigned char tmp;

unsigned char index;

unsigned char BeatCode[8] = {0xE,0xC,0xD,0x9,0xB,0x3,0x7,0x6}; //步进电机节拍对应的IO控制代码

if (beats != 0) //节拍不为0产生一个驱动节拍

{

tmp = P1; //用tmp把p1口当前值暂存

tmp = tmp & 0xF0; //用&操作清零低4位

tmp = tmp | BeatCode[index];  //用|操作把节拍代码写到低4位

P1 = tmp; //把低4位的节拍代码和高4位的原值送回P1

index++; //节拍输出索引递增

index = index & 0x07; //用&操作实现到8归零

beats--; //总节拍数减一

}

else //节拍为0则关闭电机所有的相

{

P1 = P1 | 0x0F;

}

}

4.2  LCD1602液晶显示

/***写命令***/

void cmd_w(uchar cmd)

{

  RW=0;

  RS=0;

  E=1;

  P1=cmd;

  delay(1);

  E=0;

}

/***写数据***/

void dat_w(uchar dat)

{

  RW=0;

  RS=1;

  E=1;

  P1=dat;

  delay(1);

  E=0;

}

/***清屏****/   /*

void lcd_clear(void)

{

  cmd_w(0x01);   //清屏

  cmd_w(0x02);   //清屏回到左上角

}   */

/***初始化**/

void Lcd1602_init(void)

{

  cmd_w(0x38);

  cmd_w(0x0c);

  cmd_w(0x06);

  cmd_w(0x01);

  cmd_w(0x80);    

}

/***光标定位****/

void gotoxy(uchar x,uchar y) //x是行数,y是列数

{

 if(x==1)

 {cmd_w(0x80+y);}

 else

 {cmd_w(0xc0+y);}

}

void dsp_ch(uchar _ch)

{

dat_w(_ch);

}

4.3  LCD1602液晶显示

void  inputbyte(unsigned char dat)

{

    unsigned char i;

for ( i=8; i>0; i-- )

{

SCLK_1302 = 0;

NOP;

NOP;

if(dat&0x01)

{

DIO_1302 = 1;

}

else

{

DIO_1302 = 0;

}

NOP;

NOP;

dat >>= 1;

SCLK_1302 = 1;

NOP;

NOP;

NOP;

NOP;

}

}

unsigned char  outputbyte(void)

{

    unsigned char i;

unsigned char dat=0;

for ( i=8; i>0; i-- )

{  

dat >>= 1;

NOP;

NOP;

SCLK_1302 = 0;

NOP;

NOP;

if(DIO_1302)

{

   dat|=0X80;

}

NOP;

NOP;

SCLK_1302 = 1;

NOP;NOP;NOP;NOP;

}

return(dat);

}

void write1302 ( unsigned char addr,dat )

{

    CE_1302 = 0;

    NOP;

NOP;

    SCLK_1302 = 0;

    NOP;

NOP;

    CE_1302 = 1;

NOP;NOP;NOP;NOP;

    inputbyte(addr);    

    inputbyte(dat);

    CE_1302 = 0;

}

unsigned char read1302 (unsigned char addr)

{

    unsigned char  dat,data_buff;

    

CE_1302 = 0;

    NOP;

NOP;

    SCLK_1302 = 0;

    NOP;

NOP;

    CE_1302 = 1;

NOP;NOP;NOP;NOP;

    inputbyte(addr);  

    dat=outputbyte();

    SCLK_1302 = 1;

    NOP;

NOP;

    CE_1302 = 0;

    data_buff=dat;

    data_buff/=16;

    dat=dat%16;

    dat=data_buff*10+dat;

    return (dat);

}

void ds1302_init(void)

{

    write1302 (WRITE_PROTECT,0X00);

    write1302 (WRITE_SECOND,0);

    write1302 (WRITE_MINUTE,0);

    write1302 (WRITE_HOUR,0);  

    write1302 (WRITE_DAY,1);

write1302 (WRITE_DATE,1);

    write1302 (WRITE_MONTH,1);  

    write1302 (WRITE_YEAR,0x22);  

    write1302 (WRITE_CHARG,0xA9);   

write1302 (WRITE_TIMEINIT,0x55);

    write1302 (WRITE_PROTECT,0x80);

}

4.3  LCD1602液晶显示

void buzz_on(void)

{

if(buzz_state)

{

buzz_state = 0;

}

else

{

buzz_state = 1;

}

if(buzz_state) //PA8口0.25ms取反

{

BUZZ = 1;

}

else

{

BUZZ = 0;

}

}

void buzz_off(void)

{

BUZZ = 0;

}

void task_buzz(void) //蜂鸣器任务函数,250us运行

{

if(buzz_time) //蜂鸣器响时长

{

buzz_on();

}

else

{

buzz_off();

}

}

void buzz_run_time(void) //buzz_time计时,250us定时器运行,1s减1

{

int i = 4;

if(buzz_time)

{

i--;

if(i == 0)

{

i = 4;

buzz_time--;

}

}

}

void start_buzz(unsigned int _time)

{

buzz_time = _time; //设置蜂鸣器响时长

}

这篇关于基于51单片机的定时插座设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711907

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不