ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:277.55KB ,
资源ID:7705765      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7705765.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(家用定时供电插座的设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

家用定时供电插座的设计.docx

1、家用定时供电插座的设计家用定时供电插座的设计一、 设计要求本次设计要求实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求及指标如下: (2)具有定时时间显示和时钟显示。 (3)可以利用按键调整显示时间和定时时间。 (3)定时时间到继电器上电,蜂鸣器响。二、设计说明本次设计时钟电路,使用了AT89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的分、秒,用蜂鸣器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过五个模块:继电器、键盘、芯片、蜂鸣器、LCD液晶显示即可满足设计

2、要求。1 主电路主电路主要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。 主电路2、显示电路显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。利用1602液晶显示屏显示时间,利用程序把1602芯片上对应的端口与单片机对应的I/O口进行连接,以便使时间能够正确的在液晶屏上显示。 1602芯片原理图3、按键电路本设计中利用按键S9、S13、S17行时间的调整。其中S9为设定时间的按键,S13和S17为设定时间加和减的按键。蜂鸣器主要是到定时时间进行响铃提请。 键盘

3、电路原理图蜂鸣器电路原理图4、继电器电路 当电子时钟走到和定时时间相同时,蜂鸣器响的同时继电器也会吸合,以便使插座上电。 继电器电路原理图三、整体原理图(见附图)四、设计体会通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。在设计前应该对所要实现的功能有一定的了解,定下有大概的流程图,把设计模块化,写程序时也应该一个模块一个模块的写,这样方便理解,也方便以后的检查。在仿真和实物的过程中要了解所使用芯片的功能及引脚的排列方式,这样焊接时比较方便。五、C语言程序#i

4、nclude#define uchar unsigned char#define uint unsigned intuchar code table1=00:00:00;sbit dula=P26;sbit wela=P27;sbit lcden=P34 ;/位定义sbit lcdrw=P36;sbit lcdrs=P35;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit rd=P37;sbit beep=P23;/定义蜂鸣器 sbit replay=P06;定义继电器uchar num,count,s1num;/显示的位数;响应中断数;按键次数;uint i;

5、char shi,fen,miao,shi1,fen1,miao1;void delay(uint z)/延时程序 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void write_com(uchar com)/控制指令 lcdrs=0; /低电平时选择指令寄存器 lcdrw=0;/ 低电平时进行写操作 delay(5); lcden=1; /E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 P0=com; delay(5); lcden=0;void write_data(uchar date)/数据指令 lcdrs=1; lcden=1;

6、 /均为高时是读出数据的内容 delay(5); P0=date; delay(5); lcden=0;void init()/初始化 dula=0; wela=0; lcdrw=0; lcden=0; delay(15); write_com(0x38);/设置为4位总线,单行显示 delay(5); write_com(0x38); delay(5); write_com(0x38); write_com(0x38);/重复多次以确定可以正确设置 write_com(0x08);/无光标正常显示 write_com(0x01);/清显示 write_com(0x06);/向右显示 writ

7、e_com(0x0c);/ 显示开关控制。 write_com(0x80+1);/d7为高时,显示数据存储地址TMOD=0x11;/工作方式3 TH0=(65536-50000)/256;/定时时间为50ms TL0=(65536-50000)%256; EA=1;/开总中断 ET0=1;/打开定时器 TR0=1;/启动定时器 write_com(0x80+4);/秒的设定 for(num=0;num8;num+) write_data(table1num); delay(20); write_com(0x80+0x40+4); for(num=0;num8;num+) write_data(

8、table1num); delay(20); void write_sfm(uchar add,uchar date)/调整时间 uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add);/控制指令,0x40:字符发生器RAM地址设置进行加 write_data(0x30+shi);/数据指令write_data(0x30+ge);void write_shedingsfm(uchar add1,uchar date1)/设定定时时间 uchar shi1,ge1; shi1=date1/10; ge1=date1%10;

9、write_com(0x80+add1);/控制指令 write_data(0x30+shi1); write_data(0x30+ge1);void keyscan() rd=0; if(s1=0) delay(5); if(s1=0) s1num+; while(!s1);/s1按下 if(s1num=1)/按下次数 TR0=0;/停止定时器工作 write_com(0x80+0x40+11);/调整时间设置,控制秒设定 write_com(0x0f); /光标显示 if(s1num=2) write_com(0x80+0x40+8);/控制分钟设定 write_com(0x0f);/控制

10、光标闪烁 if(s1num=3) write_com(0x80+0x40+5);/控制时设定 write_com(0x0f); if(s1num=4) TR0=1;/启动定时器,定时时间的设定 write_com(0x80+11);/控制秒的设定 write_com(0x0f);/光标显示 if(s1num=5) write_com(0x80+8);/定时分钟的设定 write_com(0x0f); if(s1num=6) write_com(0x80+5);/定时时的显示 write_com(0x0f); if(s1num=7) s1num=0; / 按键次数清零 write_com(0x0

11、c);/显示此时为无光标状态 if(s1num!=0)/有按键时 if(s2=0) delay(5); if(s2=0) while (!s2); if(s1num=1) miao+; if(miao=60) miao=0; write_sfm(10,miao);/第10位进行秒的设定 write_com(0x80+0x40+11);/控制秒的设定 if(s1num=2) fen+; if(fen=60) fen=0; write_sfm(7,fen); write_com(0x80+0x40+8); if(s1num=3) shi+; if(shi=24) shi=0; write_sfm(

12、4,shi); write_com(0x80+0x40+5); if(s1num=4) TR0=1;/定时器启动 miao1+; if(miao1=60) miao1=0; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1+; if(fen1=60) fen1=0; write_shedingsfm(7,fen1); write_com(0x80+8); if(s1num=6) shi1+; if(shi1=24) shi1=0; write_shedingsfm(4,shi1); write_com(0x80+5

13、); if(s3=0) delay(5); if(s3=0) while (!s3); if(s1num=1) miao-; if(miao=-1) miao=59; write_sfm(10,miao); write_com(0x80+0x40+11); if(s1num=2) fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0x80+0x40+8); if(s1num=3) shi-; if(shi=-1) shi=23; write_sfm(4,shi); write_com(0x80+0x40+5); if(s1num=4) T

14、R0=1; miao1-; if(miao1=-1) miao1=59; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1-; if(fen1=-1) fen1=59; write_shedingsfm(7,fen1); write_com(0x80+8); if(s1num=6) shi1-; if(shi1=-1) shi1=23; write_shedingsfm(4,shi1); write_com(0x80+5); void main()/主函数 init();/初始化函数 while(1) keysca

15、n();/键盘扫描 if(count=20)/响应中断20次,时间1s count=0;/清零 miao+;/秒加1 if(miao=60)/60秒时分加1 miao=0; fen+; if(fen=60)/60分时时加1 fen=0; shi+; if(shi=24)/24时时时全为0,从00:00:00开始计时 shi=0; write_sfm(4,shi);/修改时 write_sfm(7,fen);/修改分 write_sfm(10,miao);/修改秒 if(shi=shi1)&(fen=fen1)&(miao=miao1)/蜂鸣器电路的运行 for(i=0;i10;i+) beep=0;/蜂鸣器响 delay(50); beep=1; delay(50); replay=0; void timer0() interrupt 1/中断函数 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1