2014届毕业设计 智能追日系统的研究与设计 - 图文

更新时间:2024-04-15 20:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2014届毕业设计说明书

逐日系统的研究与设计

院 、 部: 电气与信息工程学院 学生姓名: 指导教师: 职称(学位) 专 业: 班 级:

完成时间: 2014年5月25日

摘 要

为了解决世界能源危机这一问题,构建节约环保型社会,世界各地都在广泛地利用太阳能发电。太阳能是一种清洁可再生能源,提高对太阳能利用率成为一个重要的研究课题。传统的固定的太阳能电池板并不能使太阳能利用率到达最高,因此本论文提出了一种对日跟踪设计方案,并研制出一套追日系统装置,能对移动中的太阳进行实时追踪,保证太阳光线垂直入射电池板,从而提高了太阳能的利用率。

此次设计以STC12C5A60S2单片机为核心控制元件,设计一个简易的太阳跟踪装置。将芯片与LM7805稳压管、LCD液晶显示屏、LM386功放、LM393电压比较器、L298N电机驱动芯片等构成单片机最小系统,硬件电路部分由四颗光敏电阻和两个直流电机构成双轴控制系统,再利用C语言编程,来控制太阳跟踪的功能实现。它的功能实现是通过光敏电阻的伏安特性,改变电压,利用STC系列单片机内部自带AD转换功能,实现模数转换,再通过软件进行时时采样电压,控制双轴电机,跟踪太阳,直到太阳光线垂直入射电池板,待稳定一段时间后,再次跟踪太阳并且当有风或者有雨时,收缩太阳能电池板至水平。

通过实验验证了各种状态下,电机驱动不同带来的跟踪太阳的效果,证明系统具有一定稳定性和快速性。

关键词: 太阳跟踪;单片机;光敏电阻;模数转换

I

ABSTRACT

In order to solve the energy crisis of the world and build up saving and

environmental-friendly society,many countries are taking use of the solar energy. The solar energy is a clean, renewable resource,therefore,to improve the utilization of solar energy has become an important topic.Since conventional fixed solar panels can not make the full utilization of solar energy, this paper presents a scheme for solar tracker design, and developed a set of tracking system devices, which is capable of moving in the real-time tracking of the sun to ensure the sun's rays is incident perpendicular to the panel, thereby improving the utilization of solar energy.

This design is based on the STC series micro-controller as the core control element,as well as some other chips,for example,LM7805 voltage regulator tube,LCD screen,LM386 power amplifier,LM393 voltage comparator,L298N motor drive chip,which is consisting of the smallest single-chip system.What’s more,the hardware part is composed of four photosensitive resistance and two DC generator.Finally,it is the C language programming software combing with the hardware part that completes a simple sun tracking device.Its function is achieved through the photo-resistor’s voltage characteristics by changing the voltage, STC Series MCU combines with internal AD conversion, and through software always sampled voltage, dual-axis motor control, tracking the sun until the sun vertically incident light panels, to be stable over time, again tracking the sun and when there is wind or rain, the contraction of solar panels to the horizontal position of the state.

This experiment proves that in all kinds of conditions different motors driving cause different effects of solar tracking,proving that the system has certain stability and rapidity.

Key words: scm;photosensitive resistance; analog to digital conversion; solar tracker

II

目 录

1 绪论.......................................................................................................................... 1

1.1 本课题的研究背景及意义............................................................................ 1 1.2 课题设计任务及功能设计要求.................................................................... 2 1.3 设计方案及工作原理.................................................................................... 2 2 硬件系统设计.......................................................................................................... 4

2.1 硬件电路简介............................................................................................... 4 2.2 硬件系统各模块功能介绍........................................................................... 4

2.2.1 STC12C5A60S2单片机 ................................................................. 4 2.2.2 光敏电阻电路单元.......................................................................... 5 2.2.3 LM386功放电路单元..................................................................... 6 2.2.4 LM393电压比较电路单元............................................................. 7 2.2.5 L298N电路单元 ............................................................................. 7 2.2.6 LCD液晶显示电路单元................................................................. 8 2.2.7 直流稳压电路单元.......................................................................... 8 2.2.8 复位电路单元.................................................................................. 9 2.2.9 晶体振荡电路单元.......................................................................... 9

3 软件系统设计........................................................................................................ 11

3.1 占用单片机资源情况................................................................................. 11 3.2 软件系统各模块功能介绍......................................................................... 11 3.3 程序流程框图............................................................................................. 11

3.3.1 系统程序流程图............................................................................ 11 3.3.2 ADC采样主程序流程图............................................................... 13 3.3.3 ADC采样中断程序流程图........................................................... 14 3.3.4 LCD液晶初始化程序流程图....................................................... 15 3.3.5 LCD液晶显示程序流程图........................................................... 15 3.3.6 L298N电机驱动程序流程图....................................................... 16 3.3.7 PWM脉宽调制控制电机速度程序流程图................................... 18 3.3.8 风雨模块程序流程图.................................................................. 20

4 系统功能验证性实验及结果分析........................................................................ 21

4.1 实验结果及设计结论................................................................................. 21

4.1.1 实验结果.......................................................................................... 21 4.1.2 设计结论.......................................................................................... 21

5 结束语.................................................................................................................... 22 致 谢.......................................................................................................................... 27 参考文献...................................................................................................................... 24 附 录.......................................................................................................................... 28

附录A:顶层布局图........................................................................................ 28 附录B:底层走线图........................................................................................ 29 附录C:顶层走线图........................................................................................ 30 附录E:实物调试图与实物组成图................................................................ 32 附录F:PWM脉宽调制驱动电机转动时的波形图......................................... 33 附录G:程序清单............................................................................................ 34

1 绪论

1.1 本课题的研究背景及意义

近几年来国内外不少专家学者对太阳能自动跟踪技术开展了一系列研究,且已经取得了一定的成果。

国外对跟踪技术的研究起步比较早,在1994年捷克一个研究院利用温度传感器通过太阳照射温度的不同实现了单轴的太阳电池板跟踪。在美国1997年也研制了单轴的太阳跟踪器,另一方向通过手动调节,它是基于太阳的运动规律建立赤道坐标系,完成太阳能电池板(南北方向放置)的自动跟踪,在南北方向手动调节,电池板的热接收率提高了15%,第二年美国加州研制了装有聂耳透镜的ATM双轴太阳能板跟踪器。2002年2月,美国亚利桑那大学提出了一种新型太阳能板跟踪装置,太阳能板下方装有电机,整个装置采用铝型材框架结构,重量轻,结构紧凑,通过控制电机的转动实现跟踪,这种方法大大拓宽了太阳能板跟踪器的应用领域。

国内,王斯成设计的主动双轴跟日系统由单片机进行系统控制,电机耗电占发电量的O.3%,跟踪精度≤2。,能提高发电量的40%。之后刘振起也设计了双轴跟踪器,设计中使用2个光电二极管产生跟踪信号,用来调节高度角和方位角,当太阳光的入射光线偏离太阳能板的垂直方向时,因2个光电二极管接受的光照度不同,所以产生的电信号也不同,电信号经放大后送入控制单元,控制太阳能电池板转动,直到太阳光的入射光线近似垂直太阳能板,完成跟踪目的。

能源对于人类在社会中的生存和发展是至关重要的。随着人类步入21世纪,科学技术和经济发展的脚步逐步加快,各国对能源的消耗也是与日俱增,对能源的开发利用也是越来越猛烈。但是能源问题不仅表现在资源匮乏上面,还表现在传统能源在使用的过程中出现对环境的严重污染上面。太阳能作为一种新兴的绿色能源,正得到迅速的推广应用。为了缓解化石燃料的消耗殆尽,光伏发电被列为2l新世纪重要的研究项目来应对资源以及环境问题。

太阳能是一种洁净无污染的可再生能源,取之不尽,用之不竭,越来越受到广泛关注,并成为人类寻求新能源的热点。由于太阳能的利用受自然条件及日照的影响,无法保持太阳光始终垂直于电池板,因此太阳能电池板昂贵、转化光电效率低而未能得到普及利用.为提高太阳能利用率,本文设计了一种结构简单、成本低廉、免维护、具广泛应用价值的太阳跟踪系统,实现各种天气状况下的太阳跟踪,有一定精度,并能使太阳能电池板始终对准太阳,获得最大的发电效率。

