(完整word版)基于51单片机的红外遥控智能定时开关插座
基于51单片机红外发射与接收C程序(word文档良心出品)

sbit LED=P1^0; //发射指示灯
sbit out=P3^7;
uchar i,a,num1;
void init()//初始化作用
{
key1=1;
key2=1;
key3=1;
}
void delay(uchar aa)
{
uchar bb,cc;
for(bb=aa;bb>0;bb--)
for(num1=8;num1>0;num1--) //原来用的是a后来出错,肯定在这里!
{
khz(40);
if(num&0x01)
delayms(93);//delay 1.5ms
else
delayms(65);//delay 1ms
num=num>>1;
}
khz(20);
}
void tishi()
if(key1==0)
{
while(!key1);
fashu(0xf3);
tishi();
}
}
if(key2==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key2==0)
{
while(!key2);
fashu(0x3f);
while(1)
{
keyscan();
}
}
红外接收程序
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
基于AT89S51单片机的智能定时开关插座【毕业论文,绝对精品】资料

目录目录 (I)摘要 (I)第一章绪论 (1)1.1 智能定时插座的发展概况 (1)1.2 本设计研究的主要内容 (2)第二章智能定时开关插座的控制方案 (3)2.1智能定时开关插座的控制方案 (3)2.1.1 智能定时开关插座的总体框图 (3)2.2 智能定时开关插座的框图原理 (3)2.2.1 智能定时开关插座的工作过程 (3)第三章智能定时开关插座的硬件电路设计 (5)3.1 智能定时开关插座的电源电路 (5)3.2 单片机AT89S51芯片概述 (5)3.3 智能定时开关插座的复位及时钟电路 (6)3.4 智能定时开关插座的显示电路 (7)3.5 智能定时开关插座的继电器电路 (8)3.6 智能定时开关插座的器件选择 (8)3.6.1 智能定时开关插座的外观质量检查 (8)3.6.2 智能定时开关插座的电气性能的筛选 (9)3.6.3 智能定时开关插座的元器件的检测 (9)3.7 智能定时开关插座的元件清单 (10)第四章智能定时开关插座的软件设计 (11)4.1 智能定时开关插座的的软件设计 (11)4.1.1智能定时开关插座的主程序流程图 (11)4.1.2智能定时开关插座的按键流程图 (11)4.1.3 智能定时开关插座的定时流程图 (12)4.1.4 智能定时开关插座的时间显示流程图 (14)第五章智能定时开关插座的仿真设计 (16)5.1 智能定时开关插座的仿真 (16)5.1.1 KEIL工程的建立 (16)5.2.2源文件的输入 (17)参考文献 (21)致谢 (22)附录 (23)附录1 智能定时开关插座的程序设计 (23)附录2 智能定时开关插座的设计成品 (35)摘要本设计研究的是智能定时开关插座,它可以在没有人参与的情况下,能够自动的切断或通电,给日常生活中带来许多的方便。
本设计首先进行了硬件电路的设计,设计的主要内容是利用AT89S51芯片通过驱动芯片74LS244一路通过数码管显示时间,另一路通过驱动芯片74LS244到继电器吸合电路,定时时间到后,继电器能够吸合动作从而驱动开关插座,切断或通电电源。
基于51单片机的红外遥控计算器程序(附电路图,注释详细)

