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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的智能台灯设计Word下载.docx

1、当输入电压VcVR时,COP3输出为高电平,进入延时周期。当A端接“0”电平时,在Tx时间内任何V2的变化都被忽略,直至Tx时间结束,即所谓不可重复触发工作方式。当Tx时间结束时,Vo下跳回低电平,同时启动封锁时间定时器而进入封锁周期Ti。在Ti时间内,任何V2的变化都不能使Vo跳变为有效状态(高电平),可有效抑制负载切换过程中产生的各种干扰。时钟芯片DS12C887特点可作为IBMAT计算机的时钟和日历与MC146818B和DS1287的管脚兼容在没有外部电源的情况下可工作10年自带晶体振荡器及电池可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿用二进制码或BC

2、D码代表日历和闹钟信息有12和24小时两种制式,12小时制时有AM和PM提示可选用夏令时模式可以应用于MOTOROLA和INTEL两种总线数据/地址总线复用内建128字节RAM14字节时钟控制寄存器114字节通用RAM可编程方波输出总线兼容中断(/IRQ)三种可编程中断时间性中断可产生每秒一次直到每天一次中断周期性中断122ms到500ms时钟更新结束中断DS18B20温度传感器DS18B20的主要特征:全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达土0.5摄氏度。12位分辨率时的最大工作周期为750毫秒。可选择寄生工作方式。检测温度范围为55C+125C(67F+25

3、7F)内置EEPROM,限温报警功能。64位光刻ROM,内置产品序列号,方便多机挂接。多样封装形式,适应不同硬件系统。三、实现:(一)、硬件部分主体部分:(两条白线为跳线)LED:电流放大电路:PS:单片机IO口电流不够大,无法使灯泡足够亮。按键部分:(二)、软件部分#include#defineucharunsignedchar#defineuintunsignedintsbitds=P24;/温度传感器信号线sbitbeep=P23;/蜂鸣器sbitre=P22; /热释电sbitgm=P27;/光敏sbits0=P13;/智能sbits1=P30;/功能键sbits2=P31;/增加键s

4、bits3=P34;/减小键sbits4=P35;/闹钟查看键sbits5=P36;/调光sbits6=P32;/显示温度sbitrs=P10; /sbitlcden=P12; /液晶sbitwr=P11;sbitled1=P20;sbitled2=P21; /ledsbitled3=P25;sbitled4=P26;sbitrd=P37;sbitdscs=P17;sbitdsas=P16;sbitdsrw=P15; /时钟芯片sbitdsds=P14;sbitdsirq=P33;uinttemp;floatf_temp;uchars5num=0,s0num=0,s6num=0;ucharfl

5、ag1=0,flag_ri;/定义两个位变量ucharcount,s1num,flag=0,t0_num;/其它变量定义ucharmiao,shi,fen,year,month,day,week,amiao,afen,ashi;ucharcodetable=20-;/液晶固定显示内容ucharcodetable1=:ucharcodetable2=WELCOME!voidwrite_ds(uchar,uchar);/函数申明voidset_alarm(uchar,uchar,uchar);voidread_alarm();ucharread_ds(uchar);voidset_time();/

6、*/*led*/voidled(ucharx) switch(x) case0:led1=1;led2=0;led3=1;led4=0;break; case1: led1=0; break; case3:led3=0;led4=1; case2: led1=1;led2=1; case4: /*/voiddelay(uintz)/延时函数 uintx,y; for(x=z;x0;x-) for(y=110;yy-);voiddi()/蜂鸣器报警声音 beep=0; delay(100); beep=1;voidwrite_com(ucharcom)/写液晶命令函数 rs=0; lcden=0

7、; P0=com; delay(3); lcden=1; voidwrite_date(uchardate)/写液晶数据函数 rs=1; P0=date;voidinit()/初始化函数 uchari; EA=1;/打开总中断 EX0=1;/开外部中断1 IT0=1;/设置负跳变沿触发中断 EX1=1; IT1=1; flag1=0;/变量初始化 t0_num=0; s1num=0; week=1; rd=0;/*以下几行在首次设置DS12C887时使用,以后不必再写入 write_ds(0x0A,0x20);/打开振荡器 write_ds(0x0B,0x26);/设置24小时模式,数据二进制

8、格式 /开启闹铃中断 set_time();/设置上电默认时间 -*/ write_com(0x38);/1602液晶初始化 write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(i=0;i15;i+)/写入液晶固定部分显示 write_date(tablei); delay(1); write_com(0x80+0x40); for(i=0;16;i+) write_date(table1i);voidwrite_sfm(ucharadd,chardate)/1602液晶刷新时分秒函数4为时,7为分,1

