单片机与太阳能电池的小应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机与太阳能电池的小应用.doc

创新设计 太阳能广告展示装置 ——实用模块设计 姓名:祝张 学号: 110800730 班级: 08应用物理 同组成员: 余昌海 110800713 陈火明 110800718 2011年01月10日 太阳能广告展示装置 ——实用模块设计 一、作品设计目的及意义: 为了提高该广告展示台的使用价值,使之更加实用,并迎合各人群的生活节奏,我想到在原有的展示台上安装最小系统的一些功能,并将一些常用的功能实现,诸如温度,时钟,湿度,闹钟,灯饰等。 太阳能底座由太阳能电池板提供电源,与最小系统相互独立,原因在于我们所买到的太阳能电池板价格相对较高,而在以后技术进一步发展之后可以考虑用它给最小系统提供电源。 考虑到不同的人群需求不同,比如在餐馆人们更需要知道时间,在卧室人们也许需要闹钟和温度计,在车上人们可能需要时钟和温度计等,所以,我所负责的程序部分将这些功能都加以分散,降低产品成本,满足个性化需求。 由此,我们着手制作样品。 二、基本思路: 1、底座:太阳能电池板提供2.0到2.4V的直流电源,通过模拟电路调整为震荡电流,带动电机,再通过齿轮传递,使展示台旋转。 2、展示台功能:采用stc52单片机最小系统构成温度、时钟、闹钟等满足个性化需求,并可以供消费者自行组装。 3、无线控制:采用nrf24l01无线数据模块实现远程控制,提供远程开关,数据传递。考虑到该模块价格较贵,不适合嵌入本作品,再者我买了两个结果坏了一个于是也只好放弃了。 三、创新点: 太阳能旋转底座带动展示台的旋转,使之更能引起人们注意,同时加之消费者需求的功能,更加迎合消费者,因为展示台在不断地旋转,所以展示的空间和展示的内容增加了,如果条件允许还完全可以使用太阳能电池板为电池充电并保证无光情况下展示台的工作,环保节能。本作品是为实用新型设计。 四、外观由同组其他成员设计在其报告中有阐述。 五、电路部分主体由同组其他成员设计在其报告中有相对阐述。我主要建议使用ds18b20温度传感器,理由在温度传感器当中该芯片比较普及,单线工作占用I/O口少等,当然也是我们小组目前所能直接找到的温度传感器。至于湿度传感器的选择以及电路的设计被放弃了,因为我们只要提出一个想法并实行,考虑到湿度计所用无机所以放弃了。 六、对应模块程序编辑 /*18B20程序*/ #includereg52.h #includemath.h #includeINTRINS.H #define uchar unsigned char #define uint unsigned int; /*定义端口*/ sbit seg1=P2^0; sbit seg2=P2^1; sbit seg3=P2^2; sbit DQ=P1^3;//ds18b20 端口 sfr dataled=0x80;//显示数据端口 /*全局变量 */ uint temp; uchar flag_get,count,num,minute,second; uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //7段数码管段码表共阳 uchar str[6]; /*函数声明*/ void delay1(uchar MS); unsigned int ReadTemperature(void); void Init_DS18B20(void); unsigned char ReadOneChar(void); void WriteOneChar(unsigned char dat); void delay(unsigned int i); /*主函数*/ main() { unsigned char TempH,TempL; TMOD|=0x01;//定时器设置 TH0=0xef; TL0=0xf0; IE=0x82; TR0=1; P2=0x00; count=0; while(1) { str[5]=0x39; //显示C符号 str[1]=tab[TempH/100]; //十位温度 str[2]=tab[(TempH%100)/10]; //十位温度 str[3]=tab[(TempH%100)%10]|0x80; //个位温度,带小数点 str[4]=tab[TempL]; if(flag_get==1) //定时读取当前温度 { temp=ReadTemperature();

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档