/*************************基于51单片机的红外遥控计算器程序****************/ /****本程序用基于TC9012遥控器可直接操作,电路图,遥控器编码图在最后****/ #include<reg52.h>#include<stdio.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define lint unsigned long intsbit IR=P3^2; //红外接口标志bit irpro_ok,irok;uchar irtime,X,mir,fir; //红外用全局变量uchar IRcord[4], irdata[33];uchar DA TA1[8]={0,0,0,0,0,0,0,0}; //第一个数uchar DA TA2[8]={0,0,0,0,0,0,0,0}; //第二个数uchar RESUIT[8]={0,0,0,0,0,0,0,0}; //结果uchar px1=0,px2=0,px3=0,flag=0,flag1=0,flag2=0,flag3=0,f1=0,f2=0,f3=0,f4=0; //各全局变量uchar temp,key,fang1,fang2;lint x1=0,x2=0,y=0; //输入的数及其结果void delay(msx); //ms延时函数void Init(); //系统初始化void INTInit(); //中断初始化void Ircordpro(); //红外码值处理函数void keyscan(); //键值检测void delay(uint); //延时void DataOper(); //数据运算void DataHandle(); //数据接收void DisplayHandle(); //显示处理void display(uchar,uchar); //数码管显示函数void main(){INTInit();P0=0x00;while(1){keyscan();DataHandle();DisplayHandle();}}void INTInit(){TMOD=0x02; //定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00; //reload valueTL0=0x00; //initial valueET0=1; //开中断TR0=1;IT0 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.2)EX0 = 1; // Enable EX0 InterruptEA = 1;}void Init() //初始化,所有数据归零{uchar i;px1=0;px2=0;px3=0;flag=0;flag1=0;flag2=0;flag3=0;f1=0;f2=0;f3=0;f4=0;x1=0;x2=0;y=0;for(i=0;i<8;i++){DA TA1[i]=0;DATA2[i]=0;RESUIT[i]=0;}}void delay(msx) //msx为延时毫秒数{uint i,j;for(i=0;i<=msx;i++)for(j=0;j<=110;j++);}void display(uchar n,uchar m) //n是第几只数码管,m是显示的数字是多少{P0=P0&0x80;P0=P0|(n<<4);P0=P0|m;}void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数{irtime++;}void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数{if(fir){if(irtime<49&&irtime>=31)mir=0; //4.5ms+4.5msirdata[mir]=irtime;irtime=0;mir++;if(mir==33){irok=1;mir=0;fir=0;}}else{irtime=0;fir=1;}}void Ircordpro(void) //红外码值处理函数{unsigned char i, j, k;unsigned char cord,value;k=1;for(i=0;i<4;i++) //处理4个字节{for(j=1;j<=8;j++) //处理1个字节8位{cord=irdata[k];if(cord>7) value=value|0x80;else value=value;if(j<8)value=value>>1;k++;}IRcord[i]=value;value=0;}if((IRcord[0]=~IRcord[1])&&(IRcord[2]=~IRcord[3])) {X=IRcord[2];fang2=1;}}void keyscan() //矩阵键值扫描子函数{if(irok){Ircordpro();irok=0;fang1=1;}if((fang1==1)&&(fang2==1)){fang1=0;fang2=0;switch(X){case 0x08: key=0;flag=1;break;case 0x01: key=1;flag=1;break;case 0x02: key=2;flag=1;break;case 0x03: key=3;flag=1;break;case 0x05: key=4;flag=1;break;case 0x06: key=5;flag=1;break;case 0x07: key=6;flag=1;break;case 0x09: key=7;flag=1;break;case 0x0A: key=8; flag=1;break;case 0x0B: key=9; flag=1;break;case 0x10: key=10;flag1=1;display(7,0);break;case 0x1A: key=11;flag1=1;display(7,0);break;case 0x16: key=12;flag2=1;Init();break;case 0x11: key=13;flag2=1;DataOper();break;case 0x15: key=14;flag1=1;display(7,0);break;case 0x19: key=15;flag1=1;display(7,0);break;}}}void DataOper(){uchar i,j,m=0;lint k=0;for(i=0;i<(px1-1);i++) //把第一个数组中的数处理成十进制数{k=DATA1[i];for(j=0;j<(px1-i-1);j++){k=k*10;}x1=x1+k;}x1=x1+DATA1[px1-1];for(i=0;i<(px2-1);i++) //把第二个数组中的数处理成十进制数{k=DATA2[i];for(j=0;j<(px2-i-1);j++){k=k*10;}x2=x2+k;}x2=x2+DATA2[px2-1];if(f1==1) y=x1+x2; //根据标志位进行运算else if(f2==1) y=x1-x2;else if(f3==1) y=x1*x2;else if(f4==1) y=x1/x2;RESUIT[0]=y/10000000; //把各位分离出来存入结果数组中RESUIT[1]=(y%10000000)/1000000;RESUIT[2]=(y%1000000)/100000;RESUIT[3]=(y%100000)/10000;RESUIT[4]=(y%10000)/1000;RESUIT[5]=(y%1000)/100;RESUIT[6]=(y%100)/10;RESUIT[7]=y%10;while(!RESUIT[m]) m++;px3=m;}void DataHandle() //把每次按键的结果记录下来,并存到适当的位置{if((key<10)&&(flag==1)&&(flag1==0)){DATA1[px1]=key;px1++;flag=0;}else if((key<10)&&(flag==1)&&(flag1==1)){DATA2[px2]=key;px2++;flag=0;}else if(flag1==1){switch(key){case 10 : f1=1;f2=0;f3=0;f4=0;break; // "+"case 11 : f1=0;f2=1;f3=0;f4=0;break; // "-"case 14 : f1=0;f2=0;f3=1;f4=0;break; // "*"case 15 : f1=0;f2=0;f3=0;f4=1;break; // "/"}}}void DisplayHandle() //将数据显示在数码管上{uchar i,x;if((flag1==0)&&(flag2==0)){x=px1;if(px1==0) display(7,0);else{for(i=0;i<px1;i++){display(8-x,DA TA1[i]);x--;delay(5);}}}else if((flag1==1)&&(flag2==0)){x=px2;if(px2==0) display(7,0);else{for(i=0;i<px2;i++){display(8-x,DA TA2[i]);x--;delay(3);}}}else if ((flag1==1)&&(flag2==1)){for(i=7;i>=px3;i--){display(i,RESUIT[i]);delay(3);}}}。
基于51单片机的定时插座设计