9、0为秒 charshi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge);voidwrite_nyr(ucharadd,chardate)/1602液晶刷新年月日函数3为年,6为分,9为秒 write_com(0x80+add);voidwrite_week(charwe)/写液晶星期显示函数 write_com(0x80+12); switch(we) write_date(M);delay(5); write_date(ON break;TUEWD

10、H case5:FRI case6:SA case7:voidkeyscan() if(flag_ri=1) /这里用来取消闹钟报警,任一键取消报警 if(s1=0)|(s2=0)|(s3=0)|(s4=0) delay(5); if(s1=0)|(s2=0)|(s3=0)|(s4=0) while(!(s1&s2&s3&s4);di(); flag_ri=0;/清除报警标志 if(s1=0)/检测S1 delay(10); if(s1=0) s1num+;/记录按下次数 if(flag1=1) if(s1num=4) s1num=1; flag=1; while(!s1); switch(s

11、1num) /光标闪烁点定位 case1:write_com(0x80+0x40+10); write_com(0x0f); break; case2:write_com(0x80+0x40+7); case3:write_com(0x80+0x40+4); case4:write_com(0x80+12); case5:write_com(0x80+9); case6:write_com(0x80+6); case7:write_com(0x80+3); case8:s1num=0; write_com(0x0c); flag=0; write_ds(0,miao); write_ds(2,

12、fen); write_ds(4,shi); write_ds(6,week); write_ds(7,day); write_ds(8,month); write_ds(9,year); if(s1num!=0)/只有当S1按下后,才检测S2和S3 if(s2=0) delay(10); if(s2=0)s2); switch(s1num) /根据功能键次数调节相应数值 case1: miao+; if(miao=60) miao=0; write_sfm(10,miao); write_com(0x80+0x40+10); break; case2: fen+; if(fen=60) fe

13、n=0; write_sfm(7,fen); write_com(0x80+0x40+7); case3: shi+; if(shi=24) shi=0; write_sfm(4,shi); write_com(0x80+0x40+4); case4: week+; if(week=8) week=1; write_week(week); write_com(0x80+12); case5: day+; if(day=32) day=1; write_nyr(9,day); write_com(0x80+9); case6: month+; if(month=13) month=1; writ

14、e_nyr(6,month); write_com(0x80+6); case7: year+; if(year=100) year=0; write_nyr(3,year); write_com(0x80+3); if(s3=0) if(s3=0)s3); miao-; if(miao=-1) miao=59; fen-; if(fen=-1) fen=59; shi-; if(shi=-1) shi=23; week-; if(week=0) week=7; day-; if(day=0) day=31; month-; if(month=0) month=12; year-; if(ye

15、ar=-1) year=99; if(s4=0)/检测S4 if(s4=0) flag1=flag1;s4); if(flag1=0) /退出闹钟设置时保存数值 flag=0; write_com(0x80+0x40); write_com(0x0c); write_ds(1,miao); write_ds(3,fen); write_ds(5,shi); else /进入闹钟设置 read_alarm();/读取原始数据 miao=amiao;/重新赋值用以按键调节 fen=afen; shi=ashi;/显示标志i write_com(0x80+0x40+3); write_sfm(4,ashi);/送液晶显示闹钟时间 write_sfm(7,afen); write_sfm(10,amiao); if(s0=0) if(s0=0) di(); s0num+; if(s0num=2) s0num=0; if(s5=0) if(s5=0) s5num+; if(s5num=5) s5num=0; led(s5num);

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

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