智能定时开关插座设计与制作_第1页
智能定时开关插座设计与制作_第2页
智能定时开关插座设计与制作_第3页
智能定时开关插座设计与制作_第4页
智能定时开关插座设计与制作_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1.产品功能分析......................................................1

2.单片机芯片选择....................................................1

3.产品设计技术标准..................................................1

3.1单片机编程规范总则............................................1

3.2单片机编程函数规范............................................1

4.产品硬件设计......................................................2

4.1单片机最小系统................................................2

4.2单片机LCD显示模块............................................3

4.3LCD1602与MCU的接口电路......................................3

4.4单片机按键模块设计............................................5

5.产品软件设计......................................................5

6.产品使用说明书....................................................6

附录1元件的清单.....................................................7

附录2原理图.........................................................8

附录3PCB图.........................................................9

附录4作品实物照....................................................10

附录5源代码........................................................11

参考资料............................................................20

湖南商务职业技术学院毕业设计

智能定时开关的设计与制作

1产品功能分析

随着电的发展,也越来越多的电器和智能设备出现,在我们的日常生活中,

常常需要为电器充电或者使用电器,比如手机、热水器,而大多年轻人喜欢边

充电边玩手机,或者一直充电不拔插头,这就容易耗损电池,再比如很多年轻

人上班,热水器要么一直插着电或者回家才插电烧水洗澡,这样一来,要么很

耗电要么每次洗澡都要等上好一段时间,所以基于此,定时开关的出现就很有

必要了。

2单片机芯片选择

方案一:采用51系列单片机作为系统控制器

单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各

种算法和逻辑控制。由于其功耗低、体积较小、技术成熟和成本低等优点,在

各个领域应用广泛。而且抗干扰性能好。

方案二:采用STM32系列单片机作为系统控制器

单片机低电压并且节能,全系列产品共用大部分引脚、软件和外设,优异

的兼容性为开发人员带来最大的设计灵活性,能够在经济型用户终端产品上实

现先进且复杂的功能。

因51单片机价格比STM32系列低得多,且本设计不需要很高的处理速度,

经济和方便使用角度考虑,本设计选择了方案一。

3产品设计技术标准

3.1单片机编程规范总则

格式清晰、注释简明扼要、命名规范易懂、函数模块化、程序易读易维护、

功能准确实现、代码空间效率和时间效率高、适度的可扩展性。

3.2单片机编程函数规范

正确性:程序要实现设计要求的功能。稳定性和安全性:程序运行稳定、

可靠、安全。可测试性:程序便于测试和评价。过长的代码要分行。

1

湖南商务职业技术学院毕业设计

4产品硬件设计

本设计采用的是STM89c52单片机,如图4-1所示。

U1

140

P10VCC

239

P11P00

338

P12P01

437

P13P02

536

P14P03

635

P15P04

734

P16P05

833

P17P06

932

RESETP07

1031

P30/RXDEA/VP

1130

P31/TXDALE/P

1229

P32/INT0PSEN

1328

P33/INT1P27

1427

P34/T0P26

1526

P35/T1P25

1625

P36WRP24

1724

P37/RDP23

1823

X2P22

1922

X1P21

2021

GNDP20

图4-1SSTC89C52TC89C52单片机引脚图

VCC:STC89C52电源正端输入,接+5V。

GND:电源地端。

XTAL1:单芯片系统时钟的反相放大器输入端。

XTAL2:系统时钟的反相放大器输出端。

RESET:STC89C52的重置引脚。

4.1单片机最小系统

最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单

片机始终处于正常的运行状态。如图4-2所示。

图4-2单片机最小系统原理框图

2

湖南商务职业技术学院毕业设计

4.2单片机LCD显示模块

LED1602基本操作时序如下:

1)读状态:RS=L,RW=H,E=H

2)写指令:RS=L,RW=L,D0~D7=指令码,E=高脉冲

3)读数据:RS=H,RW=H,E=H

4)写数据:RS=H,RW=L,D0~D7=数据,E=高脉冲

4.3LCD1602与MCU的接口电路

LCD的D0~D7分别接单片机的P0口,作为数据线,因为P0口内部没有上

拉电阻,所以外部另外加上4.7K的上拉电阻;P2.5—P2.7分别接LCD的RS、

RW、E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和

阳极,接上相应电平即点亮背光灯。

图4-3显示电路

3

湖南商务职业技术学院毕业设计

4.4单片机按键模块设计

本系统用到了4个按键,其中一个用作系统手动复位,另外4个采用独立

按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图4-4

所示,4个独立按键分别与STC89C52的P3.0、P3.1、P3.2、P3.3接口相连。

图4-4按键模块

5产品软件设计

本系统的软件部分主要进行时间计算程序设计,按键的扫描输入等。程序

开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化

命令进行初始化,初始化完成后日期信息,再运行按键扫描程序,检测有无按

键按下,计算完成后运行显示程序,显示程序将得到的时间信息送给对应的液

晶让其显示。

4

湖南商务职业技术学院毕业设计

图5.0程序流程图

5

湖南商务职业技术学院毕业设计

6产品使用说明书

本产品定时开关有四个模式:on(开)、OFF(关)、AUTOon(自动开)、

Autooff(自动关)

设定当前时间

先按住“设置”键三秒,星期闪烁,再按最左边或者最右边的键调整

再按住“设置”键三秒,小时闪烁,再按最左边或者最右边的键调整

再按住“设置”键三秒,分钟闪烁,再按最左边或者最右边的键调整

再按住“设置”键完成设置,显示设置后的当前时间并开始运行。

