| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

eda直流电机测控仪课程设计

文***品

贡献于2023-01-16

字数:26872

eda直流电机测控仪课程设计
1 绪
11 FPGA背景
目前高速集成硬件描述语言(VHDL)完成电路设计简 单综合布局快速烧录 FPGA 进行测试现代 IC 设计验证技术流编辑元件实现基逻辑门电路(ANDORXORNOT)者更复杂组合功解码器数学方程式数FPGA里面编辑元件里包含记忆元件例触发器(Flip-flop)者更加完整记忆块系统设计师根需通编辑连接FPGA部逻辑块连接起电路试验板放芯片里出厂成品FPGA逻辑块连接设计者改变FPGA完成需逻辑功
FPGA般说ASIC(专集成芯片)速度慢法完成复杂设计消耗更电优点快速成品修改改正程序中错误更便宜造价厂商会提供便宜编辑力差FPGA芯片较差编辑力设计开发普通FPGA完成然设计转移类似ASIC芯片外种方法CPLD(复杂编程逻辑器件备)
12 FPGA发展前景
FPGA技术正处高速发展时期新型芯片规模越越成越越低低端FPGA已逐步取代传统数字元件高端FPGA断争夺ASIC市场份额先进ASIC生产工艺已FPGA生产越越丰富处理器核嵌入高端FPGA芯片中基FPGA开发成项系统级设计工程着半导体制造工艺提高FPGA 集成度断提高制造成断降低作代ASIC 实现电子系统前景日趋光明
(1) 容量低电压低功耗FPGA
容量FPGA 市场发展焦点FPGA 产业中两霸:AlteraXilinx超容量FPGA展开激烈竞争2007年Altera推出65nm工艺StratixIII系列芯片容量67200L E (Logic Element逻辑单元)Xilinx推出65nm工艺VitexVI系列芯片容量33792Slices (Slices约等2L E)采深亚微米(DSM)半导体工艺器件性提高时价格逐步降低便携式应产品发展FPGA 低电压低功耗日益迫切厂家种类型产品瞄准方努力
(2) 系统级高密度FPGA
着生产规模提高产品应成降FPGA 应已仅仅适系统接口部件现场集成灵活应系统级(包括核心功芯片)设计中样背景国际FPGA 厂家系统级高密度FPGA 技术发展强调两方面:FPGA IP( Intellec2tual Property 知识产权)硬核IP软核前具IP核系统级FPGA开发体现两方面:方面FPGA 厂商IP硬核(指完成版图设计功单元模块)嵌入FPGA 器件中方面力扩充优化IP软核(指利HDL语言设计综合验证功单元模块)户直接利预定义测试验证IP 核资源效完成复杂片系统设计
(3) FPGAASIC出现相互融合
然标准逻辑ASIC 芯片尺寸功强功耗低设计复杂批量求FPGA价格较低廉现场进行编程体积力限功耗ASIC正FPGAASIC正互相融合取长补短着ASIC制造商提供具编程逻辑标准单元FPGA 制造商重新标准逻辑单元发生兴趣
(4) 动态重构FPGA
动态重构FPGA指定条件芯片仅具系统重新配置电路功特性具系统动态重构电路逻辑力数字时序逻辑系统动态重构FPGA意义时序逻辑发生通调芯片区域逻辑资源组合成通FPGA 进行局部全局芯片逻辑动态重构实现动态重构FPGA器件编程结构具专门特征部逻辑块部连线改变通读取SRAM中数直接实现样逻辑重构时间纳秒级助实现FPGA系统逻辑功动态构
13 课程设计务
课程设计中Altera公司EP2C35系列FPGA芯片利SOPCNIOSIIEP2C35开发板直流电机步进电机模块等资源实现直流电机测控仪
(1)基技掌握:
1 掌握时钟作频率控制
2 掌握十进制计数器设计
3 掌握16位锁存器设计
4 掌握显示译码功设计
(2)基功求
1 利旋转电位器实现转速控制
2 利PWM信号实现转速控制
3 利8位动态七段码显示实现转速显示
(3)扩展功选择性求
1 利4×4键盘阵列实现键盘转速控制
2 利16*16点阵显示实现转速级显示
2 设计原理
21 直流电机测控总原理
直流电机测控仪总体设计硬件图21示FPGAAltera公司EP2C35系列输入设备时钟4*4键盘霍尔器件警报控制开关时钟采1MHZ4*4键盘FPGA输入4位数组信号霍尔器件输入计数脉输出设备直流电机8位7段字符LED数码16*16点阵LED直流电机采直接旋钮控制转速者PWM控制转速8位7段字符LED数码显示分钟转速16*16点阵LED显示速度级



霍尔器件





FPGA

4*4键盘
直流电机



时钟1MHZ
16*16点阵LED




8位7段字符LED数码



图21:总体设计硬件框架图

22 直流电机霍尔器件驱动
直流电源通电刷接通电枢绕组电枢导体电流流 电磁作样电枢导体会产生磁场时产生磁场磁极磁场产生电磁力电磁力作转子转子定速度开始旋转样电机开始工作







图22:直流电机结构图
够测定出电机单位时间转子旋转少周期电机外部电路中加入开关型霍尔器件时电子转子转盘加入够霍尔原件产生输出带磁场磁钢片电机旋转时带动转盘磁钢片起旋转磁钢片旋转霍尔器件方时导致霍尔器件输出端高电变低电磁钢片转霍尔器件方霍尔器件输出端恢复高电输出样电机旋转周会霍尔器件输出端产生低脉通检测单位时间霍尔器件输出端低脉数推算出直流电机单位时间转速直流电机开关型霍尔器件电路原理图图23示:










图23:直流电机霍尔器件电路图
直流电机驱动两种方式模拟电驱动电路图43短接旋转实验箱左边旋钮调节旋钮控制速度二通PWM控制电路图65短接PWM信号高电位选通三极直流电机转动直流电机获较转速样电机左边旋钮调较位置
23 键盘驱动
键盘电位扫描确定前键没单键电路图24示键没时判断电位点获取高电位键时判断电位低电位样通判断点电位高低确定键没

图24:单键电路图
4*4键盘FPGA连接图图34示扫描键盘FPGA8控制端口确定控制行端口设置buffer模式控制列端口设置in模式扫描键盘方法先第行键盘低电余行列高电读取列电位值果没键电位判断端口获取高电位果键电位判断点电全零电位值第位零确定前行键次四行键盘扫描扫描结束输出4位数组信号告诉键

图25 4*4键盘电路图
24 8位7段数码驱动
七段数码电子开发程中常输出显示设备实验系统中两四位体阴极型七段数码单静态数码图26示高点点亮数码相应数码段










图26 :静态七段数码










图27:8位7段数码驱动
图27 8位7段数码连接七段数码公端连接GND(阴极型)数码中段输入高电相应段点亮反亮四位体七段数码单静态数码基础加入选择位数码位选信号端口八数码abcdefghdp连起8数码分位选信号控制选通数码显示数余关闭
25 16*16点LED阵列驱动
单LED电路图28示单LED电路图Rn输入高电时Cn输入低电时电路形成回路LED发光LED点阵应点点亮



图28:单LED电路图
设计完成速度级(015)点阵LED显示 16*16点阵LED扫描工作原理8位扫描数码类似显示方式结果样已16*16点阵256LED通排列组合形成16行*16列矩阵式LED阵列








图29:16*16点阵硬件图
16*16点阵LED驱动时次选通LED点阵行端口次选通端口(Cn)字符译码第N列结果列端口(Rn)输入通高速次点亮led点阵led点阵显示数字
26 PWM控制原理
PWM控制脉宽度进行调制技术通系列脉宽度进行调制等效获需波形
图210示设定值计数器设置PWM信号占空U\D1输入CLK2设定值计数值输出值增加PWM占空增加电机转速加快U\D0输入CLK2设定值计算器输出值减PWM占空减电机转速变慢CLK0作锯齿波计数器输出周期性线性增加锯齿波计数值设定值时数字较器输出低电计数值设定值时数字较器输出高电产生周期性PWM波形旋转反控制电路控制直流电动机转启停该电路两2选1路选择器组成Z\F键控制选择PWM波形正端Z进入H桥负端进入H桥控制电机旋转方START键通门控制PWM输出实现电机工作停止控制H桥电路功率晶体组成PWM波形通方控制电路送H桥功率放驱动电机转动


图210 PWM控制电路原理图

3 程序设计
31 总体程序设计思路
程序总体设计分时钟控制信号模块十进制计数模块显示模块键盘模块pwm控制模块十六位锁存模块彩色led蜂鸣器控制模块设计思路十进制计数器霍尔器件脉数计数时钟控制六秒时计数值锁存16位锁存器显示模块7段数码显示锁存器锁存值时键盘模块送出键盘键值点阵LED显示数值
32 时钟控制信号程序设计
时钟控制信号中级锁存模块提供锁存控制型号时计数模块提清零信号蜂鸣器提供1khz时钟设计中Cnttemp1MHZ升缘计数产生1HZ信号(Cnttemp<5000送出高电Cnttemp>5000送出低电)Count秒信号计数锁存控制信号第六秒结束时送出清零信号第7秒送出先产生秒脉

Clk1hz’1’

Clk1hz’1’
Cnttemp<50000
Cnttemp0
Cnttemp+1
Cnttemp前计数否99999
1M时钟







Count6较






Enal’0’
Clr’1’
Load’0’

Enal’0’
Clr’0’
Load’1’
Enal’1’
Clr’0’
Load’0’






输出
图31:时钟控制信号流程图
注:Enal输出控制计数器信号
Clr输出控制计数器清零信号
Load输出控制锁存器锁存信号





图32: 时钟控制信号模块
33 十进制计数器程序设计
设计中显示前直流电机转速4位十进制计数器转速脉计数设计中需设计位十进制计数器设计中特注意进位脉处理
设计流程:
Count1001
Clr0’ena1’


计数脉


Coun<0000
Count



输出计数值
输出进位脉




图33:十进制计数器程序设计流程图
注:CLR外部输入清零信号
ENA外部输入计数信号
十进制计数器计数脉计数计数值9时计数值重新零时零时输出进位脉


图34十进制计数模块
34 锁存模块程序设计
16位锁存模块设计较简单控制信号高电时锁存前输入信号值低电时保持锁存锁存输入信号
Load1’



DINDIN

OUT

图35 16位锁存器设计流程
注:IN16位输入信号OUT16位输出信号LOAD输入锁存信号
信号DININ信号进行保存LOAD’1’时IN信号保存DINDIN传递OUT

图36 16位锁存模块
35 PWM控制信号程序设计
PWM控制信号驱动直流电机转速信号PWM控制四输入信号控制pwm占空设计中高1516控制信号1111获低0控制信号0000获
流程

时钟1MHZ
Count0
Count16000




PWM’1’
PWM’0’
Count+1
datatcoundatain*1000










输出pwm控制信号
图37:PWM控制流程图
注:DATAIN输入数
COUNT时钟016000循环计数COUNT0时输出电置高电COUNT输入值*1000时输出电置低电样通外部输入控制占空控制直流电机转速

图38:PWM控制模块
36 键盘扫描显示模块程序设计
(1)键盘扫描程序设计
PWM控制直流电机通扫描键盘键控制方波占空键值越方波占空越高达1516低0键盘扫描输出4数组扫描简单行低电列获电位确定行键体流程:


时钟1MHZ输入
Count+1
Count<0
Count2
扫描第三行

Count1
扫描第二行

Count3

Count3
扫描第四行

Count0
扫描第行











判断键
输出相应键值

判断键
输出相应键值
图39:键盘扫描流程图
键盘模块体设计思路信号COUNT时钟03循环计数CONTN时第N列扫描判断列端电位确定前键键位输出键值

(2)显示模块程序设计
显示模块分两部分分8位7段数码led16*16点阵LED硬件连接突(7段数码7段点阵led列低8列连接FPGA统脚)两显示部分统模块驱动分时段分驱动8位7段数码led16*16点阵LED

COUNT<00000
COUNT10111显示第十六列LED点阵

COUNT01000显示第列LED点阵

COUNT00111显示第八位LED

COUNT00000显示第位LED
COUNT+1
COUNT10111
时钟1MHZ















图310:显示模块程序流程
显示程序中十进制计数器百十位数输入分8位7段数码第三四五位显示设计中记录六秒钟转速显示分钟转速第六位LED数码显示0数码显示横线设计中注意输入4位数组译成LED数码显示7段码(0001译码01100000)点阵LED显示需译码列译码点阵LED次点亮列高速点亮阵面显示汉字者数字


图311:键盘扫描显示模块

37警报控制彩色LED模块程序设计
模块添加设计模块考虑直流电机转速划分高中低三等次高速转速超4000RMIN低速转速低2000RMIN中速介两者间红绿蓝三彩色LED 显示前速度属速度层次设计中外5000RMIN 设警戒速度电机转速超警戒速度时会触发警报(扬声器发出间隔1 秒响声)然超警戒速度警报通警报开关关闭

图312:警报控制彩色LED模块

4 设计程介绍
41 设计程
(1)测速显示
电机旋转时带动转盘磁钢片起旋转磁钢片旋转霍尔器件方时导致霍尔器件输出端高电变低电磁钢片转霍尔器件方霍尔器件输出端恢复高电输出样电机旋转周会霍尔器件输出端产生低脉通检测单位时间霍尔器件输出端低脉数推算出直流电机单位时间转速
电机转速通常指分钟电机转速单位rpm实际测量程中减少转速刷新时间通常5~10秒刷新次果6秒钟刷新次相记录6秒钟电机转数记录数10分钟转速数数码显示出显示数够数码显示稳定数输出时加入16位锁存器锁存数送数码显示样会计数程中数变化数码显示断变化
(2)pwm产生控制
通控制占空达控制直流电机控制键先预设速度值电动机实际转速预设值较果相等调节占空达预设值
42 遇问题解决方案
问题:PWM 控制方式直流电机速度太低
解决方法:初始时发现旋律控制时直流电机速度提升PWM控制时速度低初PWM周期太长发现周期缩短然济事怕PWM信号占空1直流电机速度然非常低查阅电路图发现PWM信号高电位选通三极驱动直流电机决定直流电机获电压电机左边旋钮控制需旋钮调提高PWM控制方式直流电机转速
问题二:数码显示速度跳动
解决方法:通占空100分频调1000样占空没变化1速度变化会减少
43 设计体会
次课程设计期2周两周中历什懂解逐渐熟悉EDA软件VHDL语言运程程中学书学东西时巩固前学知识做子模块编写时候遇问题开始时什知道网搜集资料查老师资料懂问老师弄清中原理次练逐渐够解决编写程序中问题模块编写出然仿真时遇点困难想结果正确显示结果点点分析错误中思考产生错误原修改电路图终想结果完成次课程设计
通次课程设计懂理实际相结合重理知识远远够学理知识实践相结合起理中出结提高实际动手力独立思考力真正社会服务
感谢组成员基础懂感谢两周私帮助细心讲解感谢予悉心指导老师两周中亏您厌烦指教谢谢
参考文献
[1] SOPCIIEDA实验指导书(第二版)
[2] SOPCII手册(第二版)
[3] EDA技术基础 谭会生编著 湖南学出版社2004
[4] EDA技术实教程(第二版)潘松黄继业编著 科学出版社 2005



附录A:设计程序
时钟控制信号模块程序

