数字电子课程设计报告题目要求_第1页
数字电子课程设计报告题目要求_第2页
数字电子课程设计报告题目要求_第3页
数字电子课程设计报告题目要求_第4页
数字电子课程设计报告题目要求_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z第一局部:设计题目数字电子技术根底课程设计是继数字电子技术根底课之后开出的实践环节课程。通过课程设计学生应掌握设计所用硬件电路的工作原理,设计出满足要求的总体电路,掌握电子线路CAD工具的使用方法,较熟练地使用仿真软件对电路进展设计和仿真,并能进展实验调试。学生按给定的题目进展设计,题目的难度要保证中等水平的学生在教师的指导下在两周能独立完成设计任务。题目要综合运用所学的数字电子技术根底设计的根本知识。一、智力竞赛抢答器设计一个由四人参加的智力竞赛抢答电路,当主持人宣布开场,显示出首先作出判断的参加竞赛者。功能:1、清零功能:可用触发器的异步复位端实现,由主持人控制。2、抢答键控功能:

2、可用触发器和门电路实现。3、显示功能:可用发光二极管显示,用蜂呜器发声。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。二、医院呼叫电路设计一个医院呼叫电路电路。功能:1、设计一个具有8个或8个以下的房间使用的呼叫电路。2、根据病号的轻、重采用优先编码器,首先对重病号作出反响。 3、电路能显示该病号的房间号和电笛响,以告示护士或医生有病号呼叫。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。三、输出可调的

3、稳压电路设计一个输出可调的稳压电路。功能:1、三端可调正输出集成稳压电路。2、输出电压为1.237之间。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。四、水位自动控制电路 利用555定时器,设计一个水位自动控制电路。功能:1、当水位低于最低点时,电路能自动加水。2、当高于最高点时,电路能自动停水。 3、该电路的直流电源自行设计。可采用W78系列要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。五、发光显示

4、的通断测试仪利用555定时器,设计一个发光显示的通断测试仪电路 。当电路中电阻R*30时可视为阻路,当R*30时可视为通路。功能:1、当探头A、B两点间的电阻30时可视为阻路,则红色发光二极管亮,绿色发光二极管不发光。 2、当探头A、B两点间的电阻30时可视为通路,则绿色发光二极管亮,红色发光二极管不发光。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。八、多个地点的多音调报警电路利用555定时器设计一个多个地点的多音调报警电路,该电路能对不同地点进展监视以确定入侵者的方位。功能:1、当入侵者从不同

5、地点进入时,电路能发出不同的音乐。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。以下各题目均用Verilog语言在Altera公司FPGA芯片上实现。九、温度检测电路利用热敏电阻、电压比拟器、三极管等元件设计一个温度检测电路。功能:当温度超过设定温度时,电路发出声、光报警。要求:1、选择适当的元器件,设计该电路。以实现上述功能。2、利用Proteus绘制其电路原理图。3、对每个元器件选择适宜的封装,形成网络表文件。十、数码管显示控制器要求:1、能自动一次显示出数字0、1、2、3、4、5 、6、7、