1

1.2 课题设计任务及功能设计要求

设计太阳能跟踪装置,并设置风雨模块,在有风或有雨的情况下驱动电机,使板子水平放置。无风无雨的情况下,时时采样,驱动电机向着太阳旋转,稳定一段时间后,再次驱动电机,使得太能光线始终垂直照射电池板。通过实验,提高对太阳能的利用率,解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。

设计一个具有特定功能的太阳能跟踪装置。该装置上电或按键复位后能自动显示系统X/Y两端电压, 此时是利用STC系列单片机自带的AD转换功能,将外部电压改变量经过一定的算法后,送LCD液晶显示,跟踪装置进入准备工作状态。当X轴电压小于单片机参考电压5V的一半即2.5V时,X轴电机正转,否则反转;当Y轴电压小于2.5V时,Y轴电机正转,否则发转;利用双轴控制来实现对太阳的跟踪。其中,电压的改变量通过光敏电阻实现。

再者,当系统检测到有风或者有雨时,通过模数转换模块,仅对Y轴电机进行控制,使得最终太阳能板收缩,起到保护的作用。

1.3 设计方案及工作原理

方案一:时空控制方法太阳的运行轨迹是与时间、季节、当地经纬度等诸多复杂因素有关的。因此,可以将上述相关的数据预先输入到微处理器中通过程序查表并进行太阳方位角和高度角的计算,实现时间和空间上的同步,最终得出实际角度以实现精确的控制。该方法精度高,具有较好的适应性,但程序复杂,不易于实现,系统方框图如图1所示:

太阳高度角,方位角的数据库单片机电机

图1 方案一系统方框图

2

方案二:采用单片机STC12C5A60S2作为控制核心,以P0口作为LCD液晶显示的地址数据总线,P1.0口接AD转换模拟通道驱动X轴电机,P1.1口接AD转换模拟通道驱动Y轴电机,P3.4口、P3.5口、P3.6口、P3.7口分别作X轴电机正反转输入端,Y轴电机正反转输入端,P4.7口接按键复位电路,P3.2口接风机模块输入端,P3.3口接雨滴模块输入端。控制系统的四个模块为:直流稳压电路模块、LCD显示输出模块、LM386和LM393组成的电压放大比较模块、L298N电机驱动模块。即通过单片机采集由光敏电阻带来的电压改变量,利用单片机自带的AD转换功能,通过LCD液晶显示屏来完成显示功能,再利用软件编程,实现对X轴和Y轴的电机驱动,从而实现整个太阳跟踪过程。同时,通过附加的风雨模块,同样通过软硬件结合,进而保护太阳跟踪系统的稳定性与可靠性。在实际运用工程中,通过太阳跟踪系统,相同条件下大大地提高了对太阳能的利用率,系统方框图如图2所示:

LCD1602液晶显示AD采样电路电机驱动电路风信号的放大电路风雨模块的电压比较电路直流稳压电路 STC12C5A60S2单片机晶振电路复位电路

图2 方案二系统方框图

本说明书主要介绍了单片机控制太阳跟踪系统设计的软件程序和硬件部分,以及它的具体运行情况。

3

2 硬件系统设计

硬件系统设计部分是整个太阳跟踪系统的主要核心,通过对各个元器件的选择,利用Altium Designer软件完成模块化的原理图设计,它包括对硬件电路的简介与硬件系统各模块功能的介绍。

2.1 硬件电路简介

硬件电路应该能够完成以下功能:风雨模块对风雨进行检测,如果有风或者雨,驱动Y轴电机转至水平状态。四颗光敏电阻改变电压,变化的电压值通过LCD液晶显示屏送显示,并由AD转换器通过软件编程驱动X轴Y轴电机正反转,来达到太阳跟踪的目的。

P0口作为LCD液晶显示的地址数据总线,P1.0口接AD转换模拟通道驱动X轴电机,P1.1口接AD转换模拟通道驱动Y轴电机,P3.4口、P3.5口、P3.6口、P3.7口分别作X轴电机正发转输入端,Y轴电机正发转输入端,P4.7口接按键复位电路,P3.2口接风机模块输入端,P3.3口接雨滴模块输入端。 (1)硬件电路原理图:见附录A (2)硬件电路元器件布局图:见附录B (3)硬件电路元器件PCB图:见附录C (4)硬件电路元器件清单:见附录D

2.2 硬件系统各模块功能介绍

硬件系统各模块主要包括光敏电阻电路单元,LM386功放电路单元,LM393电压比较电路单元,L298N电机驱动电路单元等,另外包括给逐日系统供电的直流稳压电路单元,和单片机扩展的复位电路单元,晶体振荡电路单元等等。 2.2.1 STC12C5A60S2单片机

基于51单片机内核的,管脚完全相同,自带AD转换功能,可以在PCA/PWM模块下进行PWM脉宽调制控制电机速度。其电路图如图3所示:

4

B RS_P27RW_P26E_P25P2.4SX-_P23SX+_P22SC-_P21SC+_P2087654321sip8ADC0_P10ADC1_P11P12P13P14P15P16P1787654321sip8CAD1VCC 5 PVCC 5 PU14321sip44321S10C1022uFCR100200GNDADC0_P10ADC1_P11CM12CM13P12P130.1uF0.1uFP14P15P16P17RX_P30TX_P31FDIN_P32YDIN_P33M20_P3.4M21_P3.5M10_P3.6M11_P3.7XI2XI11234567891011121314151617181920CLKOUT/P1.0VCCP1.1P0.0/AD0RxD2/P1.2P0.1/AD1TxD2/P1.3P0.2/AD2P1.4P0.3/AD3P1.5P0.4/AD4P1.6P0.5/AD5P1.7P0.6/AD6RST/P4.7P0.7/AD7RxD/INT/P3.0RST2/LVD/P4.6TXD/P3.1AALE/P4.5INT0/P3.2NA/P4.4INT1/P3.3P2.7/AD15CLKOUT1/T0/P3.4P2.6/AD14CLKOUT2/T1/P3.5P2.5/AD13WD/P3.6P2.4/AD12RD/P3.7P2.3/AD11XTAL2P2.2/AD10XTAL1P2.1/AD9GNDP2.0/AD84039383736353433323130292827262524232221D0_P00D1_P01D2_P02D3_P03D4_P04D5_P05D6_P06D7_P07P46P45P44RS_P27RW_P26E_P25P2.4SX-_P23SX+_P22SC-_P21SC+_P20CM910uFLCD1602CM50.1uF1602LCD1GNDJC123SIP3R1011KGNDKADB7DB6DB5DB4DB3DB2DB1DB0ERWRSVEEVDDVSS16151413121110987654321D7_D6_D5_D4_D3_D2_D1_D0_E_PRWRS_RGXI22Y924M1STC12C5A60SC9133pFC9033pFXI1GNDD 图3 STC单片机系统电路图 1234CJZ112RX_P303TX_P314VCC 5 PGND2.2.2 光敏电阻电路单元 采用四颗光敏电阻,分别上下左右放置,通过X轴、Y轴各自的电压比较,输出与单片机参考电压的一半比较,进行编程,实现太阳跟踪的功能。利用,光敏电阻的伏安特性,即电阻随着入射光的强度的增加而减少。具体硬件实现如下:X轴上采用两颗光敏电阻串联分压,当左端的入射光越强时,对应电路图电阻G1的阻值减少,压降减少,对应ADCX电压增大,当右端的入射光越强时,对应电路图电阻G2的阻值减少,电流增大,压降增大,对应ADCX电压减小,再通过LCD液晶显示其采样电压后,通过单片机AD转换器采集的电压ADCX与参考电压比较,大于参考电压时,驱动X轴电机正转,小于时,驱动X轴电机反转。Y轴光敏电阻工作原理如X轴。利用双轴控制,即可实现对太阳的跟踪。其中,串联在X轴左端、后端中间的可变电阻可以用来调零。其电路图如图4所示:

1234

5

