毕业设计(论文)-直流电机测控仪设计.doc_第1页
毕业设计(论文)-直流电机测控仪设计.doc_第2页
毕业设计(论文)-直流电机测控仪设计.doc_第3页
毕业设计(论文)-直流电机测控仪设计.doc_第4页
毕业设计(论文)-直流电机测控仪设计.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

直流电机测控仪1 绪论1.1 背景目前以高速集成硬件描述语言(VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA 可以完成所需要的逻辑功能。FPGA 一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA 上完成的,然后将设计转移到一个类似于ASIC 的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。1.2 FPGA 发展前景 FPGA 技术正处于高速发展时期,新型芯片的规模越来越大,成本也越来越低,低端的FPGA 已逐步取代了传统的数字元件,高端的FPGA 不断在争夺ASIC的市场份额。先进的ASIC 生产工艺已经被用于FPGA 的生产,越来越丰富的处理器内核被嵌入到高端的FPGA 芯片中,基于FPGA 的开发成为一项系统级设计工程。随着半导体制造工艺的不同提高,FPGA 的集成度将不断提高,制造成直流电机控制仪本将不断降低,其作为替代ASIC 来实现电子系统的前景将日趋光明。(1) 大容量、低电压、低功耗FPGA大容量FPGA 是市场发展的焦点。FPGA 产业中的两大霸主:Altera 和Xilinx在超大容量FPGA 上展开了激烈的竞争。2007 年Altera 推出了65nm 工艺的StratixIII 系列芯片,其容量为67200 个L E (Logic Element,逻辑单元),Xilinx推出的65nm 工艺的VitexVI 系列芯片,其容量为33792 个Slices (一个Slices 约等于2 个L E)。采用深亚微米(DSM)的半导体工艺后,器件在性能提高的同时,价格也在逐步降低。由于便携式应用产品的发展,对FPGA 的低电压、低功耗的要日益迫切。因此,无论那个厂家、哪种类型的产品,都在瞄准这个方向而努力。(2) 系统级高密度FPGA随着生产规模的提高,产品应用成本的下降,FPGA 的应用已经不是过去的仅仅适用于系统接口部件的现场集成,而是将它灵活地应用于系统级(包括其核心功能芯片)设计之中。在这样的背景下,国际主要FPGA 厂家在系统级高密度FPGA 的技术发展上,主要强调了两个方面:FPGA 的IP( Intellec2tual Property ,知识产权)硬核和IP 软核。当前具有IP 内核的系统级FPGA 的开发主要体现在两个方面:一方面是FPGA 厂商将IP 硬核(指完成版图设计的功能单元模块)嵌入到FPGA 器件中,另一方面是大力扩充优化的IP 软核(指利用HDL 语言设计并经过综合验证的功能单元模块),用户可以直接利用这些预定义的、经过测试和验证的IP 核资源,有效地完成复杂的片上系统设计。(3) FPGA 和ASIC 出现相互融合虽然标准逻辑ASIC 芯片尺寸小、功能强、功耗低,但其设计复杂,并且有批量要求。FPGA 价格较低廉,能在现场进行编程,但它们体积大、能力有限,而且功耗比ASIC 大。正因如此,FPGA 和ASIC 正在互相融合,取长补短。随着一些ASIC 制造商提供具有可编程逻辑的标准单元,FPGA 制造商重新对标准逻辑单元发生兴趣。(4) 动态可重构FPGA动态可重构FPGA 是指在一定条件下芯片不仅具有在系统重新配置电路功能的特性,而且还具有在系统动态重构电路逻辑的能力。对于数字时序逻辑系统,动态可重构FPGA 的意义在于其时序逻辑的发生不是通过调用芯片内不同区域、直流电机控制仪不同逻辑资源来组合而成,而是通过对FPGA 进行局部的或全局的芯片逻辑的动态重构而实现的。动态可重构FPGA 在器件编程结构上具有专门的特征,其内部逻辑块和内部连线的改变,可以通过读取不同的SRAM 中的数据来直接实现这样的逻辑重构,时间往往在纳秒级,有助于实现FPGA 系统逻辑功能的动态构。1.3 课程设计任务在课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板直流电机与步进电机模块等资源,实现一个直流电机测控仪。基本技能掌握:a 掌握时钟作用下频率的控制;b 掌握十进制计数器的设计;c 掌握16位的锁存器的设计;d 掌握显示译码功能的设计;基本功能要求a 利用旋转电位器实现转速的控制;b 利用PWM信号实现转速的控制;c 利用8位动态七段码管显示实现转速的显示;扩展功能选择性要求a 利用44键盘阵列实现键盘转速的控制;b 利用16*16点阵显示实现转速级别的显示。2 系统设计VHDL是超高速集成电路硬件描述语言的缩写,它诞生于 1982 年,1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。此次课程设计的项目是利用模块化思想将整个设计分为时钟控制信号模块,十进制计数器模块,键盘扫描与16*16点阵及数码管显示模块、锁存器模块、脉冲宽度调制(PWM)模块,彩色LED及报警控制模块,语音模块以达到对直流电机的控制和速度与档数的显示。2.1 总体设计直流电机测控仪总体设计硬件由图2.1所示,FPGA为Altera公司的EP2C35系列,输入设备有时钟、4*4矩阵键盘、霍尔器件。时钟采用1MHZ,4*4矩阵键盘给FPGA输入一个4位数组信号,霍尔器件输入计数脉冲。输出设备有直流电机、8位7段字符LED数码管、16*16点阵LED,3 个彩色LED ,扬声器,警报灯。直流电机可采用直接由旋钮控制转速或者PWM控制转速,8位7段字符LED数码管显示每一分钟的转速,16*16点阵LED显示直流电机速度级别。3 个彩色LED 显示当前速度安全状况,扬声器为当矩阵键盘按下输入一个值时的声音,警报灯显示当超过一定档次开始闪烁。FPGA霍尔器件4*4矩阵键盘3个彩色LED扬声器警报灯时 钟16*16点阵数码管直流电机 图2.1 总体设计框架图2.2 直流电机与霍尔器件驱动 将直流电源通过电刷接通电枢绕组,使电枢导体有电流流过, 由于电磁作用,这样电枢导体将会产生磁场。同时产生的磁场与主磁极的的磁场产生电磁力,这个电磁力作用于转子,使转子以一定的速度开始旋转,这样电机就开始工作。图2.2 直流电机结构图为了能够测定出电机在单位时间内转子旋转了多少个周期,我们在电机的外部电路中加入了一个开关型的霍尔器件,同时在电子转子上的转盘上加入了一个能够使霍尔原件产生输出的带有磁场的磁钢片。当电机旋转时,带动转盘是的磁钢片一起旋转,当磁钢片旋转到霍尔器件的上方时,可以导致霍尔器件的输出端高电平变为低电平。当磁钢片转过霍尔器件上方后,霍尔器件的输出端又恢复高电平输出。这样电机每旋转一周,则会使霍尔器件的输出端产生一个低脉冲,我们就可以通过检测单位时间内霍尔器件输出端低脉冲的个数来推算出直流电机在单位时间内的转速。直流电机和开关型霍尔器件的电路原理图如下图2.3所示:图2.3 直流电机、霍尔器件电路图图2.3直流电机、霍尔器件电路图直流电机驱动有两种方式,其一是可以由模拟电平来驱动,把电路图上4与3短接,可以旋转实验箱左边的旋钮,调节旋钮的可以控制速度;其二是通过PWM控制,把电路图的6与5短接,PWM信号高电位选通三极管,让直流电机转动,不过为了让直流电机获得较大的转速,同样要把电机左边的旋钮调到比较大的位置。2.3 矩阵键盘驱动对键盘的电位扫描,就可以确定当前的键有没有被按下。单个按键电路如图2.4所示,在按键没有被按下时,在判断电位点可以获取高电位,在键被按下时,在判断电位为低电位,这样可以通过判断点电位的高低即可确定按键有没有被按下。图2.4:单个按键电路图4*4的键盘与FPGA连接图如下图2.5所示,扫描键盘由FPGA的8个控制端口确定,控制行端口设置为buffer模式,控制列端口设置为in模式,扫描键盘的方法为先给第一行键盘为低电平,其余行列为高电平,读取纵列的电位值,如果没键被按下,在电位判断端口获取的为高电位,如果有键按下,电位判断点的电平不全为零,由电位值的第几位为零就可以确定当前行那个键被按下,依次对四行键盘扫描,扫描结束输出4位数组的信号,以告诉那个键被按下。图2.5 4*4矩阵键盘电路图2.4 8位七段数码管的驱动七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图2.6所示。高点平点亮数码管相应的数码段。图2.6 静态七段数码管图2.7 8位七段数码管的驱动如图2.7 的8位七段数码管的连接,由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。2.5 16*16点阵LED驱动单个的LED的电路如下图2.8所示,对于单个LED的电路图当Rn输入一个高电平,同时Cn输入一个低电平时,电路形成一个回路,LED发光。也就是LED点阵对应的这个点被点亮。 图2.8 单个LED电路图此次设计要完成速度级别(0到15)在点阵LED上的显示, 16*16点阵LED扫描的工作原理与8位扫描数码管类似,只是显示的方式与结果不一样而已。16*16点阵由此256个LED通过排列组合而形成16行*16列的一个矩阵式的LED阵列。图2.9 16*16点阵硬件图16*16点阵LED驱动时,依次选通LED点阵行端口,每次只能选通一个端口(Cn),字符译码的第N列结果在列端口(Rn)输入,通过高速依次点亮led点阵就可看到led点阵上显示的数字。 图2.10 16*16点阵电路图2.6 外加扩充性硬件驱动 2.6.1 扬声器的驱动图2.11 扬声器硬件图此次设计产生的声音由1KHZ 的频率驱动,蜂鸣器的叫声每隔6S的时间循环发生同一音调,而且通过与矩阵键盘相连,当输出四位的键值时蜂鸣器发出音调不同的声音来响应矩阵键值。2.6.2 彩色LED驱动设计当中采用了红、绿、蓝3 个彩色LED 显示速度级别,小于2000r/m 时点亮绿LED,高于4000r/min 时点亮红LED,介于2000r/m 与4000r/m 时点亮蓝色LED。3 程序设计3.1 总体程序设计思路程序总体设计分为时钟控制信号模块、十进制计数模块、显示模块、pwm控制模块、十六位锁存模块、报警模块、彩色led及语音控制模块。设计思路为十进制计数器对霍尔器件的脉冲数计数,时钟控制在到了六秒时将计数值锁存到16位锁存器,显示模块的8位七段数码管显示锁存器所锁存的值,同时键盘模块送出键盘所按得键值,由点阵LED显示数值,同时键值被送至语音模块进行发声。3.2 时钟控制信号模块设计时钟控制信号中要为下级锁存模块提供锁存控制型号,同时为计数模块提使能和清零信号,为蜂鸣器提供1KHZ的时钟。将频率为1MHz的输入脉冲信号进行分频得到频率为1Hz的脉冲信号和频率为1kHz的脉冲信号,设计当中由Cnttemp对1MHZ的上升缘计数来产生1HZ的信号(Cnttemp5000送出低电平),Count对秒信号计数,锁存控制信号在第六秒结束时送出,清零信号在第7秒送出,所以要先产生秒脉冲。如图3.1所示:Clk1hz=1Clk1hz=1Cnttemp50000Cnttemp=0Cnttemp+1Cnttemp当前计数是否到了99999 1MHZ的时钟Count与6比较 是 否Enal=0Clr=1Load=0Enal=0Clr=0Load=1Enal=1Clr=0Load=0 小于 等于 大于 输出图3.1 时钟控制信号流程图注:Enal为输出控制计数器的使能信号。Clr为输出控制计数器的清零信号。Load为输出控制锁存器的锁存信号。生成的元件符号如下图:图3.2 时钟控制模块元件图3.3 十进制计数器模块设计设计当中要显示当前直流电机的转速,因而要4位十进制的计数器,对转速脉冲计数。设计当中只需要设计一位十进制的计数器,设计当中特别注意对进位脉冲的处理。设计流程如下:Count=”1001”Clr=0ena=1计数脉冲Coun=“0000”Count=count+1 是 是 否输出计数值输出进位脉冲图3.3 十进制计数器程序设计流程图注:CLR为外部输入的清零信号。 ENA为外部输入的计数使能信号。十进制计数器对计数脉冲计数,当计数值到了9时,计数值重新到零,同时在归零的同时输出进位脉冲。生成的元件符号如下图:图3.4 计数器模块元件图3.4显示模块设计 显示模块分为四部分,分别为矩阵键盘,8位七段数码管,16*16点阵,七段码管。PWM控制直流电机是通过扫描键盘的按键来控制方波的占空比,所按得键值越来,方波的占空比越大,最高可达15/16,最低为0。键盘扫描输出为一个4为的数组。键盘扫描的实现过程如下:对于44键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在16*16点阵显示模块显示。8位七段数码管用来显示直流电机的速度,用位选Sa,Sb,Sc决定哪几位亮,在设计中以000,100,010,110使数码管的低四位显示,高四位关闭,使用静态扫描方式显示,每当矩阵键盘的键值放生变化时直流电机的转速也变化,从而通过传感器来传送速度的变化,由于硬件以及电路的传输等原因,数码管要经过一分钟的延时才能显示键值发生变化后电机转速的变化。点阵是用来显示直流电机速度的档数,每当矩阵键盘的键值发生变化时直流电机的速度都发生变化,从而每次的速度都不是一样的,在不同的档数上直流电机的转数有很大的变化,由于点阵和8位七段数码管在硬件上的连接冲突,导致点阵不能正常显示,故在显示0到9,A到F时,全部用数字显示,并且用点阵显示数字的个位数,用七段码管显示数字的十位数字,而对8位七段码管的数值不产生任何影响。七段码管是可以显示0到9,A到F的,在这里让他显示0与1,作为点阵显示的数字的高位与点阵遥相呼应,一起构成显示模块。生成的元件符号图:图3.5 显示模块元件图矩阵键盘大体流程如下:时钟1MHZ输入Count+1Count=0Count=2扫描第三行Count=1扫描第二行Count=3Count=3扫描第四行Count=0扫描第一行 是 否判断按键输出相应键值判断按键输出相应键值图3.6 键盘扫描流程图3.5 锁存器模块设计16位锁存模块设计较为简单,只有在控制信号为高电平时锁存当前输入的信号值,在低电平时保持锁存被锁存的输入信号。 Load=1 DIN=DINDIN=IN 是 否OUT=DIN图3.7 16位锁存器设计流程注:IN为16位输入信号,OUT为16位输出信号,LOAD为输入锁存信号。信号DIN对IN信号进行保存,只有在LOAD=1时才把IN信号保存到DIN,DIN再传递给OUT。生成的元件符号图:图3.8 锁存器模块元件图3.6 PWM控制信号模块设计脉冲宽度调制pwm(Pulse Width Modulation),就是指保持开关周期T不变,调节开关导通时间t队脉冲的宽度进行调制的技术。pwm控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术等领域最广泛应用的控制方式。PWM控制信号为驱动直流电机转速的使能信号,pwm控制由四个输入信号控制pwm的占空比,本设计当中最高为15/16,由控制信号”1111”获得,最低为0,由控制信号”0000”获得。流程如下:时钟1MHZCount=0Count=16000是PWM=1PWM=0Count+1;datatcoun=datain*1000否输出pwm控制信号 图3.9 PWM控制流程图注:DATAIN为输入数据大小COUNT对时钟从0到16000循环计数,当COUNT=0时把输出电平置为高电平,COUNT=输入值*1000时把输出电平置为低电平,这样就可以通过外部输入控制占空比,从而控制直流电机的转速。生成的元件符号图:图3.10 pwm模块元件图v3.7 彩色LED 及报警控制模块驱动设计此模块为自己添加的设计模块,考虑到直流电机的转速与档数,将其划分为高、中、低三个等次,分别用来显示当前转速的程度以方便参考和应用,在这里用红、绿、蓝三个彩色LED 显示当前的速度属于哪个安全程度。绿色表示安全,红色表示危险,黄色居中,当档数从0一直变化到3时LED灯亮绿色,当档数从4变化到9时亮黄灯,当档数从10变化到15时亮红灯。 在设计中把大于9档的转速设置为警戒点,用12位的LED灯的D1来显示,当超过时就会亮,一直显示,提醒已经处于危险状态了,当小于9档时会一直处于熄灭状态。同时把响铃装置也同样设置为12位LED的D2来显示,与D1一样,但是当超过9档时就会闪烁,闪亮的间隔为每隔1S就亮,小于9档时会一直亮。生成的元件符号图:图3.11 彩色LED及报警模块元件图3.8 语音模块设计语音模块是用来发音的利用蜂鸣器,通过四位的键值直接输出到语音模块,然后在输出,每一个确定的按键值都有一个音调,每个按键值的音调不同,可以用来提示输入值已经响应等相应的功能,在此模块中要给定一个信号时钟脉冲而且每个键值每隔7S循环响应输出音调,直到新的键值到来改变现有的键值。生成的元件符号图:图3.12 语音模块元件图4 遇到的问题与心得体会4.1 遇到的问题及解决方案 PWM控制方式下,直流电机速度太低。解决方法:初始在用时,发现只有用旋律控制时,直流电机的速度才能提升,在PWM控制时,速度很低。我最初以为是PWM的周期太长,后发现将周期缩短依然无济于事,哪怕PWM信号占空比到了1,直流电机的速度依然非常低。后来查阅了电路图发现,PWM信号只是在高电位选通三极管来驱动直流电机,而决定直流电机所获得的电压由电机左边的旋钮控制,因此只需要把旋钮调大即可提高PWM控制方式下的直流电机的转速。8位7段数码管与16*16 点阵LED 部分引脚连接有冲突。解决方法:8 位7 段数码管的a、b、c、d、e、f、g 的连接脚与16*16 点阵的C0、C1、C2、C3、C4、C5、C6、C7 连接在FPGA 的同一引脚位置,如果对点阵LED 点亮时会影响到数码管的现实,同样数码管显示也会对点阵LED 干扰,为解决此现象,可在此基础上引用七段码管来实现0到F的高位的显示,也就是说把0到F的个位数字显示在点阵上,把0到F的十位数字显示在七段码管上,这样就可以避免因为引脚管脚定义的冲突而引起的干扰;另外还有一种方法就是在不同的时间段上分别对数码管和点阵LED显示,但是这种方法虽然解决了硬件的连接缺陷,但也造成了第一位的数码管无法显示。 通过矩阵键盘的键值使语音模块发声。解决方法:通过矩阵键盘的键值的四位输出来影响语音模块的发音声调,也就是说在与其他模块的同步作用和键值作用下通过语音模块内部的信号作用下来设置其音调发声规律,采用CASE语句来完成。语音模块发不出声音解决方法:看过扬声器的电路图,以为给予一个高电平选通蜂鸣器即会发出声音,结果失败。后来请教老师才知道这种蜂鸣它在特定的频率下才会响。4.2 扩展设想声音控制直流电机速度本次设计是通过键盘控制速度,有些时候要改变直流电机的速度而不方便按键盘未免有些麻烦。声音控制PWM 调节直流电机的转速先对人发出的数字的声音AD 转换,选取特定的一段AD 转换数据存入到存储器里面,在人想改变电机的速度时,再对数字的声音AD 转换,所转换的数据与存储器保存的数据比较,确定当前声音指令所要改变的速度级别。液晶显示器来显示信息在此次课程设计中也可以添加液晶显示器来显示当前直流电机的速度、总转圈数及速度级别,利用液晶显示既直接又方便。4.3 心得体会此次课程设计历时两个星期,虽然是苦多于甜,但是在这个过程中学到了很多东西,不仅巩固了在课堂上学到的理论知识,而且还学到了在课堂上无法学到的知识点和操作技能,加深了自己对EDA技术的理解。这次设计一开始,没有任何头绪去做这个课程设计,完全是按照以前做普通EDA实验的方法来做的,但是这几次都失败了,经过这几次的失败教训,决定请教老师,通过老师的点拨,我们顿时豁然开朗,原来可以把一个模块生成图形文件,在把图形文件连接到一起,然后编译时就是调用这些图形文件,用他们代替一个完整的子程序模块,从而完成一整个电路的设计来实现所有的功能,使我们懂得了EDA技术的神通广大,让我对他有了更加浓厚的兴趣。当然不是每一步都是那么的顺利的,能做到每个步骤的成功是不容易的,在生成一个完整的电路图后进行编译时显示错误,经过仔细检查每个模块没有任何错误,连线也没有错误,但是仍然显示错误,经过同学的请教,原来是每个模块的程序文件没有放到电路图根目录下,因为在编译时会调用这些程序,用来验证程序与图形模块是否相匹配,因此我们不能忽略课程设计中的一些小的细节,俗话说细节成就完美,因此在设计过程中方方面面都要考虑进来,不是做完了课程设计就万事大吉的。在做完课程设计的要求时不要以为做完了,成功了就可以了,要多想想我们做设计是锻炼我们的独立的思考能力和提高我们的动手能力,以及创造能力。例如在分配管脚的时候我们发现点阵和8位七段数码管的管脚定义存在冲突,不能两者同时显示,否则会出现严重干扰的现象,因此我们就把实验箱上没有用到的模块要充分利用,把七段码管拿来加以利用,就构成了一个完整的显示电路,这样就能实现直流电机要求的所有功能;既然实验箱上还有模块没有用到,可不可以把某些模块加到这个电路上来,使电路做的更加完美,比如做直流电机时没有要求用到语音模块,我在这里可以加个语音模块来实现电路的某些功能,是电路在某些功能上更加全面,这样不紧使我们充分发挥了我们的想像能力,更使我们做出了我们自己的作品,锻炼了我们的动脑和动手能力,使我们在身体和思考上得到了很好的提升。课程设计做的还是比较成功的,通过这次课程设计使我懂得了理论与实际的结合是很重要的,不能只注重于理论而脱离实际,而抛掉理论只注重于实际也是不行的,只有两者的有机结合,才能更好的提高自己的实际动手能力和独立的思考能力。在设计过程中也找到了自己在学习EDA技术时某些不走的方面,即时发现并改正,这样才会掌握的更加牢固。而且通过本次实习是我对电子器件的硬件语言有了深入的理解,在以后步入社会会有更多的了解,这次实习为我以后进一步在电子领域的发展奠定了基础,在现今社会,电子的发展是非常快的,不仅需要我们去懂得很多的知识,而且需要我们所学的只是跟上时代改变的脚步。尤其在我们还没有步入社会实践中就已经体验到了社会竞争的激烈,在有限的时间里要努力奋斗,为自己的将来打下坚实的基础。这次实习也是我们电子信息专业的必须了解,必须知道的知识,况且这些知识在运用时需要耐心,虚心,细心,要通过不懈的努力才能得出想要的结果。我想只是我们学习电子专业必须拥有的心理素质,因此在以后的实习中要多家历练,并把它运用到生活中,是自己的生活变得更加精彩。在此感谢帮助过我的各位老师!谢谢!参考文献1 SOPCIIEDA实验指导书(第二版)2 SOPCII使用手册(第二版)3 EDA技术基础. 谭会生编著. 湖南大学出版社,20044 EDA技术实用教程(第二版),潘松、黄继业编著 ,科学出版社 ,2005附录A 总模块设计图附录B 设计程序时钟控制信号模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-entity teltcl is port( Clk : in std_logic; -时钟输入1Mhz ena : out std_logic; -允许计数 clr : out std_logic; -计数器清零信号产生 clkhz : out std_logic; -秒脉冲信号产生 clkkhz : out std_logic; -1KHZ脉冲产生 load : out std_logic -锁存、显示输出允许 ); end teltcl;-architecture behave of teltcl is signal clk1hz :std_logic;-1HZ时钟信号 signal clk1khz :std_logic; signal count : std_logic_vector(2 downto 0);-6秒计数 signal clr1 :std_logic;-清零信号 signal ena1 :std_logic;-允许计数信号 signal load1 :std_logic;-允许计数信号 signal cq1,cq2,cq3,cq4 : INTEGER RANGE 0 TO 15;-计数数据 begin process(clk) -1HZ信号产生 variable cnttemp : INTEGER RANGE 0 TO 999999; variable count : integer range 0 to 999; begin IF clk=1 AND clkevent THEN IF cnttemp=999999 THEN cnttemp:=0; ELSE IF cnttemp500000 THEN clk1hz=1; ELSE clk1hz=0; END IF; cnttemp:=cnttemp+1; END IF; if count=999 then count:=0; else if count500 then clk1khz=1; else clk1khz=0; end if; count:=count+1; end if; end if; clkhz=clk1hz;clkkhz=clk1khz; end process; process(Clk1hz)-6秒计数 begin if(Clk1hzevent and Clk1hz=1) then count=count+1; if count6 then ena1=1;load1=0;clr1=0; elsif count=6 then load1=1;ena1=0;clr1=0; elsif count=7 then ena1=0;load1=0;clr1=1; end if; end if; ena=ena1; load=load1;clr=clr1; end process;end behave;十进制计数器模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT10 ISPORT (CLK:IN STD_LOGIC; -计数时钟信号 CLR:IN STD_LOGIC; -清零信号 ENA:IN STD_LOGIC; -计数使能信号 CQ :OUT INTEGER RANGE 0 TO 15; -4 位计数结果输出 CARRY_OUT:OUT STD_LOGIC); -计数进位END CNT10;ARCHITECTURE ART OF CNT10 IS

温馨提示

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

评论

0/150

提交评论