library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall

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_logic1HZ时钟信号
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 cq1cq2cq3cq4 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 clk'event THEN
IF cnttemp999999 THEN cnttemp0
ELSE
IF cnttemp<500000 THEN clk1hz<'1'
ELSE clk1hz<'0'
END IF
cnttempcnttemp+1
END IF
if count999 then count0
else
if count<500 then clk1khz<'1'
else clk1khz<'0'
end if
countcount+1
end if
end if
clkhz end process
process(Clk1hz)6秒计数
begin
if(Clk1hz'event and Clk1hz'1') then
count if count<6 then
ena1<'1'load1<'0'clr1<'0'
elsif count6 then
load1<'1'ena1<'0'clr1<'0'
elsif count7 then
ena1<'0'load1<'0'clr1<'1'
end if
end if
ena end process
end behave

十进制计数器模块程序
LIBRARY IEEE
USE IEEESTD_LOGIC_1164ALL
ENTITY CNT10 IS
PORT (CLKIN STD_LOGIC 计数时钟信号
CLRIN STD_LOGIC 清零信号
ENAIN STD_LOGIC 计数信号
CQ OUT INTEGER RANGE 0 TO 15 4位计数结果输出
CARRY_OUTOUT STD_LOGIC) 计数进位

END CNT10
ARCHITECTURE ART OF CNT10 IS
SIGNAL CQI INTEGER RANGE 0 TO 15
BEGIN
PROCESS(CLKENA) IS
BEGIN
IF CLR '1' THEN CQI< 0 计数器异步清零
elsIF CLK'EVENT AND CLK '1' THEN
IF ENA '1' THEN
iF CQI10 THEN cqi<1
ELSE CQI END IF 等9计数器清零
END IF
END IF
END PROCESS
PROCESS (CQI) IS
BEGIN
IF CQI10 THEN CARRY_OUT< '1' 进位输出
ELSE CARRY_OUT< '0'
END IF
END PROCESS
CQEND ART

键盘扫描显示程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall

entity exp13 is
port( Clk in std_logic 时钟信号
buff1buff2buff3buff4 in integer range 0 to 9
Kr in std_logic_vector(3 downto 0) 键盘行
Kc buffer std_logic_vector(3 downto 0) 键盘列
abcdefgdp out std_logic
Sasbsc buffer std_logic 七段码片选
dot_c OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
dot_r out std_logic_vector(7 downto 0)
yangbo out integer range 0 to 15
led out std_logic_vector(7 downto 0)
)
end exp13

architecture behave of exp13 is
signal keyrkeyc std_logic_vector(3 downto 0)
signal kcount std_logic_vector(2 downto 0)
signal dcount std_logic_vector(1 downto 0)
signal kflag1kflag2 std_logic
signal buff8 integer range 0 to 15
signal Disp_Temp integer range 0 to 15 扫描键值
signal Disp_Decode std_logic_vector(7 downto 0)
signal s std_logic_vector(3 downto 0)
signal key std_logic_vector(15 downto 0)


FUNCTION seg_code(a in integer) return std_logic_vector is
begin
case a is
when 0>return 00111111 '0'
when 1>return 00000110 '1'
when 2>return 01011011 '2'
when 3>return 01001111 '3'
when 4>return 01100110 '4'
when 5>return 01101101 '5'
when 6>return 01111101 '6'
when 7>return 00000111 '7'
when 8>return 01111111 '8'
when 9>return 01101111 '9'
when 10>return 01110111 'A'
when 11>return 01111100 'b'
when 12>return 00111001 'C'
when 13>return 01011110 'd'
when 14>return 01111001 'E'
when 15>return 01110001 ''
when others>return 00000000 全灭
end case
end seg_code
begin

yangbo Disp_Temp a b c d e f g dp process(clk) 扫描键盘
begin
if(Clk'event and Clk'1') then
if(Kr1111) then
kflag1<'0'
kcount if(kcount0) then
kc<1110
elsif(kcount1) then
kc<1101
elsif(kcount2) then
kc<1011
else
kc<0111
end if
else
kflag1<'1'
keyr keyc end if
kflag2 end if
end process
process(Clk) 获取键值
begin
if(Clk'event and Clk'1') then
if(kflag1'1' and kflag2'0') then
if(keyr0111) then
case keyc is
when 0111>buff8<1
when 1011>buff8<4
when 1101>buff8<7
when 1110>buff8<14
when others>buff8 end case
elsif(keyr1011) then
case keyc is
when 0111>buff8<2
when 1011>buff8<5
when 1101>buff8<8
when 1110>buff8<0
when others>buff8 end case
elsif(keyr1101) then
case keyc is
when 1110>buff8<15
when 1101>buff8<9
when 1011>buff8<6
when 0111>buff8<3
when others>buff8 end case
elsif(keyr1110) then
case keyc is
when 1110>buff8<13
when 1101>buff8<12
when 1011>buff8<11
when 0111>buff8<10
when others>buff8 end case
end if
end if
end if

end process
process(clk)
begin
if(clk'event and clk'1') then 扫描累加
dcount case dcount is
when 00> Disp_Decode when 01> Disp_Decode when 10> Disp_Decode when 11> Disp_Decode end case
sa sb sc<'0'
end if
end process
process (clk)
begin
if (clk'event and clk'1')then
s if (s1111) then
s<1000
end if
end if
end process
process (s)
begin
case s is
when 1000>dot_r<01111111
when 1001>dot_r<10111111
when 1010>dot_r<11011111
when 1011>dot_r<11101111
when 1100>dot_r<11110111
when 1101>dot_r<11111011
when 1110>dot_r<11111101
when 1111>dot_r<11111110
when others>dot_r<11111111
end case
end process
process(sDisp_Temp)
begin
if (Disp_Temp0) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c when 1001>dot_c when 1010>dot_c when 1011>dot_c when 1100>dot_c when 1101>dot_c when 1110>dot_c when 1111>dot_c when others>dot_c<0000000000000000
end case
elsif (Disp_Temp1) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c when 1001>dot_c when 1010>dot_c when 1011>dot_c when 1100>dot_c when 1101>dot_c when 1110>dot_c when 1111>dot_c when others>dot_c end case
elsif (Disp_Temp2) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示2
when 1001>dot_c<0111000001110000
when 1010>dot_c<0100100000001000
when 1011>dot_c<0100010000001000
when 1100>dot_c<0100001000001000
when 1101>dot_c<0100000100001000
when 1110>dot_c<0110000011110000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp3) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示3
when 1001>dot_c<0001100000011000
when 1010>dot_c<0010000000000100
when 1011>dot_c<0100000010000010
when 1100>dot_c<0100000010000010
when 1101>dot_c<0010000101000100
when 1110>dot_c<0001111000111000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp4) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示4
when 1001>dot_c<0000000111100000
when 1010>dot_c<0000000100010000
when 1011>dot_c<0000000100001000
when 1100>dot_c<0000000100000000
when 1101>dot_c<0011111111111110
when 1110>dot_c<0000000100000000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp5) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示5
when 1001>dot_c<0001100111111100
when 1010>dot_c<0010000010000100
when 1011>dot_c<0010000001000100
when 1100>dot_c<0010000001000100
when 1101>dot_c<0001000010000100
when 1110>dot_c<0000111100000100
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp6) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示6
when 1001>dot_c<0000011111110000
when 1010>dot_c<0000100010001000
when 1011>dot_c<0001000001000100
when 1100>dot_c<0010000001000100
when 1101>dot_c<0010000010001100
when 1110>dot_c<0001111000000000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp7) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示7
when 1001>dot_c<0000000000011100
when 1010>dot_c<0000000000000010
when 1011>dot_c<0011111100000010
when 1100>dot_c<0000000011000010
when 1101>dot_c<0000000000110010
when 1110>dot_c<0000000000001100
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp8) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示8
when 1001>dot_c<0001111000111100
when 1010>dot_c<0010000101000010
when 1011>dot_c<0010000010000010
when 1100>dot_c<0010000010000010
when 1101>dot_c<0010000101000010
when 1110>dot_c<0001111000111100
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp9) then
led<11000000 十位LED显示0
case s is
when 1000>dot_c<0000000000000000 列显示9
when 1001>dot_c<0001000000111000
when 1010>dot_c<0010000001000100
when 1011>dot_c<0100000010000010
when 1100>dot_c<0100000010000010
when 1101>dot_c<0010000001000100
when 1110>dot_c<0000111111111000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp10) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c when 1001>dot_c when 1010>dot_c when 1011>dot_c when 1100>dot_c when 1101>dot_c when 1110>dot_c when 1111>dot_c when others>dot_c end case
elsif (Disp_Temp11) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c when 1001>dot_c when 1010>dot_c when 1011>dot_c when 1100>dot_c when 1101>dot_c when 1110>dot_c when 1111>dot_c when others>dot_c end case
elsif (Disp_Temp12) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c<0000000000000000 列显示2
when 1001>dot_c<0111000001110000
when 1010>dot_c<0100100000001000
when 1011>dot_c<0100010000001000
when 1100>dot_c<0100001000001000
when 1101>dot_c<0100000100001000
when 1110>dot_c<0110000011110000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp13) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c<0000000000000000 列显示3
when 1001>dot_c<0001100000011000
when 1010>dot_c<0010000000000100
when 1011>dot_c<0100000010000010
when 1100>dot_c<0100000010000010
when 1101>dot_c<0010000101000100
when 1110>dot_c<0001111000111000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp14) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c<0000000000000000 列显示4
when 1001>dot_c<0000000111100000
when 1010>dot_c<0000000100010000
when 1011>dot_c<0000000100001000
when 1100>dot_c<0000000100000000
when 1101>dot_c<0011111111111110
when 1110>dot_c<0000000100000000
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
elsif (Disp_Temp15) then
led<11111001 十位LED显示1
case s is
when 1000>dot_c<0000000000000000 列显示5
when 1001>dot_c<0001100111111100
when 1010>dot_c<0010000010000100
when 1011>dot_c<0010000001000100
when 1100>dot_c<0010000001000100
when 1101>dot_c<0001000010000100
when 1110>dot_c<0000111100000100
when 1111>dot_c<0000000000000000
when others>dot_c<0000000000000000
end case
end if
end process
end behave