基于 51 单片机的定时插座设计
张 强,张南庆,刘晓宇,曲祥君
(遵义师范学院 工学院,贵州 遵义 563006)
摘 要:针对传统插座功能单一、无法定时等缺点,提出了一种基于 51 单片机的定时插座设计方案。采用 DS2302 作为独立的
时钟模块,为系统提供精确的时钟信号;采用多个按键构成输入模块,以实现定时时间和实时时钟的手动输入;利用 LM016L 构
成显示模块,使系统的数据显示和人机交互更为直观。最后,在 Proteus 软件中进行仿真实验,验证了所述定时插座系统的各项
功能。
关键词:单片机;DS1302;LM016L;定时插座
中图分类号:TP368
文献标识码:A
文章编号:1009-3583(2019)-0105-05
The Design of Timing Socket Based on 51 MCU
MCU;DS1302;LM016L;timing socket
插座作为一种线缆的连接器件,广泛应用于日 常生活中。但是随着科技的发展和社会的进步,传 统的插座已经无法满足人们的使用需求,具有时钟 显示、定时控制、记忆和学习等功能的新型插座开始 逐渐产生与发展[1-8]。
51 系列单片机是目前应用最为广泛的一类微 处理器,它以强大的功能和低廉的价格,受到广大电 子爱好者的青睐。本文以 51 单片机为主控芯片,设 计了一套定时插座的控制系统,并进行了仿真分析 和验证。相比现有的定时插座而言,该方案具有定 时精确、周期定时、造价低廉、功能易于扩充等优点。 1 定时插座的发展现状
ZHANG Qiang, ZHANG Nan-qing, LIU Xiao-yu, QU Xiang-jun
(College of Engineering and Technology, Zunyi Normal University, Zunyi 563006, China)
基于单片机的智能定时插座

