基于at89s52单片机的直流数控恒流源设计毕业论文_第1页
基于at89s52单片机的直流数控恒流源设计毕业论文_第2页
基于at89s52单片机的直流数控恒流源设计毕业论文_第3页
基于at89s52单片机的直流数控恒流源设计毕业论文_第4页
基于at89s52单片机的直流数控恒流源设计毕业论文_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计 (论 文) 专 业 电子信息工程 班 级 学生姓名 学 号 课 题 直流数控恒流源设计 系统总体方案设计及监控程序 指导教师 2011 年 10 月 8 日摘要本系统由单片机程控设定数字信号,经过D/A转换器AD5320输出模拟量,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电流。单片机系统还兼顾对恒流源进行实时监控,输出电流经过电流/电压转换后,通过A/D转换芯片MAX1241,实时把模拟量转化为数字量,再经单片机分析处理,通过数字量形式的反馈环节,使电流更加稳定,这样构成稳定的压控电流源。关键词:压控恒流源; AT89S52; 数控电源; 26- -AbstractIn the system, the digitally programmable signal from SCM is converted to analog value by DAC AD5320, is sent to the base electrode of power transistor, so an adjustable output current can be available with the base electrode voltage of power transistor. On the other hand, The constant current source can be monitored by the SCM system real-timely, its work process is that output current is converted voltage, then its analog value is converted to digital value by ADC MAX1241, finally the digital value as a feedback loop is processed by SCM so that output current is more stable, so a stable voltage-controlled constant current power is designed.KeyWords:voltage-controlled constant current source;AT89S52;Numerical controlled source;目录摘要IAbstractII引言1第一章 概述21.1 设计要求21.2 理论分析21.3 系统介绍3第二章 硬件设计42.1 电源模块42.1.1 电源设计42.2 恒流源模块52.3 单片机模块62.3.1 AT89S52芯片介绍62.3.2 AT89S52 硬件电路设计92.4 键盘模块102.4.1 MM74C922102.4.2 键盘电路102.5 显示模块112.5.1 1602LCD显示112.5.2 LCD显示硬件电路122.6 A/D模块132.6.1 芯片MAX1241132.6.2 A/D模块电路142.7 D/A模块142.8 存储模块152.8.1 C总线152.8.2 芯片24C02C152.8.3 存储模块电路16第三章 软件设计173.1 编程语言描述173.2 系统软件的功能模块173.2.1 主程序设计173.2.2 中断程序设计18第四章 软件仿真及硬件调试214.1 Proteus214.2 软件仿真214.3 硬件调试224.3.1 单片机最小系统调试224.3.2 键盘及液晶显示调试224.3.3 数模转换与功放电路调试224.3.4 模数转换电路调试234.3.5 存储器电路调试23第五章 设计总结24致谢25参考文献26附录A原理图27附录B硬件实物28附录C系统程序29附录D英文翻译原文39附录E英文翻译译文43引言电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。随着计算机和通讯技术发展而来的现代信息技术革命,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度。数控电源是从80年代才真正的发展起来的,期间系统的电力电子理论开始建立。这些理论为其后来的发展提供了一个良好的基础。在以后的一段时间里,数控电源技术有了长足的发展。但其产品存在数控程度达不到要求、分辨率不高、功率密度比较低、可靠性较差的缺点。因此数控电源主要的发展方向是针对上述缺点不断加以改善。单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到90年代,己出现了数控精度达到0.05V的数控电源,功率密度达到每立方英寸50W的数控电源。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。数字化智能电源是针对传统电源的不足设计的,数字化能够减少生产过程中的不确定因素和人为参与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。从上世纪九十年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发展。整流系统由以前的分立元件和集成电路控制发展为微机控制, 从而使直流电源智能化。第一章 概述1.1 设计要求(1)输出电流范围:20mA2000mA;(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值给定值的1+10 mA;(3)具有“+”、“-”步进调整功能,步进10mA;(4)改变负载电阻,输出电压在5V以内变化时,要求输出电流变化的绝对值输出电流值的1+10 mA; (5)纹波电流2mA;(6)自制电源。1.2 理论分析首先,在数控方面采用单片机比CPLD和FPGA等可编程逻辑器件好,因为此处只是一般用途的控制,没有必要选用价格昂贵的CPLD和FPGA,而且他们用在此处并不合适,控制起来显得很麻烦。而单片机则不同,他有着非常成熟的技术,这方面的参考文献也很多,而且他从来就是用于控制方面的,在这方面有着天生的优势。还有他价格也不贵,仅几元人民币。对于这样的应用系统比较划得来。其次在恒流源方面,我们方案也很好。从理论上看,运放是接成比较器的,作为模拟反馈的,这样在只要运放的输入不变,那么三极管的是不变的,根据三极管的共射极输入特性可知,不变时,和也保持不变,而且,。当比较大时。当运放的输入改变时,也改变了值,这样也就改变了和的值,而且这个变化基本也是呈线性的。这也就是本系统的恒流原理。由于器件受温度的影响以及局部非线性的存在,这样的恒流源不能做到真正的恒流,因此,当外界条件发生变化时,我们要及时给予补偿,只有这样才能做到真正的恒流。这也就是为什么要加入模数转换器的真正原因,他能实时测量电流的变化并按照一定的算法及时给予补偿,采用数字补偿逐次逼近的方式作为反馈调整环节,由程序控制调节功率管的输出。当改变负载大小时,基本上不影响电流的输出。模数转换器还起到测量的作用,同时送显示让我们知道实际的电流输出值。1.3 系统介绍本系统以AT89S52单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达1mA,并可由液晶模块显示实际输出电流值和电流设定值。首先,采用单片稳压芯片实现直流稳压,然后采用了分立元器件实现稳流。为实现对输出电流控制:一方面,通过 D/A转换器(AD5320)输出实现电流的预置,再经过运算放大器控制晶体管的输出电流。另一方面,单片机系统还兼顾对恒流源进行实时监控,输出电流经过电流/电压转变后,通过A/D转换(MAX1241)芯片,实时把模拟量转化为数字量,再经单片机分析处理, 通过数据形式的反馈环节,使电流更加稳定,这样构成稳定的压控电流源。此外,系统还增加了存储设备,能够保存掉电前的数据,使系统更加方便使用。系统原理框图如下图1:图1 系统原理框图第二章 硬件设计2.1 电源模块 本设计共用到电源有四种:即12V、+5V、负载电源。可选用的有开关电源和稳压电源两种,由于开关电源的纹波系数比较大。因此采用常用的稳压电源来作为整个系统的电源。稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图2所示:图2 电源方框及波形图整流和滤波电路:整流作用是将交流电压U2变换成脉动电压U3。滤波电路一般由电容组成,其作用是脉动电压U3中的大部分纹波加以滤除,以得到较平滑的直流电压U4。再通过稳压电路得到平直的直流电压U5。2.1.1 电源设计因此该电源按常规设计,即用降压变压器把220V市电变成较低的交流电,再通过整流桥将交流变为直流,并上电容滤波再接入78X和79X系列稳压块稳压,从而得到5V,12V的电压源。其中5V电源采用半波整流,以减小7805的输入电压。从而使得稳压快的功耗降低,发热量减小,保证电路的长时间工作。电路原理图分别如图3和图4所示:图3 +5V电源图4 12V电源负载电源输出电压为1.237V可调,稳压电源由电源变压器、整流电路、滤波电路、保护电路和稳压电路组成。其电路原理图如图5所示:图5 负载电源2.2 恒流源模块用“运放+大功率三极管”的结构构成恒流源。大功率三极管选用TIP122型号,它是应用范围广、功率小、频率低的达林顿, NPN极性型,特征频率:1000(MHz),集电极允许电流:8(A),集电极最大允许耗散功率:48(W)。其性能满足本设计要求,同时可以通过功率管的不同容量来满足不同的应用要求。采用常用的大功率电阻作为采样电阻,输出电流波动比较大,而康锰铜丝是一种温度特性佳的阻性元件,选其作为取样电阻,其两端电压正比于流过的电流,因此该电压的反馈就是负载电流的反馈。其原理如图6所示: 图6 恒流电路 2.3 单片机模块2.3.1 AT89S52芯片介绍单片机是大规模集成电路结束发展的产物,常见的单片机有8051系列的单片机、8096系列的单片机、PIC系列、AVR系列、SPCE061A的凌阳单片机。他将中央处理器(CPU)、存储器(ROM/RAM)、输入输出接口、定时器/记数器等主要计算机部件集成在一片芯片上,因此单片机被称为单片机微型计算机(Single Chip Microcomputer).单片机配上适当的外围设备和软件,便可构成一个单片机应用系统。本次设计对单片机的要求:只要能够方便地扩展显示器、键盘、A/D转换器、D/A转换器等外设即可,其他并无特殊要求。故选择常见的美国Inter公司生产的MCS-51系列单片机,它具有可高性高、功能强、体积小、价格低、和抗干扰能力强等特点,被广泛应用于工农业生产、国防、科研及日常生活等各个领域。而且本组同学也比较熟悉。我们选择的ATMEL公司的AT89S52单片机,他是一种低功耗、高性能CMOS8位微控制器,具有8K ISP(在系统可编程)Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52管脚如图7所示:AT89S52具有如下特点: 兼容MCS-51指令系统 32个双向I/O口 3个16位可编程定时/计数器 全双工UART串行中断口线 2个外部中断源 中断唤醒省电模式 看门狗(WDT)电路 灵活的ISP字节和分页编程 4.5-5.5V工作电压 时钟频率0-33MHz图7 AT89S52引脚 2568bit内部RAM 低功耗空闲和省电模式 3级加密位 软件设置空闲和省电功能 双数据寄存器指针 8k可反复擦写(1000次)ISP Flash ROMAT89S52主要引脚的主要功能:VCC:接+5V电源。GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0口具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/记数器2的外部记数输入(P1.0/T2)和定时器/记数器2的触发输入(P1.1/T2EX),具体如下表1所示。在flash编程和校验时,P1口接收低8位地址字节。表1 各端口引脚与复用功能表引脚号第二功能P1.0T2(定时器/记数器T2的外部记数输入),时钟输入P1.1T2EX(定时器/记数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表2所示。在flash编程和校验时,P3口也接收一些控制信号。表2 各端口引脚与复用功能表端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/ :地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.3.2 AT89S52 硬件电路设计 单片机系统是整个数控系统的核心部分,它主要用于键盘按键管理、数据处理、实时采样分析系统参数及对各部分反馈环节进行整体调整。主要包括AT89S52单片机、振荡电路、复位电路等。电路如下图8所示:图8 单片机控制电路(1) AT89S52单片机的P0口是个双向口,可以作输出输入口,在本系统中用作显示部分,P1口也是个双向口,主要接A/D、 D/A和24C02C。P2口的P2.0、 P2.1、 P2.2、P2.3接键盘输入,P2.4、 P2.5用于键盘控制是能端。而P3口主要用于中断。(2) 复位电路 复位是单片机初始化操作。复位将单片机复到初始化状态,目的是使CPU及个专用寄存器处于一个确定的初始状态。如前面介绍,在单片机的复位信号RST上保持2个机器周期以上的高电平,单片机就会复位。本次设计采用的是手动复位方式,利用按键闭合是单片机复位端上保持接通高电平状态两个机器周期以上。 (3) 振荡电路 该电路是由内部反相放大器通过引脚XTAL1和引脚XTAL2与外接的晶体以及电容C3和C4构成,产生出晶体振荡信。此晶振信号接至内部的时钟电路。图中的晶振频率为11.0592MHz,外接晶体时,电容C3和C4通常选30pF。虽然对外接电容没有严格要求,但电容的大小会影响振荡频率、振荡器的稳定性和起振的速度。振荡器的这些特性对弹片机的应用影响很大,因此在设计印刷电路板时,应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。2.4 键盘模块键盘的作用是对单片机输入数据,设计中要求能使电流进行“+”,“-”及电流值的设定,所以采用键盘为44的矩阵键盘,用MM74C922芯片进行识别按键后送AT89S52的并行口P2, P2.0P2.3作为键盘输入口。传统的44矩阵键盘识别处理程序的编写相对烦琐。所以采用MM74C922芯片来将44矩阵键盘的键值转换成4位二进制码以简化程序的编写。2.4.1 MM74C922MM74C922是一款集成了键盘防抖动技术和按键检测功能的16位按键的译码芯片。由CMOS工艺技术制造,工作电压3-15V,“二键锁定”功能,编码输出为三态输出,可直接与微处理器数据总线相连,内部振荡器能完成44矩阵键盘扫描,亦可用外部振荡器使键盘操作与其他处理同步,通过外接电容避免开关发生前、后沿弹跳所需的延时。有按键按下时数据有效线变高,同时封锁其他键,片内锁存器将保持键盘矩阵的4位编码,可由微处理器读出。其引脚图如图9所示: 图9 MM74C9222.4.2 键盘电路由X1X4,Y1Y4的连接方式,即可确定每一个按键的编码。如图10所示,从键盘的左下角开始,依次编码为0、1、2E、F。我们将A作为设置键,B作为恢复键,C作为加法键,D作为减法键,E作为确认键,F作为取消键。再加上09刚好16个按键。通过DA信号触发中断,由于有按键时,DA为高电平,而单片机的中断信号为低电平,故需在DA信号引脚上接上一个非门,再与单片机的INT0引脚相连。图10 键盘电路2.5 显示模块2.5.1 1602LCD显示液晶显示器由于体积小、质量轻、功耗低等特点,已成为各种便携式电子信息产品的理想显示器。液晶显示器通常可分为两大类,一是点阵型,二是字符型。一般的字符型液晶只有两行,面积较小,能显示字符和一些很简单的图形;而点阵型液晶通常面积较大,可以显示图形和更多的字符。为了方便设计,同时又能满足设计的需要及尽可能降低设计成本。因此,我们选择1602LCD液晶显示器。目前常用16*1,16*2,20*2和40*2行等的模块。针对此设计,我们选用16*2模块。1602字符型液晶显示器实物如图11所示:图11 1602液晶显示器1602引脚功能说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图12是1602的内部显示地址。图12 1602LCD内部显示地址2.5.2 LCD显示硬件电路1602LCD的读写控制引脚是第5引脚R/W;在本次设计中,为了降低程序设计,我们只用LCD作显示器,在此只对其写操作,所以设计时直接将R/W接地。其电路原理图如图13所示:图13 LCD电路2.6 A/D模块由于本次设计的数控直流电流源能够完成设定输出值。因此设定步进为1mA才有所意义。根据题目要求输出20mA2000mA,以1mA为步进。需要的级数为:因,由此可见采用11的转换芯片即可满足要求,但市场上并没有11位转换器,所以系统中采用12位高精度A/D转换芯片MAX1241。同时D/A也采用12位的转换芯片AD5320。2.6.1 芯片MAX1241MAX1241是MAXIM公司推出的一种串行A/D转换器,具有低功耗、高精度、高速度、体积小、接口简单等优点。MAX1241是一种单通道12位逐次逼近型串行A/D转换器,功耗低,转换速度快。它使用逐次逼近技术完成A/D转换过程。最大非线性误差小于1LSB,转换时间9s。采用三线式串行接口,内置快速采样/保持电路。MAX1241内部结构(如图14)和管脚定义(如图15):图14 MAX1241内部结构管脚名称功能参数1VDD电源输入+2.7+5.2V2VIN模拟电压输入03SHDN节电方式控制端“0”节电方式;“1”工作4REF参考电压输入端1.0VVDD5GND电源地6DOUT串行数据输出三态7CS芯片选通“0”选通;“1”禁止8SCLK串行输出驱动时钟输入频率范围:02.1MHz图15 MAX1241管脚定义2.6.2 A/D模块电路MAX1241的VDD供电范围为2.75.25V,为减少来自电源的干扰,可在VDD引脚配置4.7F和0.1F的滤波电容。由于MAX1241内部没有参考电源提供,需外接参考电压,只需将Vref接在4.7F电解电容即可;特殊情况下,让悬空,此时,即可在REF引脚输入参考电压,其范围为1.0VDD.REF引脚外接电解电容不宜选择过大,电容越大,MAX1241由待机模式到正常工作模式的唤醒时间将越长。MAX1241的三根数据线,时钟输入端、片选控制端和数据输出端分别由AT89S52的P1.0、P1.1和P1.2控制。 MAX1241芯片内部具有采样/保持电路,无需外部保持电容和采样/保持电路。 MAX1241的控制线SCLK、DOUT可与AT89S52的通用I/O口直接相连,无需任何接口变换, 模拟电压经前级放大至0VREF 范围后,由AIN引脚输入。其中MAX1241,所用到的+2.5V基准电压,由LM336精密的2.5V并联的稳压二极管提供。其外围电路如图16所示:图16 MAX1241外围电路2.7 D/A模块有前面的计算知,模拟量输出通道我们选用了AD公司的单通道12位电压输出D/A转换器,单电源工作,电压范围为2.7V5.5V,时钟频率最高可达30MHz。片内高精度输出放大器提供满电源幅度输出,其基准来自电源输入端,可以提供较大的动态输出范围,它利用能与标准的接口标准兼容的3线串行接口与微处理器交换数据,接口简单。工作过程中,将SYNC置为低电平时候启动写序列,在这个阶段,SYNC线至少要保持低电平一直到SCLK的第16个下降沿,DAC在这第16个下降沿被更新,如果在这之前SYNC被拉为高电平,就意味着写序列中断,此时移位寄存器复位。来自DIN线的数据在SCLK的下降沿随时钟送入16位移位寄存器,输入移位寄存器的数据位数为16位宽,前两位是无关位,接下来2为是控制位,决定控制器件处于哪种工作方式,最后12位是数据位,它们代表着DA转换器即将输出的电压值。在第16个时钟下降沿,最后一位数据随时钟输入并按照给定内容执行已编制好的功能。其外围电路如下图17所示:图17 AD5320外围电路2.8 存储模块本系统的外扩存储器主要是用来记忆用户数据,因此容量不需要很大,一般的小型存储器芯片就可以。然而从方便系统扩展来和价格来考虑,我们选用了EEPROM24C02,它是采用C接口的一种常用2Kbit(2568bit)的存储器。首先,我们还是先介绍C总线。2.8.1 C总线在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线C。C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的C兼容芯片。作为一个专利的控制总线,C已经成为世界性的工业标准。C总线是一种用于IC器件之间的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线连到总线上的器件之间传送信息,并根据地址识别每个器件,不管是单片机、存储器、LCD驱动还是键盘接口。C总线的数据传送格式是在C总线开始信号后,送出的第一个字节数据是是用来识别从器件的地址,其中前七位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,每次都是先传最高位。2.8.2 芯片24C02C24C02C是一种串行存储器,其容量2Kbit。其封装如图18所示。A0、A1 和A2引脚用于多器件工作。将这些输入引脚上的电平与从器件地址中的相应位作比较,如果比较结果为真,则该器件被选中。图18 24C02C引脚SDA串行数据引脚为双向引脚,用于把地址和数据输入/ 输出器件。该引脚为漏极开路。因此,SDA 总线要求在该引脚与VCC 之间接入上拉电阻。对于正常的数据传输,只允许在SCL为低电平期间改变SDA 电平。而SDA 电平在SCL 高电平期间若发生变化,表明起始和停止条件产生。WP写保护引脚必须连接到 VSS 或者 VCC。如果连接到 VSS, 写操作使能。如果连接到VCC,写操作被禁止,但读操作不受影响。VCC电源输入引脚,标称条件下在VCC 低于3.8V 时,则VCC 阈值检测电路会禁止内部的擦写逻辑。2.8.3 存储模块电路将A0、A1、A2全部接地,即决定了该模块的地址为0xA0,24C02C的外围电路如图19所示:图19 24C02C外围电路第三章 软件设计3.1 编程语言描述 C语言已成为当前举世公认的高效简洁,又贴近硬件的编程语言之一,将C语言向单片机上的移植,始于20世纪80年代的中后期,经过十几年的努力,C语言终于成为专业化的单片机实用高级语言,人们通常把开发MCS-51使用的C语言简称C51。采用C51编写的应用程序结构清楚、模块化程度高、可读性强,并容易移植。应用C51进行软件开发,用户可以不必具体考虑寄存器、存储器的分配等工作,而把这部分工作交给编译、连接软件,用户只需了解MCS-51的存储器结构,甚至不必去了解51的指令系统。C51开发环境一般都提供了数学计算等子程序,为程序开发带来方便。虽然采用C51编程形成的源代码比不上有经验人员编写的汇编语言精炼,但对于相对复杂的系统开发或复杂运算,还是比用汇编语言容易得多,且易于移植及有利于系统的维护和升级。在实时要求较高的场合,可采用C51汇编混合编程。本设计我们采用的是C51,其编译器是Keil C51,它是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具。C51语言编程方法是:1.启动uvision4(Keil C51基于Windows下的开发环境),创建一个项目文件,并从器件数据库里选择一款CPU芯片;2.根据应用要求,在PC上用文本编辑软件编写C语言源程序;利用C51编译工具软件对源程序进行编译,生成目标文件(.obj文件);利用C51连接工具对目标程序进行连接定位,生成绝对程序,即可以装载到开发装置仿真运行。在某些情况下,也可以将绝对程序转化为十六进制代码程序(.hex文件)。3.2 系统软件的功能模块根据本系统的实际及键盘设置要求,软件设计可分为以下2个功能模块:主程序和中断程序。3.2.1 主程序设计主程序主要完成的是一些初始化的设置(比如液晶显示和键盘),和监控程序。主程序流程图如图20所示。其中监控程序流程图如图21所示: 图20 主程序流程图 图21 监控程序流程图3.2.2 中断程序设计中断程序主要是对不同的按键做出不同的处理,其中断流程图如图22所示:图22 中断程序流程图其中数字程序流程图如图23所示。设置程序流程图如图24所示: 图23 数字程序流程图 图24 设置程序流程图恢复程序流程图如图25所示。加法程序流程图如图26所示: 图25 恢复程序流程图 图26 加法程序流程图减法程序流程图如图27所示。确认程序流程图如图28所示: 图27 减法程序流程图 图28 确认程序流程图.取消程序流程图如图29所示:.图29 取消程序流程图如上述流程图所示,本系统的程序是分为很多功能小模块,只要完成每个小程序的编写,整个系统的程序也就随之完成。这样做大大减小了编程难度!系统的完整程序见附录B。第四章 软件仿真及硬件调试在组装硬件之前,做足软件的仿真是硬件能够正常工作的保障!为此,我们在设计时,就采用Proteus仿真,这样便于我们在编程时,能够及时的发现程序的不足,及时的修改,使我们编写的程序更加完美。4.1 ProteusProteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年已增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。4.2 软件仿真首先,我们在Proteus里编辑原理图(如图30所示),然后在单片机的属性中导入由在keil软件里编辑的程序生成的HEX文件,即可执行仿真!图30 仿真原理图由于设计要求规定输出为20mA2000mA。因此我们在初始化是就默认初始值为20mA。我们接着单击键盘上的“加”键,设置值加1,输出值也加1的变化。连续单击几次加键,再单击“减”键,也达到我们想要的结果。单击设置键,我们输入0126,即要求输出为126mA的电流,单击确认键,发现输出值也达到了126mA。由于我们选取的取样电阻值为1欧,因此,我们检测的电压值理论上就是输出电流值。如图31所示:图31 Proteus仿真图4.3 硬件调试由于时间有限,我们没有通过先制作PCB板,再来焊接电路的方式进行,因此,我们在直接焊板子的时候,就省略电源电路的部分,这部分可由实验室的电源提供。4.3.1 单片机最小系统调试先查看电源,然后利用示波器测单片机ALE引脚,以晶振六分之一的固定频率输出脉冲,即为正常工作。如果正常,基本上就没问题,就可以下载简单的程序加以验证了。4.3.2 键盘及液晶显示调试为了直观的测试键盘,我们先调试了液晶显示模块,在液显调通后,然后用键盘输入进行调试,看键值是否正确。经测试,键盘所有功能正常,显示器也能正常工作。4.3.3 数模转换与功放电路调试我们直接编写程序,并给定某个确定的数值,看转换结果是否正确。若正确就可以接上功放电路进行功放电路的调试,甚至还可以改变程序中的定值,来看输出是否恒流。由于时间和硬件的原因,这部分只是我们在软件调试上的方法,在实际中没有进行调试。4.3.4 模数转换电路调试对于这部分我们采用电位器输出接到芯片的模拟输入端,将电位器可调的最大电压接到AD芯片上的基准电压,然后将转换结果送到单片机I/O口,利用显示器显示出I/O口的值,旋动电位器,若将电位器调节输出最小电压,则显示0,若调节电位器输出最大电压,则显示4095(该芯片是12位模数转换器),即说明该部分电路正常。由于时间和硬件的原因,这部分只是我们在软件调试上的方法,在实际中没有进行调试。4.3.5 存储器电路调试存储器芯片只要硬件连接不出错,一般是不会出问题的。我们使用的是C总线的串行存储器24C02C,我们只对硬件电路做了检查。毕竟在软件上,我们已经仿真成功。第五章 设计总结经过两个多月的努力,我的毕业设计终于完成了,但是现在回想起来做毕业设计的整个过程,颇有心得,其中有苦也有甜,艰辛的同时又充满乐趣!通过本次毕业设计,没有接受任务以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。下面我对整个毕业设计的过程做一下简单的总结。第一,在选择毕业设计的选题时,我就选择自己比较感兴趣的数字控制方面的,这样做起来动力很大。第二,确定好毕业设计选题后就是找资料了。查资料是做毕业设计的前期准备工作,我们到图书馆去借了相关方面的书籍,同时也在网上大量搜索相关内容。总之,不管通过哪种方式查的资料都是有利用价值的,要一一记录下来以备后用。 第三,综合已有的资料来更透彻的分析本次设计题目。首先,我们要阅读大量的资料,能够是自己对毕业设计课题有更深入的理解,然后基于此,展开自己的设计,第一步要完成的是系统总体方案的设计。这一步是关键,因为以后的工作都是在此基础上做的! 第四,有了研究方向,就要动手实现。为了更好的编写程序,我们选择先利用Proteus仿真。编写源代码的时候是编写一个小模块就进行调试,这样可以避免设计的最后出现太多的错误而乱成一团糟。一步步地做下去之后,你会发现要做出来并不难,只不过每每做一会儿会发现一处错误要修改,就这样在不断的修改调试,再修改再调试。 第五, 软件仿真成功以后,我们才开始写论文和实物电路的焊接,Word虽然是人人都知道的文字编辑软件,但真要用它来写论文,才发现自己懂得的一点点Word知识不够用,还好有网络,能够在线学习Word的使用技巧,以完成论文的编辑和排版。电路的焊接,我们也不敢轻易妄动,毕竟时间有限,并且有些芯片数量有限,烧坏就很麻烦,所以也只能在别人的指导和帮助下一步一步完成,是一个动手学习的过程!我们只有对自己有了更高的要求,才能作为动力不断取得新的成绩!在整个设计过程中,使我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。 致谢四年的读书生活在这个季节即将划上一个句号,而对于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的艰苦跋涉,两个月的精心准备,毕业设计终于到了快完成的时候,心头照例该如释重负,但创作过程中常常出现的辗转反侧和力不从心之感却挥之不去。毕业设计创作的过程并不轻松:各种压力的时时袭扰,知识积累的尚欠火候,致使我一次次埋头于图书馆中,一次次在深夜奋力敲打键盘。第一次花费如此长的时间和如此多的精力,完成一套设计作品,其中的艰辛与困难难以诉说,但曲终幕落后留下的滋味,是值得我一生慢慢品尝的。在这里需要的感谢的人很多,是他们让我这大学四年从知识到人格上有了一个全新的改变。感谢我的指导老师严辉老师,够顺利完成毕业设计,离不开他的悉心指导。他对我的设计从确定题目、修改直到完成,给予了我许多的指点和帮助。感谢他在繁忙的工作之余,挤出时间对设计提出精辟的修改意见。在此,向严老师致以最诚挚的谢意。我也要感谢电子与信息工程学院所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本设计的基础。感谢我的父母,是他们无微不至的关怀、一贯的体谅与支持,使我能在工作和学习上不断前进,他们是我努力工作和积极生活的精神支柱。感谢我的室友和好友们,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。能和你们相遇、相交、相知,是我人生的一大幸事,让我们永远记住曾在一起经历过的欢笑与泪水!让我们一起面对美好的未来,共同为充满希望的前程而继续努力奋斗!同时也感谢安徽建筑工业学院为我提供良好的做毕业设计的环境。 最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论