RD11KM20_P3.4M21_P3.5M10_P3.6M11_P3.7RD21KRD31KARD41KUQ1571012SIP3ENAVCC 5 PSIP4ENBVCC 5 P15VGNGNDVSSVSOUT1OUT2OUT3OUT4ISEN AISEN BRG31KCD14700uFD5 IN1IN2IN3IN4EN AEN BGNDL298N942313141151N4148CD2D60.1uF1N4148D71N4148D81N4148M20OUTM21OUTM10OUTM11OUTGNDCJC3GND6118D21N4148SC+_P20VCC 5 PD1RP111N41482345678910KD31N4148D41N4148D0_PD1_PRG11KGM1GM3SC-_P21SX+_P22SX-_P23P2.4E_P25RW_P26RS_P27ADCYD2_PD3_PD4_PD5_PD6_PD7_PADCXGM2GM4GNDBRG21KRG41KRS_PRW_PE_P2P2.4SX-_PSX+_SC-_PSC+_GND VCC 5 PCAD1VCC 5 PU1LCD1602VCC 5 P161514131211109876543211602图4 光敏电阻电路单元 VCC 5 PKLCD1ADB7DB6DB5DB4DB3DB2DB1DB0ERWRSVEEVDDVSS2.2.3 LM386功放电路单元 CRV15R100200TX_P31压,通过内部放大结构,由虚短路、虚断路计算得,在反向输入端与输出端跨接R101FDIN_P3220K电阻,同相输入端与输出端跨接1K电阻,即可以把风机最大电压0.1V放大VCC 5 PGND即实现当检测到有风的信号后,单片机编程完成逐日装置的收缩工作。其电路图Y9XI221D7_P07D6_P06D5_P05D4_P04D3_P03D2_P02D1_P01D0_P00E_P25RW_P26RS_P27RPQ 2Ksip4S10C1022uFRCP44321RCP52K4321 DL2CM120.1uF50K采用静态功耗低,外围元件少,低失真度的LM386同相放大器,用来放大电RVO110KRX_P30RCP1ADC0_P10ADC1_P1110KCM13P12P13FDIN_P3210.1uFP14P15FOUTP162P173GNDR152K1KCOP6GND20倍,再接LM393电压比较电路的输入,经过电压比较后,给单片机送低电平。0.1uFXI14YDIN_P33M20_P3.4M21_P3.5M10_P3.6COP4M11_P3.7XI20.1uFXI1RCP3RCP2140CLKOUT/P1.0VCCDL3CO210K10K39D0_P00P1.1P0.0/AD0338D1_P010.1LM393RxD2/P1.2P0.1/AD1437D2_P02TxD2/P1.3P0.2/AD28536D3_P03OUT AP1.4VCCP0.3/AD3635D4_P04P1.5P0.4/AD4734D5_P05P1.6P0.5/AD5YDIN_P337833D6_P06IN A-OUT BP1.7P0.6/AD6932D7_P07RST/P4.7P0.7/AD71031P466RST2/LVD/P4.6RVO21RxD/INT/P3.0IN A+IN B-1130P452TXD/P3.1AALE/P4.510K31229P44INT0/P3.2NA/P4.451328RS_P27P2.7/AD15GNDINT1/P3.3IN B+1427RW_P26CLKOUT1/T0/P3.4P2.6/AD141526E_P25CLKOUT2/T1/P3.5P2.5/AD13lm3931625P2.4WD/P3.6P2.4/AD12COP31724SX-_P23RD/P3.7P2.3/AD111823SX+_P22XTAL2P2.2/AD100.1uF22SC-_P2119XTAL1P2.1/AD92021SC+_P20GNDP2.0/AD8STC12C5A60SC1如图5所示: 24MC9033pFC9133pFGNDVCC 5 PROP1FOUT1DLM386GNDOUT A20KVCC8765COP20.1uF234COP10.01uF11234CJZ11234RX_P30TX_P31VCC 5 PGNDIN A-OUT BIN A+GNDlm393IN B-IN B+ROP2FJIN11KCJin1C2110uFSIP22Title3GND SizeA3Number图5 LM386功放电路 56Date:File:2014/5/29SE:\\智能逐日系统的设计\\..\\太阳跟踪Sheet1.SD7

6

1012SIP3ENAVCC 5 P6118IN3IN4EN AEN BGNDL298N SIP4ENBOUT1OUT2OUT3OUT4ISEN AISEN B231314115M20OUTM21OUTM10OUTM11OUTSIP2D21N4148D11N4148D31N4148D41N4148CM10.1uFB2.2.4 LM393电压比较电路单元 采用高精度的电压比较器LM393,完成风机和雨滴模块的采集。因为LM393为反相比较器,即当同相输入端接参考电压,此时在芯片3脚跨接可变电阻,调节参考电压及其灵敏度,2脚接经过LM386功放放大后的风机电压,当此时放大后的风机大于参考电压时,1脚输出端口由高电平变为低电平,指示LED灯DL2亮;同理,雨信号电压采集过来经过电压比较后,指示LED灯DL3亮,即完成当有风或雨时,对应的二极管被点亮。其中,电容起到去耦合,滤高频干扰的作用。其电路图如图6所示: 10KRVO1RCP42KDL2RCP110KLM393FDIN_P32FOUT1234COP60.1uFCOP40.1uFOUT AVCC876RVO210KYDIN_P33CJin4RCP3RCP210K10KRCP52KDL3COP50.1uFC2210uFVCC 5 PGNDC15KIN A-OUT BIN A+GNDlm393IN B-IN B+ 5 COP3SIP20.1uFGNDVCC 5 PROP1FOUT120KROP2FJIN11K234COP10.01uFLM386OUT AVCC8姓名:唐薇7IN A-OUT BCOP2 C21专业:电气工程及其自动化2.2.5 L298N电路单元0.1uF610uFIN A+IN B-班级:电气本1003班L298N芯片是二相和四向电机的专用驱动器,由15个引脚,内部包涵四通5GNDIN B+学号:10401240304道逻辑驱动电路,本设计中分别用来控制X轴电机正反转,Y轴电机正反转。输lm393指导老师:肖东瑞入端接在P3.4-P3.7口,通过软件实现X轴、Y轴的正反转。例如:当P3.4端图6 LM393电压比较单元电路 D智能日系统的设计与研究原理图口的输入给低电平时,相应的LED灯亮,此时2逐脚输出也为低电平,通过硬件连GNDSizeNumberRevision接X电机,驱动其顺时针转动。外部跨接续流二极管,用来阻断因为电机状态改Title变而产生反向电流,从而起到保护芯片的作用。Date:2014/5/31电容的使用去电路耦合,Sheet of滤高频干扰。其电路图如图7所示: 6File:E:\\智能逐日系统的设计\\..\\太阳跟踪Sheet1.SchDocDrawn By:78A3

7