基于单片机的智能定时插座陈双强杨文韬王立威杨光辉燕顺利祝昆(六盘水师范学院物理与电子科学系,贵州六盘水553004)摘要:本文介绍一种以STC90C516RD+ 单片机为核心制作的定时开关电路。
可以实现二十四小时定时控制继电器通断,能够为负载功率2500W的用电设备提供交流供电。
在电源和时钟显示及单片机的选择上都是运用了最新版本的设计,设定时间长,定时效果好,可接负载功率大,较好的满足了一般家庭用户小功率电器自动定时开关的需要,功耗低,能进行多组定时、成本低。
关键词:定时继电器供电TP368.1 :A :1003-9082 (2015) 05-0309-0121 世纪科学技术日新月异,人们的物质文化水平得到不断提高,对家庭舒适程度和智能家居提出了更高的要求,家庭用电器怎么样实现智能改造,如何让电力使用更加节能环保成为当前物联网技术研究一个重要课题。
本定时插座适用于家庭电力管理,方便合理预设、控制家庭用电,而且达到了节能环保的目的。
可以方便地实现24 小时之内的中功率用电器预设定时通断,可以用于家庭电话煲、空调等设备的控制,极大地提高了这些设备的智能化水平,同时成本不高,易于推广。
一、智能定时插座总体结构插座主要由六个模块构成,电路框图如图1 所示。
以单片机STC90C516RD+ 为中心,包含计时模块、键盘输入模块、液晶显示模块、继电器强电控制模块,采用5V稳压电路为单片机供电。
键盘输入和时间显示能很好地实现人机对话,接收操作者对通断时间的设定,再由单片机内部设定的程序完成对继电器的控制。
二、系统软硬件分析1.硬件设计电源采用桥式整流滤波电路供电,显示电路采用液晶显示,由C51 芯片直接驱动。
下面对主要对继电器驱动关键电路作简要说明。
如图2 为继电器驱动部分原理图,当单片机输出高电平时,继电器驱动电路启动,继电器线圈导通,常开触点闭合,保险管有电流通过,插座两端带电;反之,输出低电平实现对用电器的断电。
基于单片机的定时插座(正文)

1前言本课题的题目是“基于单片机的定时插座”,随着现代科学技术的发展,由于单片机具有优异的性能和价格比,集成度高、体积小、可靠性高、控制功能强,低电压、低功耗等特点,因此它的应用相当广泛,无论是工业部门、民用部门、事业部门和家用等领域都有它的身影。
而单片机在智能仪器仪表中的应用便是其中最多、最活跃的领域之一。
在各种仪器仪表中引入单片机。
不但使仪器仪表智能化,提高测试的自动化程度和精度,更能简化仪器仪表的硬件结构,提高其性能价格比。
单片微型计算机作为微型计算机的一个分支,它成为今天工业控制领域、通讯设备、信息处理以及日常生活中最广泛使用的计算机,如:数控电梯、数控机床、交通灯管理系统、掌上电脑、手机、电子词典、各种智能医疗器械等;家用电器中常用产品如:微波炉、电磁炉、洗衣机、电视机等内均看到它的身影;游戏机、手提电话机等、就连一台微机系统中也嵌如了很多片的单片机。
电子定时器可用一般数字电路搭建而成,一台四位数的定时器要用十多片数字电路组成,电路结构复杂、体积庞大。
而且功能有一定的局限性。
如果用单片机制作定时器,外围电路简单,用其灵活的编程,使定时器可有更多的功能选择。
2 课题研究背景2.1单片机定时插座的现状单片机定时插座即智能插座控制系统的设计:目前市场上的排插功能太简单,有时满足不了人们的需求。
比如我们经常遇到的就是电瓶车充电问题,电瓶车充电时间通常是8个小时左右,太长则容易损耗电池,太短则充布满,如果再晚上充电,又不想从家里出来到车库给车充电,或者白天充电了,晚上不想下车库或者忘了拔电等等,造成很多的不方便。
本着这一思想于是提出了本课题,第一利用单片机,直流控制交流继电器等部件实现排插的定时开关功能(比如,什么时候接通,接通多久时间后断开),第二提供报警功能,比如播放音乐,如使用这一排插控制电饭煲,则在电饭煲时间到后自动断电并通过音乐声告诉人们饭已经好了。
智能插座控制系统的实现全部是基于单片机的设计。
基于51单片机的红外遥控开关设计