设定定时程序

在显示当前时间的状态下,按下右键即进入定时设定模式。

6

湖南商务职业技术学院毕业设计

附录1元件的清单

7

湖南商务职业技术学院毕业设计

附录2原理图

8

湖南商务职业技术学院毕业设计

附录3PCB图

9

湖南商务职业技术学院毕业设计

附录4作品实物图

10

湖南商务职业技术学院毕业设计

附录5源代码

#defineucharunsignedchar

#defineuintunsignedint

sbitlcdrs=P3^7;

sbitlcdrw=P3^6;

sbitlcden=P3^5;

sbitinf=P3^3;

sbitSCLK=P0^7;

sbitIO=P0^6;

sbitRST=P0^5;

11

湖南商务职业技术学院毕业设计

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitbeep=P0^4;

sbitP0_2=P0^2;

sbitP0_1=P0^1;

sbitP0_0=P0^0;

sbits1=P2^0;

sbits2=P2^1;

sbits3=P2^2;

sbits4=P2^3;

ucharcodetable1[]=":::";

ucharcodetable2[]=":::";

ucharcodetable3[]="Welcometo";

ucharcodetable4[]="TimingSockets";

ucharcodetable5[]="20--";

ucharcodetable6[]="::";

ucharcodetable7[]="MON";

ucharcodetable8[]="TUE";

ucharcodetable9[]="WED";

ucharcodetable10[]="THR";

ucharcodetable11[]="FRI";

ucharcodetable12[]="SAT";

ucharcodetable13[]="SUN";

ucharcodetable14[]="SettheCalendar";

ucharcodetable15[]="SettheMode";

ucharcodetable16[]="SettheTiming";

ucharcodetable17[]="ModeChoice";

12

湖南商务职业技术学院毕业设计

ucharcodetable18[]="123456";

uintbuf_key_code=0;

uintcount_T=0,buf_CT=0;

ucharkey=255;

ucharkey_bit_count=0;

ucharcommon_code_count=0;

ucharinf_status=0;

uchardd[7];

ucharaa[7]={0,0,11,17,4,6,11};

ucharee[3]={11,0,0};

ucharff[3]={11,1,0};

ucharkk[2]={11,2};

ucharhh[2]={11,3};

uchargg[6];

bitflag,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10,fla

g11,flag12,flag13,flag14;

charmiao,fen,shi,ri,yue,zhou,nian;

ucharsw,gw;

uchars1num,s2num;

voiddisplay(void);

voiddelay(uinti)

{

uintj;

for(;i>0;i--)

for(j=100;j>0;j--);

}

voidwrite_com(ucharcom)//lcd写指令

{

13

湖南商务职业技术学院毕业设计

lcdrs=0;

lcden=0;

P1=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidwrite_data(uchardat)//lcd写数据

{

lcdrs=1;

lcden=0;

P1=dat;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidinit()//lcd初始化

{ucharnum;

lcdrw=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

write_com(0x01);

write_com(0x80);

14

湖南商务职业技术学院毕业设计

for(num=0;num<16;num++)

{

write_data(table3[num]);

delay(5);

}

write_com(0xc0);

for(num=0;num<16;num++)

{

write_data(table4[num]);

delay(5);

}

delay(5);

write_com(0x01);

write_com(0x80);

for(num=0;num<8;num++)

{

write_data(table5[num]);

delay(1);

}

write_com(0xc0);

for(num=0;num<8;num++)

{

write_data(table6[num]);

delay(1);

}

}

15

湖南商务职业技术学院毕业设计

/*********DS1302程序*********/

voiddelay1(uintnum)

{

while(--num);

}

voidDS1302_wbyte(ucharinbyte)//ds1302写数据

{

uchari;

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

{

SCLK=0;

if(inbyte&0x01)

IO=1;

else

IO=0;

SCLK=1;

delay1(1);

inbyte=inbyte>>1;

}

}

ucharDS1302_rbyte()//ds1302读数据

{

uchari,temp=0;

IO=1;

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

{

SCLK=0;

if(IO==1)

16

湖南商务职业技术学院毕业设计

temp=temp|0x80;

else

temp=temp&0x7f;

SCLK=1;

temp=temp>>1;

}

return(temp);

}

//----------往ds1302的某个地址写入数据-------------

voidWrite_DS1302(ucharcmd,ucharindata)

{

RST=1;

DS1302_wbyte(cmd);

DS1302_wbyte(indata);

RST=0;

SCLK=0;

}

//----------读ds1302某地址的的数据-----------------

ucharRead_DS1302(ucharaddr)

{

ucharbackdata;

RST=1;

DS1302_wbyte(addr);

backdata=DS1302_rbyte();//先写地址,然后读数据

RST=0;

SCLK=0;

return(backdata);

}

17

湖南商务职业技术学院毕业设计

//------------设置初始时间-------------------

voidSet_DS1302(ucharaddr,uchar*p,ucharn)//写入n个数据

{ucharbb;

Write_DS1302(0x8e,0x00);//写控制字,允许写操作

for(;n>0;n--)

{sw=(*p)/10;

gw=(*p)%10;

bb=(sw<<4)|gw;

Write_DS1302(addr,bb);

p++;

addr=addr+2;

}

Write_DS1302(0x8e,0x80);//写保护,不允许写

}

//-----------读取当前时间-------------------

voidRead_nowtime(ucharaddr,uchar*p,ucharn)

{

for(;n>0;n--)

{

*p=Read_DS1302(addr);

p++;

addr=addr+2;

}

}

voidinit_DS1302()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论