4CJC256783VCC 5 PRl12KCM1010uFDL1LEDDP4TVS/5.1V4CJC256 Rl12KCM1010uFVCC 5 PCD50.1uFCD6470uFCD50.1uFVCC 5 PDL1LEDDP4TVS/5.1V10VAVCC 5 PCM74700uFCM610uFCM30.1uFDD1LEDSI187654321sip8SI287654321sip8RX_P30TX_P31FDIN_P32YDIN_P33M20_P3.4M21_P3.5M10_P3.6M11_P3.7SI387654321M20_P3.4M21_P3.5M10_P3.6M11_P3.7RD11KRD21KDD2LEDRD31KDD3LEDRD41KDD4LEDCM810uFVCC 5 P0.1uFCM4GNDVCC 5 PGND9IN1VSS4IN2DD1VSDD2IN32LEDIN4LEDOUT13OUT2613EN AOUT3RD1RD21114EN BOUT41K1K5710128GNDL298NISEN AISEN B115UQ1D51N4148D61N4148D71N4148D81N4148M20OUTM21OUTM10OUTM11OUTSIP2D21N4148D11N4148D31N4148D41N4148CM10.1uFCM20.1uFSIP1DD3LEDRD31KRD41KDD4LEDCM810uFCM40.1uFSI187654321sip8SI2RX_P30TX_P31FDIN_P32YDIN_P33M20_P3.4M21_P3.5M10_P3.6M11_P3.7SI387654321sip8SI4ADC0_P108ADC1_P117P126P135P144P153P162P171SIP3ENAVCC 5 PSIP4ENBD0_P00sip8D1_P01SI4D2_P02ADC0_P108D3_P03ADC1_P117D4_P04P126P13D5_P055P14D6_P064P153D7_P07P16P1721sip8UQ1IN1IN2IN3IN4EN AEN BGNDL298NGNDBM20_P3.4M21_P3.5M10_P3.6M11_P3.75710126118VSSVSOUT1OUT2OUT3OUT494231314115SIP3ENAGNDVCC 5 PSIP4ENB RS_P27RW_P26E_P25P2.4SX-_P23SX+_P22SC-_P21SC+_P20CM50.1uFVCC 5 P2.2.6 LCD液晶显示电路单元 sip8sip8160216LCD1KADB7DB6DB5DB4DB3DB2DB1DB0ERWRSVEEVDDVSS15141312111098765432187654321图7 L298N电机驱动电路 VCC 5 PRCP42KRCP52KISEN AISEN BLCD1602D7_P07LCD1602是专门用于显示字母、字符、符号的液晶显示电路,有16个引脚,D6_P06RCP1RCP3RCP2C22D5_P05D4_P04D3_P03D2_P02D1_P01D0_P00E_P25RW_P26RS_P27RPQDL210K10K10KDL3LM393COP50.1uF10uFCFDIN_P3218其中8个地址数据总线,3个使能引脚,各自满足一定的时序。通过软件编程,CJin4OUT AVCCVCC 5 PRVO1可以显示不同的字符。电路如图810K所示: R152KRV1550KFOUT234IN A-OUT BIN A+GNDlm393IN B-IN B+765COP3YDIN_P33RVO210KSIP2CM910uFVCC 5 PLCD1602CM50.1uFD0_P00D1_P01D2_P02D3_P03D4_P04D5_P05D6_P06D7_P07464544S_P27W_P26_P252.4X-_P23X+_P22C-_P21C+_P20GND1602LCD1GNDROP1FOUT1JC123CJin120KROP2FJIN11K234COP10.01uFSIP3SIP216K15A14DB713DB612DB511DB410DB3LM3869DB2OUT AVCC8DB17IN A-OUT BDB06E5IN A+IN B-RW4RSGNDIN B+3VEElm3932VDD1VSSCOP60.1uFCOP40.1uFVCC 5 P0.1uFD7_P07D6_P06D5_P05D4_P04VCC 5 PD3_P03D2_P028D1_P017D0_P00E_P25COP20.1uF6RW_P26RS_P275RPQVCC 5 PRCP42KDL2RCP110KFDIN_P321234DGNDLM3RV1550KC2110uFOUFOUTRVO110KININR152KTitleGNCOP60.1uFNumberCOP40.1uFlm39GNDGNDSizeA3Date: Revision45File: 图8 LCD1602液晶显示电路6 2014/5/29Sheet ofE:\\智能逐日系统的设计\\..\\太阳跟踪Sheet1.SchDocDrawn By:78VCC 5 PROP120KROP21KFJIN1LM386FOUT1234OUT AIN A-IN A+VCCOUT BIN B-8765COP20.1uF2.2.7 直流稳压电路单元 CJin1C2110uFGNDIN B+ 采用桥式整流电路,LM7805稳压管,瞬态抑制二极管,到达将220V交流电lm393压变到10V、5V上,供整个太阳跟踪系统用电。如图9所示: SIP2GNDCOP10.01uF3456 8

SX-_P23P2.4E_P25RW_P26RS_P275678910K B12345T1BR1Bridge220VAC__IN10VCJC1VR2780515VCD14700uFCD20.1uFVinVoutGNDCD6470uFCJC2VCC 5 PRl12KCM1010uFDL1LEDDP4TVS/5.1VCD50.1uFAGNDCJC3GNDVCC 5 PCAD1VCC 5 P U1DD1LEDSI187654321SI3RX_P308TX_P317M20_P3.41FDIN_P326CLKOUT/P1.0M21_P3.5YDIN_P3325P1.1M10_P3.63M20_P3.44RxD2/P1.2M21_P3.5M11_P3.74M10_P3.63TxD2/P1.35M11_P3.72P1.41RD11KRD21KDD2LEDRD31KDD3LEDRD41KDD4LEDVCVCC 5 P图9 直流稳压电路 VCC 5 PRP143214321sip4 RG11KGM1S10RG31KGM32.2.8 复位电路单元 C1022uFCADCXR1006 本设计采用STC12C5A60S2单片机的外部RST引脚复位,即第一功能复位脚。sip82001D0_P00SC+_P202GNDD1_P01SC-_P213D2_P02ADC0_P10SX+_P224D3_P03ADC1_P11SX-_P235D4_P04CM12CM13P12P2.46D5_P05P13E_P257D6_P060.1uFP14RW_P260.1uF8D7_P07P15RS_P27910KP4.7/RST管脚在出厂时被配置为RST复位管脚,要将其配置为I/O口,需要在RS_P27BADCYP16P17STC-ISP编程器中设置。此时,P4.7/RST就是芯片复位的输入脚。电路如图10所示: RG21KGM2GM4R1011KRG41KGNDRX_P30RW_P26TX_P31E_P25P2.4FDIN_P32SX-_P23YDIN_P33SX+_P22M20_P3.4SC-_P21M21_P3.5SC+_P20M10_P3.6M11_P3.7XI2XI1XI2GND2CAD1Y924M1VCC 5 PU1XI178SI298107116125134143215116sip81718192040VCC39P0.0/AD038P0.1/AD137P0.2/AD236P0.3/AD335P1.5P0.4/AD4VCC 5 Psip834P1.6P0.5/AD533P1.7P0.6/AD6SI432ADC0_P10RST/P4.7P0.7/AD7831ADC1_P11RxD/INT/P3.0RST2/LVD/P4.6730P126TXD/P3.1AALE/P4.5P13295NA/P4.4P14INT0/P3.2284P2.7/AD15P15INT1/P3.3273P16CLKOUT1/T0/P3.4P2.6/AD14226P17CLKOUT2/T1/P3.5P2.5/AD13125WD/P3.6P2.4/AD12sip824RD/P3.7P2.3/AD1123XTAL2P2.2/AD1022XTAL1P2.1/AD921GNDP2.0/AD8D0_P0D1_P0D2_P0D3_P0SID4_P0SID5_P0D6_P0D7_P0P46P45P44RS_P2RW_PE_P25P2.4SX-_PSX+_PSC-_PSC+_PSTC12C5A60SVCC 5 PC90sip433pFGND12345678910111213141516171819204321C9133pF4039D0_P0038D1_P0137D2_P0236D3_P0335D4_P0434D5_P0533D6_P0632D7_P0731P4630P4529P4428RS_P2727RW_P2626E_P2525P2.424SX-_P2323SX+_P2222SC-_P2121SC+_P20CM910uFCM50.1uF4321LCD1602VCC 5 P161514D7_P0713D6_P0612D5_P0511D4_P0410D3_P039D2_P028D1_P017D0_P006E_P255RW_P264RS_P273RPQ2VCC 5 P1GNDS10C1022uFDCR100200ADC0_P10ADC1_P11CM12CM13P12P13GND0.1uF0.1uFP14P15P16P17RX_P30TX_P31FDIN_P32YDIN_P33M20_P3.4M21_P3.5M10_P3.6M11_P3.7XI2XI1R1011KGND2.2.9 Y9晶体振荡电路单元 1XI2XI1CLKOUT/P1.0VCCP1.1P0.0/AD0RxD2/P1.2P0.1/AD1TxD2/P1.3P0.2/AD2P1.4P0.3/AD3P1.5P0.4/AD4P1.6P0.5/AD5P1.7P0.6/AD6RST/P4.7P0.7/AD7RxD/INT/P3.0RST2/LVD/P4.6TXD/P3.1AALE/P4.5INT0/P3.2NA/P4.4INT1/P3.3P2.7/AD15CLKOUT1/T0/P3.4P2.6/AD14CLKOUT2/T1/P3.5P2.5/AD13WD/P3.6P2.4/AD12RD/P3.7P2.3/AD11XTAL2P2.2/AD10XTAL1P2.1/AD9GNDP2.0/AD81602LCD1GNDJC13SIP3图10 复位电路 2 KADB7DB6DB5DB4DB3DB2DB1DB0ERWRSVEEVDDVSS RV1550KR152K 单片机的时钟信号用来提供单片机内各种微操作的时间基准,STC12C5A60S224MSTC12C5A60SC90C91片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路33pF33pFROP1FOUT120KROP2FJIN11KCJin1234COP10.01uF212LM3OU的输入和输出端,STC12C5A60S2单片机的时钟信号通常用两种电路形式得到:11VCC 5 P内部振荡方式与外部振荡方式。本设计使用内部时钟,电路如图11所示。 GNDDGNDCJZ12342RX_P303TX_P314ININGNlm39 SIP2GND129 345S10C1022uFC R100200ADC0_P10ADC1_P11CM12CM13P12P130.1uF0.1uFP14P15P16P17RX_P30TX_P31FDIN_P32YDIN_P33M20_P3.4M21_P3.5M10_P3.6M11_P3.7XI2XI1 R1011KGNDXI22Y924M1STC12C5A60SC9133pFC9033pFGNDDXI11234567891011121314151617181920CLKOUT/P1.0VCCP1.1P0.0/AD0RxD2/P1.2P0.1/AD1TxD2/P1.3P0.2/AD2P1.4P0.3/AD3P1.5P0.4/AD4P1.6P0.5/AD5P1.7P0.6/AD6RST/P4.7P0.7/AD7RxD/INT/P3.0RST2/LVD/P4.6TXD/P3.1AALE/P4.5INT0/P3.2NA/P4.4INT1/P3.3P2.7/AD15CLKOUT1/T0/P3.4P2.6/AD14CLKOUT2/T1/P3.5P2.5/AD13WD/P3.6P2.4/AD12RD/P3.7P2.3/AD11XTAL2P2.2/AD10XTAL1P2.1/AD9GNDP2.0/AD840393837363534333231302928272625242322210.1uFD0_P00D1_P01D2_P02D3_P03D4_P04D5_P05D6_P06D7_P07P46P45P44RS_P27RW_P26E_P25P2.4SX-_P23SX+_P22SC-_P21SC+_P20GNDJC123SIP3 图11 晶体振荡电路 本章节通过对硬件电路的介绍与选取,为逐日系统的实现提供了基础保证,在后续设计中,完成软件与硬件的结合,调试完毕且达到整个设计的要求。 123

