欢迎来到天天文库
浏览记录
ID:49655244
大小:320.50 KB
页数:16页
时间:2020-03-03
《家用定时供电插座的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、家用定时供电插座的设计一、设计要求本次设计要求实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求及指标如下:(2)具有定时时间显示和时钟显示。(3)可以利用按键调整显示时间和定时时间。(3)定时时间到继电器上电,蜂鸣器响。二、设计说明本次设计时钟电路,使用了AT89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的分、秒,用蜂鸣器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过五个模块:继电器、键盘、
2、芯片、蜂鸣器、LCD液晶显示即可满足设计要求。1主电路主电路主要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。15主电路2、显示电路显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。利用1602液晶显示屏显示时间,利用程序把1602芯片上对应的端口与单片机对应的I/O口进行连接,以便使时间能够正确的在液晶屏上显示。151602芯片原理图3、按键电路本设计中利用按键S9、S13、S17行时间的
3、调整。其中S9为设定时间的按键,S13和S17为设定时间加和减的按键。蜂鸣器主要是到定时时间进行响铃提请。键盘电路原理图15蜂鸣器电路原理图4、继电器电路当电子时钟走到和定时时间相同时,蜂鸣器响的同时继电器也会吸合,以便使插座上电。继电器电路原理图三、整体原理图(见附图)四、设计体会通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。在设计前应该对所要实现的功能有一定的了解,定下有大概的流程图,
4、把设计模块化,写程序时也应该一个模块一个模块的写,这样方便理解,也方便以后的检查。在仿真和实物的过程中要了解所使用芯片的功能及引脚的排列方式,这样焊接时比较方便。15五、C语言程序#include#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]="00:00:00";sbitdula=P2^6;sbitwela=P2^7;sbitlcden=P3^4;//位定义sbitlcdrw=P3^6;sbitlcdrs=P3^5;sbits
5、1=P3^0;sbits2=P3^1;sbits3=P3^2;sbitrd=P3^7;sbitbeep=P2^3;//定义蜂鸣器sbitreplay=P0^6;定义继电器ucharnum,count,s1num;//显示的位数;响应中断数;按键次数;uinti;charshi,fen,miao,shi1,fen1,miao1;voiddelay(uintz)//延时程序{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom)//控制指令{15lc
6、drs=0;//低电平时选择指令寄存器lcdrw=0;//低电平时进行写操作delay(5);lcden=1;//E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令P0=com;delay(5);lcden=0;}voidwrite_data(uchardate)//数据指令{lcdrs=1;lcden=1;//均为高时是读出数据的内容delay(5);P0=date;delay(5);lcden=0;}voidinit()//初始化{dula=0;wela=0;lcdrw=0;lcden=0;delay(15);
7、write_com(0x38);//设置为4位总线,单行显示delay(5);write_com(0x38);delay(5);write_com(0x38);15write_com(0x38);//重复多次以确定可以正确设置write_com(0x08);//无光标正常显示write_com(0x01);//清显示write_com(0x06);//向右显示write_com(0x0c);//显示开关控制。write_com(0x80+1);//d7为高时,显示数据存储地址TMOD=0x11;//工作方式3TH0=(655
8、36-50000)/256;//定时时间为50msTL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//打开定时器TR0=1;//启动定时器write_com(0x80+4);//秒的设定for(num=0;num<8;num++){write_data(tab
此文档下载收益归作者所有