怎么开一个无货源网店襄阳抖音seo找哪家

当前位置: 首页 > news >正文

怎么开一个无货源网店,襄阳抖音seo找哪家,什么是seo优化推广,wordpress用什么数据库连接欢迎大家点赞、收藏、关注、评论啦 #xff0c;由于篇幅有限#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、设计的主要内容二、硬件电路设计2.1跟踪控制方案的选择2.1.1跟踪系统坐标系的选择2.2系统总体设计及相关硬件介绍… 欢迎大家点赞、收藏、关注、评论啦 由于篇幅有限只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、设计的主要内容二、硬件电路设计2.1跟踪控制方案的选择2.1.1跟踪系统坐标系的选择2.2系统总体设计及相关硬件介绍 三、软件设计3.1系统主程序设计原理图源程序清单 四、结论五、 文章目录 概要 根据太阳与地球的相对运动规律和赤道坐标系和地平坐标系下太阳相对于地球的运动轨道以应用价值为前提提出了以步进电机为驱动机构的开环跟踪控制策略并设计了相应的控制系统。根据控制系统的要求本文选用了AT89C51RC单片机作为核心部件完成了单片机的外围硬件电路设计和相应的软件设计。文中详细介绍了系统硬件电路中的重要器件及其实现的功能设计了相应的硬件接口电路主要包括复位电路I2C串行通信电路和步进电机驱动电路并以软件流程图的形式详细说明了本文的软件设计思想。 关键词 太阳能热发电太阳跟踪单片机开环跟踪 一、设计的主要内容 由于太阳相对于聚光器的位置时刻都在改变这就要求聚光器不断改变自身的方位实时保持太阳处于太阳能聚光器的主光轴上即始终对准太阳以有限的接收面积捕获尽可能多的太阳辐射能。要保持太阳始终处于聚光器的主光轴上就必须采用跟踪系统。本论文将设计和开发一套用于太阳能热发电的跟踪控制系统。 论文设计的主要内容包括硬件设计和软件设计两部分。 硬件部分 ① 复位电路。 ② I2C通信电路包括外围总线、键盘显示芯片和日历时钟芯片的连接。 ③ 步进电机模块电路包括反向驱动器步进电机驱动器的连接。 ④ 绘制系统的总体电路图。 软件系统包括 ① 系统总设计流程图及其程序。 ② I2C通信模块软件设计包括I2C总线连接图初始化流程图按键处理流程图和时间调整流程图及程序。 ③ 步进电机的软件设计包括计算模块流程图和步进电机模块流程图。 二、硬件电路设计 2.1跟踪控制方案的选择 2.1.1跟踪系统坐标系的选择 在太阳能热发电系统中支架不仅要支撑起聚光器还要支撑起安置在聚光器焦点位置的一台数吨重的发动机。如果采用极轴坐标系统虽然跟踪的方式简单但是聚光器的重量并不通过极轴轴线极轴支撑装置的设计难度大。所以本设计不采用极轴坐标系统。 对于较大的系统工程上常采用地平坐标系统。采用地平坐标系统的一个特殊优点是重力平面保持在通过收集器的垂直平面内这样把收集器表面的重力偏差减到最小就可以使收集器及其支架的工程设计的复杂性简化到最低限度收集器的轴和轴承所受的力矩也减到最小。故采用地平坐标系统的收集器支撑结构比较简单。 2.1.2跟踪方式及跟踪系统的选择 跟踪控制方式分为闭环跟踪、开环跟踪和混合跟踪控制方式三种。 闭环跟踪和开环跟踪控制方式的主要区别是有无反馈信息。混合跟踪控制方式将闭环跟踪和开环跟踪相结合的跟踪控制方式混合跟踪控制方式。混合跟踪方式有闭环跟踪方式的优点也同样具备开环方式的优点。如果采用高性能的传感器用于光电跟踪模块无疑将大大提高跟踪系统的造价这是在工业生产中所不愿看到的如果采用普通的传感器则跟踪系统会存在的缺点为反应慢、精度差、稳定性低且闭环跟踪无法适用多云天气。根据当地的经度纬度日期和时间采用开环控制方式通过数学上对太阳轨道的计算得到下一时刻收集器的位置。这样可以通过电动驱动收集器保持太阳始终处于收集器的主光轴上。按轨道跟踪太阳不受天气限制。如此一来也存在一个缺点是时间长了系统的累积误差的影响越来越大跟踪效果会明显下降。 因为步进电机只有周期性的误差而无累积误差所以步进电机在非超载的情况下其转速、停止的位置只取决于脉冲信号的频率和脉冲数而不受负载变化的影响。因此采用步进电机作为跟踪系统的执行机构可有效控制系统的累积误差。 本论文控制方式采用开环的程序控制分别对太阳高度角和方位角进行二维跟踪执行机构采用步进电机。 2.2系统总体设计及相关硬件介绍 系统示意图如图2-l所示单片机是控制系统的核心键盘显示芯片作为键盘指令输入和相关数据显示的驱动器管理着键盘和显示器日历时钟芯片为系统提供了一个准确的时钟作为时间标准步进电机驱动器间接控制着步进电机。相关硬件接口电路主要包括复位电路I2C通信电路和步进电机模块电路。本文将对所选用的单片机以及主要硬件电路展开说明。
图2-1 系统示意图 综合考虑本系统对单片机功能的要求本文选用美国ATMEL公司的AT89C51RC单片机该单片机具有以下特性 AT89C51RC是在AT89C52基础上开发的新型单片机。它的主要特性是 ●片内含有32KB的Flash程序存储器擦写周期为1000次 ●片内数据存储器内含512字节的RAM ●具有可编程32线I/O口(P0P1P2和P3) ●具有3个可编程定时器TOT1和T2 ●中断系统是具有8个中断源、6个中断矢量、2级中断优先权的中断结构 ●具有一个全双工UART串行口 ●低功耗工作方式为空闲模式和掉电模式 ●具有双数据指针DPTR0和DPTRl ●具有3级程序锁定位 ●具有硬件看门狗定时器WDT ●AT89C5 1 RC工作电源为4.0-5.5V ●AT89C5lRC最高工作频率为33MHz ●具有断电标志POF。 AT89C51RC单片机PDIP封装的引脚排列如图2-2所示。
图2-2 AT89C51RC引脚图 三、软件设计 3.1系统主程序设计 本控制系统软件设计的主程序流程如图3-1所示主要分为I2C串行通信模块、角度计算模块和步进电机模块。 图3-1 主程序流程图 原理图 源程序清单 附录2 源程序清单 主程序 #include“reg52.h” #include“VI2CC5 I.H” / /包含VI2C软件包 #include“zlg7290.h” #include“fgangel.h” #include“motorun.h” #include“manregstep.h” #includemath.h #define PCF8563 0xA2 #define WRADDR 0x00 #define RDADDR 0x02 #define settime l #define setdata 2 #define setlongitude 3 #define tran 4 #define up 5 #define down 6 #define left 7 #define ok 8 #define uint unsigned int #define uchar unsigned char sbit KEY INTP3^2; sbit RSTP1^2 unsigned char disp_buf[8]{0,0,0,0,0,0,0,0} unsigned char KEY float *fg bit switch date0 bit longtpn struct longitude { uint longtitudehour, uchar longtitudemin uchar longtitudesec }struct time { uchar hour uchar min uchar see }idata lconvtime struct longitude idata Lloc{116280} unsigned char loncontime(struct longitude idata*Lstal,struct longitude idata*LLloc); ··································· if(KEYsetdata) //is setdam? { IRcvStr(PCF8563RDADDRrdOx7)//读现在的时、分、秒 display_date(rd3) disp butl2]2disp_buf[2]0x7f disp_butf[4]disp_butl4]0x7f while(1) { disp_buf[i]disp_buf[i]10x40//E1个位首先闪烁 ZLG7290_SendBuf(disp_butl0]i1) if(KEY_INT-0) { KEYZLG7290_GetKey0 if(KEYup)加l { disp_buf[i]disp_butIi]1 if((disp_buf[i]OxOf) 10) { disp_butIi]2disp_butli]0x40 } } if(KEYdown) { disp_buf[i]disp_buf[i]-l if((disp_buf[i]OxOf)OxOF) { disp_butIi]0x49 } } If(KEYleft) { disp_buf[i]disp__buf[i]0XBF//stop flash iil if(i5) { ZLG7290_sendBuf(disp_buf[0],8) i0 } } if(KEYok)//确认 { disp_butli]disp_butf[i]0XBF//stop flash ZLG7290_SendBuf(disp_buf[i],1) tdl[0]disp_buf[1]*1 6(disp_butl0]0XOF) tdl[1]dispbuf[3]*16disp_butl2] tdl[2]disp_buf[5]*16disp_buf[4] ISendStr(PCF8563,WRADDR5,tdl,0x1) ISendStr(PCF8563,WRADDR7,tdl[1],ox2)i0 break } } } } ···································· if(KEYsetlongitude)//is longitude? { display_longimde(Lloc) while(1) { dispbuf[i]disp buif[i] 0x40//秒首先闪烁 ZLG7290 SendBuf(disp_buf[0],i1) if(KEYINT0) { KEYZLG7290 GetKeY0 if(KEYup)加l { disp_buf[i]disp_butli]l if((disp_buf[i]0x0f)10) { disp bur[i]disp_buf[i]0x40 } } if(KEY down) { disp_bul[i]disp butli]-l if((disp_buflilOxOf)OxOF) { disp_buf[i]0x49 } } if(KEYleft) { disp_but[i]disp_buf[i]0XBF//stop flash iil if(i6) { ZLG7290_SendBuf(disp_buf[0],8) i0 } } if(KEYok)确认 { Disp_buf[i]disp_buf[i]0XBF//Stop flash LlocIongtitudesecdisp_butf[l]*10disp_buf[0] Lloc1ongtitudemindisp_butf[3]*10disp_buf[2] Lloclongtitudehourdisp_buf[6]*100disp_buf[5]*10disp_buf[4]i0 break } } } } // 设置纬度 ···································· if(KEYetlatitude)is set latimde? { display_latitude(1atitude) while(1) { disp_buf[i]disp_buf[i] 0x40//秒首先闪烁 ZLG7290_SendBuf(disp_butl0],i1) If(KEY_INT0) { KEY ZLG7290_GetKeY0 if(KEYup)加l { disp_butf[i]disp_buf[i]l if((disp_buf[i]0xof)l0) { disp_buf[i]disp_buf[i]0x40 } } if(KEYdown) { disp_buf[i]disp_butf[i]1 if((disp_buf[i]OxOf)20x0F) { disp_buf[i]0x49 } } If(KEYleft) { disp_buf[i]disp_buf[i]OXBF//stop flash iil if(i5) { ZLG7290_SendBuf(disp_buf[0],8) iO } } If(KEY6)//确认 { disp_buf[i]disp_butIi]0XBF//stop flash latitude[2]disp_buf[1]*10disp_buf[0] latitude[1]disp_butl3]*10disp_but[2] latitude[0]disp_buf[5]*10disp_butl4] i0 break } } } } ·时间调整子程序 ···································· if(KEY settime) //is settime? { IRcvStr(PCF8563,RDADDR,rd,0x3)//读现在的时、分、秒 display_timeset(rd) while(1) { disp_buf[i]disp_buf[i]0x40//秒首先闪烁 ZLG7290_SendBuf(disp_butl0]i1)if(KEY_INT 0) { KEYZLG7290_GetKeY If(KEY up)//加1 { disp_buf[i]disp_butf[i]1 if((disp_but[i]0x0f) 10) { disp_buf[i]disp_buf[i]0x40 } } If(KEY down) { disp_buf[i]disp_butIi]-1 if((disp_buf[i]0x0f) 0x0F) { disp_bufIi]0x49 } } If(KEYleft) { disp_buf[i]disp_buf[i]0XBF//stop flash iil if(i7) { ZLG7290_SendBuf(disp_buf[0],8) i0 } } if(KEYok)//确认 { disp_buf[i]disp_buf[i]0XBF//stop flash ZLG7290_SendBuf(disp_buf[i]1)tdl[0]disp_buf[1]*16(disp_butl0]0XOF) tdl[1]disp_butf[4]*16disp_buf[3] tdl[2]disp_buf[7]*16disp_buf[6] ISendStr(PCF8563WRADDR2,td l,0x3) i0 break } } } } } 四、结论 本设计开发了以AT89C51RC为核心的硬件控制电路硬件接口电路主要包括复位电路I2C串行通信电路和步进电机驱动电路同时进行了软件部分的设计由以上软硬件构成的控制系统实现了在地平坐标系下对太阳的二维跟踪。 本课题研究方向的一些展望 1采用步进电机驱动聚光器转动虽可有效控制累积误差但也存在电能消耗多和负载增大时(如大风天气)容易出现丢步等问题。采用直流电机作为动力机械通过开环闭环相结合的控制方式消除系统累积误差的跟踪方式更具前景但’反应速度快精度高的光电传感器造价高跟踪系统成本的控制依赖于低成本高性能的光电传感器的研制和开发。 2考虑到太阳能跟踪控制系统的实际应用环境(多为沙漠地区)的恶劣提高控制电路的抗干扰性势在必行。随着电子技术的发展提高元器件及芯片性能和系统组成的模块化程度是控制领域发展的大趋势。 五、 文章目录 目 录 摘要 I Abstract II 1 绪论 1 1.1课题背景及意义 1 1.1.1太阳能热发电技术是最有前途的可再生能源发电方式 1 1.1.2几种主要太阳能热发电方式的前景 2 1.2我国的太阳能资源 3 1.3国内外现状 4 1.4本论文设计的主要内容 5 2 系统硬件的设计 6 2.1跟踪控制方案的选择 6 2.1.1跟踪系统坐标系的选择 6 2.1.2跟踪方式及跟踪系统的选择 6 2.2系统总体设计及相关硬件介绍 7 2.2.1复位电路的硬件设计 9 2.2.2 I2C通信模块 10 2.2.3步进电机模块 14 2.3本章小结 15 3 软件设计 17 3.1 I2C串行通信简介及其软件设计 19 3.1.1 I2C总线设计 19 3.2.2 I2C总线连接器件的设计 21 3.2步进电机模块的软件设计 27 3.3本章小结 27 4 结 论 30 参考文献 31 致谢 32 附录 33 附录1原理图 33 附录2程序 34