10

3 软件系统设计

本章节主要完成系统设计的软件部分,介绍了STC系列单片机引脚使用情况,大致介绍了各个软件功能模块的作用,详细写出了各功能模块的程序流程图,为下一步的编程工作做好了充分的准备。

3.1 占用单片机资源情况

P1.0口、P1.1口作为模拟通道输入端,P2.3-P2.5口作为LCD1602的三个使能端,P3.2口采集风机模块的信号,低电平有效,P3.3口采集雨滴模块的信号,低电平有效,P3.4-P3.7口作为X轴、Y轴电机的输入端,P4.7口作为复位引脚。

3.2 软件系统各模块功能介绍

(1)AD电压采样送LCD显示程序:通过STC系列单片机自带的AD转换功能,完成电压采集,并且送LCD液晶屏显示。

(2)电机驱动程序:通过采集回来的电压信号,与参考电压的一半即2.5V比较,X轴、Y轴双向比较,大于2.5即正转,小于则反转,最终达到太阳跟踪的目的。 (3)风雨模块检测程序:该系统有两种状态的检测,当无风无雨时,装置自动跟踪太阳,当有风或有雨时,采集到低电平,控制Y轴电机转动,直到电池板水平,以起到保护装置的作用。

3.3 程序流程框图

程序流程框图主要由系统程序总流程图,ADC采样模块程序流程图,LCD液晶显示模块程序流程图,L298N电机驱动模块程序流程图等构成,此类流程图与硬件电路部分相对应。此外,实际控制电机时,为消除电机抖动,利用STC系列单片机PCA/PWM模块,进行PWM调制,通过编程进一步优化对电机的控制,这一部分流程图称为PWM调制去抖动(即电机驱动的优化)程序流程图。 3.3.1 系统程序流程图

分配地址单元,端口初始化,ADC初始化,LCD1602液晶显示初始化,打开总中断,打开相应ADC中断等,设置当前状态位,与储存状态位的寄存器。主程序中,通过switch语句判断进入相应的液晶界面显示和硬件操作,即1则进入显示电池板水平状态,此时电机停止转动;2进入判断有风或有雨状态,LCD液晶显示非风即雨;3进入有风且有雨的状态,LCD液晶显示有雨有风状态;4进入太阳跟踪状态,LCD液晶显示X轴、Y轴采样回来经过数据处理的电压值。各自显示状态下,驱动电机相应转动,即1时电机停止转动,2和3时Y轴均电机

11

转动,4时X轴、Y轴电机跟踪太阳进行时时采样后的正反转。中断程序中,清中断标志位,选通P1.0、P1.1分别作为X轴、Y轴的模拟量采集通道,并且进行ADCX、ADCY等输入值的处理。简化系统程序流程图如图12所示:

开始端口初始化ADC、LCD初始化开总中断,开AD中断当前状态是否改变Y这一状态赋值给当前状态N1此时有对应状态Y各自状态下LCD显示N调ADC采样程序N状态位拉成4,进ADC中断服务程序有风或者有雨Y风雨标志位为低电平?Y双轴电机停止转动的同时状态位拉成1X、Y轴电机均停止转动,状态拉成2N有风且有雨Y状态位拉成31结束NY停止电机转动是否稳定调LCD液晶显示程序N调电机驱动程序 图12 系统程序流程图

12

3.3.2 ADC采样主程序流程图

ADC采样主程序中,先进行与A/D转换相关的寄存器的地址分配,PLASF寄存器的模数转换端口的选择,(这些准备分别在程序端口初始化时,ADC采样中断程序中完成)再进行ADC_CONTR寄存器的初始化,给A/D转换器上电,并设置AUXR1寄存器为ADC_RES结果寄存器十位储存结果,高八位,低两位。打开总中断,ADC中断,当ADC中断标志位为1时,进入ADC中断服务程序,当ADC中断标志位再次为1时,进入ADC中断服务程序。简化的ADC采样主程序流程图如图13所示:

开始给与A/D转换相关的寄存器分配地址设置PLASF选通作用模数转换的端口初始化寄存器ADC_CONTR开总中断,开AD中断ADC_FLAG=1?Y进ADC中断服务程序N结束

图13 ADC采样主程序流程图

13

3.3.3 ADC采样中断程序流程图

首先,X轴和Y轴的选通模拟通道分别由端口P1.0、P1.1输入,设置标志位CH_FLAG,当CH_FLAG为1时,模拟通道P1.0工作,此时采样后的ADC_RES和ADC_RESL中,存放用来驱动X轴电机转动的数据,将结果处理后赋值给ADCX,标志位置0,再进行模拟通道P1.1的采样工作,同理将结果寄存器的数据经过处理后赋值给ADCY,此时标志位再次置1,一个周期完成,启动AD转换器,此时中断程序完成,返回主程序,将ADCX,ADCY的值再次处理送LCD液晶显示,进行主程序中电机相应的硬件操作。简化ADC采样中断程序流程图如图14所示:

进ADC中断服务程序判断CH_FLAG=1?Y取P1.0作为A/D输入N取P1.1作为A/D输入启动ADC转换器启动ADC转换器CH_FLAG=0CH_FLAG=1返回

图14 ADC采样中断程序流程图

14

3.3.4 LCD液晶初始化程序流程图

将P0口作为地址、数据总线,定义寄存器选择位,即将RS位定义为P2.7引脚,定义读写选择位,即将RW位定义为P2.6引脚,定义使能信号位,即将E位定义为P2.5引脚。通过LCD1602的数据手册按照一定时序写入LCD液晶显示的读指令、写指令。初始化中分别调读指令、写指令,延时后完成LCD液晶程序的初始化过程。在主程序中,调用LCD初始化程序即可。其简化LCD液晶初始化程序流程图如图15所示:

开始LCD写指令LCD写数据结束

图15 LCD液晶初始化程序流程图

3.3.5 LCD液晶显示程序流程图

LCD1602液晶初始化后,调用LCD液晶显示函数,利用形参的形式分别写入第一个参数Y:LCD液晶显示屏第一行或者第二行的显示;第二个参数X:写指令是列数;第三个参数*P:字符串。通过switch语句选通行数后,写指令选择列数。然后用while语句,写数据。简化的LCD液晶显示程序流程图如图16所示:

15

开始定义各引脚LCD1602初始化调LCD液晶显示函数结束

图16 LCD液晶显示程序流程图

3.3.6 L298N电机驱动程序流程图

