武汉理工大学学科基础综合课群课设报告-数控直流电流源.doc_第1页
武汉理工大学学科基础综合课群课设报告-数控直流电流源.doc_第2页
武汉理工大学学科基础综合课群课设报告-数控直流电流源.doc_第3页
武汉理工大学学科基础综合课群课设报告-数控直流电流源.doc_第4页
武汉理工大学学科基础综合课群课设报告-数控直流电流源.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学学科基础综合课群课设报告 课程设计任务书学生姓名: 专业班级:通信1104班 指导教师:艾青松 工作单位:信息工程学院 题 目: 数控直流电流源 初始条件: protel软件,电路基础,通信原理基础,模拟电子技术基础要求完成的主要任务: 设计并制作数控直流电流源,输入交流200240v,50hz;输出直流电压10v。要求:1)输出电流范围:200ma2000ma;2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值给定值的1+10 ma;3)具有“+”、“-”步进调整功能,步进10ma;4)改变负载电阻,输出电压在10v以内变化时,要求输出电流变化的绝对值输出电流值的1+10 ma; 5)纹波电流2ma;时间安排:序号阶段内容所需时间1方案设计2天2硬件设计3天3软件设计3天4系统仿真2天系统调试3天答辩1天合 计14天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 目录摘要iabstractii1 绪论12 基础相关理论知识3 2.1 protel3 2.1.1 protel简介3 2.1.2 protel发展3 2.2 at89c524 2.1.1 at89c52工作原理4 2.3 数模转换器5 2.3.1数模转换器转换原理5 2.4 模数转换器7 2.4.1模数转换器转换原理73 数控直流电流源方案设计8 3.1 单片机模块8 3.1.1单片机硬件电路设计8 3.2 a/d模块10 3.2.1 芯片max124110 3.2.2 a/d模块电路10 3.3 d/a模块11 3.4 存储模块12 3.4.1芯片24c02c12 3.4.2存储模块电路12 3.5 显示模块13 3.5.1 1602lcd显示13 3.5.2 lcd显示硬件电路14 3.6 键盘模块15 3.6.1 mm74c92215 3.6.2 键盘电路15 3.7 恒流源模块16 4 方案实现17 5 个人小结196 参考文献20附录 程序代码.21 摘要 随着电子技术的飞速发展,电子设备要工作都需要有电源为其通电。而各种不同的电子设备所需要的供电电源不是统一的。所以,对于数控直流电流源的研究与开发就显得相当重要了。本文介绍一种基于单片机的数控电流源的设计方法,利用按键设置输出电流,单片机将该电流值送入数码管显示,同时d/a,a/d转换器将数字量转换为模拟量后输出,再通过压控恒流电路得到稳定输出的电流。本文提供的数控电流源很高的精度值且电路简单、成本廉价、实用价值和开发价值大的特点。关键词: 数控直流电流源 单片机 按键 数码管 abstract with the rapid development of electronic technology, electronic equipment towork need power for electricity. while the power supply of electronicequipment various need not uniform. so, it is very important for the research and development of nc dc current source.this paper introduces a design method of nc current source based on single chip, using the key to set the output current, the current value is sent tosingle chip digital tube display, while d/a, a/d converter to convert digital signal into analog output, current and a constant current circuit stable outputvoltage controlled by.nc current source with high precision and simple circuit, low cost, practical value and development value characteristics. keywords: nc dc current source scm key digital tube。331. 绪论随着电子技术的发展、数字电路应用领域的扩展,现今社会,产品智能化、数字化已成为人们追求的一种趋势,设备的性能、价格、发展空间等备受人们的关注,尤其对电子设备的精密度和稳定度最为关注。性能好的电子设备,首先离不开稳定的电源,电源稳定度越高,设备和外围条件越优越,那么设备的寿命更长。基于此,人们对数控恒定电流器件的需求越来越迫切。当今社会,数控恒压技术已经很成熟,但是恒流方面特别是数控恒流的技术才刚刚起步且有待发展,高性能的数控恒流器件的开发和应用存在巨大的发展空间。本文正是应社会发展的需求,研制出一种基于单片机的高性能的数控直流恒流源。本数控直流恒流源系统输出电流稳定,输出电流可在20ma2000ma范围内任意设定,不随负载和环境温度变化,并具有很高的精度,输出电流误差范围4ma,因而可实际应用于需要高稳定度小功率直流恒流源的领域。所以本次课程设计的主要内容是介绍一种基于单片机的数控电流源的设计方法,利用按键设置输出电流,单片机将该电流值送入数码管显示,同时d/a,a/d转换器将数字量转换为模拟量后输出,再通过压控恒流电路得到稳定输出的电流。设计并制作数控直流电流源。输入交流200240v,50hz;输出直流电压10v。其原理示意图如下所示。 图1 原理示意图设计并制作数控直流电流源的要求是:1)输出电流范围:200ma2000ma;2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值给定值的1+10 ma;3)具有“+”、“-”步进调整功能,步进10ma;4)改变负载电阻,输出电压在10v以内变化时,要求输出电流变化的绝对值输出电流值的1+10 ma; 5)纹波电流2ma;通过本次课程设计的要达到的主要目的是:1、在实践中对通信原理、微机原理、模拟电子技术基础、数字电子技术基础、电磁场与电磁波等学科基础课的课堂理论知识做进一步巩固;2、锻炼对学科基础课的综合运用能力。2. 基础相关理论知识2.1. protelprotel是altium公司在80年代末推出的eda软件,在电子行业的cad软件中,它当之无愧地排在众多eda软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用protel。2.1.1 protel简介早期的protel主要作为印制板自动布线工具使用,运行在dos环境,对硬件的要求很低,在无硬盘286机的1m内存下就能运行,但它的功能也较少,只有电路原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的protel已发展到dxp 2004,是个庞大的eda软件,完全安装有200多m,它工作在windows95环境下,是个完整的板级全方位电子设计系统,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有client/server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如orcad,pspice,excel等,其多层印制线路板的自动布线可实现高密度pcb的100%布通率。在国内protel软件较易买到,有关protel软件和使用说明的书也有很多,这为它的普及提供了基础。想更多地了解protel的软件功能或者下载protel99的试用版,可以在internet上。2.1.2.protel发展2005年年底,protel软件的原厂商altium公司推出了protel系列的最新高端版本altium designer 6.0。altium designer 6.0,它是完全一体化电子产品开发系统的一个新版本,也是业界第一款也是唯一一种完整的板级设计解决方案。altium designer 是业界首例将设计流程、集成化pcb 设计、可编程器件(如fpga)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行pcb和fpga设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。这款最新高端版本altium designer 6.除了全面继承包括99se,protel2004在内的先前一系列版本的功能和优点以外,还增加了许多改进和很多高端功能。altium designer 6.0拓宽了板级设计的传统界限,全面集成了fpga设计功能和sopc设计实现功能,从而允许工程师能将系统设计中的fpga与pcb设计以及嵌入式设计集成在一起。2.2. at89c52at89c52是一个低电压,高性能cmos8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,at89c52单片机在电子行业中有着广泛的应用。2.1.1. at89c52工作原理at89c52为8 位通用微处理器,采用工业标准的c51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和vss(20 脚)为供电端口,分别接+5v电源的正负端。p0p3 为可编程通用i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为n1 功能控制端口,分别与n1的相应功能管脚相连接,13 脚定义为ir输入端,10 脚和11脚定义为i2c总线控制端口,分别连接n1的sdas(18脚)和scls(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板cpu的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。p0 口是一组8 位漏极开路型双向i/o 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个ttl逻辑门电路,对端口p0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。p1 是一个带内部上拉电阻的8 位双向i/o 口, p1 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。与at89c51 不同之处是,p1.0 和p1.1 还可分别作为定时/计数器2 的外部计数输入(p1.0/t2)和输入(p1.1/t2ex)。p2 是一个带有内部上拉电阻的8 位双向i/o 口,p2 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口p2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行movx dptr 指令)时,p2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行movxri 指令)时,p2 口输出p2锁存器的内容。p3 口是一组带有内部上拉电阻的8 位双向i/o 口。p3 口输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对p3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3 口将用上拉电阻输出电流(iil)。p3 口除了作为一般的i/o 口线外,更重要的用途是它的第二功能。 test复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ale 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale 脉冲。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen信。2.3. 数模转换器数模转换器,又称d/a转换器,简称dac,它是把数字量转变成模拟的器件。d/a转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即a/d转换器,简称adc,它是把连续的模拟信号转变为离散的数字信号的器件。2.3.1.数模转换器转换原理数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的位权。为了将数字量转换成模拟量,必须将每1位的代码按其位权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字模拟转换。这就是组成d/a转换器的基本指导思想。图1表示了4位二进制数字量与经过d/a转换后输出的电压模拟量之间的对应关系。 由图1还可看出,两个相邻数码转换出的电压值是不连续的,两者的电压差由最低码位代表的位权值决定。它是信息所能分辨的最小量,也就是我们所说的用1lsb(least significant bit)表示。对应于最大输入数字量的最大电压输出值(绝对值),用fsr(full scale range)表示。d/a转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压几部分组成。数字量以串行或并行方式输入、存储于数码寄存器中,数字寄存器输出的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量对应的模拟量。 图2 电压模式输出 2.4. 模数转换器模数转换器即a/d转换器,或简称adc,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。2.4.1.模数转换器转换原理模拟数字转换器的分辨率是指,对于允许范围内 的模拟信号,它能输出离散数字信号值的个数。这些信号值通常用二进制数来存储,因此分辨率经常用比特作为单位,且这些离散值的个数是2的幂指数。例如,一个具有8位分辨率的模拟数字转换器可以将模拟信号编码成256个不同的离散值(因为28= 256),从0到255(即无符号整数)或从-128到127(即带符号整数),至于使用哪一种,则取决于具体的应用。模数转换器是将模拟信号转换成数字信号的系统,是一个滤波、采样保持和编码的过程。模拟信号经带限滤波,采样保持电路,变为阶梯形状信号,然后通过编码器,使得阶梯状信号中的各个电平变为二进制码。3. 数控直流电流源方案设计数控直流电流源主要由单片机模块,a/d模块,d/a模块,存储模块,显示模块,键盘控制模块,恒流电流模块构成。以下内容给出了各模块硬件电路设计原理图。3.1. 单片机模块我选择的是atmel公司的at89c52单片机,它是一种低功耗、高性能cmos8位微控制器,具有8kisp(在系统可编程)flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位cpu和在系统可编程flash,使得at89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。3.1.1. 单片机硬件电路设计单片机系统是整个数控系统的核心部分,它主要用于键盘按键管理、数据处理、实时采样分析系统参数及对各部分反馈环节进行整体调整。主要包括at89c52单片机、振荡电路、复位电路等。电路如下图3所示 图3 单片机控制电路(1)at89c52单片机的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。虽然对外接电容没有严格要求,但电容的大小会影响振荡频率、振荡器的稳定性和起振的速度。振荡器的这些特性对弹片机的应用影响很大,因此在设计印刷电路板时,应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。3.2.a/d模块3.2.1.芯片max1241max1241是maxim公司推出的一种串行a/d转换器,具有低功耗、高精度、高速度、体积小、接口简单等优点。max1241是一种单通道12位逐次逼近型串行a/d转换器,功耗低,转换速度快。它使用逐次逼近技术完成a/d转换过程。最大非线性误差小于1lsb,转换时间9s。采用三线式串行接口,内置快速采样/保持电路。max1241内部结构(如图3)和管脚定义(如图4):图4 max1241内部结构3.2.2. a/d模块电路max1241的vdd供电范围为2.75.25v,为减少来自电源的干扰,可在vdd引脚配置4.7f和0.1f的滤波电容。由于max1241内部没有参考电源提供,需外接参考电压,只需将vref接在4.7f电解电容即可;特殊情况下,让shdn悬空,此时,即可在ref引脚输入参考电压,其范围为1.0vdd.ref引脚外接电解电容不宜选择过大,电容越大,max1241由待机模式到正常工作模式的唤醒时间将越长。max1241的三根数据线,时钟输入端、片选控制端和数据输出端分别由at89c52的p1.0、p1.1和p1.2控制。max1241芯片内部具有采样/保持电路,无需外部保持电容和采样/保持电路。max1241的控制线sclk、cs、dout可与at89c52的通用i/o口直接相连,无需任何接口变换,模拟电压经前级放大至0vref范围后,由ain引脚输入。其中max1241,所用到的+2.5v基准电压,由lm336精密的2.5v并联的稳压二极管提供。其外围电路如图5所示 图5 max1241外围电路3.3. d/a模块有前面的计算知,模拟量输出通道我选用了ad公司的单通道12位电压输出d/a转换器,单电源工作,电压范围为2.7v5.5v,时钟频率最高可达30mhz。片内高精度输出放大器提供满电源幅度输出,其基准来自电源输入端,可以提供较大的动态输出范围,它利用能与标准的接口标准兼容的3线串行接口与微处理器交换数据,接口简单。工作过程中,将sync置为低电平时候启动写序列,在这个阶段,sync线至少要保持低电平一直到sclk的第16个下降沿,dac在这第16个下降沿被更新,如果在这之前sync被拉为高电平,就意味着写序列中断,此时移位寄存器复位。 决定控制器件处于哪种工作方式,最后12位是数据位,它们代表着da转换器即将输出的电压值。在第16个时钟下降沿,最后一位数据随时钟输入并按照给定内容执行已编制好的功能。其外围电路如下图6所示: 图6 ad5320外围电路3.4. 存储模块本系统的外扩存储器主要是用来记忆用户数据,因此容量不需要很大,一般的小型存储器芯片就可以。然而从方便系统扩展来和价格来考虑,我选用了eeprom24c02,它是采用2c接口的一种常用2kbit(2568bit)的存储器。3.4.1.芯片24c02c24c02c是一种串行存储器,其容量2kbit。a0、a1和a2引脚用于多器件工作。将这些输入引脚上的电平与从器件地址中的相应位作比较,如果比较结果为真,则该器件被选中。sda串行数据引脚为双向引脚,用于把地址和数据输入/输出器件。该引脚为漏极开路。因此,sda总线要求在该引脚与vcc之间接入上拉电阻。对于正常的数据传输,只允许在scl为低电平期间改变sda电平。而sda电平在scl高电平期间若发生变化,表明起始和停止条件产生。wp写保护引脚必须连接到vss或者vcc。如果连接到vss,写操作使能。如果连接到vcc,写操作被禁止,但读操作不受影响。vcc电源输入引脚,标称条件下在vcc低于3.8v时,则vcc阈值检测电路会禁止内部的擦写逻辑。3.4.2.存储模块电路将a0、a1、a2全部接地,即决定了该模块的地址为0xa0,24c02c的外围电路如图7所示: 图7 24c02c外围电路3.5. 显示模块3.5.1. 1602lcd显示液晶显示器由于体积小、质量轻、功耗低等特点,已成为各种便携式电子信息产品的理想显示器。液晶显示器通常可分为两大类,一是点阵型,二是字符型。一般的字符型液晶只有两行,面积较小,能显示字符和一些很简单的图形;而点阵型液晶通常面积较大,可以显示图形和更多的字符。为了方便设计,同时又能满足设计的需要及尽可能降低设计成本。因此,我选择1602lcd液晶显示器。目前常用16*1,16*2,20*2和40*2行等的模块。针对此设计,我选用16*2模块。1602引脚功能说明: 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。3.5.2. lcd显示硬件电路1602lcd的读写控制引脚是第5引脚r/w;在本次设计中,为了降低程序设计,我只用lcd作显示器,在此只对其写操作,所以设计时直接将r/w接地。其电路原理图如图8所示: 图8 lcd电路3.6. 键盘模块键盘的作用是对单片机输入数据,设计中要求能使电流进行“+”,“-”及电流值的设定,所以采用键盘为44的矩阵键盘,用mm74c922芯片进行识别按键后送at89c52的并行口p2,p2.0p2.3作为键盘输入口。传统的44矩阵键盘识别处理程序的编写相对烦琐。所以采用mm74c922芯片来将44矩阵键盘的键值转换成4位二进制码以简化程序的编写。3.6.1. mm74c922mm74c922是一款集成了键盘防抖动技术和按键检测功能的16位按键的译码芯片。由cmos工艺技术制造,工作电压3-15v,“二键锁定”功能,编码输出为三态输出,可直接与微处理器数据总线相连,内部振荡器能完成44矩阵键盘扫描,亦可用外部振荡器使键盘操作与其他处理同步,通过外接电容避免开关发生前、后沿弹跳所需的延时。有按键按下时数据有效线变高,同时封锁其他键,片内锁存器将保持键盘矩阵的4位编码,可由微处理器读出。其引脚图如图9所示:图9mm74c9223.6.2. 键盘电路由x1x4,y1y4的连接方式,即可确定每一个按键的编码。如图10所示,从键盘的左下角开始,依次编码为0、1、2e、f。我将a作为设置键,b作为恢复键,c作为加法键,d作为减法键,e作为确认键,f作为取消键。再加上09刚好16个按键。通过da信号触发中断,由于有按键时,da为高电平,而单片机的中断信号为低电平,故需在da信号引脚上接上一个非门,再与单片机的int0引脚相连。 图10 键盘电路3.7. 恒流源模块用“运放+大功率三极管”的结构构成恒流源。大功率三极管选用tip122型号,它是应用范围广、功率小、频率低的达林顿,npn极性型,特征频率:1000(mhz),集电极允许电流:8(a),集电极最大允许耗散功率:48(w)。其性能满足本设计要求,同时可以通过功率管的不同容量来满足不同的应用要求。采用常用的大功率电阻作为采样电阻,输出电流波动比较大,而康锰铜丝是一种温度特性佳的阻性元件,选其作为取样电阻,其两端电压正比于流过的电流,因此该电压的反馈就是负载电流的反馈。其原理如图11所示: 图11 恒流源电路 4. 方案实现在组装硬件之前,做足软件的仿真是硬件能够正常工作的保障!为此,我在设计时,就采用proteus仿真,这样便于我在编程时,能够及时的发现程序的不足,及时的修改,使我编写的程序更加完美。首先,我在proteus里编辑原理图(如图22所示),然后在单片机的属性中导入由在keil软件里编辑的程序生成的hex文件,即可执行仿真! 图12 仿真原理图由于设计要求规定输出为200ma2000ma。因此我在初始化是就默认初始值为200ma。我接着单击键盘上的“加”键,设置值加1,输出值也加1的变化。连续单击几次加键,再单击“减”键,也达到我想要的结果。单击设置键,我输入0200,即要求输出为200ma的电流,单击确认键,发现输出值也达到了200ma。由于我选取的取样电阻值为1欧,因此,我检测的电压值理论上就是输出电流值。如图13所示: 图13 proteus仿真结果图 5.个人小结 通过此次学科基础课群综合训练课程设计,我的理论知识和实际操作能力都得到了很大的提高。我做的题目是数控直流电流源的设计,尽管这个题目只是电力电子装置中很小的一部分,但我还是从中学到了不少。对于以前电力电子装置的一些疑惑,在这次实践中都迎刃而解了,并且更深切地体会到了一些应用软件在实际工作中的重要作用。而且此次程设计将我们所学的书本只是串起来,使我对这一门课有了一个整体上的了解。像这种设计性的课程,它是一个从无到有的过程,尽管其过程是坎坷的,但是我体会到了成功之后的喜悦。这次课程设计使我知道理论和实际的结合十分重要,尽管在理论上行的通,也许在实际操作中会就会出现许多困难,但如果通过团队和个人的努力解决了所遇到的困难,会更加激我对电路设计及仿真的兴趣。通过这次设计,我学到了很多书本上不曾学到的东西。这次的学科基础课群综合训练课程设计是一次综合性的实验设计,它将它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。通过本次设计我得到了很多收获。首先,明确了单片机的构造以及工作原理单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识。其次掌握了c语言的编写程序,能够熟练使用protutes和keil的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。最后感谢老师和同学们的大力支持和帮助。6. 参考文献1 康华光. 电子技术基础模拟部分.高等教育出版社. 20052 吴友宇. 模拟电子技术基础.清华大学出版社. 20093 李群芳. 单片微型计算机与接口技术.电子工业出版社. 20054 樊昌信. 通信原理(第五版).北京:国防工业出版社,2005.5 谢自美. 电子线路设计实验测试.武汉:华中科技大学出版社6 周雪. 模拟电子技术m .西安:西安电子科技大学出版社.2004附录 程序代码: 系统完整程序如下:#include#include #define uint unsigned int#define uchar unsigned char sbit lcdrs=p24;sbit lcde=p25; sbit keyda=p32;sbit adcs=p10;sbit adsclk=p11;sbit adout=p12;sbit dasync=p13;sbit dasclk=p14;sbit dadin=p15;sbit sda=p16;sbit scl=p17;uchar code dis1 = input ma ;uchar code dis2 = output ma ;uchar number4,number14;uint i,n,s,m; /n为键入允许标志控制,s为键入次数计数uint adata1,data2;/延时程序void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/作用:启动iic总线void start() sda=1;_nop_();_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();sda=0;_nop_();_nop_();_nop_();_nop_();_nop_();scl=0;/停止iic总线void stop() sda=0;_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();sda=1;_nop_();_nop_();_nop_();_nop_();_nop_();scl=0;/应答iic总线void ack()sda=0;_nop_();_nop_();_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();scl=0;_nop_();_nop_();/非应答iic总线void noack()sda=1;_nop_();_nop_();_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();scl=0;_nop_();_nop_();/发送一个直字节void send(uchar data)uchar bitcounter=8;uchar temp;do temp=data;scl=0;_nop_();_nop_();_nop_();_nop_();_nop_();if(temp&0x80)=0x80)sda=1;elsesda=0;scl=1;temp=data1;data=temp;bitcounter-;while(bitcounter);scl=0;/读一个字节并返回uchar read(void)uchar temp=0;uchar temp1=0;uchar bitcounter=8;sda=1;doscl=0;_nop_();_nop_();_nop_();_nop_();_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();if(sda)temp=temp|0x01;elsetemp=temp&0xfe;if(bitcounter-1)temp1=temp1;temp=temp1;bitcounter-;while(bitcounter);return(temp);/写入数据void wrtorom(uchar data,uchar address,uchar num)uchar j;uchar *pdata;pdata=data;for(j=0;jnum;j+)start();send(0xa0);ack();send(address+j); /写入存储地址ack();send(*(pdata+j);/写数据ack();stop();delay(10);/读出数据void rdfromrom(uchar data,uchar address,uchar num)uchar j;uchar *pdata;pdata=data;for(j=0;jnum;j+)start();/写入芯片地址send(0xa0);ack();send(address+j);/写入存储地址?ack();start();send(0xa1);/读入地址ack();*(pdata+j)=read();/读数据scl=0;noack();stop();/ad转换uint ad_conver()uint voltage_temp=0;uchar ucloop=12;adcs=1;adsclk=0;adcs=0;while(adout=0);/eoc信号为高表示转换结束adsclk=1;adsclk=0;while(ucloop-)adsclk=1;/上升沿数据稳定并读出voltage_temp=1;if(adout=1)voltage_temp+=1;adsclk=0;adcs=1;return voltage_temp;/da转换void da_conver(uint dignum)uint dig=0;uchar k=0;dasync=1;_nop_();_nop_();dasync=0;for(k=0;k16;k+)dasclk=1;dig=dignum&0x8000;if(dig) dadin=1;else dadin=0;dasclk=0;_nop_();_nop_();dignum=1;dasync=1;_nop_();_nop_();/显示器写数据void write_date(uchar date)lcdrs=1;p0=date;delay(1);lcde=1;delay(1);/e 下降沿-执行指令lcde=0;/显示器写程序void write_com(uchar com) lcdrs=0;p0=com;delay(1);lcde=1;delay(1);lcde=0;/数据显示void xianshi(uchar z)int j;write_com(0x0c);/d2=1:开显示;d1=0:不显示光标;d0=0:光标不闪烁if(z=1)write_com(0x80+0x09);for(j=0;j4;j+)write_date(numberj+0x30);if(z=2)write_com(0x80+0x49);for(j=0;j4;j+)write_date(number1j+0x30);write_date(m);write_date(a);write_date( );/数据处理void chuli()float data3=0.0;data3=data2/2500.0*4095;adata1=(int)data3;adata1=adata1+m;da_conver(adata1);delay(200);adata1=ad_conver();data3=adata1/4095.0;data3=data3*2500;adata1=(uint)data3;number10=(adata1/1000)%10;number11=(adata1/100)%10;number12=(adata1/10)%10;number13=(adata1/1)%10;xianshi(2);if(adata1data2) m-;if(adata1=data2) m=m;/lcd1602初

温馨提示

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

最新文档

评论

0/150

提交评论