2)数据存储器(RAM):片内为128B,片外最多可以外扩64KB。片内的128B的RAM以告诉RAM形式集成在单片机内。可以加快但单片机的运行速度,而且这种结果的RAM可以降低功耗。
2.方式1:当M1、M0为01是,定时器/计数器工作于方式1,这时定时器/计数器的等效电路如下图3-3
图3-3定时器/计数器方式1逻辑结构图
3方式2:
方式0和方式1的最大特点是计数溢出后,计数器为全0.因此在循环定时或循环计数用时就存在反复装入计数初值的问题。这不仅影响定时精数,而且也给程序设计带来麻烦。方式2就是针对此问题而设置的。当M1、M2为10时,定时器/计数器处于工作方式2,这时定时器/计数器得等效框图如图3-4所示。这种工作方式可以省去用户软件中得重装初值的程序,简化定时初值的计算方法,可以相当精确的确定定时时间。
3)程序存储器(ROM/EPROM):用来存储程序,8031没有此部件,8051为4KB的ROM;8751为4KB的EPROM。片外最多可以扩至64KB。
4)4个8位并行I/O口(P0、P1、P2、P3)
5)1个串行口:1个全双工的串行口,具有4种工作方式。可以用来进行串行通信,扩展并行I/O口,甚至与多个单片机相连接构成多机系统,从而使单片机的功能更加强且应用更广。
系统组成如图2-2所示【5】。系统由发射部分和接收部分组成。发射部分采用脉冲个数编码,将待发射信号调制成38KHz的载波信号,由红外发射管进行发射。接收部分由红外接收管进行解码接收,单片机通过对所接收信号的分析,输出相应的控制信号,由发光二极管和数码管指示出发射部分按下的按键号。
基于-单片机的定时开关插座设计