本设计中L298N四路输出通道分别用来控制X轴电机正反转,Y轴电机正反转。输入端接在P3.4-P3.7口,通过软件实现X轴、Y轴的正反转。例如:当P3.4端口的输入给低电平时,相应的LED灯亮,此时2脚输出也为低电平,通过硬件连接X电机,驱动其顺时针转动。因此判断P3.4口即M20的状态即可,当M20为低电平且M21为高电平时,X轴电机正转,相反M21为有效低电平,M20为高电平时,X轴电机反转。Y轴电机正反转的控制同X轴的控制。简化的L298N电机驱动程序流程图如图17所示:

16

开始定义L298N输入端口M20=0&&M21=1?YX轴电机正转NX轴电机反转M10=0&&M11=1?YY轴电机正转NY轴电机反转结束

图17 L298N电机驱动程序流程图

17

3.3.7 PWM脉宽调制控制电机速度程序流程图

本设计中L298N四路输出通道分别用来控制X轴电机正反转,Y轴电机正反转。输入端接在P3.4-P3.7口,通过软件实现X轴、Y轴的正反转。

为解决采样接近参考值时,电机持续变化所带来的硬件电池板的抖动,此时采用STC系列单片机PCA/PWM应用,优化电压持续变化所带来的抖动。

具体实现是,通过将X轴电机的使能端,接在由PWM调制后输出的占空比时刻变化的P1.3端,对电机进行控制,当使能端6引脚为高电平时,电机的驱动完全又输入引脚5、7接M20、M21分别控制电机的正转、反转(注:此时M20,M21仅控制电机转动方向),当使能端为低电平时,L298N芯片内部通过与门屏蔽了输入引脚5、7的控制,并且因为此时输出均为低电平,电机停止转动。

并且,占空比越大,电机转动速度越快。同时,采样回来的ADC值与参考电压差值经过比例环节K,得到新的ADC值为K倍的ADC,经过调试得,当K值越大,电机跟踪太阳的速度越快。

具体的K值选择在程序中体现在,当采样电压值偏离参考电压一半即2.5V的大小为ADC=2500-ADC时,当此时差值ADC落在(2500-255/K,2500+255/K)计算值的范围内,采用时时采样回来的ADC=255-ADC的计算值赋给CCAP0H和CCAP0L形成占空比,进行速度控制,若采样回来的ADC电压值不在此范围内时,占空比为100%,此时电机全速运行。利用占空比即形成的反馈控制如图18所示:

位置给定 K x Eu PWM 速度 位置

- 图18反馈控制流图

18

Y轴控制原理同X轴,对应使能端为11引脚,接口单片机的P1.4端,电机正、反转引脚10、12。简化的利用PWM调制去抖动的电机驱动程序流程图如图19所示:

开始PCA/PWM初始化AD采样此时ADC的值是否比参考值大YADC=ADC-参考NADC=参考-ADCY轴电机正转Y轴电机反转将采样处理后的ADC与参考电压值的差值经过比例环节ADC的值大于8位寄存器最大值255N将255与ADC的差值赋值给PCA的捕获/比较寄存器CCAP0H,CCAP0LYADC=255STC芯片内部完成占空比

图19 PWM脉宽调制控制电机速度程序流程图

19

3.3.8 风雨模块程序流程图

定义风雨模块的输入端口分别为风机P3.2,雨滴P3.3且低电平有效,当有风或者有雨时,通过软件编程使得仅Y轴电机收缩转动,转动至一定倾角后,判断P2.0端口,(硬件小开关为低电平有效,与单片机P2.0口连接)当P2.0为低电平有效时,电机停止转动,随后进LCD液晶显示风雨。其简化风雨模块程序流程图如图20所示:

开始定义风雨模块输入端有风或者有雨YY轴电机转动至水平NN电池板是否水平YY轴电机停止转动采AD送LCD液晶显示结束

图20 风雨模块程序流程图

20

4 系统功能验证性实验及结果分析

本章节通过对实物具体运行的调试,观察得到实验结果,明确了系统具体

的运行模式,利用示波器对PWM脉宽调制波形进行观察,进一步验证了系统反应快速性和稳定性的原因,验证了反馈环节中K值的计算选取方式。

4.1 实验结果及设计结论

通过调试,满足设计要求,具体的实验结果和设计结论的阐述与分析如下。

4.1.1 实验结果

实验结果如预期,即满足有风有雨时,电池板水平放置,无风无雨时,跟踪太阳,稳定一段时间后,重新采样,跟踪太阳。

并且不会当跟踪到太阳后,因为电压值的细微变化而导致电机转动从而引起实物即电池板的抖动,同时,双轴电机的反应速度可调,即改变比例K值即可。

实物图,实物结构图,PWM脉宽调制波形等见附录E、F。

4.1.2 设计结论

目前,智能逐日系统仍处在不断完善的过程中,同时智能逐日系统的功能

实现形式也是多种多样,不仅可以通过STC系列单片机自带AD转换功能来实现,而且可以通过PLC控制来达到目的。

由于时间与学识的限制,本课程设计的硬件电路系统中还有一些方面需要改进,如时钟电路不稳定等;由于设计中采用了模块化的程序设计方法,因此各个程序模块的连续性是一项至关重要的工作,理清各子程序之间的关系,正确处理各种中断程序之间的关系,防止中断冲突,提高系统的稳定性。

再者,设计中将自动控制原理中的反馈控制环节以硬件软件结合的方式体现出来,使得设计者再次深刻地理解了反馈控制的精髓,实际反馈输入值偏离参考值越大,K值取得越大,速度越快,使得实际输出值再次跟踪给定参考值。此时的K值不是越大越好,K值越大,控制范围越窄,即超过控制范围,进而导致反馈控制失去意义。综上:K值越大,超调,K值越小,快速性得不到保证,与理论相对应。

21

5 结束语

在建设节能环保型社会的过程中,利用太阳能发电的相关技术已经融入了我们的日常生活中,光伏发电并网也是大势所趋。本设计以STC12C5A60S2为主控芯片,本文主要工作分为以下几点:

(1)以STC系列单片机为控制核心,完成部分硬件电路的设计:光敏电阻电路、LM386功放电路、LM393电压比较电路、L298N电机驱动电路等。并利用PCA/PWM模式下的PWM脉宽调制进行电机调速,对芯片自带的A/D转换模块的模拟通道、LCD液晶显示等外设进行初始化配置。

(2)根据太阳光线垂直入射电池板的要求,进行了风雨模块的设计。即当检测到有风或有雨时,驱动Y轴电机转动,使得板子最终水平放置,避免风雨给电池板带了不必要的破坏。

(3)在软硬件配置好的情况下进行应用程序开发:ADC采样程序、LCD液晶显示程序、L298N电机驱动程序、PWM脉宽调制去抖动程序等。

本文基于STC系列单片机进行逐日系统的研究,基本实现了太阳跟踪的功能。根据对本课题研究工作的归纳和总结,本文仍存在不足和局限性,有以下几个方面需要改进:

(1)本设计仅采用光敏电阻做为传感器采样、双轴电机控制电池板转动,在太阳高度角的变化过程中,近似跟踪太阳,对精度的要求不高。

(2)由于开发时间和开发经验的不足,本设计中的太阳能电池板不能直接用于装置的外部供电,即设计的太阳跟踪装置为简易模型,发电效率等参数计算需要进一步的完善。

(3)本设计中的PWM脉宽控制电机调速,采样反馈闭环环节的比例K值,仅凭经验值得到,这就使得电机的驱动在快速性上有待进一步提高。

(4)有必要在本系统基础上扩展上位机功能,这样就可以存储更多的数据,进行更为精准的智能控制。

22

最后,在这次的毕业设计中,我选择的方向是单片机,在老师的耐心指导下,经过坚持不懈的努力,我设计了以STC系列单片机为核心的智能逐日控制系统,并重新熟悉了两门课程:STC系列单片机、Altium Designer。使我更清楚的认识了单片机以及与单片机密切相关的知识。

此次STC单片机系统的开发与研究工作的开展,主要是为了利用单片机自带的AD转换功能进行采样,转换的结果进行软件编程,控制硬件,完成相关操作。同时,利用STC系列单片机的PCA/PWM模块,软件编程使其工作在PWM脉宽调制状态下,使用程序来控制波形占空比,完成对直流电机去抖动。