16位锁存器模块程序设计
LIBRARY IEEE
USE IEEESTD_LOGIC_1164ALL
ENTITY REG32B IS
PORT(LOAD IN STD_LOGIC
DIN IN STD_LOGIC_VECTOR(15 DOWNTO 0)
DOUT OUT STD_LOGIC_VECTOR(15 DOWNTO 0))
END ENTITY REG32B

ARCHITECTURE ART OF REG32B IS
BEGIN
PROCESS ( LOAD DIN ) IS
BEGIN
IF LOAD 'EVENT AND LOAD '1'
THEN DOUT END IF
END PROCESS
END ART

PWM信号控制模块
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall
entity pwm is
port( pwmin in std_logic_vector(3 downto 0) pwm信号输入
clk in std_logic 时钟
pwmout out std_logic 电机控制信号
)
end pwm
architecture behave of pwm is
signal cycle integer range 0 to 16000
signal keynum integer range 0 to 15
begin
process(clk)
begin
if clk'event and clk'1' then
if cycle16000 then
pwmout<'1'cycle<0
elsif cyclekeynum*1000 then
pwmout<'0'cycle else
cycle end if
end if
end process
process(pwmin)
begin
case pwmin is
when 0000 > keynum <0
when 0001 > keynum <1
when 0010 > keynum <2
when 0011 > keynum <3
when 0100 > keynum <4
when 0101 > keynum <5
when 0110 > keynum <6
when 0111 > keynum <7
when 1000 > keynum <8
when 1001 > keynum <9
when 1010 > keynum <10
when 1011 > keynum <11
when 1100 > keynum <12
when 1101 > keynum <13
when 1110 > keynum <14
when 1111 > keynum <15
when others > null
end case
end process
end behave

警报控制彩色LED模块程序设计
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall
entity speedled is
port( speed in integer range 0 to 15
clkhz in std_logic
sbell in std_logic
bell out std_logic
d_speed out std_logic
sled out std_logic_vector(2 downto 0)
yang out std_logic
)
end speedled
architecture behave of speedled is
signal count integer range 0 to 3000
signal waring std_logic
begin
process(speed)
begin
if speed<4 then sled<100waring<'1'yang<'0'
elsif speed>9 then
if speed>10 then
waring else
sled<001waring<'1'yang<'0'
end if
else sled<010waring<'1'yang<'0'
end if
end process
process(waring)
begin
if waring'event and waring'1' then
if count2000 then
count<0d_speed<'0'
elsif count2 then
count else
count end if
end if
if sbell'0' then
if count<1000 then
bell end if
end if
end process
end behave

声音模块

library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall

entity audio is
port( clk in std_logic Clock Signal
spk buffer std_logic) speaker driver
end audio

