太阳能电池板自动跟踪系统设计
4.7 系统电源设计
随着集成电路制造技术的发展以及数字式电子元器件的微小型化,集成电路器件制造商在保持并增强元器件功能的前提下,采用更为先进精细的制造工艺,在减少集成芯片几何尺寸的同时,降低工作电压。降低器件的工作电压的主要优点是使电池供电电流小,电源工作时间延长;器件产生的热量减少,提供了工作可靠性;降低了器件的噪声。此外,单片机和元器件可以做到更小、更轻、更精和连续时间更长。
在整个单片机系统设计中,电源的设计是需要首先考虑的,这决定了系统是采用单电源方案,还是多电源方案,系统的功耗有无特殊规定等。
单片机系统中的电源设计主要指3个方面: 一是电源功耗,二是电源电压,三是电源管理。
本设计中,系统的电源采用的数字+5V,考虑到方便,电源可以从太阳能电池获得。但是系统的电压会很不稳定所以需要稳压性能较好的稳压源给给系统供电。
4.8 步进电机驱动电路
如下图所示是步进电机驱动电路,本设采用单电压驱动电路,单电压具有电路简单,功放元件少等特点,但是效率不高。单电压驱动电路适合反应式步进电机。与A相绕组并联的支路,起到释放绕组的电流,因为当Q2关断时绕组的电流不能突变需要释放的途径,电能将消耗在该支路的电阻上。其他电阻起到限
流的作用。 驱动过程是当单片机发出信号从P20口 图4.14 步进电机驱动电路 输入当高电平时三极管导通,24V电压加在A相绕组与10K上。低电平时关断A相绕组不通电。
第 30 页 共 54 页
10K10KD5P20R5Q2A相绕组2SD1781K24V华北科技学院
第5章 太阳能电池板跟踪系统软件设计
5.1 Keil C51 软件介绍
目前51系列单片机编程的C语言都采用Keil C51(简称C51),Keil C51是在标准C语言基础上发展起来的。Keil C51语言是在ANSI C的基础上针对51单片机的硬件特点进行的扩展,并向51单片机上移植,经过多年努力,C51语言已经成为公认的高效、简洁而又贴近51单片机硬件的实用高级编程语言。
Keil C51 软件是支持8051微控制器体系结构的Keil开发工具,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编语言相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。并且,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全新Windows界面,更适合初学者的学习和掌握。Keil C51软件进行开发有如下优点:
(1)可读性好。C51语言程序比汇编语言程序的可读性好,因而编程效率高,程序便于修改。
(2)模块化开发与资源共享。用C51开发出来的程序模块可以不经修改,直接被其他项目所用,这使得开发者能够很好地利用已有的大量的标准C程序资源与丰富的库函数,减少重复劳动。
(3)可移植性好。为某种型号单片机开发的C语言程序,只需将与硬件相关之处和编译连接的参数进行适当修改,就可以方便地移植到其他型号的单片机上。
(4)代码效率高。当前较好的C51语言编译系统编译出来的代码效率只比直接使用汇编语言低20%左右,如果使用优化编译选项,效果会更好。
Keil C51软件存储模式
存储模式决定了没有明确指定存储类型的变量,函数参数等的缺省存储区域,共三种:
Small模式, 所有缺省变量参数均装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。
第 31 页 共 54页
太阳能电池板自动跟踪系统设计
Compact模式,所有缺省变量均位于外部RAM区的一页(256Bytes),具体哪一页可由P2口指定,在STARTUP.A51文件中说明,也可用pdata指定,优点是空间较Small为宽裕速度较Small慢,较large要快,是一种中间状态。
Large模式,所有缺省变量可放在多达64KB的外部RAM区,优点是空间大,可存变量多,缺点是速度较慢。
5.2 软件总体设计及流程图
5.2.1 软件总体设计
系统中软件设计占有很重要的地位。它不仅要处理光电传感信号,发出步进电机的控制信号,还要保持和上位机的通讯。因此系统软件的好坏直接决定着系统的功能和稳定。
本设计采用Keil C51设计,软件包括:主程序模块、光电跟踪子程序、视日运动跟踪子程序和RS232通讯模块等。单片机首先与电脑通讯将以当地理信息的为变量的数表下载到EEPROM中,系统初始化完成。然后根据主程序,分别进入光电跟踪和程序跟踪模式。光电跟踪模式下,单片机根据光电传感器的信号输入,获取光照强度,东西,南北光强差信号等信息,控制信号输出;程序跟踪模式下,单片机根据上位机通过RS232传输的数表即EEPROM中的数表,控制信号输出。
本设计系统软件主程序流程图如图5.1所示,光电跟踪子程序流程图如图5.3所示,视日运动跟踪程序流程图如图5.2所示。
第 32 页 共 54 页
华北科技学院
5.2.2 软件流程图设计
开 始
开 始读入时间白 天 ?是视日轨迹跟踪否
驱动步进电机1高度角计算方位角计算驱动步进电机2光电跟踪
调整方位角到位调整高度角到位调整到位?是否
返回主程序
图 5.1软件主程序流程图 图5.2 程序跟踪程序流程图
开 始光强采集信号单片机处理
调整到位?否
是返回 5.3程序跟踪程序流程图
第 33 页 共 54页
太阳能电池板自动跟踪系统设计
5.3 软件关键模块设计
5.3.1 串口通信程序设计
串口通讯程序是系统软件很重要的一部分。根据上位机传送的指令信号即写入命令,然后将以确定地理参数所对应的数表通过单片机下载到EEPROM中。 通讯程序如下:
void Esisr() interrupt /*串口接收中断服务程序*/ {
unsigned char temp; ES=0; if(RI == 1) { RI = 0;
temp = SBUF; /* 接收数据 */ } ES=1; }
5.3.2 EEPROM的读写程序核心代码
void initializtion(uint addr) /*EEPROM初始化(EEPROM擦出程序)*/ { uint Addr;
Addr = (addr & 0xfe00); /* 取地址 */ ISP_ADDRH = (uchar)(Addr >> 8); ISP_ADDRL = 0x00;
ISP_CMD = ISP_CMD & 0xf8; /* 清空低3位 */ ISP_CMD = ISP_CMD | EraseCommand; /* 擦除命令3 */ ISPgoon(); /* 触发执行 */
ISP_IAP_disable(); /* 关闭ISP,IAP功能*/ }
第 34 页 共 54 页