在研究和开发此系统的工程中遇到了不少难处理问题。诸多模块的引进虽然增添了系统的实用性,但其中不少模块是以前在理论课上从未接触过的模块,需要查阅大量资料,进一步的对其进行学习和研究。例如AD转换模块,虽然它现在51系列单片机的外部扩展时学习过,但是其在STC系列单片机中可以直接利用,我们需要学习它的模数转换的工作原理、编码芯片引脚功能定义、信号编码原理等等,从硬件到软件各部分的学习都是一个全新的过程。另外,在对各模块进行了解之后,虽然通过软件对图纸进行了设计,并且进行了PCB板子的设计,但是其在硬件实物上是否能够调试成功,这还是一个问题,有可能硬件线路会出现故障,有可能程序编写会出现错误,等等这些都需要在毕业设计的实际操作中得到验证和解决。

即使有这么多困难,但是经过深入的学习和与同学的讨论,最终能较好的完成实物的制作,软件的编写,这无疑源于毅力和韧性两个词,只有坚持不懈的去完成既定的工作才能真正有所成就,从本次毕业设计收获的不仅是在技术上的进步,更重要的是品格的锻炼!

23

参考文献

[1]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出社

2003.

Shen Hongwei SCM application system design examples and analysis [M]

Beijing : Beijing University of Aeronautics and Astronautics 2003 the club.(in Chinese)

[2]张毅刚主编.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工大学出版社,

1990.8.

Zhang Yigang editor MCS-51 microcontroller application design [M]

Harbin : Harbin Engineering University Press, 1990.8 .(in Chinese) [3]何立民编著.MCS-51 系列单片机应用系统设计系统配置与接口技术[M].北

京:北京航空航天大学出版社,1990.1.

He Limin edited MCS-51 series single-chip application system design

and system configuration interface technology [M] Beijing : Beijing University of Aeronautics and Astronautics Press,1990.1.(in Chinese) [4]李光飞.单片机C程序设计指导[M].北京:北京航空航天大学出版社,

2003.01.

Li Guangfei microcontroller C programming guide [M] Beijing : Beijing

University of Aeronautics and Astronautics Press,2003.01 .(in Chinese)

[5]王幸之,王雷,王闪.单片机应用系统抗干扰技术[M].北京:北京航空航天大

学出版社,2002.

Wang Xing , the Wang Lei , Wang flash microcomputer application system

jamming technology [M] Beijing : Beijing University of Aeronautics and Astronautics Press,2002.(in Chinese)

[6]周慈航.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,2002. weeks Cihhang MCU application design techniques [M] Beijing : Beijing

University of Aeronautics and Astronautics Press,2002.(in Chinese) [7]何立民.MS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版

社,1999.

He Limin MS-51 series single-chip application system design [M]

Beijing : Beijing University of Aeronautics and Astronautics Press, 1999.(in Chinese)

24

[8]杨振江等.智能仪器与数据采集系统中的新器件及应用[M].西安:西安电子科

技大学出版社,2001.

Yang Zhenjiang,intelligent instrumentation and data acquisition

systems for new devices and applications [M] , Xi'an: Xi'an University of Electronic Science and Technology Press,2001.(in Chinese) [9]马忠梅编著.单片机的C语言Windows环境编程宝典[M].北京:北京航空航天

大学出版社,2003.6.

Ma Zhongmei edited microcontroller C language programming book Windows

environment [M] Beijing : Beijing University of Aeronautics and Astronautics Press,2003.6.(in Chinese)

[10]谢自美.电子线路设计与实验测试[M].武汉:华中科技大学,2010. Xie from the U.S. electronic circuit design and experimental testing

[M] , Wuhan: Huazhong University of Science and Technology,2010.(in Chinese)

[11]康华光.电子技术基础模拟部分[M].武汉:华中科技大学出版社,2005.7. Kang Huaguang electronics technology base analog portion of the [M] ,

Wuhan: Huazhong University of Science and Technology Press,2005.7.(in Chinese)

[12]阎石.数字电子技术[M].北京:高等教育出版社,2009.

Yan Shi digital electronic technology [M] Beijing : Higher Education

Press,2009.(in Chinese)

[13]王磊.基于ARM的太阳能电池板自动跟踪系统设计.南京理工大学,2012. Wang Lei.ARM-based solar panel tracking system designed Nanjing

University of Technology,2012.(in Chinese)

[14]刘巍,王志超,沈垣,朱天宇,卞新高.水电能源科学[A].2009.

Liu Wei,Wang Chao,Shen Yuan,Zhu Tianyu,Bian high.Hydroelectric

Energy[A].2009.(in Chinese)

[15]孙玉星,杨宏.中国光伏产业发展[J],半导体技术,2010.

Sun Star ,YANG.China PV industry development [J],semiconductor

technology,2010.(in Chinese)

[16]郎龙军.太阳能自动跟踪发电控制系统的开发与设计[D],河南科技大学,

2010.

Lang dragon army. Development and design of solar power generation

automatic tracking control system [D],Henan University of Science and

25

Technology,2010.(in Chinese)