6、8、9自然数列,1、3、5、7、9(奇数列,0、2、4、6、8偶数列,0、1、2、3、4、5、6、7、0、1(音乐符号序列;然后再从头循环; 2、翻开电源自动复位,从自然数列开场显示。 十一、出租车计价器设计和实现 要求:(1)计价器按1.2元/公里计费,超过10公里后,则按1.8元/公里收费。(2)起步价6元(3公里),超过3公里后,计价累加0.6元,10公里以后每过0.5公里累加0.6元。(3)过10公里后, 计价累加0.9元, 以后每过0.5公里累加0.9元。(4)公里数4位数字显示,准确到0.1公里; 出租车计价4位数字显示,准确到0.1元。(5) 晚上超过0点-5点,计价器按1.8元

7、/公里计费, 超过10公里后,则按2.4元/公里收费.。(6) 每等待3分钟按0.5公里费用计价。十二、数字钟要求:、计时及校时,时间可以小时制或小时制显示;、日历:显示年月日星期,及设定设定功能;、跑表:启动停顿保持显示去除时和分有校正功能;、闹钟:设定闹钟时间,整点提示整点报时,喇叭响两秒,十三、交通灯控制器要求:1、东西方向为主干道,南北方向为副干道;2、主干道通行40秒后,假设副干道无车,仍主干道通行,否则转换;4、换向时要有4秒的黄灯期;5、南北通行时间为20秒,到时间则转换,假设未到时,但是南北方向已经无车,也要转换。6、附加:用数码管显示计时。十四、双钮电子锁要求:1、有两个按钮

8、A和B,开锁密码可自设,如3、5、7、9;2、假设按B钮,则门铃响;滴、嗒;3、开锁过程:按3下A,按一下B,则3579中的”即被输入;接着按下,按一下,则输入5”;依次类推,直到输入完9,按B,则锁。 被翻开-用发光管KS表示;4、报警:在输入3、5、6、9过程后,如果输入与密码不同,则报警;用发光管BJ表示,同时发出嘟、嘟.的报警声音;5、用一个开关表示关门即闭锁。十五、速度表要求:1、显示汽车Km/h数;2、车轮每转一圈,有一传感脉冲;每个脉冲代表1m的距离;3、采样周期设为10S;4、要求显示到小数点后边两位;5、用数码管显示;6、最高时速小于300Km/h。十六、数字频率计要求: 数

9、字显示功能:用数码管显示测量信号的频率十进制形式显示。 测量围:10Hz100kHz的信号为提高测量精度,可选择高、低频段测量。 测量精度:误差不超过1% 。本课程设计分为实际设计与虚拟仿真两个环节。实际设计应使学生学会电子系统设计的根本设计方法,包括:方案的选择、框图的绘制、单元电路的设计、元器件的选择等方面。虚拟仿真环节应使学生学会使用电路仿真分析软件Quartus II9.0在计算机上进展电路设计与分析的方法。要求学生所选课题必须在计算机上通过虚拟设计确定设计方案,通过虚拟仿真建立系统,完成设计要求。十七、乒乓球比赛游戏机要求:1设计一个甲、乙双方参赛,裁判参与的乒乓球比赛游戏模拟机。2

10、用8个发光二极管排成一条直线,以中点为界,两边各代表参赛双方的位置,其中点亮的发光二极管代表乒乓球的当前位置,点亮的发光二极管依次由左向右或由右向左移动。2当球运动到*方的最后一位时,参赛者应立即按下自己一方的按钮,即表示击球,假设击中,则球向相反方向运动,假设未击中,则对方得1分。3设置自动计分电路,双方各用二位数码管来显示计分,每局11分。到达11分时产生报警信号。十八、盲人报时钟;1、任务要求:1具有时、分、秒计时功能小时112,要求用数码管显示。2具有手动校时、校分功能。3设有报时、报分开关。当按报时开关时,能以声响数目告诉盲人。当按报分开关时,同样能以声响数目告诉盲人,但每响一下代表

11、十分钟报时与报分的声响的频率应不同。十九、电子锁及门铃电路设计;1、任务要求1设计一个电子锁,其密码为8位二进制代码,开锁指令为串行输入码。2开锁输入码与密码一致时,锁被翻开。3当开锁输入码与密码不一致时,则报警。报警时间持续15秒,停3秒后再重复出现。4报警器可以兼作门铃使用,门铃时间为10秒。5设置一个系统复位开关,所有的时间数据用数码管显示出来。二十、自动售货机;1设计一个自动售货机,此机能出售1元、2元、5元、10元的四种商品。出售哪种商品可有顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格。2顾客投入硬币的钱数也是有1元、2元、5元、10元四种,但每次只能投入其中的一种硬

12、币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来。3顾客投币后,按一次确认键,如果投币额缺乏时则报警,报警时间3秒。如果投币额足够时自动送出货物送出的货物用相应不同的指示灯显示来模拟,同时多余的钱应找回,找回的钱数用数码管显示出来。4顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进展下一次购货操作。5售货机还应具有供商家使用的累加卖货额的功能,累加的钱数要用数码管显示,显示2位即可。此累加器只有商家可以控制清零。6此售货机要设有一个由商家控制的整体复位控制四、自适应频率测量仪; 1频率测量围:1Hz - 10MHz2测量四个量程:1Hz - 1

13、0kHz 10kHz - 100kHz100kHz - 1MHzs1MHz - 10MHz3自动转换量程;4测量数据显示四位,用小数点代表k 的单位;5测量误差:0.05%FSR满量程。二十一、自动电梯控制器;1设计一个四层楼的电梯自动控制系统,电梯设有对外报警开关,可以在紧急情况下报警,而报警装置设在电梯外。2每层楼梯门边设有上楼和下楼的请求开关,电梯设有供来客可选择所去楼层的开关。3应设有表示电梯目前所处运动状态上升或下降以及电梯正位于哪一层楼的指示装置。4能记忆电梯外的所有请求信号,并按照电梯的运行规则对信号分批响应,每个请求信号一直保持到执行后才撤除。5电梯运行规则如下a电梯上升时,仅

14、响应电梯所在位置以上的上楼请求信号,依楼层次序逐个执行,直到最后一个请求执行完毕。然后升到有下楼请求的最高楼层,开场下楼请求信号。b电梯下降时,仅响应电梯所在位置以下的下楼请求信号,依楼层次序逐个执行,直到最后一个请求执行完毕。然后降到有上楼请求的最高楼层,开场上楼请求信号。c一旦电梯执行完全部请求信号后,应停留在原来层等待,有新的请求信号时再运行。二十三、图像解码的IDCT变换硬件实现设计仅由一个1-IDCT核完成的2-IDCT构造,利用蝶形运算实现一维IDCT变换,并按照行列可别离间接算法实现二维IDCT构造,该构造的转换矩阵通过RAM实现,数据吞吐率较高,能够有效节省芯片面积。2-IDC

15、T构造用Verilog语言在Altera公司FPGA芯片EP2C70F896C6上得到了实现。1 二维IDCT算法实现的简单描述二维IDCT是由一维IDCT衍生而来的,它可以分解为两个独立的一维IDCT。令:则可将IDCT变换公式重写为:以上两式分别代表两个独立的一维IDCT变换,代表行变换,代表列变换。采用FPGA来实现IDCT变换时,可先进展行变换,再进展列变换,两者均为一维IDCT变换。在进展行变换和列变换时,可分别将和视为常数,这样可将式写成如下形式:。该式可分为两局部:第一局部为,在行变换中它代表的是DCT系数,在列变换中它代表的则是第一次IDCT变换的结果;第二局部为。从可以看出,

16、IDCT变换是由一系列乘积项相加构成的,通过将局部积与局部和的结果存放在FPGA的分布算术查询表DALUTDistributed Arithmetic Look-up Table中,就可以用FPGA器件方便地实现IDCT变换。图1-1所示为一维IDCT的变换过程,其中代表中的项。根据余弦函数的周期特性和对称特性:,可将图1-1中的系数简化,得到图1-2所示的简化系数。F(0)F(1)G(0)G(7)图1-1 IDCT的变换过程由图1-2可见,该系数矩阵具有良好的对称性,即第1,2,3,4行分别与第8,7,6,5行的奇数列一样,与偶数列符号相反。根据此特点,在使用FPGA器件实现IDCT算法时,

17、可将64个系数分成8组,每组个系数,分别存放在DALUT中,由F(0)至F(7)来寻址。F(0)F(1)G(0)G(7)图1-2 简化系数后的IDCT变换过程一维IDCT算法的实现框图如图1-3所示。图中,F(0)至F(7)被分为奇数F(1,3,5,7)和偶数F(0,2,4,6)两组,乘积的结果及局部和的结果都存放在DALUT中。C0 C2 C4 C6C0 C6-C4-C2C1 C3 C5 C7C3-C7-C1-C5C0-C6-C4 C2C5-C1 C7 C3C7-C5 C3-C1C0-C2 C4-C6F(1,3,5,7)F(0,2,4,6)G(0)G(7)G(1)G(6)G(2)G(5)G(

18、3)G(4)图1-3 一维IDCT算法的实现框图2 二维IDCT的整体构造设计该2-IDCT构造的主要局部是一个1D-IDCT处理单元、一个转置存模块,另外还有一个串一并转换模块和一个并串转换模块。如图2-1所示。图2-1 2-IDCT的整体构造二维IDCT被行列分解为两个一维IDCT。首先进展的是行变换,此时输入数据首先经过串一并转换模块,在这里等待第一行的8个数据全部到齐之后,并行的将数据发送到一维IDCT处理单元,经过1个时钟周期后,一维IDCT处理单元再将处理结果并行地发送到并串转换模块,然后逐个按行将数据写入转置存,与此同时串一并转换模块将第二行8个数据发送到一维IDCT处理单元,并

19、开场第二行的一维IDCT计算。在全部8个行IDCT变换计算完毕之后,开场列IDCT变换。这时候转置存模块中的数据按列的顺序逐个读取出来,经过串一并转换模块,计算过程同上。在第一列的IDCT计算完成之后,IDCT处理核将在连续的64个时钟周期将二维IDCT变换的结果逐个的输出到模块外部。并在第57个结果输出的同时开场从外部输入端读取第二个图像块8*8的数据。第二局部、课程设计指导与举例在设计一个电子电路系统时,首先必须明确系统的设计任务,根据任务进展方案选择,然后对方案中的各局部进展电路的设计、器件选择,最后将各局部连接在一起,画出一个符合设计要求的完整的系统电路图。 1明确系统的设计任务要求

20、对系统的设计任务进展具体分析,充分了解系统的性能、指标、容及要求,以便明确系统应完成的任务。(2方案选择这一步的工作要,把系统要完成的任务分配给假设干个单元电路,并画出一个能表示各单元功能的整机原理框图。(3单元电路的设计、器件选择根据系统的指标和功能框图,明确各局部任务,进展各单元电路的设计,器件选择。(4电路图的绘制数字电子技术课程设计例交通灯控制模拟系统一、设计任务一系统功能 在十字路口,每条道路各有一组红、黄绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯R亮,表示该条道路制止通行;黄灯Y亮,表示停车;绿灯G亮,表示可以通行。倒计时显示器是用来显示允许通行或制止通行的时间。

21、交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人平安通行。根据以上所述,应用数字电子技术的知识,设计一款交通灯模拟控制系统。要求该系统中:1有一组红、绿、黄灯,显示顺序为其中一方向东西方向是绿灯、黄灯、红灯;另一方向南北方向是红灯、绿灯、黄灯。 2用一组数码管以倒计时方式显示允许通行或制止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是22s、2s和24s。 3当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停顿,显示数字在闪烁,且警告信号灯亮。当特殊运行状态完毕后,控制器恢复原来状态,继续正常运行。 4用

22、两组数码管实现双向倒计时显示。 5用LCD显示器来显示道路所在地及相关标语。6输入输出1输入:时钟输入,一个按键和一个开关。输出:8个7段译码显示器仿真时可以只用4个,一个LCD显示器,13个发光二极管。 2按键用来对系统复位,开关用来控制警告信号灯。38个7段译码显示器分别用来显示东、南、西、北四个方向的倒计时间仿真时可以只用4个两个表示东西方向,另外两个便是南北方向,如图,其中12个发光二极管用来表示四个方向的红、黄、绿灯,另一个发光二极管为警告信号灯。1、2用来显示东西方向,3、4用来显示南北方向。4LCD显示器用来显示道路所在的。二交通灯控制模拟系统数字电路设计任务1系统框图与原理图设

23、计2系统电路原理EDA设计与仿真3系统电路的PCB印制板设计4硬件调试三EDA仿真实验条件要求 实验板仿真芯片用Altera FLE*6000系列的EPF6016TC1443型可编程逻辑芯片。 大局部仿真用计算机软件Quartus II9.0来完成,当认为运行比拟理想时,要按照后文的管脚定义,分配好管脚,编译成可下载的文件,下载到实验板上。要求能够实现主体功能,实验结果存在的问题,要在报告中分析其原因。二、实际设计一系统框图与原理图设计 该系统的部控制主要由4个模块构成,分别为:计数器、控制器、分频电路和分位译码电路。系统原理框图如下:HodeReset计数器分频电路Clk 1HzClk 10

24、Hz分位译码电路计数值控制器、倒计时数字及闪烁控制信号红、黄、绿发光二极管七段数码管10MHz 图1 交通灯控制模拟系统框图1分频电路是用来将晶振频率经分频后到达需要的频率。因为实验板上的晶振频率是10MHZ,而计数器和分位译码电路需要的频率都远小于10MHZ,所以要对其进展分频。2计数器的计数围是0-49,它输出的计数值作为控制器的输入,控制器根据计数值作出反响。3控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出的倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况Hode=1发生时,无条件点亮红色的发光二极管。4因为控制器输出的倒计时数值可能是1位或两位十进制数,所

25、以在七段数码管的译码电路前要加上分位电路即将其分为2个1位的十进制数,如24分为2和4,7分为0和7。图2 交通灯控制模拟系统原理图二系统原理EDA设计与仿真1EDA软件和硬件件环境EDA软件Quartus II5.0软件环境下,硬件环境Altera FLE*6000可编程逻辑芯片EPF6016TC1443型硬件环境实验板。实验板的引脚定义:7段显示码m_seg7 引脚号 发光二极管 引脚号 名称 引脚号A144D410D168B143D511D269C142D612D367D141D713DIP1112E137D814DIP2111F138D915DIP3110G139D1016DIP410

26、9dp140D1121按键S111136D1222按键S222135D1323按键S333134D1424晶振CLK84133D15255132D16VCC6131D1771注:LCD显示器的引脚如下:数据date的引脚是从低位到高位。输出rsrwenabledate引脚号79808182/83/84/85/86/87/88/942EDA设计仿真 图3 交通灯控制模拟系统EDA顶层模块图1分频模块(clock)由输入的时钟得到需要的各种基准的频率,该系统中需要输出3个不同的频率。 VHDL硬件描述语言程序如下:2计数模块(counter)该模块的输入时钟信号频率为1Hz,需要有一个输入复位端,

27、对系统进展复位,还有一个检测特殊情况的输入信号,外接开关。每遇到时钟上升沿,计数值加1,计数围为149,输出计数值。设计流程如下VHDL硬件描述语言程序如下:编译结果:波形仿真:编译结果:波形仿真: 4分位模块(feiwei)输入:前级的输出数值;输出:输入数值的每一位由4位二进制数形式表示具体见前面功能描述。设计流程如下:程序:编译结果:波形仿真:5译码模块disply输入:时钟信号,经分位后的4位二进制数,检测特殊情况的输入信号;输出:能在数码管上显示的与输入对应的十进制数。注意:因为当遇到特殊情况时,要让显示数字闪烁,所以该模块的输入时钟信号要适当增大频率。 6扫描模块(sysctrl)

28、输入:时钟信号,复位信号;输出:对译码管的选通信号,控制显示的状态信号。 7显示数字的选择模块(timec)输入:经译码后的允许或制止通行时间数值,复位端,状态信号;输出:显示数字。 8LCD显示器显示模块(clock_logic,contral,char_ram)显示道路所在地。 其中,5,6,7,8模块可以调通用的程序见。 三对仿真结果的分析: 1、在波形仿真中,由于分频模块的数太大,不能仿真,还有计数模块会遇到*个计数值不准确,但其前后值都准确,这些问题在下载到实验板上进展硬件仿真时,都能准确实现其功能。2、对于需要有时钟输入的模块,要根据其要是实现的功能选择不同的频率,例如:在计数模块

29、要计时,所以选择1Hz的频率;在控制模块中,为了准确显示要选择大一些的频率本系统中直接接的晶振频率10MHz;有闪烁功能的如果频率太小会出现不显示的瞬间,太大又会出现停滞不闪烁的情况(本系统中选用的是50Hz,能够到达闪烁的功能);扫描电路中如果频率太大没有用到的数码管会有模糊的显示,太小就会一个一个的显示本系统中选用的是1000Hz。3、警告信号的输入如果接按键会有抖动现象,使结果不准确,接开关就防止了这种情况。(四)设计pcb幅员由以上仿真正确结果说明该设计确实可行,所以可以自制电路印制板图画出专用的控制器件。器件选择列表:可编程芯片:fle*系列的EPF 6016TC144-3程序保存模

30、块:EPC1441PC83个SN74LS244N一个10针的接口模块,一个电源接口一个 型号为YE-JHD161A的lcd显示模板13个发光二极管,一个开关,一个按键一个SN74LS19AN反相器一个HOC-503的10MHZ晶振体一个7805稳压管,电阻可电容假设干:图4 交通灯控制模拟系统印制板图三、调试由于Altera可编程控制器件的可编程性,所以在选器件的时候就选了altera的fle*系列的EPF6016TC144-3设计的原理还是以第二步的设计原理一样,只不过把相关的绑定引脚改正就可以了,下表为新的幅员下的引脚分配。数据A141数据B140数据C139数据D137数据E138数据F

31、135数据G136数据DP134数码管选择1113数码管选择2112数码管选择3110数码管选择4109显示数据1 (Lcd7)87显示数据2(Lcd8)88显示数据3 (Lcd9)93显示数据4 (Lcd10)95显示数据5 (Lcd11)96显示数据6 (Lcd12)98显示数据7 (Lcd13)99显示数据8 (Lcd14)101显示电源lcd1,2+81,82显示电源lcd3-83显示数据|指令lcd484显示使能端lcd686显示读写lcd585东红,黄,绿68,69,71西红,黄,绿23,24,25南红,黄,绿45,46,47北红,黄,绿122,121,119开关40晶振体输入8按

32、键74m_nSTATUS56m_nCONFIG53m_DCLK128m_CONF_DONE105:1、该系统中用到的通用函数有些输入输出根据本系统的需要作了修改:VHDL硬件语言1译码函数的程序:library ieee;use ieee.std_logic_1164.all;entity display isport ( clock: in std_logic; flash: in std_logic; qin: in std_logic_vector(3 downto 0); display: out std_logic_vector(0 to 6) );end;architecture

33、fun of display issignal timeout:integer range 0 to 9;begin process(clock) begin if rising_edge(clock) then if ( flash=1 ) then timeout=0; else if (flash=0) then if ( timeout=9) then timeout=0; else timeout=timeout+1; end if; end if; end if; if (timeoutdisplaydisplaydisplaydisplaydisplaydisplaydispla

34、ydisplaydisplaydisplaydisplay=0000000; end case; else display dis6 dis6 dis6 dis6 dis6 dis6 dis6 tseltseltseltseltseltseltsel=111;end case;END IF;END PROCESS;end;3显示数字选择模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY timec ISPORT(seca:INSTD_LOGIC_VECTOR(6 DOWNTO 0);se

35、cb:INSTD_LOGIC_VECTOR(6 DOWNTO 0);mina:INSTD_LOGIC_VECTOR(6 DOWNTO 0);minb:INSTD_LOGIC_VECTOR(6 DOWNTO 0);reset:INSTD_LOGIC;sel:INSTD_LOGIC_VECTOR(2 DOWNTO 0);q:OUTSTD_LOGIC_VECTOR(6 DOWNTO 0) );END timec;ARCHITECTURE rtl OF timec ISBEGINPROCESS(reset,sel,seca,secb,mina,minb)BEGINIF reset=0 THENqqqq

36、qqqq=0000000;END CASE;END IF;END PROCESS;END rtl;4LCD显示屏函数:aLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY clock_logic ISPORT(clock:INSTD_LOGIC;enable:OUT STD_LOGIC;out_clk:OUTSTD_LOGIC);END clock_logic;ARCHITECTURE func1 OF clock_logic ISPONENT DFF PORT (d : IN STD_LOGIC; clk : IN STD_LOGIC; q : O

37、UT STD_LOGIC );END PONENT;SIGNAL sig1,sig2,sig3: STD_LOGIC;BEGINsig1 = NOT sig2;sig3 = NOT clock;OUT_CLK sig1,clk = clock,q = sig2);mydff2: DFF port map(d = sig2,clk = sig3,q = enable);END func1;(b)library ieee;use ieee.std_logic_1164.all;package mycontrol isconstant IDLE:std_logic_vector(10 downto

38、0) := ;constant CLEAR :std_logic_vector(10 downto 0) := ;constant RETURNCURSOR:std_logic_vector(10 downto 0) := ;constant SETMODE:std_logic_vector(10 downto 0) := ;constant SWITCHMODE:std_logic_vector(10 downto 0) := ;constant SHIFT:std_logic_vector(10 downto 0) := ;constant SETFUNCTION:std_logic_ve

39、ctor(10 downto 0) := ;constant SETCGRAM:std_logic_vector(10 downto 0) := ;constant SETDDRAM:std_logic_vector(10 downto 0) := ;constant READFLAG:std_logic_vector(10 downto 0) := ;constant WRITERAM:std_logic_vector(10 downto 0) := ;constant READRAM:std_logic_vector(10 downto 0) := ;constant cur_inc:st

40、d_logic:= 1;constant cur_dec:std_logic:= 0;constant cur_shift:std_logic:= 1;constant cur_noshift:std_logic:= 0;constant open_display:std_logic:= 1;constant open_cur:std_logic:= 0;constant blank_cur:std_logic:= 0;constant shift_display:std_logic:= 1;constant shift_cur:std_logic:= 0;constant right_shi

41、ft:std_logic:= 1;constant left_shift:std_logic:= 0;constant datawidth8:std_logic:= 1;constant datawidth4:std_logic:= 0;constant twoline:std_logic:= 1;constant oneline:std_logic:= 0;constant font5*10:std_logic:= 1;constant font5*7:std_logic:= 0;end mycontrol;library ieee;use ieee.std_logic_1164.all;U

42、SE ieee.std_logic_arith.all;library work;use work.mycontrol.all;entity control isport(clock:in std_logic;reset:in std_logic;rs:outstd_logic;rw:outstd_logic;data_in:in std_logic_vector(7 downto 0);data:out std_logic_vector(7 downto 0);char_address:out std_logic_vector(5 downto 0);constant DIVSS : int

43、eger := 15;end entity;architecture fun of control issignal state :std_logic_vector(10 downto 0);signal counter: integer range 0 to 127;signal div_counter: integer range 0 to 15;signal flag:std_logic ;beginrs = 1 when state = WRITERAM or state = READRAM else0;rw =0 when state = CLEAR or state = RETUR

44、NCURSOR or state = SETMODE or state = SWITCHMODE or state = SHIFT or state = SETFUNCTION or state = SETCGRAM or state = SETDDRAM or state = WRITERAM else1;data =00000001 when state = CLEAR else00000010 when state = RETURNCURSOR else000001&cur_inc&cur_noshift when state = SETMODE else00001&open_displ

45、ay&open_cur&blank_cur when state = SWITCHMODE else0001&shift_display&left_shift&00 when state = SHIFT else001&datawidth8&twoline&font5*10&00 when state = SETFUNCTION else01000000 when state = SETCGRAM else10000000 when state = SETDDRAM and counter = 0 else11000000 when state = SETDDRAM and counter /

46、= 0 elsedata_in when state = WRITERAM elseZZZZZZZZ;char_address = conv_std_logic_vector(counter,6) WHEN (state = WRITERAM and counter 40 and counter 81-8 and counter 81) else000000;process(clock,reset)beginif reset = 0 thenstate = IDLE;counter = 0;flag = 0;div_counter if flag = 0 thenstate = SETFUNC

47、TION;flag = 1;counter = 0;div_counter = 0;elseif div_counter DIVSS thendiv_counter = div_counter + 1;state = IDLE;elsediv_counter = 0;statestate state state state state state state state state if counter = 40 thenstate = SETDDRAM;counter = counter + 1;elsif counter /= 40 and counter 81 thenstate = W

48、RITERAM;counter = counter + 1;elsestatestate state result := 16*20*;when ! =result := 16*21*;when =result := 16*22*;when * =result := 16*23*;when $ =result := 16*24*;when % =result := 16*25*;when & =result := 16*26*;when =result := 16*27*;when ( =result := 16*28*;when ) =result := 16*29*;when * =res

49、ult := 16*2a*;when + =result := 16*2b*;when , =result := 16*2c*;when - =result := 16*2d*;when . =result := 16*2e*;when / =result := 16*2f*;when 0 =result := 16*30*;when 1 =result := 16*31*;when 2 =result := 16*32*;when 3 =result := 16*33*;when 4 =result := 16*34*;when 5 =result := 16*35*;when 6 =res

50、ult := 16*36*;when 7 =result := 16*37*;when 8 =result := 16*38*;when 9 =result := 16*39*;when : =result := 16*3a*;when ; =result := 16*3b*;when result := 16*3c*;when = =result := 16*3d*;when =result := 16*3e*;when =result := 16*3f*;when =result := 16*40*;when A =result := 16*41*;when B =result := 16*42*;when C =result := 16*43*;when D =result := 16*44*;when E =result := 16*45*;when F =result := 16*46*;when G =result := 16*47*;when H =resu

温馨提示

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

评论

0/150

提交评论