第一篇:基于MSP430单片机的太阳能LED自行车显示系统设计论文
摘 要:本文介绍了太阳能LED自行车显示系统的硬件构成、主要部件和器件的选型原则及系统的软件框架。在MSP430单片机系统控制下,4条LED灯条实现文字,图片的稳定显示,并且配合传感器可以进行车速检测,稳定显示等作用。整个系统充分利用了LED寿命长、光效高、无辐射与低功耗的特点,最大程度地简化了硬件电路,使系统具有较高的性价比和可靠性。
关键词:动屏显示;自行车LED装饰;POV LED
0 引言
LED寿命长、光效高、无辐射与低功耗,基于太阳能LED的自行车显示系统稳定可靠、方便快捷,以自行车作为传媒载体,打破了目前市场上的广告大多通过平面报刊、电视电台、手机网络等进行宣传的传统方法,较之更有广泛的群众基础和性价比。本作品充分考虑了LED在我国的良好市场前景,以及自行车的广大群众基础,将两者完美的结合在一起,相得益彰。
1.自行车LED显示系统简介
本文介绍的自行车车轮LED显示系统是通过安装在自行车轮辐上的LED旋转形成较清晰画面的装置。其工作原理是:在自行车车轮上对称地安装4条LED灯条,每条灯条上有32个独立的高亮LED以及灯条外侧有一霍尔传感器,灯条上的LED采用矩阵形式使得线路简化I/O口占用较少,白天的时候太阳能电池通过TP4056充电芯片为锂离子电池充电,晚上时整个系统开始工作,LED灯条彼此配合利用人眼的视觉惰性在自行车轮辐上显示出画面来。
自行车车轮LED显示系统结构框图如图2所示,由太阳能电池、充电电路、锂电池、电源稳压电路、MSP430单片机控制系统、LED灯条、传感器等主要部分组成。该系统具有充电过程自动调节、根据环境光强自动启动显示电路,显示画面随车轮转速自动调节等功能。
2.系统硬件设计
2.1 系统电源设计
在系统的整体设计时,估算本系统的总功耗为0.264W(系统电压3.3V电流0.08A)。市面上一块50X50mm的太阳能电池,一般输出功率为0.35W(5V/0.07A),因为白天充电时间大于晚上使用时间,所以满足系统要求。充电电路白天为系统锂电池充电,同时提供太阳能电池电压信号给单片机,单片机通过辨别外界光强从而确定是否启动LED灯条。
2.2 系统主控芯片
主控芯片选用MSP430F149单片机,采用精简指令集(RISC)结构,数据存储器都可以参加多种运算,功能强,运行速度快,在3V工作电压主频为1MHz下最大功耗为430uA,在低功耗模式下最小功耗可以降为0.1uA,功耗极低。同时MSP430有6组I/O口满足系统需要。
2.3 LED灯条设计
本系统利用人眼的视觉暂留,让LED灯条快速在人的眼前形成画面。LED灯条以阵列的形式,通过本身的移动来显示文字,依靠车轮转动带动灯条移动,实现文字或图案的显示。
在LED灯条数的选取上,以人眼的视觉暂留时间为0.1秒计自行车一般行驶的速度为20km/h,为获得良好的显示效果则需要LED显示的刷新率为0.1s也就是10次每秒,自行车轮每转一圈前进2m,自行车速v=20km/h=5.56m/s。若自行车轮周长l=2m,刷新率为 10次/秒,车速为20km/h则自行车轮安装LED灯条条数n=10*l/v,经过计算得出n为4时成本最低,效果较好。
LED灯条采用4X4矩阵布局,在每个节点上安装两个极性相反的LED,即在一个节点的两端控制电流的方向就能控制在该节点是哪个LED点亮。用该种LED阵列可以让32个独立的LED用8根导线控制,大大减少了成本已经系统端口的占用。
2.4 传感器设计
为了使每一次显示的画面都能稳定,且显示的位置相对自行车固定则需要在系统上加装传感器,因为自行车轮相对自行车是旋转的,所以采用非接触式传感器--霍尔传感器,在自行车车架上安装磁铁,当霍尔传感器接近磁铁时则会有一次电平跳变,单片机检测这一电平跳变进行数据显示输出,以及进行测速和显示的调整。
3.系统软件设计
3.1系统主程序软件设计
本系统由主程序、LED显示子程序和显示校正子程序组成。系统供电后进入到低功耗模式,充电电路与单片机连接,外界无阳光时停止充电,此时低电平触发单片机中断,退出低功耗模式,系统开始工作,检测LED灯条是否经过磁铁。若检测到LED灯条的传感器电平跳变时则执行LED灯条子程序。
在LED灯条1检测到传感器信号跳变时单片机还启动内部的计数器,等到LED灯条2传来跳变信号时停止计数器,进入显示校正子程序。系统的主程序流程图如图3所示。
3.2灯条显示子程序
在系统进入到LED显示子程序后,从内存中读取需要显示的数据,显示数据为四组2位16进制数,对应灯条上的每一个LED。程序从LED1到LED32依次与显示数据进行比较,相同的点亮该LED。当1列LED比较完毕后进入到循环程序,循环次数越多,字的显示时间越长。通过控制循环的次数就能控制在不同的车速下都能显示出稳定的图像来。
当循环结束后在从内存中读取下一列需要显示的数据,直到显示结束。
3.3显示校正子程序
因为自行车车速是实时变化的,固定方法显示的画面肯定不稳定。于是采用计算两个传感器反馈的电平信号的时差计算出当前的车速,修改灯条显示子程序内的循环变量的办法,达到校正的目的。同时当自行车车轮转速较慢或不转时,内部计数器溢出,此时系统进入低功耗模式LED灯关闭。
4.结束语
本系统能源利用低碳环保。太阳能光电池的安装使本系统清洁,高效,无污染,完全符合全球倡导的低碳理念。同时文字显示稳定可靠。整个系统充分利用了LED寿命长、光效高、无辐射与低功耗的特点最大程度地简化了硬件电路,使系统具有较高的性价比和可靠性。
参考文献:
[1] 徐开芸,汪木兰,邵宇峰,邓 乐等.可折叠便携式微型太阳能光伏电站控制系统设计[J].1002-6673(2008)TP273.5,TK514
[2] 沈建华,杨艳琴等.MSP430系列16位超低功耗单片机原理与实践[M].北京:北京航空航天大学出版社,2008.
第二篇:基于单片机的逆变电源系统设计
第一章 逆变电源的数字化控制 2 1.1逆变电源数字化控制技术的发展 2 1.2传统逆变电源控制技术 2 1.2.1传统逆变电源控制技术的缺点 2 1.2.2传统逆变电源控制技术的改进 2 1.3逆变电源数字化控制技术的现状 2 1.3.1逆变电源控制技术数字化、智能化、网络化 2 1.3.2逆变电源数字化需要解决的一些难题 2 1.4逆变电源数字化的各种控制策略 2 1.4.1数字PI控制 2 1.4.2滑模变结构控制 2 1.4.3无差拍控制 2 1.4.4重复控制 2 第二章 推挽型逆变器的基础知识 2 2.1 开关型逆变器 2 2.2 推挽型电路 2 2.2.1 线路结构 2 2.2.2 工作原理 2 2.2.2推挽型逆变器的变压器设计 2 第三章 基于单片机的控制系统设计 2 3.1 系统硬件电路的设计 2 3.1.1 AT89C52单片机 2 3.1.2显示电路 2 3.1.3 A/D转换电路 2 3.1.4 SPWM波形电路 2 3.1.5 SA828主要特点 2 3.1.6 SA828工作原理 2 3.1.7内部结构及工作原理 2 3.1.8 SA828 初始化寄存器编程 2 3.1.9 SA828控制寄存器编程 2 3.2 系统软件的设计 2 3.2.1 初始化程序 2 3.2.2 主程序 2 3.2.3 SA838初始化及控制子程序 2 3.2.4 ADC0809的控制及数据处理子程序 2 3.2.5 数据处理及电压显示子程序 2 3.2.6 输出频率测试计算及显示子程序部分 2 第四章 联机调试及结果分析 2 4.1 联机调试情况 2 4.2 实验验证及结果分析 2 4.3结论 2 参考文献 2 第一章 逆变电源的数字化控制
1.1逆变电源数字化控制技术的发展 随着网络技术的发展,对逆变电源提出了更高的要求,高性能的逆变电源必须满足:高输入功率因数,低输出阻抗;暂态响应快速,稳态精度高;稳定性高,效率高,可靠性高;电磁干扰低等。要实现这些功能,离不开数字化控制技术。1.2传统逆变电源控制技术
1.2.1传统逆变电源控制技术的缺点 传统的逆变电源多为模拟控制系统。虽然模拟控制技术已经非常成熟,但其存在很多固有的缺点:控制电路的元器件比较多,电路复杂,所占的体积较大;灵活性不够,硬件电路设计好了,控制策略就无法改变;调试不方便,由于所采用器件特性的差异,致使电源一致性差,且模拟器件的工作点的漂移,导致系统参数的漂移。模拟方式很难实现逆变电源的并联,所以逆变电源数字化控制是发展的趋势,是现代逆变电源研究的一个热点。1.2.2传统逆变电源控制技术的改进
为了改善系统的控制性能,通过模拟、数字(A/D)转换器,将微处理器与系统相连,在微处理器中实现数字控制算法,然后通过输入、输出口或脉宽调制口(pulse width modulation, PWM)发出开关控制信号。微处理器还能将采集的功率变换装置工作数据,显示或传送至计算机保存。一些控制中所用到的参考值可以存储在微处理器的存储器中,并对电路进行实时监控。微处理器的使用在很大程度上提高了电路系统的性能,但由于微处理器运算速度的限制,在许多情况下,这种微处理器辅助的电路控制系统仍旧要用到运算放大器等模拟控制元件。近年来随着大规模集成电路技术的发展,一些专用心片的产生,使逆变电源的全数字控制成为现实。实时地读取逆变电源的输出,并实时地处理,使得一些先进的控制策略应用于逆变电源控制成为可能,从而可对非线性负载动态变化时产生的谐波进行动态补偿,将输出谐波达到可以接受的水平。
1.3逆变电源数字化控制技术的现状
1.3.1逆变电源控制技术数字化、智能化、网络化
随着电机控制专用芯片的出现和控制理论的普遍发展,逆变电源技术朝着全数化智能化及网络化的方向发展,逆变电源的数字控制技术发生了一次大飞跃。逆变电源数字化控制的优点在于各种控制策略硬件电路基本是一致的,要实现各种控制策略,无需变动硬件电路,只需修改软件即可,大大缩短了开发周期,而且可以应用一些新型的复杂控制策略,各电源之间的一致性很好,这样为逆变电源的进一步发展提供了基础,而且易组成可靠性高的大规模逆变电源并联运行系统。
1.3.2逆变电源数字化需要解决的一些难题
数字化是逆变电源发展的主要方向,但还是需要解决以下一些难题:
a)逆变电源输出要跟踪的是一个按正弦规律变化的给定信号,它不同于一般开关电源的常值控制。在闭环控制下,给定信号与反馈信号的时间差就体现为明显的相位差,这种相位差与负载是相关的,这就给控制器的设计带来了困难。
b)逆变电源输出滤波器对系统的模型影响很大,输入电压的波动幅值和负载的性质,大小的变化范围往往比较大,这些都增加了控制对象的复杂性,使得控制对象模型的高阶性、不确定性、非线性显著增加。
c)对于数字式PWM,都存在一个开关周期的失控区间,一般是在每个开关周期的开始或上个周期之末来确定本次脉冲的宽度,即使这时系统发生了变化,也只能在下一个开关周期对脉冲宽度做出调整,所以现在逆变电源的数字化控制引起了广泛的关注。1.4逆变电源数字化的各种控制策略
逆变电源数字控制方法成为当今电源研究领域的一个热点,与数字化相对应,各种各样的离散控制方法也纷纷涌现,包括数字比例-积分-微分(PI)调节器控制、无差拍控制、数字滑变结构控制、模糊控制以及各种神经网络控制等,从而有力地推动逆变电源控制技术的发展。
1.4.1数字PI控制
数字PI控制以参数简单、易整定等特点得到了广泛应用。逆变器采用模拟数字PI控制时,如果只是输出电压的瞬时值反馈,其动态性能和非线性负载时的性能不会令人满意;如果是输出滤波电感或输出滤波电容的电流瞬时值引入反馈,其性能将得到较大改进,然而,庞大的模拟控制电路使控制系统的可靠性下降,调试复杂,不易于整定。数字信号处理芯片的出现使这个问题得以迅速解决,如今各种补偿措施及控制方式可以很方便地应用于逆变电源的数字PI控制中,控制器参数修改方便,调试简单。
但是,数字PI控制算法应用到逆变电源的控制中,不可避免地产生了一些局限性:一方面是系统的采样量化误差,降低了算法的分辨率,使得PI调节器的精度变差;另一方面,采样和计算延时使被控系统成为一个具有纯时间滞后的系统,造成PI控制器设计困难,稳定性减小,随着高速专用芯片及高速A/D的发展,数字PI控制技术在逆变电源的控制中会有进一步的应用。
1.4.2滑模变结构控制
滑模变结构控制(sliding mode variable structure control,SVSC)最显著的特点是对参数变化和外部扰动不敏感,即鲁棒性强,加上其固有的开关特性,因此非常适用于闭环反馈控制的电能变换器。
基于微处理器的离散滑模控制使逆变器输出波形有较好的暂态响应,但系统的稳态性能不是很理想。具有前馈控制的离散滑模控制系统[1],暂态性能和稳态精度得到提高,但如果系统过载时,滑模控制器的负担将变得非常重。自矫正离散滑模控制可以解决这个问题。
逆变器的控制器由参数自适应的线性前馈控制器和非线性滑模控制器组成,滑模控制器仅在负载导致输出电压变化时产生控制力,稳态的控制力主要由前馈控制器提供,滑模控制器的切换面(超平面)是根据优化准则进行设计的。1.4.3无差拍控制
无差拍控制(deadbeat control)是一种基于电路方程的控制方式,其控制的基本思想是将输出正弦参考波等间隔地划分为若干个取样周期,根据电路在每一取样周期的起始值,用电路理论算出关于取样周期中心对称的方波脉冲作用时,负载输出在取样周期末尾时的值。这个输出值的大小,与方波脉冲的极性与宽度有关,适当控制方波脉冲的极性与宽度,就能使负载上的输出在取样周期的末后与输出参考波形相重合[2]。不断调整每一取样周期内方波脉冲的极性与宽度,就能在负载上获得谐波失真小的输出。因此,即使在很低的开关频率下,无差拍控制也能够保证输出波形的质量,这是其它控制方法所不能做到的,但是,其也有局限性:由于采样和计算时间的延迟,输出脉冲的占空比受到很大限制;对于系统参数的变化反应灵敏,如电源电压波动、负载变动,系统的鲁棒性差。
对于采样和计算延时的影响,一种方法是通过修改输出脉冲方式的方法来减小计算延时造成的占空比局限;另一种方法是通过状态观测器对系统状态提前进行预测,用观测值替代实际值进行控制,从而避免采样和计算延时对系统的影响。为了提高系统的鲁棒性,一种方法是采用负载电流预测方法来减小负载变动对电源输出的影响,但实际改善的程度有限;另一种可行的方法是对系统参数进行在线辨识,从而实时确定控制器参数,以达到良好的控制效果。但是,在线系统辨识的计算复杂度和存储量都非常大,一般的微处理器很难在很短的时间内完成,因此实现的可能性不大,所以还没有一种比较好的方法来解决无差拍控制鲁棒性差的问题。正是由于无差拍控制在电源控制中的不足及局限性到目前还难以解决,使得无差拍控制在工业界的应用还有待不断的深入研究。1.4.4重复控制
逆变器采用重复控制(repetitive control)是为了克服整流型非线性负载引起的输出波形周期性的畸变,它通常与其他PWM控制方式相结合。重复控制的思想是假定前一周期出现的基波波形将在下一基波周期的同一时间重复出现,控制器根据给定信号和反馈信号的误差来确定所需的校正信号,然后在下一个基波周期的同一时间将此信号叠加到原控制信号上,以消除后面各周期中将出现的重复畸变[3]。
虽然重复控制使系统获得了很好的静态性能,且易于实现,但该技术却不能够获得好的动态性能。自适应重复控制方案成功地应用于逆变器的控制中。
模糊控制(fuzzy control)能够在准确性和简洁性之间取得平衡,有效地对复杂的电力电子系统做出判断和处理。将模糊控制应用于逆变器,具有如下优点:模糊控制器的设计不需被控对象的精确数学模型,并且有较强的鲁棒性和自适应性;查找模糊控制表只需占有处理器很少的时间,可采用较高采样率来补偿模糊规则和实际经验的偏差。
将输出电压和滤波电感电流反馈,即电压误差和电感电流作为输入模糊变量,可以实现逆变器的模糊控制,整流性负载时,其输出电压总谐波失真(total harmonic distortion,TH)小于5%,将模糊控制与无差拍控制相结合,可用来补偿由于非线性负载导致的电压降落,[5-6]。模糊控制从模仿人的思维外特性入手,模仿人的模糊信息处理能力。它对系统的控制是以人的经验为依据的,而人的经验正是反映人在思维过程中的判断、推理、归纳。理论上已经证明,模糊控制可以任意精度逼近任何线性函数,但受到当前技术水平的限制,模糊变量的分档和模糊规则都受到一定的限制,隶属函数的确定还没有统一的理论指导,带有一定的人为因素,因此,模糊控制的精度有待于进一步提高。
此外神经网络控制是一种使用人工神经网络的控制方法。因为人工神经网络是建立在强有力的数学基础上,所以它有很大的潜力,这个数学基础包括各种各样的已被充分理解的数学工具。在无模型自适应控制器中,人工神经网络也是一个重要组成部分。但由于神经网络的实现技术没有突破,还没有成功地应用于逆变电源的控制中。
第二章 推挽型逆变器的基础知识 2.1 开关型逆变器 广义地说,凡用半导体功率器件作为开关,将一种电源形态转变为另一种形态的主电路都叫做开关变换电路,这种变换可以是交流电和直流电之间的变换,也可以是电压或电流幅值的变换,或者是交流电的频率、相数等的变换。按电力电子的习惯称谓,基本的电力电子电路可以分为四大类型,即AC——DC电路、DC——AC电路、AC——AC电路、DC——DC电路。本文中的逆变电路就属DC——AC电路。开关逆变器中的开关都是在某一固定频率下工作,这种保持开关频率恒定,但改变接通时间长短(即脉冲宽度),使负载变化时,负载上电压变化不大的方法,称脉宽调制法(Pluse Width Modulation,简称为PWM)[4]。由于电子开关按外加控制脉冲而通断,控制与本身流过的电流、二端所加的电压无关,因此电子开关称为“硬开关”。凡用脉宽调制方式控制电子开关的开关逆变器,称为PWM开关型逆变器。本文是用SPWM专用产生芯片控制电子开关的通断,属硬开关技术。相对应有另一类控制技术“软开关”,它是一种使电子开关在其两端电压为零时导通电流,或使流过电子开关电流为零时关断的控制技术。软开关的开通、关断损耗理想值为零,损耗很小,开关频率可以做到很高。2.2 推挽型电路
各种变换电路按其是否具备电能回馈能力分为非回馈型和回馈型,非回馈型电路按其输出端与输入端是否电气个力分为非隔离型和隔离型。隔离型电路又分为正激型、反激型、半桥型、全桥型和推挽型。带中心抽头变压器原边两组线圈轮流工作的线路一般称为推挽线路,它不太适合离线变换器的应用。推挽型电路的一个突出优点是变压器双边励磁,在输入回路中仅有1个开关的通态压降,而半桥型电路和全桥型电路都有2个,因此在同样的条件下,产生的通态损耗较小,而且不需驱动隔离,驱动电路简单,这对很多输入电压较低的电源十分有利,因此低电压输入类电源应用推挽型电路比较合适。但是功率开关所承受的电压应大于2。
2.2.1 线路结构
图1-1 推挽型电路原理图
推挽型电路的原理图如图1-1所示。主变压器 原边绕组 接成推挽形式,副变绕组 接成全波整流形式。
2.2.2 工作原理
由于驱动电路作用,两个功率开关管、交替导通。当 导通时,加到 上,所有带“.” 端为正。功率开关管 通过变压器耦合作用承受 的电压。副边绕组 “.” 为正,电流流经、L到负载上。原边电流是负载折算至原边的电流及原边电感所定的磁化电流之和。导通期间,原边电流随时间而增加,导通时间由驱动电路决定。关断时,由于原边能量的储存和漏电感的原因,的漏极电压将升高.2.2.2推挽型逆变器的变压器设计
推挽型逆变器设计在整个电源的设计过程中具有最为重要的地位,一旦完成设计,不宜轻易改变,因此设计时对各方面问题考虑周全,避免返工,造成时间和经费的浪费。下面介绍具体设计。变压器是开关电源中的核心元件,许多其他主电路元器件的参数设计都依赖于变压器的参数,因此应该首先进行变压器的设计。高频变压器工作时的电压、电流都不是正弦波,因此其工作状况同工频变压器是很不一样的,设计公式也有所不同。需要设计的参数是电压比、铁心的形式和尺寸、各绕组匝数、导体截面积和绕组结构等,所依据的参数是工作电压、工作电流和工作频率等[5]。另外,变压器兼有储能,限流,隔离的作用.在磁心大小,原边电感,气隙大小,原,副边线圈匝数的选择,以及在磁心内直流成分和交流成分之间的相互影响都应在设计中细致考虑.第三章 基于单片机的控制系统设计
按照设计的要求,基于单片机AT89C52的设计主要实现以下功能:SA828的初始化及控制、ADC0809采样的数据的处理和输出显示电压频率。选用单片机作为主控器件,控制部分的原理框图如下:
图3-1 控制系统原理框图 3.1 系统硬件电路的设计
图3-2为控制部分的电路原理图。电路主要由AT89C52单片机、四位显示及驱动电路、AD采样电路、复位电路等组成。
图3-2 3.1.1 AT89C52单片机
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8为单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052善拼引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。[6] 主要性能参数:
与MCS-51产品指令和引脚完全兼容 8k字节可充擦写Flash闪速存储器 1000次擦写周期
全静态操作:0Hz—24MHz 三级加密程序存储器 256×8字节内部RAM 32个可变成I/O口线 3个16位定时计数器 8个中断源
可编程串行UART通道 低功耗空闲和掉电模式 功能特性概述:
AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时器/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。引脚功能: Vcc:电源电压 GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P1写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部技术输入(P1.0/T2)和输入(P1.1/T2EX)。
Flash编程和程序校验期间,P1接收低8位地址。
P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,他们被内部上拉电阻拉高可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。
P3口出了作为一般的I/O线外,更重要的用途是它的第二功能,如下表: 端口引脚 第二功能
P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)
P3.4 T0(定时/计数器0)P3.5 T1(定时/计数器1)
P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)
此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:复位输入。当振荡器工作时,RST引脚出现两个周期以上高电平将使单片机复位。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。对于本次设计的引脚使用情况如下: P1口:控制LED数码管8位段码;P3.0,P3.1,P3.4,P3.5:数码管位选通口;XTAL:接晶振;RST:接复位电路;P0: ADC0809的结果输入;SA828的控制字口;P2.0:SA828的片选;P2.7:ADC0809的片选;P3.2:外部中断0.AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256×8位的随机存取数据存储器(RAM),3个16位定时/计数器、6个中断源、低功耗空闲和掉电方式等特点。器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,可以满足系统要求。系统采用5V电源电压,外接12M晶振。3.1.2显示电路
显示的方法分为动态显示和静态显示。所谓静态显示就是在同一时刻只显示一种字符,其显示方法简单,只需将显示段码送至段码口,并把位控字送至位控口即可。动态显示是利用人眼对视觉的残留效应,采用动态扫描显示的方法。[7]本设计采用动态显示,显示电路采用四位一体共阳极LED数码管,从P1口输出段码,位选控制端接于P3.0,P3.1,P3.4,P3.5。段驱动采用74LS245,位选驱动采用74LS244。硬件连接图如下: 图3-3 显示部分硬件连接图 3.1.3 A/D转换电路
A/D转换器采用集成电路0809完成,0809是8位MOS型A/D转换器。[] 1).主要特性
① 8路8位A/D转换器,即分辨率8位;② 具有转换起停控制端;
③ 转换时间为100μs;
④ 单个+5V电源供电;
⑤ 模拟输入电压范围0~+5V,不需零点和满刻度校准;
⑥ 工作温度范围为-40~+85摄氏度;
⑦ 低功耗,约15mW。
2).内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。
图3-4ADC0809内部结构框图 3).外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图3-5 所示。下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。如表所示。
ALE:地址锁存允许信号,输入,高电平有效。图 3-5 ADC0809引脚图
START: A/D转换启动信号,输入,高电平有效。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。
表3-6 ADDA、ADDB、ADDC真值表
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。4).AD0809与控制电路的连接如下图:
图 3-7 AD0809的连接电路 3.1.4 SPWM波形电路
由于逆变开关管的开关时间要由载波与调制波的交点来决定。在调制波的频率、幅值和载波的频率这3项参数中.不论哪一项发生变化时,都使得载波与调制波的交点发生变化。因此,在每一次调整时,都要重新计算交点的坐标。显然,单片机的计算能力和速度不足以胜任这项任务。过去通常的作法是:对计算作一些简化,并事先计算出交点坐标.将其制成表格,使用时进行查表调用。但即使这样,单片机的负担也很重。
为了减轻单片机的负担,一些厂商推出了专用于生成三相或单相SPWM波控制信号的大规模集成电路芯片,如HEF4752、SLE4520、SA828、SA838等等。采用这样的集成电路芯片,可以大大地减轻单片机的负担,使单片机可以空出大量的机时用于检测和监控。这里详细介绍SA828三相SPWM波控制芯片的主要特点、原理和编程。3.1.5 SA828主要特点
⑴.适用于英特尔和摩托罗拉两种总线格式,接口通用性好, 编程,操作简单,方便,快捷。⑵.应用常用的对称的双边采样法产生PWM波形, 波形产生数字化,无时漂,无温漂稳定性好。
⑶.在外接时钟频率为12.5MHZ时载波频率可高达24KHZ,可实现静音运行。最小脉宽和死区时间通过软件设置完成,既节约了硬件成本,又使修改灵活方便。
调制频率范围宽,精度高(12位),输出正弦波频率可达4KHZ,可实现高频率高精度控制及光滑的变频.。
⑷.在电路不变的情况下, 通过修改控制暂存器参数,就可改变逆变器性能指标,驱动不同负载或工作于不同工况。
⑸.可通过改变输出SPWM脉冲的相序实现电机的正反转。
⑹.独立封锁端可瞬时封锁输出PWM脉冲亦使微处理器防止突然事件的发生。3.1.6 SA828工作原理
SA828是MITEL公司推出的一种专用于三相SPWM信号发生和控制的集成芯片。它既可以单独使用,也可以与大多数型号的单片机接口。该芯片的主要特点为:全数字控制;兼容Intel系列和MOTOROLA系列单片机;输出调制波频率范围0—4kHz;12位调速分辨率;载波频率最高可达24kHz;内部ROM固化波形:可选最小脉宽和延迟时间(死区);可单独调整各相输出以适应不平衡负载。[8] SA828采用28脚的DIP和SOIC封装。其引脚如图3-8所示。各引脚的功能如下:(1)输入类引脚说明
AD0——AD7:地址或数据输入通道。
SET TRIP:通过该引脚,可以快速关断全部SPWM信号输出,高电平有效。
:硬件复位引脚,低电平有效。复位后,寄存器的、、WTE和RST各位为0。CLK:时钟输入端,SA828既可以单独外接时钟,也可以与单片机共用时钟。:片选引脚。
、、ALE:用于“ / ”模式,分别接收写、读、地址锁存指令。INTEL模式下ALE的下降沿传送地址,的上升沿给SA828写数据。在此模式下不用。
R/、AS、DS:用于“R/ ”模式,分别接收读/写、地址、数据指令。MOTOROLA模式下,AS的下降沿传送地址,当R/ 为低电平时,DS的下降沿给SA828写数据(接底电平)
(2)输出类引脚说明 图3-8 RPHB、YPHB、BPHB:这些引脚通过驱动电路控制逆变桥的R、Y、B相的下臂开关管。RPHT、YPHT、BPHT:这些引脚通过驱动电路控制逆变桥的R、Y、B相的上臂开关管。
它们都是标准TTL输出.每个输出都有12mA的驱动能力,可直接驱动光偶。
:该引脚输出—个封锁状态。当SETTRIP有效时,为低电平、表示输出已被封锁。它也有12mA的驱动能力,可直接驱动一个LED指示灯。ZPPR、ZPPY、ZPPB:这些引脚输出调制波频率。WSS:该引脚输出采样波形。3.1.7内部结构及工作原理
SA828内部结构如图3-9所示。来自单片机的数据通过总线控制和译码进入初始化寄存器或控制寄存器,它们对相控逻辑电路进行控制。外部时钟输入经分频器分成设定的频率,并生成三角形载波,三角载被与片内ROM中的调制波形进行比较,自动生成SPWM输出脉冲。通过脉冲删除电路,删去比较窄的脉冲(如图3-10所示),因为这样的脉冲不起任何作用,只会增加开关管的损耗。通过脉冲延迟电路生成死区,保证任何桥臂上的两个开关管不会在状态转换期间短路。
图3-9 SA828的内部结构
片内ROM存有正弦波形。寄存器列阵包含3个8位寄存器和2个虚拟寄存器。他的虚拟寄存器R3的写操作结果是R0,R1,R2中的数据写入控制寄存器。虚拟寄存器R4的写操作结果是R0,R1,R2中的数据写入初始化寄存器。各寄存器地址如表3-11所列。
图 3-10 脉冲序列中的窄脉冲
AD2 AD1 AD0 寄存器 功能 0 0 0 R0 暂存数据 0 0 1 R1 暂存数据 0 1 0 R2 暂存数据 0 1 1 R3 传控制数据 1 0 0 R4 传初始化数据 表 3-11 其工作过程可简析如下:由于调制波形关于90度,180度,270度对称,故波形ROM中仅有0∽90度的波形瞬时幅值,采样间隔0.23度, 90度内共384组8位采样值存入ROM中,每个采样值线性的表达正弦波的瞬时值, 通过相位控制逻辑,将它组成0∽360度的完整波形.该调制波与载波比较产生三相六路双极性PWM调制波形.其经脉冲宽度取消电路,将脉冲宽度小于取消时间的脉冲去掉,再经脉冲延时电路引入死区时间,从而保证了在转换瞬间高,低端功率开关不会出现共同导通现象。图3-9中24位初始化暂存寄存器,可用来设置输出波形参数,例如载波频率,最小脉宽,脉冲取消时间计数器置”0” 图3-12 Intel总线时序
等。一经设置好,运行中不允许改变。24位控制寄存器,用来调整改变调制波频率,幅值,输出关闭,过调制选择,开机关机等.上述设置和调整均通过微处理器或微控制器发出指令,数据先存入三个8位暂存寄存器R0,R1,R2中,然后通过R3和R4分别传送给24位初始化寄存器和24位控制寄存器。初始化或调整时,端要置0。SA828由外配的微处理器通过复用MOTEL总线控制,并与外配的微处理器接口,该接口总线有自动适应英特尔和摩托罗拉两种总线格式及工作时序的能力(两种总线的工作时序如图3-12和3-13),在电路启动运行后,当AS/ALE端从低电平变为高电时,内部检测电路锁存DS/ 的状态,若检测结果为高电平则自动进入英特尔模式,若检测结果为低电平,则选择摩托罗拉模式工作,总线连接和定时信息相对所用微处理器而言,这个过程在每次AS/ALE变为高电平时要进行,实际中模式选择由系统自动设定。
图3-13 Motorola总线时序
3.1.8 SA828 初始化寄存器编程
初始化是用来设定与电机和逆变器有关的基本参数。它包括载波频率设定、调制波频率范围设定、脉冲延迟时间设定、最小删除脉宽设定、幅值控制。
初始化编程时,即设定各寄存器内容。下面分别介绍这些内容的设定。[9](1)载波频率设定
载波频率(即三角波频率)越高越好,但频率越高损耗会越大,另外,还受开关管最高频率限制,因此要合理设定。设定字由CFS0--CFS2这3位组成。载波频率 通过下式(3—1)求出。式中K为时钟频率,n值的二进制数即为载波频率设定字,可以取1,2,4,8,16或32。由于K=12MHz,当n=1时,反算得 =23.4375KHz,考虑到(max)=24KHz , <(max)当n=2时,=11.71725KHz ,故n取1,实际 =23.4375KHz。(2)调制波频率范围设定
根据调制频率范围.确定设定字。设定调制波频率范围的目的是在此范围内进行l2位分辨率的细分,这样可以提高控制精度,也就是范围越小.控制精度越高。调制被频率范围设定字是由FRS0—FRS2这3位组成。调制波频率 通过下式(3—2)求得。m值的二进制数即为调制波频率范围设定字。上面已得 =23.4375KHz,若取 =500Hz则m=8.192 ,考虑到调制波的频率为400Hz,则m=8 ,反算得 =488.28Hz。(3)脉冲延迟时间设定 该设定字是由PDY0—PDY5这6位组成。脉冲延迟时间 通过下式(3—3)求得。设脉冲延迟时间 则 =60(4)最小删除脉宽设定
最小删除脉宽设定字是由PDT0—PDT6这7位组成。最小删除脉宽 由下式(3—4)图3-14 延迟前后脉宽关系
求得。考虑到延迟(死区)的因素,在延迟时.通常的做法是在保持原频率不变的基础上,使开关管延迟开通.如图3-7所示.实际输出的脉宽=延迟前的脉宽--延迟时间。由结构图 可知.SA828的工作顺序是先删除最窄脉冲,然后再延迟.所以式(3—4)给出的 应是延迟前的最小删除脉宽。它等于实际输出的最小脉宽加上延迟时间,即 =实际输出的最小脉宽十 ,假设实际输出的最小脉宽=10 那么 =15 则 =180> =128 , =10.67 s 最小脉宽为5.67 s。(5)幅值控制
AC是幅值控制位。当AC=0时,控制寄存器中的R相的幅值就是其他两相的幅值。当AC=l时,控制寄存器中的R、Y、B相分别可以调整各自的幅值,以适应不平衡负载。
初始化寄存器通常在程序初始化时定义。这些参数专用于逆变电路中.因此,在操作期间不应该改变它们。如果一定要修改,可先用控制寄存器中的 来关断SPWM输出,然后再进行修改。
3.1.9 SA828控制寄存器编程
控制寄存器的作用包括调制波频率选择(调速)、调制波幅值选择(调压)、正反转选择、输出禁止位控制、计数器复位控制、软复位控制。控制数据仍然是通过Ro—R2寄存器输入并暂存,当向R3虚拟寄存器写操作时.将这些数据送入控制寄存器。(1)调制波频率选择
调制波频率选择字由PFS0—PFS7这8位组成。通过下式
(3-5)求得 值,它的二进制数即是调制波频率选择字。取 =400Hz , =488.28Hz ,得 =3355.45179(2)调制波幅值选择
通过改变调制波幅值来改变输出电压有效值,达到变频同时变压的目的。输出电压的改变要根据U/f曲线,随频率变化进行相应的变化。调制波幅值是借助于8位幅值选择字(RAMP、YAMP、BAMP)来实现的。每一相都可以通过计算下式 %(3-6)求出A值,它的二进制数即为幅值选择字(即RAMP或YAMP或BAMP)。式中的 就是调压比,注意,初始化寄存器的AC位决定了R相幅值是否代表另二相幅值。= =91.8=92(3)输出禁止位控制
输出禁止位。当 =0时,关断所有SPWM信号输出。(4)计数器复位控制
计数器复位位,当 =0,使内部的相计数器置为0(R相)。(5)软复位控制
RST是软复位位。它与硬复位 有相同的功能。高电平有效。
SPWM波形的产生,选择专用的芯片SA828,如前面所讲,这里不再论述。它和单片机的接口如下图所示: 3.2 系统软件的设计 3.2.1 初始化程序
系统上电时,初始化程序将数据存储区清零。3.2.2 主程序
完成定时器的初始化,开各种中断,循环调用各个子程序。包括电压显示子程序、AD转换子程序、828初始化子程序。主程序流程图见图 程序清单如下: START: SETB IT1;选择INT1为边沿触发方式 SETB EX1;开外中断1 SETB EA;开总控制中断
CLR PX1;外中断1为低优先级 SETB IT0;脉冲下降沿触发外中断0 SETB EX0;开外中断0 MOV TMOD,#01H;T0工作在定时,方式1 SETB PX0;外中断0为高优先级 MOV TH0,#00H MOV TL0,#00H ACALL KAISHI ACALL INCADC AJMP START 3.2.3 SA838初始化及控制子程序
按照单片机与SA828的接线图,P2.0作为SA828的片选控制口,因此SA828的起始地址为FE00H。系统上电复位之后首先对SA828写初始化字和控制字。具体计算如前面所述。流程图如下: 程序清单如下:
CLR P2.1;禁止PWM输出
MOV A,#80H;SA828初始化寄存器 MOV DPTR,#0FE00H;SA828地址 MOVX @DPTR,A;给R0写数据 INC DPTR MOV A,#60H MOVX @DPTR,A;给R1写数据 INC DPTR MOV A,#04H MOVX @DPTR,A;给R2写数据 INC DPTR INC DPTR MOVX @DPTR,A;给初始化寄存器R4写数据 MOV A,#1BH;SA828控制寄存器 MOV DPTR,#0FE00H;SA828地址 MOVX @DPTR,A;给R0写数据 INC DPTR MOV A,#2DH MOVX @DPTR,A;给R1写数据 INC DPTR MOV A,#05CH MOVX @DPTR,A;给R2写数据 INC DPTR MOVX @DPTR,A;给控制寄存器R3写数据 SETB P2.1;允许PWM输
单片机对采样到的输出如做PI调节计算转换为电压幅值控制字后,需要重新写入控制字,其方法是相同的。
3.2.4 ADC0809的控制及数据处理子程序
单片机与ADC0809的接线图所示,P2.7作为ADC0809的片选控制口,因此ADC0809的起始地址为7F00H。如图所示,ADC0809的地址选择线接地,固定8路模拟数据输入端重IN-0为电压采样输入端。ADC0809的CLK信号是从AT89C52的ALE端经四分频器74LS74分频后得到的,工作频率为500HZ,转换时间为128us左右,据此设计一个延时时间,延时时间一到,采用查询方式进行数据传送。即用软件测试EOC(P3.1)的状态,若测试结果为1,则转换结束接着进行数据传送,否则等待,直到测试结果为1。因为ADC0809的最大输入电压为5V,其转换结果FFH对应5V。所以FFH对应的输入应大于等于5V,表示输入超过量程。本设计中FFH对应36V,其转换公式为,X=,因此程序中有二进制转换及乘14子程序,除以100处理为小数点固定显示在次低位。另外,考虑到系统存在电磁干扰,采用了中值滤波子程序进行软件抗干扰。中值滤波对于去掉由于偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉动干扰比较有效。中值滤波之后将最优值存于6AH中再进行转换处理。流程图如图下面是程序清单: INCADC: MOV R0,#2CH MOV R2,#03H SAMP: MOV DPTR,#7F00H;AD0809端口地址送DPTR MOV A,#00H;输入通道0选择 MOVX @DPTR,A;启动A/D转换 MOV R7,#0FFH;延时查询方式 DELAY:DJNZ R7,DELAY LOOP1:JB P3.1,T1;查询p3.1是否为1 JNB P3.1,LOOP1 T1:MOVX A,@DPTR;读取从IN0输入的转换结果 MOV @R0,A INC R0 DJNZ R2,SAMP 以下是数字滤波程序流程图及程序清单:
FILTER:MOV A,6CH CJNE A,6DH,CMP1 AJMP CMP2 CMP1:JNC CMP2 XCH A,6DH XCH A,6CH CMP2:MOV A6DH CJNE A,6EH,CMP3 MOV 6AH,A CMP3:JC CMP4 MOV 6AH,A CMP4:MOV A,6EH CJNE A,6CH,CMP5 MOV 6AH,A CMP5:JC CMP6 XCH A,6CH CMP6:MOV 6AH,A;滤波结果存于6AH RET 3.2.5 数据处理及电压显示子程序 DISPLAY: MOV A,6AH ACALL L1;十进制转换 ACALL PLAY RET PLAY:;显示程序 MOV A,R5;分离D1 ANL A,#0FH MOV 50H,A MOV A,R5;分离D2 ANL A,#0F0H SWAP A MOV 51H,A MOV A,R4;分离D3 ANL A,#0FH MOV 52H,A MOV A,R4;分离D4 ANL A,#0F0H SWAP A MOV 53H,A PLAY1: CLR P2.6 CLR P2.5 CLR P2.4 CLR P2.3 MOV R1,#50H;显示数据首地址 MOV P1,#0FFH;清除原来的数据 SETB P2.3;显示最低位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS;数据显示1ms CLR P2.3 MOV P1,#0FFH INC R1 SETB P2.4;显示次低位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR ANL A,#7FH;小数固定显示 MOV P1,A LCALL DL1MS CLR P2.4 MOV P1,#0FFH INC R1 SETB P2.5;显示次高位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS CLR P2.5 MOV P1,#0FFH INC R1 SETB P2.6;显示最高位 MOV A,@R1 JZ NODISPLAY;若A=0,则不显示 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS CLR P2.6 MOV P1,#0FFH NODISPLAY: MOV P1,#0FFH AJMP PLAY1 RET
L1:CLR C;十进制转换 MOV R5,#00H MOV R4,#00H MOV R3,#08H NEXT1:RLC A MOV R2,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R2 DJNZ R3,NEXT1 RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
DL1MS: MOV R6,#14H DL1:MOV R7,#19H DL2:DJNZ R7,DL2 DJNZ R6,DL1 RET 3.2.6 输出频率测试计算及显示子程序部分 ⑴.频率测试计算子程序部分
SA828带有频率输出端口,将其与单片机的中断INT0口相接,如原理图所示。本例中所使用的中断源有2个:T0中断和 中断。中断的功能是计算ZPPR输出的调制波频率。由于调制波频率可能比较低,因此用T0溢出中断来记录一个ZPPR周期中T0溢出的次数,这个溢出次数保存到70H中。这样,在一个 中断间隔里,所用的时间(即ZPPR周期)是3个字节的数(1个字节的T0溢出次数,2个字节的T0值)。因为AT89C52使用12MHZ的时钟频率,一个机器周期是,所以调制波频率的计算公式为: =0F4240H,也是一个3字节的数,因此 是一个3字节除法运算。如果对精度要求不高,的分子分母可以舍掉最低字节来简化运算,这样就成为双字节除法运算。所以,当 中断时,只取TH0,将其存放到71H中除法运算的整数商存放到72H、73H中,小数商存放到75H中,以便频率显示程序中调用。
中断子程序及流程图如下:
SUANPIN: CLR EA;关中断 CLR TR0 PUSH ACC;保存现场 PUSH B PUSH DPL PUSH DPH PUSH PSW PUSH 50H PUSH 51H PUSH 52H PUSH 53H PUSH 60H PUSH 61H PUSH 62H PUSH 63H PUSH 6AH SETB PSW.3 MOV 70H,#00H;MOV TL0,#00H;TL0清0 MOV 71H,TH0;取TH0值 MOV TH0,#00H;TH0清0 MOV A,71H;检查除数是否为0 ORL A,70H;不会溢出,高位永远为零 JZ ABC;除数为0则退出 MOV R2,#00H;输入被除数 MOV R3,#00H MOV R4,#0FH MOV R5,#42H MOV R6,70H;输入除数 MOV R7,71H LCALL NDIV;调用双字节除法子程序原来的程序,NDIV:MOV B,#16;双字节无符号数除法子程序;当条件(R2R3)〈(R6R7)满足时,;(R2R3R4R5)/(R6R7)=(R4R5),余数在(R2R3)NDVL1: CLR C MOV A,R5 RLC A MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 RLC A XCH A,R2 MOV F0,C CLR C SUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 JB F0,NDVM1 JC NDVD1 NDVM1: MOV R2,A MOV A,R1 MOV R3,A INC R5 NDVD1:DJNZ B ,NDVL1 CLR F0
MOV 72H,R4;频率整数部分存于7273H中 MOV 73H,R5;调制波频率整数部分存72H MOV 75H,R2;将调制波频率小数部分(小于100)存75H MOV 70H,#00H;70H清0 ABC:POP 6AH POP 63H POP 62H POP 61H POP 60H POP 53H POP 52H POP 51H POP 50H POP PSW;恢复现场 POP DPH POP DPL POP B POP ACC SETB EA;开中断 SETB TR0 RETI
⑵.频率显示部分
本系统用一个四位一体的LED数码管显示数据,系统初始化后显示的为电压,按频率显示按钮显示频率。利用中断源 显示,它将72H、73H中的频率整数(二进制数)部分先进行二--十转换存于R3R4R5中,根据经验,转换过来的十进制数只有百位,即R3中的值为00,R4中的值为0X。因此将R4R5中的数分离分别在最高位、次高位、次低位显示,并且次低位带有小数点。将75H中的小数部分在最低位显示。至此,频率显示部分完成。
中断程序及流程图如下:
DISPLAYF:PUSH ACC;保存现场 PUSH B PUSH DPL PUSH DPH PUSH PSW PUSH 50H PUSH 51H PUSH 52H PUSH 53H PUSH 60H PUSH 61H PUSH 62H PUSH 63H PUSH 6AH SETB PSW.4;使用第二工作寄存区
MOV R6,72H;频率整数部分存欲R6R7中调用双字节十进制转换程序 MOV R7,73H;;ACALL HB2;调用双字节十进制转换程序
HB2:CLR A;BCD码初始化;双字节十进制转换 MOV R3,A MOV R4,A MOV R5,A MOV R2,#10H;转换双字节二进制整数
HB3:MOV A,R7;从高端移出待转换数的一位到CY中 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5;BCD码带进位自身相加,相当于乘2 ADDC A,R5 DA A;十进制调整 MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 MOV R3,A DJNZ R2,HB3 MOV A,75H;频率小数部分在最低位显示 ANL A,#0F0H SWAP A MOV 50H,A MOV A,R5;频率整数部分个位数在次低位显示 ANL A,#0FH CLR CY SUBB A,#07H MOV 51H,A MOV A,R5;频率整数部分十位数在次高位显示 ANL A,#0F0H SWAP A CLR CY SUBB A,#05H MOV 52H,A MOV A,R4;频率整数部分百位数在最高位显示 ANL A,#0FH DEC A MOV 53H,A ACALL PLAY;显示频率
POP 6AH POP 63H POP 62H POP 61H POP 60H POP 53H POP 52H POP 51H POP 50H POP PSW;恢复现场 POP DPH POP DPL POP B POP ACC AJMP DISPLAYF RETI
第四章 联机调试及结果分析 4.1 联机调试情况
系统的调试分为硬件调试和软件调试两个部分。硬件调试包括控制电路的调试和主电路的调试。调试时,应该先调控制部分。首先检查电路的焊接是否正确,然后用万用表测试或通电检测。主电路部分硬件的检测方法同控制部分。硬件检查无误后,软件调试。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、AD转换子程序、电压显示子程序、频率显示子程序、数字滤波子程序等子程序的编程及调试。
在联机调试前,先用伟福模拟仿真,然后利用爱思G3000在线联机调试。联机调试时出现了下面一些问题:
1).四位一体LED显示管不显示; 2).P1口没有数据输出; 3).AD转换器不工作;
4).SA828的输出波形不正确。解决的办法及处理结果:
1).检查各个数码管的位控端及代码段是否连接完好,给它加的驱动是否正确,以及各个数码管本身是否完好。经检测是我们的驱动连接有问题,重新连接后,显示正常。
2).P1口没有数据输出的原因也是我们的显示驱动出错导致,当驱动错误排除后,P1口数据输出正常。
3).和AD转换器的各个连线都联结正确,我们的焊接技术不好,出现了个别引脚虚焊,虚焊处理后,问题解决。
4).SA828的输出波形下桥臂出现一段脉宽为1us的不正常波形,按照电路设计原理,小于5.67us的波形在脉冲删除电路中是该删除掉的,由于三相下桥臂均输出这种不正常的波形,我们用到了SA828的输出禁止端SETTRIP,把此端接上高电平即可使输出禁止而不影响内部电路的正常工作,但是实验结果还能看到此不正常的波形,若其是内部电路产生,即使不能删除,在输出禁止时理论上应该是能禁止的。又考虑到可能是干扰所至,消除掉可能存在的干扰后依然存在此波形。初次使用这系列的芯片,对其资料也不完全掌握,实验最后,仍留此问题,亟待日后解决。另外,在绞尽脑汁之后,发现一个问题,原来认为不用的芯片端口可以按其功能相应的接高电平或接地,在这样做之后,芯片发烫,断开连接即恢复正常 4.2 实验验证及结果分析
1).1).从SA828的RPHT、PRHB输出的驱动脉冲信号如下图4-1所示
图4-1 PWM输出的上、下桥臂的驱动信号
2).经过TTL驱动电路,加在栅极的驱动电压信号如图4-2所示。图4-2 MOSFET栅极的驱动信号 3).仿真交流输出信号如图4-3所示 图4-3 仿真交流输出信号 4).结果分析
实验室搭建主电路进行实验和调试,获得了较好的实验效果。该系统输出正弦波的频率为400HZ。试验证明整个系统方案结构紧凑,实时性较好。4.3结论
在前面的系统硬件软件设计下,我们在实验室组成实际的线路进行了实验和调试,获得了较为良好的实验效果。该系统输出正弦波合成的频率为400HZ,试验证明整个系统结构紧凑,实时性较以完全单片机软件编程产生SPWM波的方法要好得多,而他的功能又比用HEF4752等纯硬件方法生成的SPWM波的方法完善。综上分析及实验验证,可以得到下面几点结论:
1).SA828时一个高性能的SPWM专用IC,在合适的外围条件的支持下,它可以输出较好的SPWM脉冲信号。
2).以单片机最小系统来完成SA828的外围硬件支持,可以使系统的硬件结构简化,提高可靠性,减小系统成本和体积。
3).文中介绍的以AT89C52最小系统与SA828相结合构成的全数字化SPWM脉冲形成系统,即可解决全软件编程产生SPWM脉冲波的缺陷,又可以弥补纯硬件系统完成SPWM脉冲生成方案的不足,是一种较好的方案。4).文中介绍的SPWM脉冲形成方案,不仅在开关电源的数字化制作方面是一个尝试和创新,而且在直流调速、交流调速、变频电源、电力回收领域,也具有通用性,它应用前景广阔。
结束语: 本设计利用MCS-51单片机控制SA828产生SPWM调制信号,AD转换器控制输出频率及电压,电路结构简单,可靠性高,实时性好,具有广阔的使用前景。
第三篇:物流管理信息化系统的设计论文
摘要:随着我国社会主义市场经济的高速发展,电子商务的规模也逐渐扩大,从而推动了物流行业。在竞争日趋激烈的市场环境下,加强对物流管理的科学性和系统性,是物流企业当面工作的重点内容。先进的物流技术装备,以及一套科学完善的物流管理信息系统,是物流企业保持核心竞争能力的必要因素,也为物流企业长远发展提供了基础保障。物流管理的信息化系统,主要就是将企业的所有物流信息以及使用数据,在一个安全稳定、准确可靠的平台上进行管理,全面覆盖企业的物资、资金以及商业信息,保证企业所有信息的可靠性和准确性,从而实现企业的科学生产,经济效益的最大化。物流管理的信息化系统建设,对物流企业的重要性不言而喻,为物流企业的未来发展贡献坚实的力量。
关键词:物流管理;信息化;系统设计
1、材料与方法
1.1材料
物流信息、无线仓储、GIS系统、订单系统、IT支撑系统。
1.2方法
1.2.1物流的概述
物流是指在先进的设备和完善的信息技术的支持下,将物品从供应地安全可靠、及时准确同时保质保量的运输到接受地的服务模式和服务流程。随着社会不断发展,以及科学技术的不断完善,物流业也得到了迅猛的发展,通过不断对自身的完善,逐步形成一套知识化、专业化、信息化、自动化的服务体系,更加提供优质服务,提高企业经营管理水平,满足客户越来越高的要求。
1.2.2物流信息化系统设计的原则
物流信息化系统设计必须遵守一定的原则,才能最大化的为企业服务。系统研发需要遵守的是战略性原则、安全可靠的原则、可维护性原则、先进性原则。物流信息管理系统必须满足企业战略发展,且能够有效保证系统的安全、可靠、稳定运行,防止数据泄密。同时,物流信息管理系统需要具备可维护性,能够根据实际情况做出调整。此外,物流信息管理系统采用技术要先进,符合时代发展,满足企业使用需要以及企业物流管理的发展需求,保证物流管理的信息化系统能够不断的发展和完善。
1.2.3无线仓储信息系统建设
仓储作为物流体系中非常重要的部门,具有极其全面的实用功能。利用仓储可以进行物资的储存与保管,也可以进行拣货、配货、分类和查检工作,同时也还具有重新包装、附加标签等加工功能。为满足现代社会的飞度发展,仓储信息必须具备交互频繁和大数据量等特点,能够及时有效的处理大量信息的物流仓储信息系统,其存在性具有非常重要的现实意义。
第一,根据需求设定建设目标、订单系统以及客服系统,有利于实时同步包括订单各个子系统。同时,要需要加强对商品订单处理的全程跟踪。
第二、通过需求用例确认、全面设计、无线手持系统开发、数据库搭载、测试等阶段,无线仓储管理信息系统具备了可提交用户测试的条件。用户测试时,对读取订单数据功能、读取车型数据、读取仓库数据、读取区域数据、读取网络数据等功能与写入数据到数据库功能进行测试,从而完成整个系统功能的检验。
第三、用户进行测试阶段是非常关键的一个阶段,可以检测系统能够具备上线运行的条件,相关的工作人员可以对业务流程和功能开展科学详细的测试,在测试阶段结束后,对仓储管理人员、工作人员、以及用户开展全新的仓储流程培训工作。
第四、在上线前设置完成初始数据,以及用户权限等工作,部署和调试无线网络,确保无线仓储管理信息系统具有上线条件。第五、初始化完成之后,无线仓储管理信息系统在经过了试运行阶段的问题追踪和解决后,无线仓储管理信息系统正式投入生产运营。
2、结语
企业通过对物流管理的信息化系统的运用,能够科学有效的实现了企业管理以及所有业务流程的开展,同时也保证了一系列流程的严谨准确、安全可靠。此外,物流管理的信息化系统也防止了传统人为因素带来的不准确等各种弊端的出现,运用数据库管理的先进模式,保证业务数据更加优化,货物管理更加安全,最大程度的服务客户。
3、讨论
物流管理的信息化系统与企业的管理系统进行充分合理的融合,确保了整个信息化系统的安全性和保密性,加强了企业的管理水平,保证企业的发展平稳有序的进行,物流管理的信息化系统对企业的长远发展,具有非常重要的现实作用。
第四篇:超市商品销售管理系统设计与实现_毕业设计_论文_任务书
天津科技大学本科毕业设计(论文)任务书 计算机科学与信息工程学院 2009计算机科学与技术专业
学生学号:学生姓名:指导教师姓名:
完成期限: 2013年 03月05日至 2013 年 06 月20日一、二、设计(论文)内容及要求: 题目名称:超市商品销售管理系统设计与实现
1.设计内容
(1)登录模块:该模块主要是针对用户,提供一个进入本系统的登录界面,(2)库存管理:该模块主要是库存管理:该模块主要是对库存信息资料进
(3)销售管理:该模块主要是对销售记录信息资料进行管理
(4)会员信息管理:主要是维护超市的会员信息
(5)员工信息管理:主要管理超市员工的排班信息,安排每天有多少经理、采购员和收银员值班,可以添加、修改、删除排班。
[1] 刘甫迎、刘光会、王蓉.C#程序设计教程(第二版).北京:电子工业出版社,2006.111-126
[2] 李兰友 杨晓光.Visual C#.NET程序设计.北京:清华大学 北方交通大学出 版社,2005.100-123
[3] 余金山,林慧编著.SQL Server2000/2005数据库开发实例入门与提高.北京:电子工业出版社,2005.100-120
[4] 萨师煊,王珊.数据库系统概论(第三版).北京:高等教育出版社,2005.111-124[5] Michel de Champlain.C# 2.0[M].Morgan Kaufmann, 2005.123-124
指导教师签名:
填写日期:年月日
注:本任务书发给学生,毕业设计(论文)完成后装入毕业设计(论文)档案袋。看登录人员身份是否合格,只有验证通过后才能进入本系统行管理,对该信息数据进行及时的更新以及维护。