[17]任超.太阳自动跟踪装置控制系统的研究[D1,湖北:武汉理工大学,2007. Ren Chao .Research automatic sun tracking device control system [D1,

Hubei : Wuhan University of Technology,2007.(in Chinese) [18]刘胜,彭侠夫等.现代伺服系统设计[M],哈尔滨:哈尔滨工业大学出版社,

2001.

Liu Sheng ,Peng Xia husband and so on.Modern servo system design [M],

Harbin: Harbin Institute of Technology Press,2001.(in Chinese) [19]孙茵茵,鲍剑斌,王凡.太阳自动跟踪器的研究[J],机械设计与制造,2007. Sun Yan Yan,Bao Jianbin,Wang Fan,Automatically track the sun 's study

[J],mechanical design and manufacturing,2007.(in Chinese) [20]董里扬.浅谈步进电机的工作原理[J],科技信息,2007.

Yang Trang.On the principle of stepper motor [J],Science and

Technology Information,2007.(in Chinese)

[21]史敬灼.步进电动机伺服控制技术[M],北京:科学出版社,2007. Shi Jing burning.Stepper motor servo control technology [M], Beijing :

Science Press ,2007.(in Chinese)

[22]孔凡君.步进电机简介及其控制原理[J],考试周刊,2009.

Fan monarch .Introduction and stepper motor control theory [J], exams

Weekly,2009.(in Chinese)

[23]蔡自兴.智能控制[M],北京:电子工业出版社,2004.

Zi- .Intelligent Control [M], Beijing : Electronic Industry Press,

2004.(in Chinese)

26

致 谢

本设计是在指导老师的指导下进行的,肖老师的帮助与关怀,从他的身上我们学到的不仅仅是知识,更多的是做人。从肖老师第一堂课给我们讲大学里应该学什么,毕业之后工作了之后应该怎么做,我就深受启发。在校园里,除了要学会自学,学好本专业科目,更多的是博览群书,懂得利用资源,把握能将一切理论与实践相结合的机会。另外,做人也是非常重要的,谢谢肖老师对我们强调了这一些。肖老师严谨治学,为人谦逊,在产品设计与论文的写作过程中,肖老师没有给我们任何压力,让我们拥有了很大的发挥空间。

一日为师终身为父。在此,我们也要向半年来的辛勤培养和教育,关心,帮助我们的恩师们表示我们最诚挚的敬意和感谢!

同时,也要感谢周志朝同学的帮助,他勤奋上进,乐于助人。是我们学习和生活

上的好榜样,真心的向他表示最诚挚的崇拜和感谢!

27

附 录

附录A:顶层布局图

28

附录B:底层走线图

29

附录C:顶层走线图

30

附录D:元器件清单

名 称 STC12C5A60S2芯片 LCD1602 晶振 二极管 整流二极管 瓷片电容 瓷片电容 瓷片电容 电解电容 电解电容 电解电容 电解电容 LED灯 电阻1 电阻2 电阻3 电阻4 电阻5 可变电阻1 可变电阻2 LM7805 下载口 排阻 稳压管 短路冒 排针 BUTTON按键开关 数 量 1 1 1 12 8 14 2 1 6 2 1 1 6 6 4 3 1 1 2 1 1 1 1 1 3 2 1 备 注 液晶 12MHz 0.1uF 33pF 0.01uF 10uF 4700uF 470uF 22uF 1KΩ 2KΩ 10KΩ 20KΩ 200Ω 10K 50K 八位

31

附录E:实物调试图与实物组成图

此时太阳光线垂直入射电池板,实物如图21:

图21 实物图

电机的驱动齿轮旋转,在齿轮的带动下,电池板跟随太阳转动, 实物如图22:

图22 实物结构图

32

附录F:PWM脉宽调制驱动电机转动时的波形图

本设计采用PWM脉宽调制控制电机转动速度,电池板偏离太阳垂直入射角度越大,电机速度越快,示波器输出波形占空比越高。相反,当太阳光线近似垂直入射电池板时,电机速度变慢,示波器输出波形占空比越低,具体如图23所示:

图23 占空比波形图

33

附录G:程序清单

/*******************

名称: 智能逐日系统的研究与设计程序 功能: 实现太阳跟踪 编写者:唐薇

时间: 2014年5月20日 *******************/

#include #include

#define uchar unsigned char #define uint unsigned int

sfr P3M1 = 0XB1; sfr P3M0 = 0XB2; sfr P1ASF = 0x9d; sfr ADC_CONTR = 0xbc; sfr AUXR1 = 0xa2; sfr ADC_RES = 0xbd; sfr ADC_RESL = 0XBE;

sfr CCON=0XD8; sfr CMOD=0XD9; sfr CL=0XE9; sfr CH=0XF9;

sfr CCAPM0=0XDA; sfr CCAP0L=0XEA; sfr CCAP0H=0XFA; sfr CCAPM1=0XDB; sfr CCAP1L=0XEB; sfr CCAP1H=0XFB; sfr PCAPWM0=0XF2; sfr PCAPWM1=0XF3;

sbit CCFO=CCON^0; sbit CCF1=CCON^1; sbit CR=CCON^6; sbit CF=CCON^7;

sbit rs=P2^7; //寄存器选择位,将RS位定义为P2.0引脚 sbit rw=P2^6; //读写选择位,将RW位定义为P2.1引脚

34

sbit e=P2^5; //使能信号位,将E位定义为P2.2引脚

sbit M20=P3^4; //X轴电机正向转动,连接P3.4口 sbit M21=P3^5; //X轴电机反向转动,连接P3.5口 sbit M10=P3^6; //Y轴电机正向转动,连接P3.6口 sbit M11=P3^7; //Y轴电机反向转动,连接P3.7口 sbit EADC=IE^5; sbit Feng=P3^2; //定义风低电平采集位 sbit Yu=P3^3; //定义雨低电平采集位

sbit FY_FLAG=P2^0; //定义电池板位置采集位

uint ADCX,ADCY; uchar k;

uchar dis_code[8]; bit CH_FLAG=1;

//风雨模块输入端口初始化

void PORT_Init() {

P3M1|=0x0c; //设置P3.2,P3.3风雨模块输入端口漏极开漏 P3M0|=0x0c; P1ASF |=0X03; //P10,P11为模拟通道输入

//AD转换模块初始化

}

void ADC_Init() { ADC_CONTR=0X80; IE=0xa0; AUXR1&=~0x04; }

void delay_50us(uint t) { uint j;

for(;t>0;t--)

for(j=190;j>0;j--); }

//将ADRJ位给零,寄存器十位取高八位、低两位

//写指令

void write_com(uchar com) { e=0; rs=0;

35

rw=0; P0=com;

delay_50us(10); e=1;

delay_50us(20); e=0;

}

//写数据

void write_data(uchar dat) { e=0; rs=1; rw=0; P0=dat; delay_50us(10); e=1; delay_50us(20); e=0; }

//LCD液晶显示程序初始化void init(void) { delay_50us(300); write_com(0x38); delay_50us(10); write_com(0x38); delay_50us(10); write_com(0x38); write_com(0x38); write_com(0x08); write_com(0x01); write_com(0x06); write_com(0x0c); }

36

/******************* LCD液晶显示清零函数 *******************/

void lcd_clear() { write_com(0x01); delay_50us(10); }

/******************* LCD液晶显示子函数 *******************/

void lcd1602_display(uchar y,uchar x,uchar *p) reentrant { switch(y) { case 1:write_com(0x7f+x);break; case 2:write_com(0x7f+0x40+x); } while(*p) write_data(*p++); }

//PCA/PWM模块工作在PWM脉宽调制下的程序

void PCA_Init() { CCON=0; CL=0; CH=0; CMOD=0X02; CCAP0H=CCAP0L=204; CCAPM0=0X42; CCAP1H=CCAP1L=0X80; CCAPM1=0X42; CR=1; }

37

/*******************

智能逐日系统的研究与设计主函数 *******************/

void main() { uint ADC;

uchar PRO_ST,PRO_STM; //定义当前状态位 PORT_Init(); init(); PCA_Init(); ADC_Init(); EADC=1; ADC_CONTR|=0x08; while(1) { if(PRO_ST!=PRO_STM) { PRO_STM=PRO_ST; lcd_clear(); switch(PRO_STM) { case 1 : lcd1602_display(1,8,\ break; case 2 : if(!Feng) lcd1602_display(1,1,\ if(!Yu) lcd1602_display(2,1,\ break; case 3 : lcd1602_display(1,1,\ lcd1602_display(2,1,\ break; case 4 : lcd1602_display(1,2,\ lcd1602_display(2,2,\ break; } } if(Feng==0||Yu==0) { if(FY_FLAG==0) { M10=1; M11=1; M20=1; M21=1;

38

PRO_ST=1; CCAP1H=CCAP1L=255; } else { M10=1; M11=0; M20=1; M21=1; CCAP1H=CCAP1L=0; PRO_ST=2; if(!Feng&&!Yu) PRO_ST=3; } } else { PRO_ST=4; ADC=ADCX; ADC=5000.0/1024*ADC; dis_code[0]=ADC/1000+'0'; dis_code[1]='.'; dis_code[2]=ADC/100+'0'; dis_code[3]=ADC/10+'0'; dis_code[4]=ADC+'0'; dis_code[5]='V'; lcd1602_display(1,4,dis_code); if(ADC>2500.0) {

} else

M20=1; //X轴上电机正转动; M21=0;

ADC=ADC-2500; ADC*=0.6; if(ADC>255) { ADC=254; }

CCAP0H=CCAP0L=255-ADC;

39

{ ADC=2500-ADC; ADC*=0.6; if(ADC>255) { ADC=254; } CCAP0H=CCAP0L=255-ADC; M20=0; M21=1; } ADC=ADCY;

ADC=5000.0/1024*ADC; dis_code[0]=ADC/1000+'0'; dis_code[1]='.'; dis_code[2]=ADC/100+'0'; dis_code[3]=ADC/10+'0'; dis_code[4]=ADC+'0'; dis_code[5]='V';

lcd1602_display(2,4,dis_code); if(ADC>2500.0) {

M10=1; //Y轴上电机正转动; M11=0;

ADC=ADC-2500; ADC*=2.0; if(ADC>255) { ADC=254; }

CCAP1H=CCAP1L=255-ADC;

} else { ADC=2500-ADC; ADC*=2.0; if(ADC>255) { ADC=254; }

40

}

}

}

}

CCAP1H=CCAP1L=255-ADC; M10=0; M11=1;

/******************* AD采样中断服务程序 *******************/

void ADC_Routine() interrupt 5 { }

ADC_CONTR&=~0x10; if(CH_FLAG) {

//清中断标志位

ADC_CONTR=0x80; ADCX=ADC_RES*4+ADC_RESL; CH_FLAG=0; } else { }

ADC_CONTR=0x81; ADCY=ADC_RES*4+ADC_RESL; CH_FLAG=1;

//P1.0通道 X

//P1.1通道

ADC_CONTR|=0x08;

//启动AD转换器

41

}

}

}

}

CCAP1H=CCAP1L=255-ADC; M10=0; M11=1;

/******************* AD采样中断服务程序 *******************/

void ADC_Routine() interrupt 5 { }

ADC_CONTR&=~0x10; if(CH_FLAG) {

//清中断标志位

ADC_CONTR=0x80; ADCX=ADC_RES*4+ADC_RESL; CH_FLAG=0; } else { }

ADC_CONTR=0x81; ADCY=ADC_RES*4+ADC_RESL; CH_FLAG=1;

//P1.0通道 X

//P1.1通道

ADC_CONTR|=0x08;

//启动AD转换器

41

本文来源:https://www.bwwdw.com/article/irep.html

Top