毕业设计(论文)题目:基于单片机的定时开关插座设计学院:电子与信息工程专业:电子信息工程班级:电子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单片机模块错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章绪论 (1)1.1 选题的目的与意义 (1)1.2 本课题在国内外的发展现状及趋势 (1)1.3 本课题要解决的主要问题 (2)第二章系统设计方案 (3)2。
1 系统结构与功能 (3)2.2 总体系统框图 (3)2。
3 开关的选择 (4)2.4 显示方式选择 (4)2.5 时钟的实现及单片机的选择 (5)2。
6 按键控制部分的实现 (5)第三章主要元器件原理及其应用 (6)3。
1 单片机STC89C51简介 (6)3.2 1602工业字符型液晶简介 (7)3.3 继电器介绍 (8)第四章硬件电路的设计 (10)4。
1单片机最小系统 (10)4.2 液晶显示电路 (11)4.3 键盘电路 (12)4。
4 插座电源控制电路 (12)4。
5 蜂鸣器提示电路 (13)4。
6 红外遥控电路 (14)第五章系统软件设计 (16)5。
1 各模块程序设计 (16)5。
1.1 主程序流程图 (16)5.1.2 时钟程序设计 (17)第六章系统组装和调试 (19)总结与体会 (22)参考文献 (23)附录一实物图 (25)附录二源程序 (26)第一章绪论1。
1 选题的目的与意义现如今,生活水平提高,生活节奏加快,市面上的插座往往由于其功能过于单一而不能满足我们的需求。
比如:电动车充电通常是8小时左右,太长则容易损耗电池,太满则充不满,如果晚上充电,又经常不想从家里出来到车库去给车充电。
白天充电又忘记拔电源;家中的水塔忘记抽水而造成生活的一时不便;学校的起床广播因值班人员睡过头而推迟广播;家中的鱼缸因太久没有供氧造成鱼儿缺氧死亡;许多球迷或者新闻爱好者因为错过了开机时间而与精彩球赛或者新闻擦肩而过;夏天里风扇的定时时间过短(一般为1个小时),不便于晚上分段定时使用等等。
综合以上原因考虑,我们急需要一款智能插座。
此插座能够实现定时给电器供电,在工作时间之外把电器的电源切断,这样就能解决电器的待机损耗,达到节约用电的目的,还能消除安全隐患,最终使我们的生活更加方便化、智能化。
本文阐述了定时开关插座的硬件电路设计、软件算法设计,给出了自动开关插座的设计和定型方案,它可以对家中一些需要在特定时间对电器进行自动断、通电控制,而不需要拔掉插头,减少电器的待机损耗,解决生活中的一些烦恼。
1。
2 本课题在国内外的发展现状及趋势目前,在市面上,时间控制器技术相对先进,种类齐全,时间控制器被广泛应用于各类电器中,通过对时间的控制是人们的生活更加简单化、智能化。
在智能插座的领域却还处于刚刚发展的阶段,智能插座也仅仅限制于旋钮定时器,或者计数器芯片设计的体积较大的时控插座。
这种插座定时时间单一,功能单一,定时准确性低,很难真正满足我们日常生活的需求。
现在急需将一种功能强大的时控插座来满足市场需求,改善我们的生活。
随着现代电子科学技术的发展,由于单片机具有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点,成品价格下降,越来越被广泛应用。
这种新兴产业的发展,势必在日常生活中产生深远的影响。
由单片机实现对插座的定时控制正符合这一发展规律。
1.3 本课题要解决的主要问题本论文主要是完成一种低成本、低价格、功能强大的单片机定时控制插座系统的设计与开发.包括硬件电路和主要的软件设计。
本课题详细分析系统的硬件设计和软件设计,给出电路原理图,以及主要程序设计的流程图和程序。
主要采用51单片机为核心单元,利用单片机的定时器,I/O等功能设计的一款具有定时的单片机时控插座。
第二章系统设计方案本章主要讨论了系统的总体方案以及各模块的设计方案,包括了控制核心、开关、显示模块、时钟电路以及键盘电路方案.2。
1 系统结构与功能系统总体设计主要实现以下功能:(1)人机交互界面:通过1602液晶显示屏,与独立按键建立起一套完善的人机交互界面.可以用于设置定时的参数,显示剩余时间,显示断电提示。
(2)设置定时时间:用户通过人机交互界面,查找到设定时间界面,设置对应的每一组的设置时间。
(3)红外线遥控:本系统可以通过红外线遥控器进行两个定时的时间设定,可以强制开\关,确认开始定时功能(4)蜂鸣器提示:当电源接通和断开时都将有蜂鸣器提示.2.2 总体系统框图采用一种以STC89C51为核心的单片机控制方案。
选用单片机STC89S51 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的定时控制功能。
在单片机的外围电路外接输入键盘及1602液晶用于构造人机交互界面以设置各个参数。
其原理如下图2.1所示:图2。
1 单片机控制插座原理图2。
3 开关的选择采用光耦合器实现单片机控制开关。
耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦.光耦合器以光为媒介传输电信号。
它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。
目前它已成为种类最多、用途最广的光电器件之一。
本次设计开关部分可选用光耦控制三极管开关的形式来驱动继电器的工作。
2。
4 显示方式选择在模拟电子和数字电子中,常用显示数据的有数码管和液晶显示器。
采用LCD液晶显示,可以显示所有字符及自定义字符,并能同时显示多组数据、汉字,字符清晰。
由于自身具有控制器,不但可以减轻主单片机的负担,而且可以实现菜单驱动方式的显示效果,达到友好的人机介面。
LCD显示能解决LED只能显示数字等几个简单字符的缺点,性能好,效果多,控制方便,显示方式多,且能耗也较少。
2。
5 时钟的实现及单片机的选择时钟的实现可已通过使用时钟芯片或者单片机的定时器实现。
下面简要介绍几种方案的特点。
单片机仅用于控制继电器、键盘,实现时钟和定时,用51结构的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引脚)或STC的所有单片机都可以实现。
根据在学校比较流行的学习单片机是STC89C51系列,而且STC89C51单片机便宜,购买方便,下载方便,故单片机选用STC89C51单片机。
时钟通过单片机的内部定时器来实现时钟.单片机的内部定时器可实现较为精确的时钟走时,定时50毫秒的误差率极小,可达到定时开关插座的使用要求。
使用单片机内部定时器可简化硬件电路,可以节省开支,但是编程的难度有所提高。
本次设计的时钟走时用单片机定时器已经可以完全达到定时开关插座的使用要求,并可省去时钟芯片,节省开支。
考虑到软件的难度增加可换来更好的性价比,所以选用方案二。
2.6 按键控制部分的实现时钟时间和定时时间的设置功能可以通过按键来实现。
按键的实现可以通过以下两种方案实现:单片机的每一个I/O口与一个按键相连,这样就可以根据扫描I/O口的电平变化实现相关功能。
这样可以很简单的实现按键的功能。
根据本定时开关插座的设置要求,用到4个按键.通过两个方案的对比,方案一的实施办法更符合要求。
第三章主要元器件原理及其应用本章主要讨论了各模块元器件的选择以及元器件的工作原理。
3.1 单片机STC89C51简介(1)增强型1T流水线/精简指令集结构8051CPU(2)工作电压:3.4V-5。
5V(5V 单片机)/2。
0V-3.8V(3V 单片机)(3)工作频率范围:0-35MHz,相当于普通8051的0~420MHz。
实际工作频率可达48MHz。
(4)用户应用程序空间12K/10K/8K/6K/4K/2K字节(5)片上集成512字节RAM(6)通用I/O口(27/23个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片(8)EEPROM功能(9)看门狗管脚图如3.1所示。
图3.1 STC89C51管脚图3.2 1602工业字符型液晶简介工业字符型液晶,能够同时显示16x02即32个字符.(16列2行)。
1602液晶管脚图如图3。
2所示。
图3.2 1602液晶管脚图1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
3。
3 继电器介绍继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
(1)额定工作电压额定工作电压是指继电器正常工作时线圈所需要的电压,也就是控制电路的控制电压,根据继电器的型号不同,可以是交流电压,也可以是直流电压.(2)直流电阻直流电阻是指继电器中线圈的直流电阻,可以通过万能表测量。
(3)吸合电流吸合电流是指继电器能够产生吸合动作的最小电流。
在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。
而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。
(4)释放电流释放电流是指继电器产生释放动作的最大电流。
当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态.这时的电流远远小于吸合电流.(5)触点切换电压和电流触点切换电压和电流是指继电器允许加载的电压和电流.它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点.第四章硬件电路的设计本章节详细讨论了各个模块的具体电路的设计,单片机最小系统、液晶显示模块、继电器驱动模块以及键盘模块。
4。
1单片机最小系统单片机最小系统由复位电路、时钟电路和单片机STC89C51组成,如图4。
1所示。
图4.1 单片机最小系统电路(1)时钟电路模块由于系统需要计算精确时间,所以该模块使用了一个11。
0592MHz的晶振。
时钟电路用于产生单片机工作所需要的时钟信号,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按照时序工作.时钟电路图如图4。
2所示.图4.2 时钟电路(2)复位电路模块复位是单片机的初始化操作,单片机启动运行时,都必须复位.复位电路包括了上电复位于手动复位两个部分。
单片机复位信号为高电平复位。
复位电路图如图4.3所示。
图4.3 复位电路4。
2 液晶显示电路本设计选用的1602液晶为16管脚液晶,即带背光液晶。
与单片机接口设计如下:7—14:连接P0端口4: 连接P2.25:连接P2.16:连接P2。
01602液晶显示电路图如图4。
4所示。
图4。
4 1602液晶显示电路4。
3 键盘电路本设计采用了独立键盘设计,只是用了3个独立案件与单片机IO口连接,利用简单的逻辑方式实现了人机交互界面.该界面操作简单,便于控制。