SOPCEDA综合课程设计报告---综合计时系统
eda计时器课程设计
eda计时器课程设计一、课程目标知识目标:1. 学生能够理解EDA计时器的基本原理和功能。
2. 学生掌握计时器的电路设计方法,了解不同类型计时器的优缺点。
3. 学生掌握计时器的编程方法,能够运用所学知识实现计时功能。
技能目标:1. 学生能够运用EDA软件进行计时器电路设计,具备实际操作能力。
2. 学生能够编写简单的计时器程序,实现计时功能。
3. 学生通过课程学习,提高分析问题、解决问题的能力。
情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发创新精神。
2. 学生在团队合作中,学会沟通、协作,培养团队精神。
3. 学生在学习过程中,树立正确的价值观,认识到科技对社会发展的积极作用。
课程性质:本课程为实践性较强的电子设计课程,以项目为导向,结合理论知识与实践操作。
学生特点:学生处于高年级阶段,已具备一定的电子基础知识和编程能力。
教学要求:注重理论与实践相结合,以学生为主体,教师引导,培养学生的动手能力和创新能力。
通过分解课程目标为具体的学习成果,便于教学设计和评估。
二、教学内容1. 计时器原理:回顾时钟信号、晶振、分频器等基础知识,讲解EDA计时器的工作原理。
2. 计时器电路设计:介绍常见计时器电路,如555定时器、RTC实时时钟等,分析其电路特点和适用场景。
- 教材章节:第三章《数字电路设计》- 内容列举:555定时器、RTC实时时钟、分频器等电路设计方法。
3. 计时器编程:讲解计时器的编程方法,包括汇编语言和C语言编程。
- 教材章节:第四章《微控制器编程》- 内容列举:计时器编程思路、中断处理、寄存器配置等。
4. EDA软件应用:运用EDA软件(如Protel、Multisim等)进行计时器电路设计与仿真。
- 教材章节:第五章《电子设计自动化》- 内容列举:EDA软件操作、电路图绘制、仿真分析等。
5. 实践项目:设计并实现一个简单的EDA计时器,要求具备计时、报警等功能。
- 教材章节:第六章《实践项目》- 内容列举:项目要求、电路设计、程序编写、调试与优化等。
SOPC综合课程设计指导书
第一章EDA技术综合应用设计基础1.1 EDA技术综合应用的形式随着EDA技术的深入发展和EDA技术软硬件性能价格比的不断提高,EDA技术的应用将向广度和深度两个方面发展。
根据利用EDA技术所开发的产品的最终主要硬件构成来分,作者认为,EDA技术的应用发展将表现为如下几种形式:(1) CPLD/FPGA系统:使用EDA技术开发CPLD/FPGA,使自行开发的CPLD/FPGA作为电子系统、控制系统、信息处理系统的主体。
(2) ―CPLD/FPGA+MCU‖系统:综合应用EDA技术与单片机技术,将自行开发的―CPLD/FPGA+MCU‖作为电子系统、控制系统、信息处理系统的主体。
(3) ―CPLD/FPGA+专用DSP处理器‖系统:将EDA技术与DSP专用处理器配合使用,用―CPLD/FPGA+专用DSP处理器‖构成一个数字信号处理系统的整体。
(4) 基于FPGA实现的现代DSP系统:基于SOPC(a System on a Programmable Chip)技术、EDA技术与FPGA技术实现方式的现代DSP系统。
(5) 基于FPGA实现的SOC片上系统:使用超大规模的FPGA实现的,内含1个或数个嵌入式CPU或DSP,能够实现复杂系统功能的单一芯片系统。
(6) 基于FPGA实现的嵌入式系统:使用CPLD/FPGA实现的,内含嵌入式处理器,能满足对象系统要求的特定功能的,能够嵌入到宿主系统的专用计算机应用系统。
1.2 EDA技术综合应用的设计方法与建模1.2.1 分析方法传统的电路设计方法都是自底向上进行设计的,也就是首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,最后形成系统。
在基于EDA技术的系统设计的最重要环节——在系统的基本功能或行为级上对设计的产品进行描述和定义时,我们采用自顶向下分析,自底向上设计的方法。
所谓―自顶向下分析‖,就是指将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模块,层层分解,直至整个系统中各子系统关系合理,并便于逻辑电路级的设计和实现为止。
eda计时器课程设计报告
1/100s计时器报告一、1/100s计时器的功能和结构1/100s计时器常用于体育竞赛及各种要求有较精确定时的各领域。
以往利用常用的中小规模集成电路也可以设计这种1/100s的计时器,但是其体积通常都较大,携带和使用都很不方便。
为此,要求设计一块专用的ASIC芯片,除开关、时钟和显示功能以外,它包括1/100s 计时器所有的控制和定时功能,其体积应和机械式计时器的大致相同。
1、功能要求(1)精度大于1/100s计时器能显示1/100s的时间,故提供给计时器的内部定时的时钟脉冲频率大于100hz,可选1khz。
(2)计时器的最长计时时间为1h在一般的短时计时器的应用中,1h是足够了,为此需要一个6位的显示器,显示的最长时间为59分59.99秒.(3)设置复位和启/停开关复位开关用来使计时器清零,并做好计时的准备。
启/停开关的使用方法应与传统的机械式计数器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关终止。
复位开关可以在任何的情况下使用,即使在计时的过程中,只要一按复位开关,计时进程应立即终止,并对计时器清零。
2、1/100s计时器的结构设想1/100s计时器的结构如下图2.1所示。
从图中可以看到,1/100s计时器由复位开关、启/停开关、系统电源复位电路、时钟脉冲发生器、7段LED显示器和1/100s计时控制芯片组成。
复位开关reset_sw 和start_stop_sw都是高电平有效。
另外,开关的消抖电路应在控制芯片中。
系统复位输入端sysres是计时器加电复位的输入端,其复位电路是为外加的,不包含在芯片中。
时钟输入clk是由外加时钟脉冲发生器的输出提供的,本设计中要求输入一个频率稳定的1Khz时钟脉冲。
6位显示器需要6个7段LED,控制芯片的7条段输出线segment (6 TO 0)与7段LEDd 对应连接。
控制芯片的6条common(5 TO 0)输出线分别接到各个LED,用来选择显示LED。
eda课程设计计时器
eda课程设计计时器一、课程目标知识目标:1. 让学生理解EDA技术的基本概念,掌握计时器电路的设计原理。
2. 使学生掌握计时器电路的组成部分,如触发器、计数器等。
3. 帮助学生了解计时器在实际应用中的功能和作用。
技能目标:1. 培养学生运用所学知识,设计并搭建简单计时器电路的能力。
2. 提高学生分析和解决计时器电路实际问题的能力。
3. 培养学生运用EDA软件进行电路仿真和调试的技能。
情感态度价值观目标:1. 培养学生对电子设计及其应用的兴趣,激发学生的创新意识。
2. 培养学生严谨的科学态度,提高学生的团队协作能力。
3. 增强学生的国家意识,认识到我国在EDA领域的发展潜力。
本课程针对的学生特点为具备一定电子基础知识,具有较强的动手能力和探究精神。
课程性质为理论与实践相结合,注重培养学生的实际操作能力。
在教学要求方面,强调学生对基本概念的理解,注重实际操作能力的培养,同时关注学生情感态度价值观的塑造。
通过本课程的学习,预期学生能够掌握计时器电路的设计原理和实现方法,具备一定的电子设计能力,并在情感态度价值观方面得到全面提升。
二、教学内容本课程教学内容主要包括以下几部分:1. 计时器电路基础知识:介绍EDA技术的基本概念,计时器电路的基本原理和分类,使学生了解计时器电路在实际应用中的作用。
2. 计时器电路的组成部分:详细讲解触发器、计数器等计时器电路核心部件的工作原理和应用。
3. 计时器电路设计方法:分析不同类型的计时器电路设计方法,如同步计时器、异步计时器等,并引导学生运用所学知识进行设计。
4. EDA软件使用:教授学生如何使用EDA软件进行计时器电路的绘制、仿真和调试,提高学生的实际操作能力。
5. 实践操作:安排学生分组进行计时器电路的设计、搭建和测试,培养学生的动手能力和团队协作精神。
教学内容安排如下:第1课时:计时器电路基础知识,介绍EDA技术和计时器电路原理。
第2课时:计时器电路的组成部分,分析触发器、计数器等核心部件。
EDA综合计时系统设计
SOPC/EDA综合课程设计报告设计题目:综合计时系统设计者:文波学号:08060108115班级:电气081指导老师:王忠锋完成时间:2011年1月13日目录1. 综合计时系统设计与分析 (2)1.1 系统设计要求 (2)1.2 系统设计方案 (2)1.2.1 综合计时电路的设计 (2)1.2.2 显示控制电路XSKZQ的设计 (5)1.2.3 调整控制电路TZKZQ的设计 (9)1.2.4 综合计时系统ZHJSQ的设计 (12)1.3系统单元仿真与分析 (13)1.3.1综合计时电路的仿真 (13)1.3.2 显示控制电路的仿真 (14)1.3.3调整控制电路的仿真 (15)1.3.3综合计时系统电路的仿真 (15)2. 改进方法 (16)3. 收获与体会 (16)参考文献 (17)1. 综合计时系统设计与分析1.1 系统设计要求设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时功能,同时将计时结果通过15个七段数码管显示,并且可通过两个设置键,对计时系统的有关参数进行调整。
具体系统功能面板如图1.1所示。
图1.1 系统功能面板1.2 系统设计方案 1.2.1 综合计时电路的设计根据系统的设计要求,综合计时电路可分为计秒电路、计分电路、计时电路、计星期电路、计日电路、计月电路、计年电路等7个子模块,这7个子模块必须都具有预置、计数和进位功能,设计思想如下:(1) 计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。
(2) 计分电路、计时电路:其设计思想与计秒电路类似。
(3) 计日电路:将计时电路产生的进位脉冲信号作为计日电路的计数时钟信号,通过系统辨认,确定本月总天数X(包括28、29、30、31四种情况),待计数至X +1瞬间,进位,计月电路加1,而计日电路返回1重新开始计数。
SOPC课程设计实验报告
SOPC课程设计实验报告基于SOPC的警示灯设计2013电子信息工程3班李婕20134557罗丹妮20134563一、设计目的1、熟悉掌握SOPC的基本流程2、设计一个警示灯并满足基本要求3、通过设计发现问题并解决二、设计设备1、硬件:PC机、SOPC-NIOS II EDA/SOPC系统开发平台2、软件:QUARTUS II、SOPC Builder、NIOS II ID E三、设计内容•初始状态为红灯(LED2)熄灭,绿灯(LED1)点亮,数码管显示为0。
•当按键按下,红灯(LED2)闪烁,绿灯(LED1)熄灭,同时蜂鸣器响起,数码管开始倒计时9S,此状态持续时间为9s。
•9s后,恢复初始状态。
四、设计步骤1、使用Quartus II建立一个工程文件和顶层文件;2、使用SOPC Builder建立一个简单Nios II硬件系统1)启动SOPC Builder2)指定目标FPGA3)添加NiosII内核及其他外设A、添加NiosII、SRAM、JTAG-UART、Avalon总线的I P核B、添加一个2位的输入型PIO作为按键keyC、添加两个1位的输出型PIO作为 led1及led2的输出端口D、添加一个1位的输出型PIO作为蜂鸣器的输入端口AE、添加一个3位的输出型PIO作为数码管的位选selF、添加一个8位的输出型PIO作为数码管的段选dat4)指定基地址和中断优先级5)设置NiosII复位和异常地址6) 编译生成NiosII系统SOPC Builder行程图如下:3、在Quartus II中建立一个蜂鸣器1)用VHDL语言编写蜂鸣器程序2)编译成功后Creat symbol,生成Project sing4、在Quartus II中编译Nios II硬件系统并生成配置文件1)在Quartus II加入Nios II系统符号到顶层文件2)给各端口加入输入输出引脚,并重命名3)设置参数4)编译顶层文件5)分配管脚6)再次编译5、在Nios II IDE中建立C/C++工程,编写用户程序6、编译用户程序7、下载.SOF至FPGA,运行程序,观察结果五、设计程序蜂鸣器程序(VHDL):LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sing1 ISPORT(CLK:IN STD_LOGIC;p:IN STD_LOGIC;-- DIGIT:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);SPEAKER:OUT STD_LOGIC);END ENTITY;ARCHITECTURE SONG OF sing1 ISSIGNAL DRIVER,ORIGIN:STD_LOGIC_VECTOR(12 DOWNTO 0); SIGNAL COUNTER:INTEGER RANGE 0 TO 140;SIGNAL COUNTER1:INTEGER RANGE 0 TO 3;SIGNAL COUNTER2:INTEGER RANGE 1 TO 10000000; SIGNAL DIGIT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL COUNT :STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL CARRIER,CLK_4MHZ,CLK_4HZ:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF COUNTER1=1 THEN CLK_4MHZ<='1';COUNTER1<=2;ELSIF COUNTER1=3 THEN CLK_4MHZ<='0';COUNTER1<=0;ELSE COUNTER1<=COUNTER1+1;END IF;IF COUNTER2=5000000 THEN CLK_4HZ<='1';COUNTER2<=5000001;ELSIF COUNTER2=10000000 THEN CLK_4HZ<='0';COUNTER2<=1;ELSE COUNTER2<=COUNTER2+1;END IF;END IF;END PROCESS;PROCESS(CLK_4MHZ)BEGINIF CLK_4MHZ'EVENT AND CLK_4MHZ='1' THEN IF DRIVER="1111111111111"THENCARRIER<='1';DRIVER<=ORIGIN;ELSEDRIVER<=DRIVER+1;CARRIER<='0';END IF;END IF;END PROCESS;PROCESS(CARRIER)BEGINif(p='1')thenIF CARRIER'EVENT AND CARRIER='1' THEN COUNT<=COUNT+1;IF COUNT="00"THENSPEAKER<='1';ELSESPEAKER<='0';END IF;END IF;end if;END PROCESS;PROCESS(CLK_4HZ)BEGINIF CLK_4HZ'EVENT AND CLK_4HZ='1' THEN IF COUNTER=140 THENCOUNTER<=0;ELSE COUNTER<=COUNTER+1;END IF;END IF;CASE COUNTER ISWHEN 2 =>DIGIT<="0000011"; WHEN 3 =>DIGIT<="0000011"; WHEN 4 =>DIGIT<="0000101"; WHEN 5 =>DIGIT<="0000101"; WHEN 6 =>DIGIT<="0000101"; WHEN 7 =>DIGIT<="0000110"; WHEN 8 =>DIGIT<="0001000"; WHEN 9 =>DIGIT<="0001000"; WHEN 10 =>DIGIT<="0001000"; WHEN 11 =>DIGIT<="0010000"; WHEN 12 =>DIGIT<="0000110"; WHEN 13 =>DIGIT<="0001000"; WHEN 14 =>DIGIT<="0000101"; WHEN 15 =>DIGIT<="0000101"; WHEN 16 =>DIGIT<="0101000"; WHEN 17 =>DIGIT<="0101000"; WHEN 18 =>DIGIT<="0101000"; WHEN 19 =>DIGIT<="1000000"; WHEN 20 =>DIGIT<="0110000"; WHEN 21 =>DIGIT<="0101000"; WHEN 22 =>DIGIT<="0011000"; WHEN 23 =>DIGIT<="0101000"; WHEN 24 =>DIGIT<="0010000"; WHEN 25 =>DIGIT<="0010000"; WHEN 26 =>DIGIT<="0010000"; WHEN 27 =>DIGIT<="0010000"; WHEN 28 =>DIGIT<="0010000"; WHEN 29 =>DIGIT<="0010000"; WHEN 30 =>DIGIT<="0000011"; WHEN 31 =>DIGIT<="0000000"; WHEN 32 =>DIGIT<="0010000"; WHEN 33 =>DIGIT<="0010000"; WHEN 34 =>DIGIT<="0010000"; WHEN 35 =>DIGIT<="0011000"; WHEN 36 =>DIGIT<="0000111"; WHEN 37 =>DIGIT<="0000111"; WHEN 38 =>DIGIT<="0000110"; WHEN 39 =>DIGIT<="0000110"; WHEN 40 =>DIGIT<="0000101"; WHEN 41 =>DIGIT<="0000101"; WHEN 42 =>DIGIT<="0000101"; WHEN 43 =>DIGIT<="0000110";WHEN 46 =>DIGIT<="0010000"; WHEN 47 =>DIGIT<="0010000"; WHEN 48 =>DIGIT<="0000011"; WHEN 49 =>DIGIT<="0000011"; WHEN 50 =>DIGIT<="0001000"; WHEN 51 =>DIGIT<="0001000"; WHEN 52 =>DIGIT<="0000110"; WHEN 53 =>DIGIT<="0000101"; WHEN 54 =>DIGIT<="0000110"; WHEN 55 =>DIGIT<="0001000"; WHEN 56 =>DIGIT<="0000101"; WHEN 57 =>DIGIT<="0000101"; WHEN 58 =>DIGIT<="0000101"; WHEN 59 =>DIGIT<="0000101"; WHEN 60 =>DIGIT<="0000101"; WHEN 61 =>DIGIT<="0000101"; WHEN 62 =>DIGIT<="0000101"; WHEN 63 =>DIGIT<="0000101"; WHEN 64 =>DIGIT<="0011000"; WHEN 65 =>DIGIT<="0011000"; WHEN 66 =>DIGIT<="0011000"; WHEN 67 =>DIGIT<="0101000"; WHEN 68 =>DIGIT<="0000111"; WHEN 69 =>DIGIT<="0000111"; WHEN 70 =>DIGIT<="0010000"; WHEN 71 =>DIGIT<="0010000"; WHEN 72 =>DIGIT<="0000110"; WHEN 73 =>DIGIT<="0001000"; WHEN 74 =>DIGIT<="0000101"; WHEN 75 =>DIGIT<="0000101"; WHEN 76 =>DIGIT<="0000101"; WHEN 77 =>DIGIT<="0000101"; WHEN 78 =>DIGIT<="0000101"; WHEN 79 =>DIGIT<="0000101"; WHEN 80 =>DIGIT<="0000011"; WHEN 81 =>DIGIT<="0000101"; WHEN 82 =>DIGIT<="0000011"; WHEN 83 =>DIGIT<="0000011"; WHEN 84 =>DIGIT<="0000101"; WHEN 85 =>DIGIT<="0000110"; WHEN 86 =>DIGIT<="0000111"; WHEN 87 =>DIGIT<="0010000";WHEN 90 =>DIGIT<="0000110"; WHEN 91 =>DIGIT<="0000110"; WHEN 92 =>DIGIT<="0000110"; WHEN 93 =>DIGIT<="0000110"; WHEN 94 =>DIGIT<="0000101"; WHEN 95 =>DIGIT<="0000110"; WHEN 96 =>DIGIT<="0001000"; WHEN 97 =>DIGIT<="0001000"; WHEN 98 =>DIGIT<="0001000"; WHEN 99 =>DIGIT<="0010000"; WHEN 100=>DIGIT<="0101000"; WHEN 101=>DIGIT<="0101000"; WHEN 102=>DIGIT<="0101000"; WHEN 103=>DIGIT<="0011000"; WHEN 104=>DIGIT<="0010000"; WHEN 105=>DIGIT<="0010000"; WHEN 106=>DIGIT<="0011000"; WHEN 107=>DIGIT<="0010000"; WHEN 108=>DIGIT<="0001000"; WHEN 109=>DIGIT<="0001000"; WHEN 110=>DIGIT<="0000110"; WHEN 111=>DIGIT<="0000101"; WHEN 112=>DIGIT<="0000011"; WHEN 113=>DIGIT<="0000011"; WHEN 114=>DIGIT<="0000011"; WHEN 115=>DIGIT<="0000011"; WHEN 116=>DIGIT<="0001000"; WHEN 117=>DIGIT<="0001000"; WHEN 118=>DIGIT<="0000110"; WHEN 119=>DIGIT<="0001000"; WHEN 120=>DIGIT<="0000110"; WHEN 121=>DIGIT<="0000011"; WHEN 122=>DIGIT<="0000011"; WHEN 123=>DIGIT<="0010000"; WHEN 124=>DIGIT<="0000011"; WHEN 125=>DIGIT<="0000101"; WHEN 126=>DIGIT<="0000110"; WHEN 127=>DIGIT<="0001000"; WHEN 128=>DIGIT<="0000101"; WHEN 129=>DIGIT<="0000101"; WHEN 130=>DIGIT<="0000101"; WHEN 131=>DIGIT<="0000101";WHEN 134=>DIGIT<="0000101"; WHEN 135=>DIGIT<="0000101"; WHEN 136=>DIGIT<="0000000"; WHEN 137=>DIGIT<="0000000"; WHEN 138=>DIGIT<="0000000"; WHEN 139=>DIGIT<="0000000"; WHEN OTHERS=>DIGIT<="0000000";END CASE;CASE DIGIT ISWHEN "0000011"=>ORIGIN<="0100001001100";WHEN "0000101"=>ORIGIN<="0110000010001";WHEN "0000110"=>ORIGIN<="0111000111110";WHEN "0000111"=>ORIGIN<="1000000101101";WHEN "0001000"=>ORIGIN<="1000100010001";WHEN "0010000"=>ORIGIN<="1001010110010";WHEN "0011000"=>ORIGIN<="1010000100101";WHEN "0101000"=>ORIGIN<="1011000001000";WHEN "0110000"=>ORIGIN<="1011100011110";WHEN "1000000"=>ORIGIN<="1100010001000";WHEN OTHERS=>ORIGIN<="1111111111111";END CASE;END PROCESS;END SONG;警示灯总程序:#include <stdio.h>#include <sys/unistd.h>#include <io.h>#include <string.h>#include "system.h"#include "altera_avalon_pio_regs.h"#include "alt_types.h"#include "sys/alt_irq.h"int num;static void Button_ISR_Init(void);static void Button_Irq_Handler(void* context,alt_u32 id);alt_u8 segtab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9段码static void display(int num);//按键初始化static void Button_ISR_Init(void){IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY_BASE,0xff); //允许8个按键中断IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BASE,0); //清除中断标志寄存器alt_irq_register(KEY_IRQ,NULL,Button_Irq_Handler); //注册中断}static void display(int num){IOWR_ALTERA_AVALON_PIO_DATA(SEL_BASE,0); //数码管位选IOWR_ALTERA_AVALON_PIO_DATA(DAT_BASE,segtab[num]); //显示倒计时usleep(1000);}/*------------------------------------------------------------------***********************按键中断处理函数*****************************-----------------------------------------------------------------*/static void Button_Irq_Handler(void* context,alt_u32 id){int i;for(i=0;i<9;i++){num=9-i;display(num);IOWR_ALTERA_AVALON_PIO_DATA(A_BASE, 1);//蜂鸣器响起IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE, 0);IOWR_ALTERA_AVALON_PIO_DATA(LED2_BASE, 1);usleep(500000);IOWR_ALTERA_AVALON_PIO_DATA(LED2_BASE, 0);usleep(500000);}IOWR_ALTERA_AVALON_PIO_DATA(A_BASE, 0);//蜂鸣器关闭IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BASE,0);num=0;display(num);}int main(void){printf("Begin!\n");Button_ISR_Init(); //按键中断初始化while(1){usleep(100000);IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE, 1);IOWR_ALTERA_AVALON_PIO_DATA(LED2_BASE, 0);num=0;display(num);}return 0;}六、设计结果按键未按下时,处于初始状态:LED1亮,LED2灭,数码管显示为0,蜂鸣器未启动;按键按下之后,LED1灭,LED2闪烁,数码管进入9秒倒计时并且蜂鸣器响;9秒后恢复初始状态。
eda课程设计时间报告
eda课程设计时间报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件完成基本的电路设计,如数字电路、模拟电路等。
3. 学生了解并掌握电路仿真、波形分析等技能。
技能目标:1. 学生能独立使用EDA工具进行电路设计和仿真。
2. 学生具备分析电路原理和优化电路设计的能力。
3. 学生能够通过团队合作,共同完成一个综合性的电路设计项目。
情感态度价值观目标:1. 学生培养对电子工程的兴趣,激发创新意识和探索精神。
2. 学生树立正确的工程观念,注重实践操作和工程应用。
3. 学生在团队协作中学会沟通、分享和承担责任,培养合作精神。
课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,培养学生运用EDA工具进行电路设计和仿真的能力。
学生特点:本年级学生具备一定的电子基础知识,具有较强的学习能力和动手能力,对新鲜事物充满好奇心。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的主观能动性,培养其创新意识和实践能力。
在教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程教学内容主要包括以下三个方面:1. EDA基本概念与工具使用- 了解EDA的发展历程、基本概念及其在电子工程设计中的应用。
- 学习并掌握主流EDA软件(如Multisim、Protel等)的基本操作和使用方法。
2. 电路设计与仿真- 学习数字电路、模拟电路的基本原理和设计方法。
- 利用EDA软件进行电路设计与仿真,分析电路性能,优化设计方案。
教学大纲:- 数字电路设计:组合逻辑电路、时序逻辑电路设计。
- 模拟电路设计:放大器、滤波器等电路设计。
- 电路仿真:仿真参数设置、波形分析、性能评估。
3. 综合性项目实践- 学生分组进行项目实践,运用所学知识完成一个具有实际意义的电路设计项目。
- 项目过程中,培养学生的团队协作、沟通能力及解决问题的能力。
EDA多功能秒表课程设计
EDA多功能秒表课程设计一、课程目标知识目标:1. 学生能理解EDA多功能秒表的基本原理和功能。
2. 学生能掌握秒表的计时、计次和闹钟等功能操作。
3. 学生了解秒表在日常生活和运动竞赛中的应用。
技能目标:1. 学生能运用所学知识,独立操作多功能秒表,进行计时和计次。
2. 学生能通过分析秒表数据,提高解决问题的能力。
3. 学生能运用秒表进行简单的运动计时和数据分析。
情感态度价值观目标:1. 学生培养对电子产品的兴趣,激发学习电子技术知识的热情。
2. 学生在团队协作中,培养合作精神和沟通能力。
3. 学生通过运用秒表进行运动计时,培养公平竞争和尊重规则的意识。
课程性质:本课程为实践性较强的电子技术课程,结合多功能秒表的实用功能,使学生掌握基本操作和运用。
学生特点:学生处于好奇心强、动手能力逐渐增强的阶段,对新鲜事物充满兴趣,善于合作与分享。
教学要求:教师需引导学生主动参与,注重实践操作,培养学生动手能力和解决问题的能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,提高学生的综合素质。
通过本课程的学习,使学生将所学知识应用于实际生活,达到学以致用的目的。
二、教学内容本章节教学内容主要包括以下几部分:1. 多功能秒表的原理与结构:介绍秒表的电子元件、工作原理和整体结构,使学生了解秒表的内部构造和功能实现方式。
教材章节:第一章 电子元件与电路基础2. 多功能秒表的操作与使用:详细讲解秒表的计时、计次、闹钟等功能操作,以及如何进行复位、设置等操作。
教材章节:第二章 数字电路与计时器3. 秒表在运动计时中的应用:通过实例分析,使学生了解秒表在运动竞赛中的实际应用,如田径、游泳等项目的计时。
教材章节:第三章 计时器在体育运动中的应用4. 秒表数据的分析与处理:教授学生如何分析秒表数据,进行简单的数据处理,提高学生解决问题的能力。
教材章节:第四章 数据分析与处理5. 实践操作:安排学生进行实际操作,如使用秒表进行计时、计次,分析数据等,巩固所学知识。
EDA课程设计报告--倒计时
课程设计报告课程名称EDA课题名称倒计时专业自动化年级09级学号姓名1)课题的主要功能设计一个100秒倒计时,用两位数码管显示,用两个拨码开关分别当做RST,EN用来控制时钟的复位和使能,倒计时完后,蜂鸣器鸣笛。
2)功能模块的划分图1 倒计时功能模块图该倒计时分为四个模块,分别为:计数器分频模块、十进制减法计数器模块、数码管动态显示模块、分频器模块。
3)主要功能的实现3.1、计数器分频功能计数器分频COUNTER如图2模块所示,计数器分频到0-22次,最后分出来的COUT[22]时间是0.8秒,近似于1秒。
3.2、十进制减法计数器功能十进制减法计数器模块DSQSHI如图4模块所示,CLK为计数时钟,RST 为1时,数码管上显示00,RST为0时EN为1时计数开始,每10个数,COUT 输出一个1。
3.3、数码管动态显示功能数码管动态显示模块SMGM如图5模块所示,每一个数码管都有一个对应的CLK10到CLK9,CLK为数码管的扫描周期接COUT[10],SG接数码管的段码,BT接数码管的位码。
3.4、分频功能分频器模块FPQ如图3模块所示,对机器中自带的时钟频率进行分频由50MHZ分到10MHZ。
图2 COUNTER模块图3 FPQ模块图4 DSQSHI模块图5 SMGM模块4)各模块连接在一起最终图形解释:用COUT[22]当第一个十进制的CLK用这个十进制减法计数器当做秒钟的个位,然后用第一个十进制计数器的COUT当做第一个十进制减法计数器的CLK,用这个十进制减法计数器当做秒钟的十位,所有的计数器的RST和EN 接在一起,实现同时复位和使能。
用的是数字电路的知识让小时在24的时候复位,将小时的个位计数器的CQ引出COUT1[3..0],然后0是0000在COUT1[3]到COUT[0]接四个非门,然后将4位接与门,将小时的十位计数器的CQ引出COUT2[3..0],然后0是0000在COUT[3]到COUT[0]接四个非门,然后将4位接与门,将两个与门接与门,再将最后一个与门与蜂鸣器相与,则在倒计时为00时蜂鸣器就会鸣笛。
实验六 综合计时系统的设计
实验六综合计时系统的设计[实验目的]通过计时电路的设计,学会较复杂的数字系统文本输入或原理图输入设计方法。
[实验仪器]PC机、EDA实验箱一台Quartus II 6.0软件[实验内容]设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时功能,同时将计时结果通过15个七段数码管显示,并且可通过两个设置键,对计时系统的有关参数进行调整。
具体系统功能面板如图所示。
本次实验只要求同学们完成时、分、秒的设计。
[实验原理与思路]根据系统的设计要求,综合计时电路可分为计秒电路、计分电路、计时电路、计星期电路、计日电路、计月电路、计年电路等7个子模块,这7个子模块必须都具有预置、计数和进位功能,设计思想如下:(1) 计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。
(2) 计分电路、计时电路:其设计思想与计秒电路类似。
(3) 计星期电路:将计时电路产生的进位脉冲信号作为计星期电路的计数时钟信号,待计数至7瞬间,计星期电路返回1重新开始计数。
(4) 计日电路:将计时电路产生的进位脉冲信号作为计日电路的计数时钟信号,通过系统辨认,确定本月总天数X(包括28、29、30、31四种情况),待计数至X+1瞬间,进位,计月电路加1,而计日电路返回1重新开始计数。
(5) 计月电路:将计日电路产生的进位脉冲信号作为计月电路的计数时钟信号,待计数至12瞬间,进位,计年电路加1,而计月电路返回1重新开始计数。
(6) 计年电路:将计月电路产生的进位脉冲信号作为计年电路的计数时钟信号,待计数至100瞬间,计年电路返回0重新开始计数。
显示控制电路的设计本设计显示需要使用的是15个七段显示数码管。
在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。
eda倒计时课程设计
eda倒计时课程设计一、课程目标知识目标:1. 理解EDA(电子设计自动化)的基本概念,掌握倒计时器的设计原理。
2. 学会使用EDA软件进行倒计时器电路的设计、仿真与验证。
3. 了解数字电路中计数器、触发器等基本组件的工作原理及其在倒计时器中的应用。
技能目标:1. 培养学生运用EDA软件进行电路设计的能力,掌握设计流程和操作方法。
2. 提高学生分析问题、解决问题的能力,培养他们在实际操作中发现问题、解决问题的技巧。
3. 培养学生的团队合作意识,提升他们在项目实践中的沟通与协作能力。
情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养他们主动探索、勇于创新的科学精神。
2. 引导学生关注科技发展,认识到电子设计在现代社会中的重要作用,增强社会责任感。
3. 培养学生严谨、细致的学习态度,提高他们在面对困难时的自信心和毅力。
本课程针对高中年级学生,结合学科特点,注重理论知识与实践操作相结合,旨在提高学生的电子设计能力。
通过本课程的学习,使学生能够掌握EDA倒计时器设计的基本原理和方法,培养他们在实际项目中运用所学知识解决问题的能力,并激发他们对电子科技的热爱和探索精神。
二、教学内容1. 电子设计自动化(EDA)基本概念介绍:包括EDA的定义、发展历程、应用领域。
2. 倒计时器原理学习:重点讲解数字电路中计数器、触发器等基本组件的工作原理及其在倒计时器中的应用。
3. EDA软件操作与使用:学习如何使用EDA软件进行电路设计,包括原理图绘制、电路仿真、PCB布线等。
- 软件安装与界面熟悉- 原理图绘制方法与技巧- 电路仿真与调试- PCB布线设计4. 倒计时器电路设计实例:结合教材,分析一个具体的倒计时器电路设计案例,引导学生了解设计流程及注意事项。
- 设计需求分析- 电路组件选择- 原理图绘制- 仿真与调试- PCB设计5. 团队合作实践:分组进行倒计时器电路设计,培养学生团队合作意识,提高实际操作能力。
单片机课程设计报告-电子计时器综合系统设计
完整设计吉林建筑工程学院电气与电子信息工程学院单片机课程设计报告设计题目:电子计时器综合系统设计专业班级:学生姓名:学号:指导教师:设计时间:2011.08.22-2011.09.02目录第1章绪论 (3)1.1 课程设计目的 (3)1.2 课程设计内容 (3)1.3 课程设计要求 (3)1.4 电子时钟的简单介绍 (3)1.5 单片机的相关知识 (3)1.5.1 单片机简介 (3)1.5.2 单片机的发展史 (4)第2章控制系统的硬件设计 (5)2.1 单片机型号的选择 (5)2.1 89C51单片机介绍 (5)2.3 振荡电路 (6)2.4 复位电路 (7)2.5 键盘电路 (7)2.6 数码管显示工作原理 (7)2.7 整个电路原理图 (8)2.8 PCB板图 (9)第3章控制系统的软件设计 (10)3.1 程序流程图 (10)3.2 程序设计 (12)第4章软件仿真 (13)4.1 Proteus软件介绍 (13)4.2 仿真结果 (13)4.3 结果分析 (13)第5章心得体会 (14)参考文献 (14)附录 (15)第1章绪论1.1课程设计目的:通过《单片机原理与应用》课程设计,掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。
进一步加深单片机及其扩展系统设计和应用的理解。
1.2课程设计内容:1)电子计时器综合系统设计①有4位数码管显示,能按照分秒进制显示时间;②能正确手动复位;③有上电指示灯;1.3课程设计要求:1)独立设计原理图及相应的硬件电路。
2)针对选择的设计题目,设计系统软件。
软件要做到:操作方便,实用性强,稳定可靠。
3)设计说明书格式规范,层次合理,重点突出。
并附上设计原理图及相应的源程序。
1.4 电子时钟的简单介绍1957年,Ventura发明了世界第一台电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
现在的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时清零。
EDA电子钟实验报告
华北水利水电学院EDA课程设计(电子钟)报告名称:EDA综合实验设计题目:电子钟院系:信息工程班级:2009122学号:200912214学生姓名:宋月指导教师:段美霞袁胜2013年1月7日-----18日一、课程设计(综合实验)任务设计一个综合性的计时系统,要求能实现时、分、秒计数等综合计时功能,同时将计时结果通过6个七段数码管显示。
能够对时和分进行设置,并能一键复位,重新计数。
1.计秒电路:以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。
注:本组实验所用的计秒时钟是用实验箱上1KHZ信号经分频器产生的。
2.计分电路、计时电路:其设计思想与计秒电路类似。
计时电路是24进制的,计满24产生进位。
3.时间设置电路:负责对时分秒进行调整,并能够产生进位。
4.显示控制电路的设计,本设计显示需要使用的是6个七段显示数码管。
注:本组实验在EDA6000上运行时,所用的是内部含有4-16译码器的八段数码管。
二、试验目的1.掌握时十进制、六十进制和二十四进制计数器的设计方法。
2.掌握多位计数器相连的设计方法。
3.掌握多位共阴极扫描显示数码管的驱动及编码。
三、总体设计方案1.问题分析:1.1计时及显示功能:计时模块实际为对一个标准1Hz时钟脉冲进行计数。
秒计数器满60后向分计数器进位,分计数器满60向时计数器进位,时计数器为24进制。
6个七段显示数码管分别显示时、分、秒的十位和个位。
1.2时间设置电路:对于系统中的时间调整电路,可以通过三个外部按键“set”,“chang”,“rst”来完成。
“rst“为复位键,按下之后时钟清零,重新开始计数。
“set”为时间设置控制键,按第一下对分进行设置(用min发光二极管亮标示);按第二下对时进行设置,(用hour发光二极管亮标示);按第三下,重新开始计数。
“chang”键为在“set”键按下对时间进行设置时,对时或分进行加1操作,直至到达满意时间。
EDA综合课程设计实验报告
EDA综合课程设计实验报告题目:设计一个全双工UART电路院系:XXXX学院学号:XXXXX姓名:严XX教师:林XX时间:2012.06.021 课程设计的摘要原理 (2)2 设计一个全双工UART电路,具体要求如下: (6)3.UART设计 (7)3.1 UART结构 (7)3.2 UART的帧格式 (8)4 UART的Verilog HDL语言设计 (9)4.1 UART分频器 (9)4.2UART发送模块 (10)4.3 UART的接收模块 (14)4.4 UART的硬件测试 (18)5 课程设计总结 (19)1摘要UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。
只需将其核心功能集成即可。
波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。
UART允许在串行链路上进行全双工的通信。
串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。
如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。
或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。
使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。
本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。
实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。
使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。
5 综合计时系统的设计李爽设计综合计时系统
密级:科学技术学院NANCHANG UNIVERSITY COLLEGE OFSCIENCE AND TECHNOLOGY学士学位论文THESIS OF BACHELOR(2007 —2011年)题目利用CPLD/FPGA设计综合计时系统学科部:信息学科部专业:电子信息工程班级:二班学号:7020907059学生姓名:李爽指导教师:丁杰起讫日期:2010.11.15---2011.06.11南昌大学科学技术学院学士学位论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。
本人完全意识到本申明的法律后果由本人承担。
作者签名:日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权南昌大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
保密□,在年解密后适用本授权书。
本学位论文属于不保密□。
(请在以上相应方框内打“√”)作者签名:日期:导师签名:日期:利用CPLD/FPGA设计综合计时系统专业:电子信息工程学号:7020907059学生姓名:李爽指导教师:丁杰摘要用一片FPGA和其它辅助器件构成一个综合计时系统,显示当前的小时、分钟、秒。
通过两个按键进行时钟的预置,一个是调节键,用于调节目标数位的数字,对调节的内容敏感,如调节分钟或秒时,保持按下时自动计数,否则以脉冲计数;另一个为功能键,用于切换不同状态:计时、调时、调分、调秒、调小时制式;实现准点报时功能;实现闹钟功能。
本设计用EDA工具QuartusII和VHDL语言实现多功能数字中的设计,给出数字钟自顶向下的设计思想和具体方案,并用VHDL语言对各个模块进行功能描述。
电子计时器综合系统设计
《单片机原理与应用》课程设计报告一、设计目的、意义(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的能力。
(2)熟悉Ptoteus及Keil软件的的调试和仿真。
(3)通过实验提高对单片机的认识。
(4)通过实验提高软件调试能力。
(5)进一步熟悉和掌握单片机的结构及工作原理。
(6)通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解电路参数的计算方法。
(7)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
(8)通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、设计内容、要求本次课程设计的题目为电子计时器综合系统设计,该设计要具有如下内容:(1)有上电指示灯。
(2)能正确手动复位。
(3)12MHz的晶振频率。
(4)有6位数码管显示.(5)时钟的功能(能按照时分秒进制显示时间)。
(6)秒表的功能(精确到0.01s)附加:(7)有调整时间的功能。
(8)由4×4的键盘控制。
三、总体设计方案本设计为电子计时器综合系统设计,采用控制芯片对数码管进行显示处理,利用键盘作为控制输入信号,通过不同的按键达到不同的显示效果。
本次设计要求显示器能够显示时间、能够进行秒表计数显示并且可以自行更改时间。
要完成这几种功能,需要对控制芯片、显示器进行选择,对按键进行设计。
系统总体设计框图如下图所示。
总体框图控制芯片的选择采用AT89C52单片机作为系统的控制器,采用模块化的设计方案。
利用扫描方式确定按键的值,以此作为单片机输入信号对显示器的模式进行控制。
单片机使用简单,软件编程灵活,成本较低。
对于本系统的设计要求,使用AT89C52足以满足它的控制功能。
键盘的设计在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SOPC/EDA综合课程设计报告设计题目:综合计时系统设计者:学号:班级:指导老师:完成时间:目录1设计总说明 (3)1.1系统设计要求 (3)2综合计时系统设计与分析 (4)2.1 综合计时模块: (4)2.1.1单时钟电路构想 (4)2.1.2显示控制电路的设计 (7)2.1.3调整控制电路TZKZQ的设计 (10)2.2 系统单元仿真与分析 (11)2.2.1综合计时电路的仿真 (11)2.2.2调整控制电路的仿真 (12)2.2.3显示控制电路的仿真 (13)3外围电路设计 (14)3.1 直流稳压电源设计电路图 (14)3.2 显示电路的设计 (15)4收获与体会 (16)4.1 改进方法 (16)4.2 体会 (16)5设计参考资料 (18)6附录————程序段 (19)6.1 CONT60计时电路的VHDL源程序 (19)6.2 CONT30计时电路的VHDL源程序 (19)6.3 显示控制电路XSKZQ的VHDL源程序 (21)6.4 调整控制电路TZKZQ的VHDL源程序 (26)1设计总说明计时系统对现代人们生活学习工作等各方面有着巨大的作用,从以前的时钟、手表到至今,计时系统已经发展成为普遍性,综合性,简便性。
如何用更简单、可靠的原理,更轻便、廉价的设备,更精确、综合的计时,来设计电子计时器,是此设计的研究目的。
随着现代电子产品正以前所未有的高速度,向着功能多样化、体积最小化、功耗最低化迅速发展,如何提高产品性能,缩小产品体积,降低产品功耗,是对现代电子产品的基本要求,而EDA ,即电子设计自动化技术,正是为了适应现代电子产品的设计要求,伴随着计算机、集成电路、电子系统设计的发展,吸收数据库、图形学、图论与拓扑逻辑、计算数学、优化理论等多学科最新成果而逐步形成的一门新技术。
它以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑期间的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑简化、逻辑映射、编程下载等工作等。
采用EDA 技术进行综合计时系统的设计,可让计时系统达到精确,简易,可靠,省能。
EDA 技术设计电子产品,已成为当今电子研发行业的主流,它可提高电子设计自动化程度,缩短开发周期,提高产品的竞争力。
本设计选用Altera 公司的FLEX10K 系列芯片,该芯片采用5V 的工作模式,由Altera 公司的MAXplus2开发系统提供软件支持,以硬件描述语言VHDL 为系统逻辑描述的主要表达方式,设计了一个综合计时系统。
1.1系统设计要求设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时功能,同时将计时结果通过15个七段数码管显示,并且可通过两个设置键,对计时系统的有关参数进行调整。
具体系统功能面板如图1所示。
图1系统功能面板年月日星期模式调整年月日时分秒星期2综合计时系统设计与分析2.1 综合计时模块:计时模块又可分七个小模块,有计秒模块,计分模块,计时模块,计日模块,计月模块,计年模块,计星期模块,用于完成各种计时的功能。
其中,计秒电路的输入时钟周期为1秒,计分电路的输入时钟为计秒电路的输出进位,如此类推下去,构成每个计时模块之间的联系。
而计日模块又略有不同,因为每个月的日数受年份,月份影响,所以要输入当前的年份月份来判断是否闰年,是否大月,才可以实现准确的计时。
调整控制电路则用于调整计时系统的有关参数,通过两个按键来对系统的参数进行修改,在修改过程中,对应的修改计时模块通过相应的灯点亮来表示数据正待输入。
显示控制电路用于完成计时结果的显示控制及显示译码等功能然后通过15个七段数码管显示出来。
同时,设计了相应的外围电路,因为家庭用的都是220V的交流电压,所以可通过整流,滤波,稳压,产生5V和12V电压的直流稳压电路,5V的电压供给FLEX10K芯片,而12V电压供给产生1KHz频率的方波信号源电路,还有显示数码管驱动电路,用于15个数码管的显示驱动,还有8个LED显示灯,表示当前调整模式的选择状况,两个点动式按键用于调整数据时的模式选择和数据修改。
关键词:EDA;FLEX10K系列芯片;VHDL硬件描述语言;计时模块;显示块;调整模块;外围电路。
2.1.1单时钟电路构想数字钟以其显示时间的直观性、走时准确性而受到了人们的欢迎并很快走进了千家万户。
作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。
数字钟的基本原理方框图如下:图2 数字钟原理方框图时基T产生电路由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz的、非常稳定的计数时钟脉冲。
控制逻辑电路产生调时、调分信号及位选信号。
调时、调分信号的产生:由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。
现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。
调节小时的时间也一样的实现。
计数显示电路由计数部分、数据选择器、译码器组成,是时钟的关键部分。
计数部分:由两个60进制计数器和一个12/24进制计数器组成,其中60进制计数器可用6进制计数器和10进制计数器构成;24进制的小时计数同样可用6进制计数器和10进制计数器得到:当计数器计数到24或晚上12时,“2”和“4”(或“1”和“2”)同时进行清零,则可实现24/12进制计数。
数据选择器:因为本实验用到了6个动态扫描数码管,数据的选择输出是由输出相应的选择位完成的,故需要提供扫描输出程序。
图3 自顶向下设计分割图CNT60计数模块是一个多用计时模块,它既可作为计秒电路调用,又可作为计分电路、计时电路调用。
图4是其输入、输出端口图。
其中,输入信号LD为置数控制信号,低电平有效;输入信号CLK为计数时钟信号;输入信号DATA为待预置数;输出信号NUM为计数结果;输出信号CO为计数溢出信号。
图4 CNT60计数模块输入、输出端口图CNT60的主要VHDL程序段如下:IF(LD='0') THENNUM<=DATA;ELSIF CLK'EVENT AND CLK='1' THENIF NUM="111011" THEN --59NUM<="000000";CO<='1';ELSENUM<=NUM+1;CO<='0';END IF;END IF;图5 CNT30计数模块的输入、输出端口图CNT30的主要VHDL程序段如下:IF(LD='0') THENNUM<=DATA;ELSIF CLK'EVENT AND CLK='1' THENMAX_DAYS<=TOTAL_DAYS;IF NUM=TOTAL_DAYS THEN --99NUM<="00001";CO<='1';ELSENUM<=NUM+1;CO<='0';END IF;END IF;2.1.2显示控制电路的设计本设计显示需要使用的是15个七段显示数码管。
在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。
为了解决好以上问题,下面就对七段数码管显示电路做简要的分析和介绍通常点亮一个LED所需的电流是5~50 mA,通电的电流愈大,LED的亮度愈高,相对的也会使其寿命缩短。
一般以10 mA的导通电流来估算它所必须串联的阻值,其计算方式参考图6所示。
图6 单个LED的串接电阻计算方式七段显示器可分为共阳极、共阴极型两种,它们都可以等效成8个LED的连接电路,其中图7就是共阴极型七段显示器的等效电路和每节LED的定义位置图。
图7 共阴极型七段显示器根据以上设计思想,本系统的数据显示电路可分为两个子模块:(1) 显示控制电路XSKZQ:负责完成数据选择扫描及数码管位选择信号的产生,数据扫描选择输出,对于选择的数据进行BCD码转换等功能;(2) 显示译码电路:将用于显示的BCD码数据进行译码。
XSKZQ的输入、输出端口如图8所示。
其中,输入信号CLK_SCAN为用于产生数据选择扫描等控制信号的时钟信号;输入信号SEC、MIN、HOUR、DAY、MON、YEAR、WEEK分别来自计秒电路、计分电路、计时电路、计日电路、计月电路、计年电路、计星期电路等计时电路的计时结果输出端;输出信号BCD为被选择进行显示的计秒/计分/计时/计日/计月/计年/计星期电路等计时电路的计时结果的8位BCD码,输出端SELOUT经外部的3-8译码电路译码后用于选择对应计时结果显示数码管的公共端COM。
图8 XSKZQ的输入、输出端口图图9为15个共阴极型七段数码管驱动接线图SM14SM13SM12SM3SM2SM1SM0图9 15个共阴极型七段数码管驱动接线图2.1.3调整控制电路TZKZQ 的设计对于系统中的时间调整电路,拟通过模式和调整两个外部按键完成。
模式按键负责切换正常时间计数模式和时间调整模式,调整模式切换顺序如图10所示。
调整键负责在时间调整模式之下,对当前模式的计时结果进行调整。
图10 调整模式切换顺序对于系统中的时间调整电路,拟通过模式和调整两个外部按键完成。
模式键负责切换正常时间计数模式和时间调整模式,调整模式切换顺序如图10所示。
调整键负责在时间调整模式之下,对当前模式的计时结果进行调整。
TZKZQ 模块是负责各个模块之间的相互切换以及对被选中的模式进行时间调整的。
图11是其输入、输出端口图。
图11 TZKZQ 的输入、输出端口图2.2 系统单元仿真与分析各部分模块完成后,用QUARTUS Ⅱ对程序进行编译仿真,以得到相应的仿真波形。
2.2.1综合计时电路的仿真CNT60.VHD模块仿真波形如下:图12 CNT60.VHD模块仿真图从图12可以看出,CNT60.VHD实现了从0到59的循环计数,每实现一次59到0的计数动作,计数模块输出一个进位信号。