architecture behave of audio is
signal tone std_logic_vector(10 downto 0)
signal tone_count std_logic_vector(10 downto 0)
signal tone_index integer range 0 to 15
signal clk10_count std_logic_vector(17 downto 0)
signal time integer range 0 to 150
signal clk10 std_logic
begin
process(clk) generate 10hz clock signal
begin
if(clk'event and clk'1') then
clk10_count if(clk10_count16#3fff#) then
clk10 end if
end if
end process
process(clk10)
begin
if(clk10'event and clk10'1') then
if(time150) then
time<0
else
time end if
end if
end process
process(clk10)
begin
if(clk10'event and clk10'1') then
case time is
when 0>tone_index<3
when 1>tone_index<3
when 2>tone_index<3
when 3>tone_index<3
when 4>tone_index<5
when 5>tone_index<5
when 6>tone_index<5
when 7>tone_index<6
when 8>tone_index<8
when 9>tone_index<8
when 10>tone_index<8
when 11>tone_index<9
when 12>tone_index<6
when 13>tone_index<8
when 14>tone_index<5
when 15>tone_index<5
when 16>tone_index<12
when 17>tone_index<12
when 18>tone_index<12
when 19>tone_index<15
when 20>tone_index<13
when 21>tone_index<12
when 22>tone_index<10
when 23>tone_index<12
when 24>tone_index<9
when 25>tone_index<9
when 26>tone_index<9
when 27>tone_index<9
when 28>tone_index<9
when 29>tone_index<9
when 30>tone_index<0
when 31>tone_index<0
when 32>tone_index<9
when 33>tone_index<9
when 34>tone_index<9
when 35>tone_index<10
when 36>tone_index<7
when 37>tone_index<7
when 38>tone_index<6
when 39>tone_index<6
when 40>tone_index<5
when 41>tone_index<5
when 42>tone_index<5
when 43>tone_index<6
when 44>tone_index<8
when 45>tone_index<8
when 46>tone_index<9
when 47>tone_index<9
when 48>tone_index<3
when 49>tone_index<3
when 50>tone_index<8
when 51>tone_index<8
when 52>tone_index<6
when 53>tone_index<5
when 54>tone_index<6
when 55>tone_index<8
when 56>tone_index<5
when 57>tone_index<5
when 58>tone_index<5
when 59>tone_index<5
when 60>tone_index<5
when 61>tone_index<5
when 62>tone_index<0
when 63>tone_index<0
when 64>tone_index<10
when 65>tone_index<10
when 66>tone_index<10
when 67>tone_index<12
when 68>tone_index<7
when 69>tone_index<7
when 70>tone_index<9
when 71>tone_index<9
when 72>tone_index<6
when 73>tone_index<8
when 74>tone_index<5
when 75>tone_index<5
when 76>tone_index<5
when 77>tone_index<5
when 78>tone_index<5
when 79>tone_index<5
when 80>tone_index<5
when 81>tone_index<0
when 82>tone_index<0
when 83>tone_index<3
when 84>tone_index<5
when 85>tone_index<3
when 86>tone_index<5
when 87>tone_index<5
when 88>tone_index<6
when 89>tone_index<7
when 90>tone_index<9
when 91>tone_index<6
when 92>tone_index<6
when 93>tone_index<6
when 94>tone_index<6
when 95>tone_index<6
when 96>tone_index<6
when 97>tone_index<5
when 98>tone_index<6
when 99>tone_index<8
when 100>tone_index<8
when 101>tone_index<8
when 102>tone_index<9
when 103>tone_index<12
when 104>tone_index<12
when 105>tone_index<12
when 106>tone_index<10
when 107>tone_index<9
when 108>tone_index<9
when 109>tone_index<10
when 110>tone_index<9
when 111>tone_index<8
when 112>tone_index<8
when 113>tone_index<6
when 114>tone_index<5
when 115>tone_index<3
when 116>tone_index<3
when 117>tone_index<3
when 118>tone_index<3
when 119>tone_index<8
when 120>tone_index<8
when 121>tone_index<8
when 122>tone_index<8
when 123>tone_index<6
when 124>tone_index<8
when 125>tone_index<6
when 126>tone_index<5
when 127>tone_index<3
when 128>tone_index<5
when 129>tone_index<6
when 130>tone_index<8
when 131>tone_index<5
when 132>tone_index<5
when 133>tone_index<5
when 134>tone_index<5
when 135>tone_index<5
when 136>tone_index<5
when 137>tone_index<5
when 138>tone_index<0
when 139>tone_index<0
when others>tone_index<0
end case
end if
end process
process(tone_index)
begin
case tone_index is
when 0>tone<11111111111 no output
when 1>tone<01100000101 773
when 2>tone<01110010000 912
when 3>tone<10000001100 1036
when 5>tone<10010101101 1197
when 6>tone<10100001010 1290
when 7>tone<10101011100 1372
when 8>tone<10110000010 1410
when 9>tone<10111001000 1480
when 10>tone<11000000110 1542
when 12>tone<11001010110 1622
when 13>tone<11010000100 1668
when 15>tone<11011000000 1728
when others>tone<11111111111 othersno output
end case
end process
process(clk) control the frequence of the speaker
begin
if(clk'event and clk'1') then
if(tone_count16#7ff#) then
tone_count if(tone<2047) then
spk end if
else
tone_count end if
end if
end process
end behave






附录B:总模块设计图

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

EDA课程设计时钟

EDA课程设计姓名: 学号:班级:自动化设计题目多功能数字钟电路设计设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。在

文***享 3年前 上传767   0

EDA与数字系统课程设计

 课 程 设 计 任 务 书(2011 ~2012 第三学期)设 计 题 目: EDA与数字系统课程设计 学 院 名 称: 电气与自动化工程学院 专 业(班 级): 自动化2010级 姓 名(学 号): 起 讫 日

文***享 3年前 上传561   0

直流电机双闭环调速系统设计课程设计

直流电机双闭环调速系统设计目录1 绪 论 11.1课题研究背景 11.2研究双闭环直流调速系统的目的和意义 12 直流电机双闭环调速系统 32.1直流电动机的起动与调速 32.2直流调速系统的性能指标 32.2.1静态性能指标 32.2.2动态的性能指标 42.3双闭环直流调速系统的组成 63 双闭环直流调速系统的设计 83.1电流调节器的设计 83.2转速调节器

文***享 3年前 上传699   0

双闭环直流电机调速系统设计课程设计

《自动控制系统论文设计报告》班级:自动化 姓 名 : 学 号 : 时 间 : 2012年X月X号指 导 老 师: 大连XX 大 学 信 息 工 程 学 院 自 动 化 研 究 所双闭环直流电机调速系统设计摘 要转速、电流双闭环控制直流调速系统是性能很

文***享 3年前 上传596   0

测控技术与仪器实习总结

测控技术与仪器实习总结  读了三年的大学,然而大多数人对本专业的认识还是寥寥无几,在测控技术与仪器周围缠绕不定,在大二期末学院曾为我们组织了一个星期的见习,但由于当时所学知识涉及本专业知识不多,所看到的东西与本专业根本就很难联系起来,在很多同学心里面对于本专业一直很茫然。  今年暑假,学院本来是组织我们去上海实习,但由于突如其来的非典型疫症,使得全盘计划不得不重新来定。经过学院的努力,最

一***1 12年前 上传498   0

测控技术与仪器生产实习报告

测控技术与仪器生产实习报告  大学三年已经接近尾声,然而我们对测控这门专业一直都是理性认识,接触的实物很少,对未来的就业发展方向依旧迷茫。本学期学校组织了一次外出生产实习,好让我们接触目前的主流方向,把所学到的专业知识和所看到的东西联系起来,旨在开拓我们的视野,增强专业意识,巩固和理解专业课程,为马上到来的就业做好准备。  本次生产实习由申杰和张峰两个老师带领,测控专业总共两个班,64人

w***8 10年前 上传484   0

实习总结-测控技术与仪器

实习总结---测控技术与仪器  ��元式空调机,洁净式空调机,恒温恒湿型机房专用空调机,屋顶式空调机,高温环境特种空调机,除湿机,冷水机组成风机盘管、柜式风机盘管和组合式空气处理机等末端设备。其中单元式空调机和洁净式空调机包括冷风型、冷风电热型、热泵型、恒温恒湿型等多个系列和品种。  接着将我们分成五组对其生产车间进行参观。  我们首先来到钣金车间。从车间的定置管理图中,可了解到该车间的

8***i 12年前 上传546   0

测控技术与仪器认识实习报告

测控技术与仪器认识实习报告  学     院:机电工程学院班     级:测控技术与仪器09-1学     号:540902030116姓     名:  完成时间: XX.01.10认识实习的目的及意义专业的认识实习是在学生系统学习专业课程之前,为帮助其了解专业内容、提高专业意识而组织的实践性教学环节,分析了实习中存在的一些问题,并提出了相应的解决方法。是学生在全面系统地学习本专业理论

浅***鱼 12年前 上传639   0

eda拔河游戏机课程设计报告

报告书写要求1、 报告的撰写要求条理清晰、语言准确、表述简明。报告中段首空两个字符,中文字体为宋体五号,数字、字符、字母为Times New Roman五号,且单倍行距。2、 报告中插图应与文字紧密配合,文图相符,技术内容正确。每个图都应配有图题(由图号和图名组成)。图题(宋体小五号)置于图下居中,其中图号按顺序编排,图名在图号之后空一格排写。图中若有分图时,分图号用(a)、(b)等置于

文***享 3年前 上传540   0

燕山大学EDA课程设计游戏机

燕山大学EDA课程设计游戏机一、设计题目及要求1、设计题目:游戏机。2、题目要求:用三位数码管显示0—7之间的数码,按下按钮,三个数码管循环显示,抬起按钮,显示停止,当显示内容相同时,为赢。*具体附加要求:(1)三个数码管循环显示的速度不同;(2)停止时的延迟时间也要不同;(3)如果赢了游戏时,要有数码管或LED的花样显示或声音提示。 二、设计过程及内容(包括总体设计的文

文***品 7个月前 上传189   0

EDA课程设计报告60秒倒计时器MAXII240T

EDA课程设计报告设计题目:基于verilog的倒计时器设计 专业班级: 姓名学号: 姓名学号: 姓名学号: 指导教师:

豆***2 4年前 上传750   0

EDA课程设计报告书电话按键显示器

EDA课程设计报告书 题目:电话按键显示器 姓名: 班级:10级电子信息工程班 学号: 成绩: 一、 设计题目及要求 题目:电话按键显示器 要求: 1.设计一个具有八位显示的电话按键显示器; 2.能准确反映按键数字; 3.显示器显示从低位向高

z***u 1年前 上传274   0

合肥工业大学EDA课程设计频率计

 课 程 设 计 任 务 书(2014 ~2015第三学期)设 计 题 目: EDA与数字系统课程设计 学 院 名 称: 电气与自动化工程学院 专 业(班 级): 自动化20XX级 姓 名(学 号): ** -------- --------- 起 讫

文***享 3年前 上传496   0

交通信号灯控制器设计EDA课程设计

信息科学技术学院《EDA技术课程设计报告》专业班级:2008级通信工程姓 名: 学 号:指导老师: 目 录课程设计的要求及目的……………………………………………2前言………………………………………………………………… 2一 设计内容与目的……………………………………………… 21.1 设计内容……………………………

文***享 11个月前 上传309   0

数字电子钟逻辑电路设计《EDA技术》课程设计报告

序号 综合成绩优秀( )良好( )中等( )及格( )不及格( )教师(签名)批改日期《EDA技术》课程设计报告 课题: 数字电子钟逻辑电路设计院系 电子与电气工程学院 专业 电气工程及其自动化 班级 学号 姓名

文***品 3年前 上传538   0

eda课程设计vhdl语言的简易出租车计费器设计

XX 学 院《EDA技术》课 程 设 计 题 目 简易出租车计费器设计 系 (部) 信息工程系 班 级 电本班 姓 名 学 号 指导教师

文***享 3年前 上传538   0

集成电路EDA技术

本文简述了集成电路的传统设计方法和现代设计方法,并对两者的区别进行了比较,以实例为基础介绍了集成电路的设计过程。对可编程逻辑器件的定义、分类、功能等进行详尽的阐述,介绍了可编程逻辑器件的设计过程,以可编程逻辑器件软件设计平台QuartusII为例,介绍了可编程逻辑器件软件设计平台的功能及使用方法,并对其他种类软件平台作出比较。对国内外集成电路设计公司作简要介绍,分析了PLD和FPGA芯片上的文字信息。

4年前 上传1433   0

测控技术与仪器实习总结—个人工作总结

测控技术与仪器实习总结—个人工作总结     读了三年的大学,然而大多数人对本专业的认识还是寥寥无几,在测控技术与仪器周围缠绕不定,在大二期末学院曾为我们组织了一个星期的见习,但由于当时所学知识涉及本专业知识不多,所看到的东西与本专业根本就很难联系起来,在很多同学心里面对于本专业一直很茫然。    今年暑假,学院本来是组织我们去上海实习,但由于突如其来的非典型疫症,使得全盘计划不得不

c***g 10年前 上传348   0

大学生实习报告范文(测控技术与仪器)

大学生实习报告范文(测控技术与仪器)  <>干式变压器产品特点:   1、安全,难燃防火,无污染,可直接安装在负荷中心。  2、免维护、安装简便,综合运行成本低。  3、防潮性能好,可在100%湿度下正常运行,停运后不经预干燥即可投入运行。  4、损耗低、局部放电量低、噪音小,散热能力强,强迫风冷条件下可以150%额定负载运行。  5、配备有完善的温度保护控制系统,为变压

s***i 12年前 上传515   0

2021年大学生测控技术与仪器实习总结

 2021年大学生测控技术与仪器实习总结撰写人:___________日 期:___________2021年大学生测控技术与仪器实习总结今年的暑假我不打算回家了,我想我应该参加社会实践了,我应该在更好的发展中寻找自己,大学生测控技术与仪器实___结。没有社会实践的大学生活是不___的,每一个人都应该在大学生活中有一段美好的回忆,我相信只要自己不断地努力,那么就会有自己美好的未来

g***3 3年前 上传389   0

测控技术与仪器专业大学生的求职信

测控技术与仪器专业大学生的求职信第一篇:测控技术与仪器专业求职信姓名**大学**学院测控技术与仪器专业152********求职信尊敬的公司领导:您好!非常感谢您在百忙之中阅读我的求职信。我是**大学**学院的2014级本科毕业生,专业是测控技术与仪器。在即将走入工作岗位之际,在此呈上自己的求职信息,希望接受贵公司的考核与挑选,并希望可以成为贵公司的一员,为贵

平***9 12年前 上传543   0

测控技术与仪器自荐信参考A

测控技术与仪器自荐信参考A尊敬的领导: 您好! 非常感谢您在百忙之中抽出时间看我的自荐信。        我是xx大学信息工程学院电子系学生,xx届应届毕业生。        我的专业是仪器仪表检测。         在大学期间,我学习刻苦努力,成绩优异,先后五次获奖学金,基础扎实,实践能力强,学校安排的实习、课程设计均获得优异成绩。        此外,我还

拦***猪 10年前 上传389   0

EDA作业2-LED彩灯

EDA作业二--LED彩灯一、实验任务让8个LED实现彩灯的功能,并进行波形仿真。通过这个实验,进一步掌握采用计数与判断的方式来实现分频的VHDL的编程方法以及移位运算符的使用。二、实验环境软件实验环境为Quartus II 8.1开发软件。三、实验原理彩灯,就是让LED以一定的规律显示不同的亮灭的组合。本彩灯的设计采用了4种的亮灭方式。每来一个时钟脉冲CLK,计数器就加1。每当判断

文***品 11个月前 上传255   0

2021测控实习报告4篇

2021测控实习报告4篇本文目录2021测控实习报告大学生实习报告范文(测控技术与仪器)测控技术与仪器实习报告车间测控技术大学生实习报告范文  读了三年的大学,然而大多数人对本专业的认识还是寥寥无几,在测控技术与仪器周围缠绕不定,在大二期末学院曾为我们组织了一个星期的见习,但由于当时所学知识涉及本专业知识不多,所看到的东西与本专业根本就很难联系起来,在很多同学心里面对于本专业一直很茫然。  

和***6 3年前 上传488   0

测控车间实习总结报告

测控车间实习总结报告  今年暑假,学院本来是组织我们去上海实习,但由于突如其来的非典型疫症,使得全盘计划不得不重新来定。经过学院的努力,最终选择了顺德作为我们的实习基地。  什么是测控技术与仪器?本专业适合干哪方面的工作?本专业前途如何?带着这些问题,我们参加了这次的生产实习。  本次生产实习由查晓春、黄爱华和黎勉3个老师带领,测控专业总共4个班,150几人参加实习。6月30日出发去

0***0 12年前 上传538   0