单片机课程设计--定时插座
基于ATMEGA8单片机的智能定时节能插座的设计
基于ATMEGA8单片机的智能定时节能插座的设计随着人们生活水平的提高和生活节奏的加快,各种各样的用电器也涌入到人们的日常生活之中,人们对各种用电器和不可或缺的插座的要求也跟着水涨船高。
在日常生活中,一些家庭琐事常常困扰着人们的生活。
人们不得不早起去准备早餐,晚上不得不冒着寒冷起来拔手机充电器,当全家外出旅游时能否有开关自动模拟有人在家一样开一会电灯,以及越来越多的电子产品待机所带来的能源消耗等问题。
人们确实需要一种节能的插座来实现节约电能且方便人们的生活,然而这些都可以通过设计一个简单廉价的插座加以解决,我的设计正基于这一点——为人们生活的实际需要。
一、设计思路在本设计制作中,为了用户的使用方便,我设置了便于用户定时的四路键盘按钮,分别可以用来进行模式设置,时间的加模式和时间的减模式,以及退出设置模式的输入操作。
用户可以随时对插座进行随意定时,设定自己所需要的开启时间和结束时间点。
在本制作中,为方便用户在多用电器和不同需要的情况下来使用,我设计了两路定时插孔和一路普通插孔,两路定时插孔和普通插孔相互独立,而且我设计了相应的指示灯来方便用户区分。
单片机会根据用户的时间点来控制两路继电器,通过继电器的开启和关闭来断开或接通强电电路,从而控制两路定时插孔的开与关。
同时我设计用液晶显示屏来显示时间,产品美观大方。
为了满足设计的要求,设计共采用了五个电路模块,总体设计思路如下图1所示。
其中atmega8单片机为控制系统的核心,时钟电路模块选用ds1302芯片完成。
图1总体设计思路二、硬件设计2.1.单片机小系统设计根据电路要实现的电路功能,采用atmel公司推出的一款新型avr 高档单片机atmega8,atmega8是一种非常特殊的单片机,它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备avr高档单片机mega系列的全部性能和特点。
avr 单片机的核心是将32个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与alu (算术逻辑单元)直接相连,实现了在一个时钟周期内执行一条指令同时访问(读写)两个独立寄存器的操作。
基于单片机的定时插座的设计
目录中文摘要 (I)英文摘要 .......................................................................................................................................I I 1绪论 (1)1.1课题背景 (1)1.2方案概述 (1)2系统的总体设计 (3)2.1 系统可行性论证 (3)2.1.1需求分析 (3)2.1.2时钟模块设计 (3)2.2系统总体方案 (4)2.2.1系统的硬件构成 (4)2.2.2系统的软件构成 (4)3系统的硬件 (5)3.1系统的主控单元构成 (5)3.1.1 单片机AT89S52简介 (5)3.1.2 主要功能及特性 (6)3.1.3 管脚图管脚说明 (7)3.1.4 复位电路 (9)3.1.5 震荡电路 (10)3.1.6 芯片擦除 (11)3.2时钟芯片简介 (11)3.2.1DS1302引脚及相关功能 (11)3.2.2 DS1302内部结构 (13)3.2.3DS1302读写时序说明 (13)14系统仿真与硬件制作 (15)4.1 软件仿真 (15)4.2 硬件制作 (16)5系统软件介绍 (17)5.1 数码管刷新程序介绍 (17)5.2 按键扫描程序 (18)6系统调试与成果 (19)6.1 调试 (19)6.2 系统测试 (19)6.2.1按键的测试 (19)6.2.2插座定时时间测试 (19)6.3 系统误差分析 (20)7 总结与展望 (21)结束语 (22)致谢 (22)参考文献 (24)附录1 (25)附录2 (36)21 绪论现有的电源插座一般为普通插座,只负责电源转接,不能实现智能控制。
因而不能有效的实现智能化控制。
而一些专用设备上可以实现智能化控制,而此时的控制系统和专用设备联系比较紧密,无法实现大面积推广。
基于单片机的简易定时开关插座的设计与制作
基于单片机的简易定时开关插座的设计与制作陆仁超【摘要】The use of AT89S52 microcontroller to design and produce a simple timer switch socket. The circuit is composed of a power supply circuit, minimum system microcontroller, digital display and button operation circuit, relay power control circuit is composed of four modules, and test with software and hardware. To achieve timing within 24 hours of the time of the products, the time to automatically cut off the power supply circuit power socket, some can not long time can play a protective role, but also can be used as a timing controller.%使用AT89S52单片机设计并制作一个简易型定时开关插座。
电路由电源电路、单片机最小系统、数码显示和按键操作电路、继电器强电控制电路四个模块组成,并使用软件和硬件进行测试。
本产品能实现24小时内的时间定时,并自动断电,对一些不能长时间通电的电路能够起到保护作用,也可以作为定时控制器使用。
【期刊名称】《大众科技》【年(卷),期】2015(000)003【总页数】2页(P45-46)【关键词】单片机;定时开关插座;AT89S52【作者】陆仁超【作者单位】广西物资学校,广西南宁 530001【正文语种】中文【中图分类】TM13近年来,各种移动电子设备大量增加,智能手机、智能穿戴设备、平板电脑,使用者需要经常对其进行充电。
基于AT89S51单片机的智能定时开关插座【毕业论文-绝对精品】
目录目录ﻩ错误!未定义书签。
摘要 (I)第一章绪论ﻩ错误!未定义书签。
1.1 智能定时插座的发展概况................................ 错误!未定义书签。
1.2 本设计研究的主要内容ﻩ错误!未定义书签。
第二章智能定时开关插座的控制方案............................ 错误!未定义书签。
2.1智能定时开关插座的控制方案............................ 错误!未定义书签。
2.1.1 智能定时开关插座的总体框图ﻩ错误!未定义书签。
2.2智能定时开关插座的框图原理......................... 错误!未定义书签。
2.2.1 智能定时开关插座的工作过程ﻩ错误!未定义书签。
第三章智能定时开关插座的硬件电路设计ﻩ错误!未定义书签。
3.1 智能定时开关插座的电源电路ﻩ错误!未定义书签。
3.2 单片机AT89S51芯片概述............................. 错误!未定义书签。
3.3智能定时开关插座的复位及时钟电路 (6)3.4 智能定时开关插座的显示电路.......................... 错误!未定义书签。
3.5 智能定时开关插座的继电器电路......................... 错误!未定义书签。
3.6智能定时开关插座的器件选择.......................... 错误!未定义书签。
3.6.1 智能定时开关插座的外观质量检查ﻩ错误!未定义书签。
3.6.2 智能定时开关插座的电气性能的筛选ﻩ错误!未定义书签。
3.6.3 智能定时开关插座的元器件的检测ﻩ错误!未定义书签。
3.7 智能定时开关插座的元件清单........................... 错误!未定义书签。
第四章智能定时开关插座的软件设计ﻩ错误!未定义书签。
4.1 智能定时开关插座的的软件设计........................... 错误!未定义书签。
基于单片机的智能定时插座
基于单片机的智能定时插座陈双强杨文韬王立威杨光辉燕顺利祝昆(六盘水师范学院物理与电子科学系,贵州六盘水553004)摘要:本文介绍一种以STC90C516RD+ 单片机为核心制作的定时开关电路。
可以实现二十四小时定时控制继电器通断,能够为负载功率2500W的用电设备提供交流供电。
在电源和时钟显示及单片机的选择上都是运用了最新版本的设计,设定时间长,定时效果好,可接负载功率大,较好的满足了一般家庭用户小功率电器自动定时开关的需要,功耗低,能进行多组定时、成本低。
关键词:定时继电器供电TP368.1 :A :1003-9082 (2015) 05-0309-0121 世纪科学技术日新月异,人们的物质文化水平得到不断提高,对家庭舒适程度和智能家居提出了更高的要求,家庭用电器怎么样实现智能改造,如何让电力使用更加节能环保成为当前物联网技术研究一个重要课题。
本定时插座适用于家庭电力管理,方便合理预设、控制家庭用电,而且达到了节能环保的目的。
可以方便地实现24 小时之内的中功率用电器预设定时通断,可以用于家庭电话煲、空调等设备的控制,极大地提高了这些设备的智能化水平,同时成本不高,易于推广。
一、智能定时插座总体结构插座主要由六个模块构成,电路框图如图1 所示。
以单片机STC90C516RD+ 为中心,包含计时模块、键盘输入模块、液晶显示模块、继电器强电控制模块,采用5V稳压电路为单片机供电。
键盘输入和时间显示能很好地实现人机对话,接收操作者对通断时间的设定,再由单片机内部设定的程序完成对继电器的控制。
二、系统软硬件分析1.硬件设计电源采用桥式整流滤波电路供电,显示电路采用液晶显示,由C51 芯片直接驱动。
下面对主要对继电器驱动关键电路作简要说明。
如图2 为继电器驱动部分原理图,当单片机输出高电平时,继电器驱动电路启动,继电器线圈导通,常开触点闭合,保险管有电流通过,插座两端带电;反之,输出低电平实现对用电器的断电。
基于-单片机的定时开关插座设计
毕业设计(论文)题目:基于单片机的定时开关插座设计学院:电子与信息工程专业:电子信息工程班级:电子1103某:曹彬指导老师:褚御芝起讫日期:2015-3~2015-62015年 06月摘要随着生活节奏的加快,生活水平的提高,节能、智能的观念深入人心,出于节能的目的设计出一款定时开关插座。
本次毕业设计设计出一款定时开关插座,插座可通过按键或遥控器进行定时开关。
本次设计由220vAC转5vDC电源模块,DS1302计时模块,STC89C52单片机模块,LCD1602显示模块,继电器模块,蜂鸣器模块,按键模块和红外遥控模块组成。
本次设计使用STC89C52单片机作为驱动芯片,使用DS1302计时模块提供精确的计时,通过LCD1602显示模块显示年月日时分秒和操作界面,使用继电器控制插座电流的通断,本设计还可以通过遥控器进行定时设置。
本文从硬件设计,软件流程的设计和电路的仿真与调试等方面介绍了定时开关插座的设计过程,实现了定时插座的功能。
最后介绍了设计过程中出现的问题和总结。
关键词: STC89C52单片机;定时开关;红外遥控AbstractThe perception of energy conservation and intelligent goes deep into families,with the life increasing and improving quickly,And we design timer socket for energy conservation. The design is the timer socket,And the main function of timer socket is that we time by key or IR Remote.The design consists of STC89C52,DS1302,LCD1602,220VAC to 5VDC power supply,buzzer,key,relay. The design’s driver microchip is STC89C52, The design uses the DS1302 to supply more accurate time,And the design uses LCD1602 to display the year,the month,the day,the hour,the minute,the second,and the operation interface.The design also uses the relay to control the on and off,And the timer socket can time by the remote control. In this paper, the design of the system was introduced through three aspects including the hardware modules, software flow pattern and circuit design and debugging. At the end of this paper, the problems happened during the process of designing the system was summarized.Keyword: STC89C52;the timer socket;IR Remote目录摘要I目录III第一章绪论11.1背景11.2设计目标11.3论文结构2第二章硬件电路设计32.1系统功能32.2系统原理32.3.1 STC89C52单片机模块错误!未定义书签。
用单片机制作的电源定时插座
用单片机制作的电源定时插座
本电源定时插座有三个操作按键S1、S2、S3,并用两位LED 数码管显示定时时间。
其中S2、S3两个按键分别预置、设定个位和十位数的定时时间值,设定的定时时间调整范围是0 ~ 99 分钟,用一个S1 按键做定时插座的启动/ 停止操作按键。
并且程序中添加了蜂鸣器提示音部分,该部分程序功能是:每按下一次S1、S2 或者S3 按键,蜂鸣器就会发出嘀的一声响,以确定按键按下的有效性。
计时程序采用倒计时递减计数的工作方式工作,程序在运行时,时间每过一分钟数码管的个位显示值减1,每过十分钟数码管十位显示值减1。
预设定时时间一到,插座自动切断AC220V 电源输出,同时蜂鸣器报警。
直至再次按下启动/ 停止按键S1 才能解除蜂鸣器的报警声,同时二位数码管再次显示上一次预置的定时时间。
程序也再次回复到初始状态并可随时预置下一次定时插座输出AC220V 电压供给的定时时间。
定时插座课程设计
定时插座课程设计一、课程目标知识目标:1. 学生能理解定时插座的原理和功能,掌握其电路组成和工作方式。
2. 学生能运用所学的电子元件知识,分析定时插座的电路图,并识别其中的主要电子元件。
3. 学生了解定时插座在智能家居中的应用,认识到其在节能减排方面的意义。
技能目标:1. 学生能独立完成定时插座的组装和调试,提高动手实践能力。
2. 学生能运用编程软件,为定时插座编写简单的控制程序,实现定时开关功能。
3. 学生具备团队协作能力,能在小组内共同完成定时插座的优化设计和改进。
情感态度价值观目标:1. 学生培养对电子技术的兴趣和热情,提高学习积极性。
2. 学生认识到科技改变生活,增强对科技创新的信心和责任感。
3. 学生在课程实践中,养成节约能源、保护环境的良好习惯。
课程性质:本课程为电子技术实践课程,旨在让学生通过动手实践,掌握定时插座的相关知识,提高实际操作能力。
学生特点:六年级学生具备一定的电子元件知识,对电子技术有一定的好奇心,喜欢动手实践。
教学要求:注重理论与实践相结合,强调学生的动手能力和创新能力,培养团队协作精神。
通过课程目标的具体分解,确保学生能够达到预期的学习成果,为后续教学设计和评估提供依据。
二、教学内容本章节教学内容紧密围绕课程目标,结合课本相关章节,组织以下内容:1. 定时插座基础知识:介绍定时插座的原理、功能及其在智能家居中的应用,涉及课本第三章“智能控制器”的相关内容。
2. 电路组成与元件识别:分析定时插座的电路图,识别主要电子元件,复习课本第二章“常用电子元件”的相关知识。
3. 定时插座组装与调试:指导学生动手实践,完成定时插座的组装、调试,锻炼学生的动手能力,参考课本第四章“电子制作实践”。
4. 编程与控制:教授学生使用编程软件,为定时插座编写控制程序,实现定时开关功能,结合课本第五章“编程基础”。
5. 定时插座应用与优化:探讨定时插座在实际应用中的优化设计,激发学生的创新能力,参照课本第六章“电子创新设计与实践”。
基于单片机控制的定时插座
基于单片机控制的定时插座摘要本文设计了一款基于STC89C52RC单片机控制的光敏定时插座,它可以通过人为设定时间和光照强度的强弱,实现自动通电和断电功能,从而达到节能的目的。
硬件电路设计包括:单片机最小系统电路、电源稳压电路、1602液晶显示电路、独立式按键电路、温度控制电路、光敏电阻电路、继电器电路以及报警电路,设计原理主要利用DS1302时钟芯片和PCF8591芯片经A/D转换后在1602液晶上显示定时时间和光强大小,利用按键来选择工作模式和设定定时时间以及设定光照的阈值,当定时时间结束或光照强度小于设定光照阈值时,通过继电器的吸合作用来驱动插座的切断,红色发光二极管和蜂鸣器的状态来表示插座的工作状态。
软件程序的设计包括:1602液晶显示程序、DS1302定时程序、AD转换程序,按键处理程序、蜂鸣器报警程序,在本文的最后对设计了硬件和软件部分,并进行了调试和制作,基于单片机控制的定时插座系统具有电路简单,可靠性高,定时准确等特点,基本满足设计要求。
装关键词:STC89C52;光敏;定时;插座订线THE TIMING SOCKET BASED ON SINGLE-CHIPMICROCOMPUTERABSTRACTDesign a based on SCM STC89C52RC photosensitive regular outlet, by artificially setting time and the strength of the light intensity, it can achieve automatic power-on and power-off function, so as to achieve the purpose of energy saving. Hardware circuit design includes: the smallest single-chip system circuit, power regulator circuit, 1602 LCD circuit, an independent key circuit, temperature control circuit, the photoresistor circuit, the relay circuit and alarm circuit design principles mainly use the DS1302 clock chip and PCF8591 chip by A / D conversion timing in 1602 and two light levels, use keys to select the operating mode and set the timing and setting a threshold of light, when the time runs out or when the light intensity is less than the set light threshold,the state of the red light emitting diode and a buzzer to indicate the working status of the socket. Software design include: 1602 LCD procedures, DS1302 timer program, the AD conversion process, the key handler, the buzzer alarm program, at the end of this article on the final design of the hardware and software components in the design and commissioning and production , based on single-chip timing control socket system has a simple circuit, high reliability, and timing accuracy, basically meet the design requirements.Key words:STC89C52;photosensitive; Timing; Socket目录1 绪论 (1)1.1课题来源及意义 (1)1.2定时插座发展趋势 (1)2 定时插座系统设计 (2)2.1设计方案的选择 (2)2.2定时插座的工作过程 (3)3 定时插座的硬件电路设计 (4)3.1主控制器STC89C52RC (4)3.2定时插座的电源电路 (4)3.3DS1302时钟电路 (5)3.4DS18B20测温电路 (6)3.5光强检测电路 (6)3.6LCD1602显示电路 (7)3.7报警电路 (8)3.8继电器电路 (8)3.9总体硬件电路及其工作原理 (9)4 软件设计 (11)4.1DS1302计时程序的编写 (12)4.2A/D转换程序 (13)4.3DS18B20程序初始化 (14)4.41602液晶显示程序 (16)5 系统制作及调试 (18)5.1硬件制作 (18)5.2系统调试 (18)5.3设计结果 (18)5.4设计中存在的不足及其改进 (19)参考文献 (20)致谢 (21)附录1 (22)附录2 (26)1绪论1.1课题来源及意义随着现代科学技术飞速发展,给电子产品市场带来了巨大市场机会和挑战,同时人们对电子产品的需求也越来越高。
基于51单片机的低成本多路程控定时插座设计与制作
电路设计实验总结班级:电子0802 学号:200822730208 姓名:张文武目录:1.常用电子元器件识别、检测使用,稳压电源的制作。
2.基于51单片机的低成本多路程控定时插座设计与制作。
(一):常用电子元器件识别及检测使用。
万用表欧姆档的使用1、电档的等效电路2.等效成一带内阻的电源,黑表笔为电源的正极,红表笔为电源的负极。
3.注意事项:电阻的识别与检测1、电阻的主要参数2、电阻的标称色环电阻的识别方法1、四道色环标称:第一第二道表示有效数字,第三道表示加零个数,第四道为误差等级。
2.五道色环标称:第一第二第三道为有效数字,第四道为加零个数,第五道为误差等级。
3.四道色环:黑棕红橙黄绿蓝紫灰白金银本色0 1 2 3 4 5 6 7 8 9 5%10%20%4.五道色环:电阻值的表示数字跟四道色环相同,其误差表示跟四道色环不同。
5.五道色环误差等级表示:紫蓝红橙金银本色白±0.1% ±0.25% ±0.5% ±1% ±5% ±10% ±20% +20-50±%6.第一道色环的识别:(1)对于四道色环的电阻,由于第四道色环表示误差,而误差只有三种且表示误差的色环不表示阻值,故首先找到第四道色环,另一端即为引一道。
(2)五道色环的电阻两色环间距离较大的一端为第道,另一端即为引一道。
电位器的标称方法1、直接标称。
如:220Ω2W。
4R7=4.7Ω2、间接标称。
如:103=10*103Ω=10KΩ,14=1*104Ω=10KΩ。
电阻测量注意事项1、换档后必须重新进行欧姆调零2、档位选择应尽量使表针位于表盘中央2/3范围3、只能拿电阻引脚一端进行测量4、在电路中测量时必须断电5、在路测量值应小于标称值6、测量阻值应视具体情况判断在路电阻与标称值的关系7、对于精确测量应由在路情况来确定是否断开一端测量8、测量值=档位倍率*读数值。
定时器插座课程设计
定时器插座课程设计一、教学目标本课程的教学目标是使学生掌握定时器插座的基本原理和操作方法,培养学生对电子技术的兴趣和爱好,提高学生的动手能力和创新能力。
知识目标:了解定时器插座的工作原理、功能和特点,熟悉定时器插座的接线方式和编程方法。
技能目标:能够正确安装和调试定时器插座,掌握定时器插座的编程和控制方法,能够完成简单的自动化项目。
情感态度价值观目标:培养学生对电子技术的兴趣和爱好,使学生认识到电子技术在现代社会中的重要性,提高学生的创新意识和团队协作能力。
二、教学内容本课程的教学内容主要包括定时器插座的基本原理、接线方式、编程方法和应用实例。
1.定时器插座的基本原理:介绍定时器插座的工作原理和组成部分,使学生了解定时器插座的工作过程。
2.定时器插座的接线方式:讲解定时器插座的接线方法和注意事项,使学生能够正确连接定时器插座。
3.定时器插座的编程方法:介绍定时器插座的编程方法和编程语言,使学生能够掌握编程技巧。
4.定时器插座的应用实例:讲解定时器插座在实际项目中的应用,使学生能够将所学知识运用到实际中。
三、教学方法本课程采用讲授法、实验法和案例分析法相结合的教学方法。
1.讲授法:通过讲解定时器插座的基本原理、接线方式、编程方法和应用实例,使学生掌握相关知识。
2.实验法:安排实验室实践环节,让学生亲自动手操作定时器插座,提高学生的动手能力。
3.案例分析法:通过分析实际应用案例,使学生更好地理解定时器插座在实际项目中的应用。
四、教学资源本课程所需教学资源包括教材、实验设备、多媒体资料等。
1.教材:选用权威、实用的教材,为学生提供系统的理论知识。
2.实验设备:提供定时器插座实验套件,让学生进行实际操作。
3.多媒体资料:制作精美的课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面客观地评估学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等,评估学生的学习态度和理解程度。
基于单片机的插座定时系统设计
设计与分析・Sheji yu Fenxi基于单片机的插座定时系统设计朱俊涛郭莉莉张展李璇(南通大学杏林学院,江苏南通226000)摘要:针对传统插座功能简单、不能定时的问题,设计了一款基于STM32单片机的插座定时系统。
该插座定时系统具有短路保护、远程控制等功能,通过搭建消息队列遥测传输(Message Queuing Telemetry Transport,MQTT+通信服务器,配合微信小程序实现了远程控制,通过插座的定时功能,插座通OLED屏幕上。
关键词:定时插座;STM32;ESP8266;MQTT1系统总体描述本系统以STM32F103C8T6为主控芯片,使用ESP8266模MQTT服务器,实现插座系统通信与控制。
通过OLED,通过插座的定时设控制 ,220V STM32上的RTC狼定时。
为使用时,MQTT通信建服务系统1图1系统结构框图2硬件设计2.1单片机主控模块本设计使用的是STM32F103C8T6单片机。
STM32F103系列单片机是ST公司使用ARM公司设计的Cortex-M3架构生产的32bit单片机,计机中的CPU,具有快,稳定等叭2.2电源模块交流转直流电源模块采用SM-PLG06A-4W型开关电源,该85〜264V输,输5V 800mA,输出功率4W足以插座定时系统的全部本设计路了,了的定输5A/AC250V的保,作用问题时及时保护路AMS1117稳压器,5V 3.3V并为单片机“2.3显f模块显示模块使用0.96寸128X64点阵的OLED显示屏,SCL为IIC通信的时钟管脚,而SDA则IIC通信的数据管脚用IIC通信协议,STM32仅需两根线就能控制2.4继电器模块参考文献[2]设计了继电器驱动电路。
STM32通过PB1引基金项目:南通市科技计划项目(JC2019117);南通大学杏林学院大学生创新创业训练计划项目(202013993022x1)脚控制继电器,输出高电平时继电器导通,低电平时继电器断开,从而弱控制并联的发光二极管可以起到的作用[3],通则LED发光,反之LED熄灭。
基于单片机的定时开关插座的设计与制作
基于单片机的定时开关插座的设计与制作【摘要】定时开关插座可用于电饭煲、饮水机、电视机、电脑、电动车电池的充电、定时开关电热毯等需要定时供电的场合。
定时开关插座的使用能够做到节能、安全、方便等。
本设计以单片机为核心控制芯片,通过时钟电路来实现时钟的24小时制或者100小时制的时钟走时,并通过液晶12864显示出来,通过控制继电器的通断可以达到控制开关插座通断的目的。
定时开关插座包括电源电路、键盘、单片机控制电路、液晶12864显示、继电器工作电路等。
该定时开关插座能够设定六组定时时间值。
具有开始/停止操作按键,并且具有定时时间显示和时钟显示等功能。
该定时开关插在具有使用灵活,操作简单,成本低,使用安全等优点。
【关键词】定时开关插座;AT89S52;继电器随着现代电器产品增多,而且大部分存在着待机能耗问题,并且呈日趋增长态势,家庭和社会为此浪费了太多的资源。
中国节能认证中心对日常的家庭待机能耗做过详细的调查显示,仅待机能耗这一项就大约占到家庭电力消耗的10%。
定时开关插座能够实现定时给电器供电,在不需要时可以把电器的电源准时切断,这样就能减少很大部分电器的待机损耗,从而达到节能的目的。
定时开关插座是能根据用户需要自定义时间来控制电器通、断电的开关插座[1][2]。
能实现24小时制和100小时制两种时钟走时模式,在24小时制时钟模式,可以实现6组24小时内的任意定时,定时时间范围最小为1分钟;在100小时制时钟模式,可以实现6组100小时内的任意定时,定时时间范围最小也是1分钟。
它可以对家中一些需要在特定时间对电器进行自动断、通电控制,而不需要拔掉插头,减少电器的待机损耗,解决生活中的一些烦恼。
图1 系统整体设计框架图1.系统的硬件设计与实现1.1 系统设计框架图本设计是以STC12C5A60S2单片机为核心[3],以设置键盘设置时钟时间、定时时间、模式选择、开始、停止等功能。
单片机控制继电器来控制电器插座的通、断,以达到控制电器的通、断。
定时插座设计
毕业设计题目:《定时插座:智能插座》程序完全正确;请放心下载;想具体了解加本人qq984514922. 将有详细的软硬件资料。
单片机为:STC15F408AD#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intchar zdj,zjbk,zjbg;//中间变量开,中间变量关。
uchar tyue=11,tri=15,tzhou=3,tshi=12,tfen=30,tmiao=0;uchar t,n,f,u,w,x,y,z,zhjca,zhjcb; //smbzh数码标志zhjca,zhjcb;转换寄存uchar kss=20,ksf=10,jss=7,jsf=10,zdjk,zdjg,jdkf,jdgf;//开始时,开始分,结束时,结束分uint tfz,fzq; // dlzd低电压dyzg高电压设置dlz电流值dlz1,dlz2电流值1 电流值2(判断漏电)uint zdz,zxz,zhz,mcs=0;uint m=0,q=0,ql=0,d=0;uchar ssz=0,ssdl=0,gbz,sss=0, sd;//关标志sbit p30=P3^0;bit mcsbz=0;uchar sjkzy,sjkzl,xsmiao;uchar shujdz,jdkf=5,jdgf=2;//间断开分,间断关分;//tfz.txs 调分钟,调小时char sec=12, min=34, hour=12,day=8, month=8, zhou=1,tfzg=0,tfzs=0,tfzb=6,dlz=60;uchar code baojing[10] = {0x43,0x8f,0x25,0xe3};//报警数d,l,s,juchar code table[10] = {0x81,0xf3,0x49,0x61,0x33,0x25,0x05,0xf1,0x01,0x21};uchar code daima[60]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59, };/*P2数据口,P2.0 点;P3位选口;P1.0 clk,P1.1 io ,P1.2 ce;P1.4完成按键;P1.5ad电流值;P1.6光耦控制;P1.7总开关;P0.0功能按键,P0.1选择按键,P0.2增加按键,P0.3减少按键,*/sbit ACC0 = ACC^0;sbit ACC7 = ACC^7;sbit gnaj = P0^0; //功能按键sbit xzaj = P0^1; //选择按键sbit zjaj = P0^2; //增加按键sbit jsaj = P0^3; //减少按键sbit wcaj = P1^4; //完成按键sbit dian = P2^0;//点sbit T_CLK = P1^0; /*实时时钟时钟线引脚*/sbit T_IO = P1^1; /*实时时钟数据线引脚*/sbit T_RST = P1^2; /*实时时钟复位线引脚*/sbit kg=P1^6;sbit p13=P1^7; //总开关//AD定义sfr P1_ASF=0x9d; //模拟通道选择不能位寻址地址9DH,置1则选通该通道,P1_ASF=0x20 选通p1.5为ad口sfr AD_CONTR=0xbc; //控制寄存器写入控制字地址BCh,开始控制,转换速度控制,转换标志位,转换开始,通道选择sfr CLK_DIV=0x97; //结果存储选择寄存器地址97h,选择8位或2位的存储位置.置0sfr ADC_RES=0xbd; //结果地址高位地址BDh,高八位数据存放sfr ADC_RESL=0xbe; //结果地址低位地址BEh,低二位数据存放void weixuan(uchar m); //控制线地址/////////////////////void pdsmbz();void xzszk();void djssds();void djssdfg();void djssdfs();void djssdfb();void ajhsz();void ajhsr();void ajhsy();void djsxs();void sdsjdtks();//设定时间段调开始时void sdsjdtkf();//设定时间段调开始分void sdsjdtjs();//设定时间段调结束时void sdsjdtjf();//设定时间段调结束分void xzsddjd();void jdtdgf();void jdtdkf();void jdtdxs();void xzjdtd();void ajhsm();void ajhsf();void ajhss();void xzly();/********************************************************************* 名称: delay()* 功能: 延时,延时时间大概为140US。
单片机课程设计--定时插座
课程设计报告题 目 定时插座课 程 名 称 单片机原理及接口技术院 部 名 称 机电工程学院专 业 自动化班 级 09自动化学 生 姓 名 吴程剑学 号 0904105003课程设计地点 C314课程设计学时 一周指 导 教 师 高峰金陵科技学院教务处制 成绩目录一:概述二:设计要求和设计思路及方案2.1设计要求2.2设计思路2.3设计方案三:硬件电路设计3.1按键设计电路3.2数码管显示电路3.3 DS1302电路和AT24C02电路3.4继电器电路四:软件设计五:系统调试及软件仿真六:总结一、概述随着科学技术特别是微型计算机技术的高速发展,单片机微机技术也获得了飞速发展。
目前,单片机已经在日常生活和控制领域等方面得到了广泛的应用,它正为我国经济的快速发展发挥着举足轻重的作用。
作为自动化专业的一名工科学生应该牢牢掌握这一重要技术。
而课程设计这一环节是我们提高单片机应用能力的很好机会,也是我们学好这一课程的必经环节。
通过课程设计可以进一步巩固我们前面所学的理论知识,使我们对单片机理论知识有一个深刻的认识和全面的掌握。
另外通过这一真正意义上的实践活动,我们可以从中发现自己的不足之处并能够在自己的深思下和老师的指导下得到及时的解决。
再次,它能使我们的应用能力和科技创新能力得到较大的提高。
单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电器中得到广泛应用。
虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。
本课程一MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理及应用,其特点是由浅入深,注重接口技术和应用。
二、设计要求和设计思路及方案2.1 设计要求本次课程设计用STC89C52作为主控器做一个定时插座。
实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求和指标如下:(1)可以设定三组定时时间值。
(2)设定的定时可调整的时间范围。
(3)具有开始/停止操作按键。
家用定时供电插座的设计
家用定时供电插座的设计一、设计要求本次设计要求实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求及指标如下:(2)具有定时时间显示和时钟显示。
(3)可以利用按键调整显示时间和定时时间。
(3)定时时间到继电器上电,蜂鸣器响。
二、设计说明本次设计时钟电路,使用了AT89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的分、秒,用蜂鸣器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过五个模块:继电器、键盘、芯片、蜂鸣器、LCD液晶显示即可满足设计要求。
1 主电路主电路主要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。
主电路2、显示电路显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。
利用1602液晶显示屏显示时间,利用程序把1602芯片上对应的端口与单片机对应的I/O口进行连接,以便使时间能够正确的在液晶屏上显示。
1602芯片原理图3、按键电路本设计中利用按键S9、S13、S17行时间的调整。
其中S9为设定时间的按键,S13和S17为设定时间加和减的按键。
蜂鸣器主要是到定时时间进行响铃提请。
键盘电路原理图蜂鸣器电路原理图4、继电器电路当电子时钟走到和定时时间相同时,蜂鸣器响的同时继电器也会吸合,以便使插座上电。
继电器电路原理图三、整体原理图(见附图)四、设计体会通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。
在设计前应该对所要实现的功能有一定的了解,定下有大概的流程图,把设计模块化,写程序时也应该一个模块一个模块的写,这样方便理解,也方便以后的检查。
电子课程设计报告定时关断插座
电子课程设计报告定时关断插座一、引言随着网络技术的快速发展,越来越多的教育机构开始在线教育,产生了大量的电子课程。
但随之而来的问题是,学生们越来越难以控制上网时间和课程学习时间,导致学习效果下降,甚至影响健康。
因此本报告提出了一种新的解决方案——“电子课程设计报告定时关断插座”,该插座可以在设定的时间段内断电,有效防止了学生们的非理性上网行为。
二、设计原理本设计采用了简单的电路设计方案,使用固态继电器控制电源开关,通过与测温电路相连,实现电源开关的自动控制,从而达到控制设备供电的目的。
本插座使用的控制器芯片为“STM32”,具有较高的智能化和灵活性,可以实现定时、蓝牙等多功能控制。
三、功能性需求1.能够设定开启时间和关闭时间2.提醒学生,当时间快结束时即将关闭插座3.能够手动关闭插座四、非功能性需求1.安全性:插座外壳采用防滑防火材料,防止电气火灾和插座掉落。
2.耐用性:插座应具有较长的使用寿命,并且能够很好的适应不同的使用环境。
3.可靠性:在定时、温度控制等方面,插座应具有良好的稳定性。
4.可维护性:插座应方便用户维护和清洁。
5.可用性:插座应能够方便、快捷的和学生的电子设备连接到互联网。
五、开发流程1.确定项目范围和需求2.制定开发计划,确定项目进度和工期3.制定电子设计方案4.进行电路设计、PCB制作和后期测试5.进行编程调试以及硬件优化6.进行模拟测试和性能测试7.进行实际调试和用户评估测试8.修正和改进设备六、实现方法开发团队采用了常见的“瀑布式开发模型”,根据需求指标和面向对象的开发流程进行开发。
在电路设计方面,团队采用了“电阻分压式电路”进行设计;在软件设计方面,团队采用了C语言编写程序实现定时控制和自动温度控制。
七、结论通过本设计的制作与测试,该插座能够很好的实现定时关机和自动控制功能。
同时,在安全性、耐用性、可靠性和可用性方面都得到了很好的保证,对防止学生的非理性上网行为,提高教育教学建设质量有很好的帮助作用。
基于单片机的定时插座设计.
本科毕业设计(论文)题目基于单片机的时控插座设计专业班级学号学生姓名指导教师设计所在单位基于单片机的时控插座设计摘要:随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的定时需求也进一步增大。
定时开关插座可用于电饭煲、饮水机、电视机、电脑等需要定时供电的场合。
定时开关插座的使用能够做到节能、安全、方便等。
本文介绍了一种基于STC89C51RC 单片机的定时开关插座设计方案。
本文首先介绍定时开关插座设计要实现的功能,接着阐述系统电路的设计及原理说明,包括设计方案选择、关键元器件介绍、电路设计说明(包括电源电路、键盘、单片机控制电路、液晶1602 显示、继电器工作电路)软件设计流程以及系统的测试。
最后总结了定时开关插座设计完成的任务,分析系统的不足并提出了系统的应用展望。
关键词:STC89C51RC;定时插座;1602液晶;键盘Design of Control Outlet Based on SCMAbstract:With the increasing popularity of home appliances and the People living rhythm speeding up, the dependence of people on electrical appliances further to improve, the demand of timing also become further increasing. Socket timer switch can be used in the occasions where need for regular supply such as rice cookers, water dispenser,TV, computer, timer switch electric blankets. The use of socket timer switch can be energy saving, safe, healthy, and convenient and so on.This article presents a timer switch socket design which is based on the AT89S52 microcontroller.This paper introduces the function what the timer switch socket design should achieve first of all, and then describes the circuit design and principles of the system description, including design choices, concerning component description, circuit design description (including the power circuit, keyboard, single chip control circuit, LCD 1602 display ,the relay operating circuit), software design and testing of the system. Finally, it will sum up the timer switch socket design the tasks should be completed, analyze system ' s deficiencies and propose the system ' s application prospect.Key words:STC89C51RC,Timer switch,LCD 1602,Keyboard目录第一章绪论 (1)1.1选题的目的与意义 (1)1.2本课题在国内外的发展现状及趋势 (1)1.3本课题要解决的主要问题 (2)第二章系统设计方案 (3)2.1系统结构与功能 (3)2.2方案框图 (3)2.2.1 方案1 (3)2.2.2 方案2 (3)2.3开关的选择 (4)2.4 显示方式选择 (4)2.5时钟的实现及单片机的选择 (5)2.6按键控制部分的实现 (5)第三章主要元器件原理及其应用 (7)3.1单片机STC89C5简介 (7)3.1.1 主要特性 (7)3.1.2引脚功能说明 (8)3.2 1602工业字符型液晶简介 (10)3.2.1 主要特性 (10)3.3继电器介绍 (11)3.3.1 继电器的继电特性 (11)3.3.2继电器工作原理及特性 (11)3.3.3 继电器主要产品技术参数 (12)3.3.4继电器的选用 (13)第四章硬件电路的设计 (14)4.1电源电路 (14)4.2单片机最小系统 (15)4.3液晶显示 (17)4.4 继电器驱动电路 (18)4.5键盘电路 (19)4.6 插座电源控制电路 (19)4.7报警电路 (20)第五章系统软件设计 (21)5.1开发环境 (21)5.2各模块程序设计 (21)5.2.1 主程序流程图 (21)5.2.2 时钟程序设计 (28)5.2.3 人机界面程序设计 (29)第六章系统制作及调试 (31)6.1硬件制作 (31)6.2 硬件电路调试 (31)6.2.1 独立元件的检测 (31)6.2.2 电源电路的调试 (31)6.2.3单片机最小系统的调试 (32)6.2.4显示模块的调试 (32)6.2.5键盘模块的调试 (32)6.2.6继电器电路的调试 (32)6.3软件调试 (32)6.3.1 显示模块调试 (32)6.3.2时钟模块调试 (32)6.3.3 键盘模块调试 (32)6.3.4 人机界面模块调试 (33)结束语 (34)致谢 (35)参考文献 (36)附录一系统原理图 (37)附录二程序清单 (38)附录三英文文献翻译 (49)第一章绪论1.1选题的目的与意义现如今,生活水平提高,生活节奏加快,市面上的插座往往由于其功能过于单一而不能满足我们的需求。
模电课程设计定时插座
模电课程设计定时插座一、课程目标知识目标:1. 理解并掌握模拟电子技术中定时器的基本原理和应用;2. 学习并掌握555定时器的电路组成、工作原理及其在定时插座中的应用;3. 掌握定时插座电路的设计方法,能够阅读并分析相关电路图。
技能目标:1. 能够运用555定时器设计简单的定时插座电路,具备实际操作能力;2. 学会使用示波器、万用表等工具进行电路调试,提高动手实践能力;3. 能够通过小组合作,完成电路设计、搭建和测试,提升团队协作能力。
情感态度价值观目标:1. 培养学生对模拟电子技术的兴趣,激发学习热情,形成积极的学习态度;2. 培养学生的创新意识和动手能力,鼓励他们勇于尝试,克服困难;3. 增强学生的环保意识,让他们认识到电子技术在节能环保方面的应用价值。
课程性质:本课程为高二年级模拟电子技术课程的拓展内容,以实践为主,理论联系实际。
学生特点:高二学生对模拟电子技术有一定的基础知识,具备一定的电路分析能力,喜欢动手实践。
教学要求:注重理论与实践相结合,以学生为主体,培养学生的动手能力、团队协作能力和创新能力。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. 理论知识:- 模拟电子技术基础:复习并巩固二极管、三极管、运算放大器等基本知识;- 555定时器原理:详细讲解555定时器的内部结构、工作模式、触发方式及应用电路;- 定时插座电路设计:分析定时插座的电路原理,学习设计方法及注意事项。
2. 实践操作:- 555定时器实验:搭建555定时器的基本电路,观察并分析电路工作状态;- 定时插座电路搭建:分组进行电路设计、搭建和调试,实现定时控制功能;- 故障排查:学会使用示波器、万用表等工具进行电路故障排查,提高实际操作能力。
3. 教学进度安排:- 第一课时:复习模拟电子技术基础,讲解555定时器原理;- 第二课时:分析定时插座电路设计,进行555定时器实验;- 第三课时:分组进行定时插座电路搭建,进行故障排查及调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告题 目 定时插座课 程 名 称 单片机原理及接口技术院 部 名 称 机电工程学院专 业 自动化班 级 09自动化学 生 姓 名 吴程剑学 号 0904105003课程设计地点 C314课程设计学时 一周指 导 教 师 高峰金陵科技学院教务处制 成绩目录一:概述二:设计要求和设计思路及方案2.1设计要求2.2设计思路2.3设计方案三:硬件电路设计3.1按键设计电路3.2数码管显示电路3.3 DS1302电路和AT24C02电路3.4继电器电路四:软件设计五:系统调试及软件仿真六:总结一、概述随着科学技术特别是微型计算机技术的高速发展,单片机微机技术也获得了飞速发展。
目前,单片机已经在日常生活和控制领域等方面得到了广泛的应用,它正为我国经济的快速发展发挥着举足轻重的作用。
作为自动化专业的一名工科学生应该牢牢掌握这一重要技术。
而课程设计这一环节是我们提高单片机应用能力的很好机会,也是我们学好这一课程的必经环节。
通过课程设计可以进一步巩固我们前面所学的理论知识,使我们对单片机理论知识有一个深刻的认识和全面的掌握。
另外通过这一真正意义上的实践活动,我们可以从中发现自己的不足之处并能够在自己的深思下和老师的指导下得到及时的解决。
再次,它能使我们的应用能力和科技创新能力得到较大的提高。
单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电器中得到广泛应用。
虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。
本课程一MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理及应用,其特点是由浅入深,注重接口技术和应用。
二、设计要求和设计思路及方案2.1 设计要求本次课程设计用STC89C52作为主控器做一个定时插座。
实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求和指标如下:(1)可以设定三组定时时间值。
(2)设定的定时可调整的时间范围。
(3)具有开始/停止操作按键。
(4)具有定时时间显示和时钟显示。
2.2设计思路为了确定其设计方案,首先必须构思好初步的设计思路。
根据设计要求和实验仿真条件,初步的设计思路可以总结如下:(1)用DS1302芯片处理当前时间并用8位数码管显示。
(2)用AT24C02芯片存储预先设定好的密码。
(3)设置模式:常开模式、常闭模式、定时模式(4)设置开关时间:先按设置键出现01 on,再按小时和分钟键调节时间,调节好后再按设置键出现01 off,再调节时间,按确认键,这样就设置好一组定时时间。
设置其他组方法相同。
2.3设计方案根据设计要求和设计思路,可以确定系统的设计方案,图1为该系统设计的硬件电路图设计框图。
硬件主要由6部分组成,即单片机,键盘,数码管显示,DS1302芯片,AT24C02芯片,继电器。
STC89C52介绍VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为AT89C51的一些特殊功能口,管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可通过软件定时实现。
硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU 并行工作,不占用CPU 时间,CPU 有较高的工作效率。
采用硬件定时和软件定时比用的方式,即用T0溢出中断功能实现50ms 定时,通过软件延时程序实现5s 定时。
定时器的TMOD 用于设置定时器/计数器的工作方式,并确定用于定时还是计数。
TCON 只要功能是为定时器在溢出时设定标志位,并控制定时器运行或停止。
图1:硬件电路设计三、硬件电路设计3.1按键设计电路 MCU 继电器按键 DS1302AT24C02数码管显示对于按键电路的设计可以有2种方式:一种方式是独立按键设计,这种设计电路适用于按键较少的控制,具有按键电路简单,编程方便等优点;另一种方式是矩阵方式键盘的设计,它适用于对控制按键较多的电路控制,占用较少的I/O接口,但是按键电路复杂,编程比较复杂。
本课题总共需要6个按键,所以采用矩阵式键盘,如图2图2:按键电路3.2数码管显示电路本课题所采用的是数码管作为显示电路,用来显示当前的时间及密码门时输入的密码。
硬件电路连接是单片机P0口接2片74hc573锁存芯片,两片芯片的输出端分别接数码管的段选端跟位选端。
这样P0口不断送出位码跟断码锁存可以实现数码管的动态显示。
连接方法如图3所示。
图3:数码管显示电路3.3 DS1302电路和AT24C02电路24C02的SCK,SDA,WP引脚分别接单片机的P2.0,P2.1引脚和地。
DS1302的RST,SCLK,I/O引脚分别接单片机的P1.3,P1.7和P2.3引脚。
电路图如图4所示。
图4:DS1302和24C02连接电路3.4继电器电路继电器的线圈一端接电源vcc一端接ULN2003的12脚。
ULN2003是8个非门,可以耐高压等,用来驱动继电器。
电路连接图如图5所示。
图5:继电器连接电路四、软件设计主程序流程图 NY开始读取当前时间并显示是否有键按下?设置键模式调节时间模式循环按确认键五、系统调试和软件仿真5.1程序调试部分:uVsion3先新建一个工程,选择芯片为AT89C52然后点击是,然后弹出来是否加入标准启动文件,点击否,然后新建一个文件,保存为“main.c”。
然后双击工程窗口的Target选择添加文件到工程,选刚才新建的文件然后点击OK,输入程序,点击工程选择,选中Output 中的Creat Hex File,然后编译,连接生成Hex文件,有错误修改后再编译连接。
当编译结果中不出现错误时说明已经没有语法错误,但是否能完成课题所需要的功能则需要进行仿真。
5.2软件仿真部分:运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图画好后双击AT89C52导入Keil所产生的后缀名为.HEX文件。
按开始键进行仿真。
实验程序:#include<reg52.h>#include<intrins.h>#include"display.h"#include"ds1302.h"#include"key.h"#include"24c02.h"#include"uln2003.h"sbit buzz=P0^6;sbit relay=P0^4;#define uchar unsigned char#define uint unsigned inttypedef struct SYSTEMTIME{uchar min;uchar hour;uchar sec;};struct SYSTEMTIME clock,time;uchar tempdata[8],temp[8],disTime[8];uchar keynum,n,setflag,modeflag,hour_temp,min_temp; bit flag,onflag,offflag;void read_time(struct SYSTEMTIME *p) //结构体形参{p->hour = read_DS1302(0x85);p->min = read_DS1302(0x83);p->sec = read_DS1302(0x81);}{uchar i,j;buzz=0;relay=0;ULN2003_Latch();buzz=0;relay=0;ULN2003_Latch();DS1302_init(); //初始化,第一次下载后将其屏蔽while(1){read_time(&clock);disTime[0] = clock.hour>>4; //时十位disTime[1] = clock.hour&0x0f; //时个位disTime[2] = 10;disTime[3] = clock.min>>4; //分十位disTime[4] = clock.min&0x0f; //分个位disTime[5] = 10;disTime[6] = clock.sec>>4; //秒十位disTime[7] = clock.sec&0x0f; //秒个位hour_temp=disTime[0]*10+disTime[1]; //转换成十进制小时min_temp=disTime[3]*10+disTime[4]; //转换成十进制keynum=KeyPro();switch(keynum){case 0:{setflag++;if(setflag==2){wrbyte_24c02(n*2,time.hour);wrbyte_24c02(n*2+1,time.min);n++;}time.hour=0;time.min=0;flag=0;break;}case 1:{time.hour++;if(time.hour==24)time.hour=0;flag=1;break;}case 2:{time.min++;if(time.min==60)time.min=0;flag=1;break;}case 3:{wrbyte_24c02(n*2,time.hour);wrbyte_24c02(n*2+1,time.min);flag=0;setflag=0;n++;break;}case 4:{modeflag++;if(modeflag==3)modeflag=0;break;}case 5:{flag=0;setflag=0;modeflag=0;onflag=0;offflag=0;while(n!=0){wrbyte_24c02((n-1)*2,0);wrbyte_24c02((n-1)*2+1,0);n--;}break;}default:break;}switch(setflag){case 1:{temp[0]=(n/2+1)/10;temp[1]=(n/2+1)%10;temp[2]=11;temp[3]=0;temp[4]=13;temp[5]=11;temp[6]=11;temp[7]=11;break;}case 2:{temp[0]=(n/2+1)/10;temp[1]=(n/2+1)%10;temp[2]=11;temp[3]=0;temp[4]=14;temp[5]=14;temp[6]=11;temp[7]=11;break;}default:break;}switch(modeflag){case 0:{buzz=0;relay=0;ULN2003_Latch();break;}case 1:{buzz=0;relay=1;ULN2003_Latch();break;}case 2:{for(j=0;j<n/2;j++){if(hour_temp==read(4*j)&&min_temp==read(4*j+1)){onflag=1;offflag=0;}if(hour_temp==read(4*j+2)&&min_temp==read(4*j+3)){onflag=0;offflag=1;}}if(onflag){buzz=0;relay=1;ULN2003_Latch();}if(offflag){buzz=0;relay=0;ULN2003_Latch();}if(!offflag&&!onflag){buzz=0;relay=0;ULN2003_Latch();}break;}default:break;}if(!setflag&&!flag){for(i=0;i<8;i++)tempdata[i]=disTime[i];}if(setflag&&!flag){for(i=0;i<8;i++)tempdata[i]=temp[i];}if(setflag&&flag){tempdata[0]=time.hour/10;tempdata[1]=time.hour%10;tempdata[2]=10;tempdata[3]=time.min/10;tempdata[4]=time.min%10;tempdata[5]=10;tempdata[6]=0;tempdata[7]=0;}display(tempdata);}REG52.HHeader file for generic 80C52 and 80C32 microcontroller. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.--------------------------------------------------------------------------*/#ifndef __REG52_H__#define __REG52_H__/* BYTE Registers */sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;/* 8052 Extensions */ sfr T2CON = 0xC8;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB; sfr TL2 = 0xCC;sfr TH2 = 0xCD;/* BIT Registers *//* PSW */sbit CY = PSW^7;sbit AC = PSW^6;sbit F0 = PSW^5;sbit RS1 = PSW^4;sbit RS0 = PSW^3;sbit OV = PSW^2;sbit P = PSW^0; //8052 only/* TCON */sbit TF1 = TCON^7;sbit TR1 = TCON^6;sbit TF0 = TCON^5;sbit TR0 = TCON^4;sbit IE1 = TCON^3;sbit IT1 = TCON^2;sbit IE0 = TCON^1;sbit IT0 = TCON^0;/* IE */sbit ET2 = IE^5; //8052 only sbit ES = IE^4;sbit ET1 = IE^3;sbit EX1 = IE^2;sbit ET0 = IE^1;sbit EX0 = IE^0;/* IP */sbit PT2 = IP^5;sbit PS = IP^4;sbit PT1 = IP^3;sbit PX1 = IP^2;sbit PT0 = IP^1;sbit PX0 = IP^0;/* P3 */sbit RD = P3^7;sbit WR = P3^6;sbit T1 = P3^5;sbit T0 = P3^4;sbit INT1 = P3^3;sbit TXD = P3^1;sbit RXD = P3^0;/* SCON */sbit SM0 = SCON^7;sbit SM1 = SCON^6;sbit SM2 = SCON^5;sbit REN = SCON^4;sbit TB8 = SCON^3;sbit RB8 = SCON^2;sbit TI = SCON^1;sbit RI = SCON^0;/* P1 */sbit T2EX = P1^1; // 8052 only sbit T2 = P1^0; // 8052 only/* T2CON */sbit TF2 = T2CON^7;sbit EXF2 = T2CON^6;sbit RCLK = T2CON^5;sbit TCLK = T2CON^4;sbit EXEN2 = T2CON^3;sbit TR2 = T2CON^2;sbit C_T2 = T2CON^1;sbit CP_RL2 = T2CON^0;#endifINTRINS.HIntrinsic functions for C51.Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.--------------------------------------------------------------------------*/#ifndef __INTRINS_H__#define __INTRINS_H__extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char); extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char); extern unsigned char _crol_ (unsigned char, unsigned char); extern unsigned int _irol_ (unsigned int, unsigned char); extern unsigned long _lrol_ (unsigned long, unsigned char); extern unsigned char _chkfloat_(float);extern void _push_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);#endif#ifndef __DISPLAY_H__#define __DISPLAY_H__#define uchar unsigned char#define uint unsigned int//0 1 2 3 4 5 67 8 9 - 灭_unsigned char codeDuanMa[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0 xbf,0xff,0xf7,0xab,0x8e}; //共阳unsigned char codeWeiMa[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//分别对应相应的数码管点亮,即位码#define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0替换void SEG_Latch(void) //段码锁存子程序{P2 |= 0xe0;//P2.7~P2.5=111,Y7=0,Y7C=1,即U7的LE=1,段码数据选通_nop_();P2 &= 0x1f;//P2.7~P2.5=000,Y7=1,Y7C=0,即U7的LE=0,段码数据被锁存}void BIT_Latch(void) //位码锁存子程序{P2 |= 0xC0; //P2.7~P2.5=110,Y6=0,Y6C=1,即U8的LE=1,位码数据选通_nop_();P2 &= 0x1f; //P2.7~P2.5=000,Y6=1,Y6C=0,即U8的LE=0,位码数据被锁存}void delay_50us(uint t) //50us 延时{uchar j;for(;t>0;t--)for(j=19;j>0;j--);}void display(uchar *point){unsigned char i=0;for(i=0;i<8;i++){DataPort=WeiMa[i]; //取位码BIT_Latch(); //数据锁存DataPort=DuanMa[*(point+i)]; //取显示数据,段码SEG_Latch(); //数据锁存delay_50us(30); // 扫描间隙延时,时间太长会闪烁,太短不亮DataPort=0xff; //关显示,消除重影SEG_Latch(); //数据锁存}}#endif#ifndef __DS1302_H__#define __DS1302_H__#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define nop _nop_()sbit DS1302_CLK = P1^7;sbit DS1302_IO = P2^3;sbit DS1302_RST = P1^3;uchar NowTime[8]={0x12,0x5,0x26,0x6,0x00,0x00,0x00};//年,月,日,星期,时,分,秒/*************************************************************************** **函数功能:写DS1302一个字节子程序入口参数:出口参数:**************************************************************************** */void sendbyte(uchar a){uchar i;for(i=8;i>0;i--){DS1302_CLK=0;nop;DS1302_IO = a & 0x01;a >>= 1;DS1302_CLK=1;nop;}}/*************************************************************************** **函数功能:读DS1302一个字节子程序入口参数:出口参数:**************************************************************************** */uchar readbyte(void){uchar i,dat=0;for(i=8;i>0;i--){DS1302_CLK=1;nop;DS1302_CLK=0;dat>>=1;if(DS1302_IO)dat|=0x80;}DS1302_IO=0;return dat;}/*************************************************************************** **函数功能:写DS1302地址子程序入口参数:add入口数据:dat**************************************************************************** */void write_DS1302(uchar address,uchar dat){DS1302_RST=0;nop;DS1302_CLK=0;nop;DS1302_RST=1;nop;sendbyte(address);nop;sendbyte(dat);nop;DS1302_RST=0;nop;DS1302_CLK=0;}/*************************************************************************** **函数功能:读DS1302地址子程序入口参数:add出口参数:readtimeR[]**************************************************************************** */uchar read_DS1302(uchar address){uchar timer;DS1302_RST=0;nop;DS1302_CLK=0;nop;DS1302_RST=1;nop;sendbyte(address);timer=readbyte();DS1302_RST=0;nop;DS1302_CLK=0;return timer;}/*************************************************************************** **函数功能:初始化DS1302子程序入口参数:wr_data[](全局变量)出口参数:**************************************************************************** */void DS1302_init(){write_DS1302(0x8e,0x00); //关闭保护,若写0x80,则开启保护write_DS1302(0x8c,NowTime[0]); //年write_DS1302(0x88,NowTime[1]); //月write_DS1302(0x86,NowTime[2]); //日write_DS1302(0x8A,NowTime[3]); //星期write_DS1302(0x84,NowTime[4]); //时write_DS1302(0x82,NowTime[5]); //分write_DS1302(0x80,NowTime[6]); //秒write_DS1302(0x8e,0x80); //开写保护}//=======================时钟开启,可省略==================================void clock_start(void){uchar val;val = read_DS1302(0x81); //读秒寄存器val &= 0x7f; //最高位CH,振荡器工作允许write_DS1302(0x8e,0x00); //关写保护write_DS1302(0x80,val);write_DS1302(0x90,0xa5);//使能涓电流充电,DS=01:选择一个二极管,RS=01:R1=2kwrite_DS1302(0x8e,0x80);//开写保护}#endif#ifndef __KEY_H__#define __KEY_H__#define KeyPort P3/*------------------------------------------------将跳线帽套在J5的BIN针上独立按键扫描函数,返回扫描键值左边一列从上向下对应P30,P31,P32,P33分别是0,1,2,3号键------------------------------------------------*/void delay50us(unsigned int t) //50us 延时{unsigned char j;for(;t>0;t--)for(j=19;j>0;j--);}unsigned char KeyScan(void) //键盘扫描函数,使用行列逐级扫描法{unsigned char Val;KeyPort=0xf0;//高四位置高,低四位拉低if(KeyPort!=0xf0)//表示有按键按下{delay50us(200); //去抖if(KeyPort!=0xf0){ //表示有按键按下KeyPort=0xfe; //检测第一行if(KeyPort!=0xfe){Val=KeyPort&0xf0;Val+=0x0e;while(KeyPort!=0xfe);delay50us(200); //去抖while(KeyPort!=0xfe);return Val;}KeyPort=0xfd; //检测第二行if(KeyPort!=0xfd){Val=KeyPort&0xf0;Val+=0x0d;while(KeyPort!=0xfd);delay50us(200); //去抖while(KeyPort!=0xfd);return Val;}KeyPort=0xfb; //检测第三行if(KeyPort!=0xfb){Val=KeyPort&0xf0;Val+=0x0b;while(KeyPort!=0xfb);delay50us(200); //去抖while(KeyPort!=0xfb);return Val;}KeyPort=0xf7; //检测第四行if(KeyPort!=0xf7){Val=KeyPort&0xf0;Val+=0x07;while(KeyPort!=0xf7);delay50us(200); //去抖while(KeyPort!=0xf7);return Val;}}}return 0xff;}unsigned char KeyPro(void){switch(KeyScan()){case 0x7e:return 0;break;//0 按下相应的键显示相对应的码值case 0x7d:return 1;break;//1case 0x7b:return 2;break;//2case 0x77:return 3;break;//3case 0xbe:return 4;break;//4case 0xbd:return 5;break;//5case 0xbb:return 6;break;//6case 0xb7:return 7;break;//7case 0xde:return 8;break;//8case 0xdd:return 9;break;//9case 0xdb:return 10;break;//acase 0xd7:return 11;break;//bcase 0xee:return 12;break;//ccase 0xed:return 13;break;//dcase 0xeb:return 14;break;//ecase 0xe7:return 15;break;//fdefault:return 0xff;break;}}#endif#ifndef _24c02_H#define _24c02_H#include "reg52.h"#include "intrins.h"#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();}sbit SDA = P2^1;sbit SCL = P2^0;void iic_start(void){SDA = 1;_nop_();SCL = 1;somenop;SDA = 0;somenop;SCL = 0;}void iic_stop(void){SDA = 0;_nop_();SCL = 1;somenop;SDA = 1;}void iic_ack(bit ackbit) {if(ackbit)SDA = 0;elseSDA = 1;somenop;SCL = 1;somenop;SCL = 0;SDA = 1;somenop;}bit iic_waitack(void) {SDA = 1;somenop;SCL = 1;somenop;if(SDA){SCL = 0;iic_stop();return 0;}else{SCL = 0;return 1;}}void iic_sendbyte(unsigned char byt) {unsigned char i;for(i=0;i<8;i++){if(byt&0x80)SDA = 1;elseSDA = 0;somenop;SCL = 1;byt <<= 1;somenop;SCL = 0;}}unsigned char iic_recbyte(void) {unsigned char da;unsigned char i;for(i=0;i<8;i++){SCL = 1;somenop;da <<= 1;if(SDA)da |= 0x01;SCL = 0;somenop;}return da;}/* void delay_50us(unsigned int t){unsigned char j;for(;t>0;t--)for(j=19;j>0;j--);} */bit ISendStr(unsigned char add1,unsigned char add2,unsigned char *s,unsigned char no){unsigned char i;iic_start();iic_sendbyte(add1);if(iic_waitack()==0)return 0;iic_sendbyte(add2);if(iic_waitack()==0)return 0;for(i=0;i<no;i++){iic_sendbyte(*s);if(iic_waitack()==0)return 0;delay_50us(10);s++;}iic_stop();return 1;}bit IRcvStr(unsigned char add1,unsigned char add2,unsigned char *s,unsigned char no){unsigned char i;iic_start();iic_sendbyte(add1);if(iic_waitack()==0)return 0;iic_sendbyte(add2);if(iic_waitack()==0)return 0;iic_start();iic_sendbyte(add1+1);if(iic_waitack()==0)return 0;for(i=0;i<no-1;i++){*s=iic_recbyte();iic_ack(1);s++;delay_50us(10);}*s=iic_recbyte();iic_ack(0);iic_stop();return(1);}unsigned char read(unsigned char add) {unsigned char temp;iic_start();。