VHDL的基本结构

多功能数字时钟的功能和特点

多功能数字时钟的功能和特点: 1. 上电1s复位功能,手动复位功能,复位会给出1s振铃信号; 2. 基本时钟计时功能; 3. 闹钟功能; 4. 计数器倒计时功能; 5. 整点报时功能; 6. 闹钟具有懒人模式功能,如果启动懒人模式,闹钟振铃每隔一分钟就响一次,如果不启动懒人模式,闹钟振铃响一分钟就停止; 7. 任意键关闭闹钟振铃功能(与懒人模式有关); 8. 计数器自动装载功能,可实现00h:00m:15s---99h:59m:59s的循环定时振铃; 9. 计数器手动启动功能; 10. 一键启动或关闭闹钟或者计数器功能; 11. 自动检验时钟、闹钟、和计数器设置数字的正确性,不正确的数字不能被输入系统; 12. 液晶LCD1602显示,可同时查看时间和闹钟设置时间或者计数器时间; 13. 菜单设置功能,人机界面友好; 14. 30秒不操作,自动退出菜单功能; 15. 8个基本按键:“↑”、“↓”、“←”、“→”、“确定”、“取消”、“闹钟开关alarm_sw”和“计数器开关cntalm_sw”完成全部操作; 16. 可以插上4×4小键盘进行快速操作; 17. 键盘自动消抖; 18. 4×4小键盘快捷键; 19. 用4×4小键盘设置时间或闹钟或计数器数字时,正确设置一位数字后,自动移到下一位数字进行设置; 20. “↑”、“↓”键连击功能实现快速数字设定; 21. 时钟后台计时功能,查看菜单不会影响时钟计时。 22. 各种振铃声音不同,容易分辨,声音洪亮(要换成脉冲型的蜂鸣器)。 ************************************************************************ 多功能数字时钟的使用方法: 一、时钟的设定和显示: 1. 正常显示时间的界面下,液晶上第一行显示当前时钟的时间,格式为:“Time : h1h0:m1m0:s1s0”,其中“:”会0.5s亮0.5s灭。 第二行可以显示设定的闹钟时间、或当前的计数器计数值、或计数器的设定时间,可以通过接口板或者4×4小键盘上的“↑”、“↓”、“←”、“→”键来选择某一个来显示。 例如:选择显示设定的闹钟时间,格式为:“Alarm : h1h0:m1m0:s1s0”,其中“:”一直亮。例如:选择显示当前的计数器计数值,格式为:“CntTim: h1h0:m1m0:s1s0”,其中“:”一直亮。 例如:选择显示计数器的设定时间,格式为:“CntBuf: h1h0:m1m0:s1s0”,其中“:”一直亮。 2. 首先,在正常显示时间的界面下按“确定”键(接口板s6键或者4×4小键盘上的“确定”

多功能时钟(万年历)设计

多功能时钟(万年历) 设 计 报 告 专业电子信息科学与技术 班级13级电子专升本 姓名韩科峰 学号130522012 考勤成绩设计成绩 调试成绩报告成绩 总成绩

一、课题名称 多功能时钟(万年历)设计 二、内容摘要 美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 本设计是基于单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。 关键词: 三、设计指标(要求); 1、显示时间、日期由按键选择显示(日期时间可调整)。 2、可设置闹钟功能; 3、制作PC机设置界面软件,由PC机可完成对时钟的各项设置 四、系统框图;

STC12C5A08S2 单片机 DS1302时钟模块 五、各单元电路设计、参数计算和元器件选择 4位共阴极数码管 按键

六、工作原理 DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;DS1302的控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0,位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。 “CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”

VHDL语言快速入门必读

一·1.数据类型BIT与STD_LOGIC有什么区别。 BIT类型的取值只能是0或1,没有不定状态X,也没有高阻态。 STD_LOGIC类型可以有9种不同的值,包括U-初始值,X-不定,0-0,1-1,Z-高阻态,W-弱信号不定,L-弱信号0,H弱信号1.‘—’不可能情况。 2.信号和变量的异同。 信号是全局量,只要在结构体中已经定义,就可以在结构体中的所有地方使用,信号的赋值符号是”<=”,信号带入时可以附加延时,信号实际带入过程和带入语句的处理时分开进行的。 变量是局部量,只能在进程,子程序内部定义和使用,变量的赋值符号是“:=”,变量的赋值是立即执行的,不能附加延时。 3.VHDL语言的基本顺序语句和并行语句有哪些? 双性语句:信号带入语句 顺序语句:WHAT语句,断言语句,变量赋值语句,IF语句,CASE语句,LOOP语句,NEXT语句,EXIT语句,过程调用语句,NULL语句。 并行语句:进程(PROCESS)语句,条件带入语句,选择信号带入语句,并发过程调用语句,块语句。 4.用VHDL语言进行硬件设计的流程是什么? 1.分析实际的需求2确定芯片的功能3.用VHDL 语言描述改元件4.编译,如果有错误修改后再编译直至编译通过。5.仿真,如果仿真不符合设计要求,修改程序直至仿真通过。6.测试7.综合,8.下载到实际的芯片上。 5.基本的硬件描述语言的种类有哪些? 美国国防部开发的VHDL。 Verilog公司开发的Verilog-HDL. 日本电子工业振兴协会开发的UDL/I语言。 6.VHDL语言中包含的库的种类有哪些?库:是经编译后的数据的集合,它存放包集合定义,实体定义,构造体定义,和配置定义。库的种类:1.IEEE库,2.STD库,3.面向ASIC 的库,4.WORK库,5.用户定义库 7.IEEE库中所包含的基本类型转换函数有 1.包含程序所用的库 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 2.实体声明 ENTITY fp IS PORT(); END ENTITY fp; 3.结构体,具体功能的实现 ARCHITECTURE a OF fp IS BEGIN END ARCHITECTURE a; 9.VHDL的程序子结构有哪些? 进程(PROCESS)顺序语句,块(BLOCK)并行语句,过程(PROCEDURE)顺序语句,函数(顺序语句)。 10.简述when-else和if-else的区别? If-else是顺序语句所以只能在进程内部使用,可以没有else语句,可以进行嵌套。有自身值带入的描述,能组成锁存电路。 When-else是并行语句,在结构体内使用,必须要有else语句,不能进行嵌套,没有自身值带入的描述,不能组成锁存电路。 11.什么是ASIC,ASIC的特点是什么?ASIC是Application Specific Integrated Circuit 的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。 ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。 12.逻辑电平有哪些?

多功能时钟方案报告(免费)

多 功 能 数 字 钟 设 计 报 告 中国计量学院 2018年5月3日 目录 摘要

1.设计任务 1)基本要求 2)发挥部分 2.方案论证与比较 1)显示部分 2)数字时钟 3)温度采集 4)闹铃部分 5)电源模块 3.总体方案 1)工作原理 2)总体设计 4.系统硬件设计 1)STC89C52RC单片机最小系统 2)测温模块 3)时钟模块 4)存储器模块 5) LCD显示模块 6)电源模块 5.单片机程序部分 1)程序编写 6.测试与结果分析 1)基本部分测试与分析 2)发挥部分测试与分析 3)创新部分测试与分析 7.设计总结 摘要本设计采用LCD液晶屏幕显示系统,以STC89C52RC单片机为核心,由键盘、温度采集、定时闹铃、日期提醒等功能模块组成。基于题目基本要求,本系统对时间显示、闹铃方式进和温度采集系统行了重点设计。此外,扩展了整点报时、非易失闹铃信息存储、国内外重要节日提醒等功能。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,多数发挥部分也得到了实现,而且还具有一定的创新功能。

关键字:STC89C52RC单片机、LCD液晶显示、双电源供电、温度采集、非易失定时闹铃、生日提醒、重要节日提醒、整点报时 1、任务设计 1)基本要求 <1)具有时间设置<小时和分钟)、闹钟时间设置、闹钟开、闹钟关功能。 <2)数字显示小时、分钟,有AM、PM指示器,闹钟就绪灯,蜂鸣器。 <3)利用键盘或其它方式切换,数字显示年、月、日、周次。 <4)利用键盘或其它方式切换,数字显示当前环境温度<0~60℃0.2℃)。 <5)利用手势或其它任意方式非接触停止闹钟。 2)发挥部分 <1)220VAC供电,具有测量、显示电网频率、电压有效值功能。 <2)产生0-100k方波,频率10Hz步进可调,峰峰值〉20V<100欧姆负载),频率可以键盘控制。 <3)断电后,可保存电压、频率测量值,断电时间,闹钟设置值等参数,可自动保存20次,系统来电后,无需手动设置,即可恢复正常工作。 <4)遥控设置闹钟、时间等参数。 2、方案论证 1)显示部分: 显示部分是本次设计的重要部分,一般有以下两种方案: 方案一:采用LED显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。 方案二:采用LCD显示。LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。 鉴于上述原因,我们采用方案二。 2)数字时钟 数字时钟是本设计的核心的部分。根据需要可采用以下两种方案实现: 方案一:方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。而且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。 方案二:方案采用Dallas公司的专用时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。 3)温度采集 由于现在用品追求多样化,多功能化,给系统加上温度测量显示模块,能够方便人们的生活,使该设计具有人性化。 方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复

vhdl基本语法

VHDL 基础语法篇——VHDL VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN S <= A XOR B XOR Ci; Co <= (A AND B) OR (A AND Ci) OR (B AND Ci); END addstr; 从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成: 第一部分是程序包,程序包是用VHDL语言编写的共享文件,定义在设计结构体和实体

多功能时钟设计

可编程逻辑器件及其应用 设计报告 姓名:王克勤 院系:******* 学号:******* 日期:2012-04-09

多功能数字钟设计 一、设计内容及要求 用Verilog HDL设计一个多功能数字钟 基本功能描述: 1.时钟功能:包括时、分、秒的显示; 2.定时与闹钟功能:能在设定的时间发出闹铃音; 3.校时功能:能非常方便地对小时、分钟和秒进行手动调整以校准时间; 4.整点报时功能:每逢整点,产生“嘀嘀嘀嘀--嘟”,四短一长的报时音。 二、仿真环境说明 用Verilog在Altera公司的Quartus2软件环境下编写RTL代码,并进行综合,行为仿真。时序仿真采用Mentor公司旗下的ModelsimSE-6.1f软件。Modelsim 软件是业界最著名的波形仿真软件,仿真效果比Quartus2下编写波形文件仿真效果要好很多,而且仿真相当简单,只不过要编写测试向量(testbench),有点麻烦。 三、系统框图与说明 Figure1系统框图 1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2. 秒计数器计到59后,下一秒到来时,秒计时器满60,接着清零后向分计数器进位;同样分计数器计满60后向小时计数器进位;小时计数器按照“24进制”

规律计数,每当小时计到23小时时,当分计数和秒计数分别59,59时,即到23小时59分,59秒时候,时分秒全部清零,从新开始计数。 3. 计数器的输出经译码器送显示器,显示器用6个数码管表示,每两个数码管分别表示小时,分钟,秒钟。每个数码管用BCD码表示。 四、设计步骤 (一)列写多功能数字钟设计结构图 (二)在QuartusП软件下编写Verilog代码 (三)在QuartusП环境下进行综合 Figure2综合结果 从Fig.2可以看出,该设计采用Altera公司CycloneП系列下的EP2C35F672C8芯片。从图中可以看出,采用了162个逻辑单元,其中组合逻辑147个,总共的寄存器数为102个。

电子综合设计-基于单片机多功能数字时钟的设计(附完整程序)

课题:基于51单片机的多功能数字时钟系统设计 一、概述、设计思路 该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,辅以闹钟模块,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天),对闹铃方式与温度调节模块进行了重点设计实现SB0、SB1、SB2、SB3四个键实现时钟正常显示,调时,及闹钟时间设置。本系统设计大部分功能有软件来实现,使电路简单明了,系统稳定性也得大大提高。 二、系统组成与工作原理 1、工作原理: 本设计采用STC89C51单片机作为本次课程设计的控制模块。单片机可把由DS18B20、DS1302、AT24C02中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历和闹铃的显示。以LCD液晶显示器为显示模块,把单片机传来的的数据显示出来,并且显示多样化,在显示电路中,主要靠按键来实现各种显示要求的选择与切换。 2、总是设计框架图:

图二:系统总体电路图 三、单元电路的设计与分析 整个电子时钟系统电路可分为六大部分:中央处理单元(CPU)、复位电路部分、显示部分、键盘输入部分、温度采集部分。 1、MCS-51单片机 VCC: 89S51 电源正端输入,接+5V。 VSS: 电源地端。 XTAL1: 单芯片系统时钟的反相放大器输入端。 XTAL2: 系统时钟的反相放大器输出端,一般在设计上只 要在XTAL1 和XTAL2 上接上一只石英振荡晶体系 统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而 死机。

51单片机多功能电子时钟

. 常熟理工学院电气与自动化工程学院 《单片机设计与应用》课程设计题目: 51单片机多功能电子时钟 姓名:邓才明 学号: 040111102 班级: 1601112 指导教师: 起止日期:

51单片机多功能电子时钟 邓才明 常熟理工电气与自动化工程学院,20130922 摘要:本设计开发了一款具有日期、时间、星期和气温同步显示功能的电子时钟,并且能设置闹钟、转换农历、显示相关节日.工作原理是主控MCU(AT89C52)读取实时时钟芯片DS12CR887,获取时间信息,由全数字单总线结构温度传感器DS18B20读取温度信息,经MCU处理,送LCD12864显示;利用三线串口控制语音模块WT-588D-20SS可定时读出时间和响应闹铃。 关键字: DS12CR887 DS18B20 WT-588D-20SS 12864 1.方案比较与论证 当下,日历芯片很多,万年历实现方案很多,我们根据自己实际情况,提出如下方案. 1.1时间部分: 方案一、利用单片机内部定时器产生秒信号,通过软件处理得到时间信息,送LCD 显示. 方案二、利用通用串行实时时钟芯片DS1302产生时间信息,利用MCU读取时间信息,送LCD 显示. 方案三、通过实时时钟芯片DS12CR887,获取时间信息,经MCU处理,送LCD显示. 方案一电路结构简单,可控性强,但断电后时间数据完全消失,再次上电后需重新设定,且由于电路本身缺陷和附加干扰较多,时间误差较大.方案二电路结构简单,时间精度较高,由于使用串行数据传输,节省MCU资源,但DS1302无内置电池,掉电后,数据丢失,重新上电后需对时.方案三采用实时时钟芯片DS12CR887,其内部具有内置锂电池,在掉电的情况下可以正常工作10年以上,且带有非易失性RAM,可以保证在掉电的情况下,用户的定时信息不会丢失;带有温度补偿,保证时间数据的准确.经过综合考虑,我们认为方案三满足设计需求. 1.2温度部分 由于只是测量气温,用数字温度传感器单总线结构DS18B20即可满足要求,该器件采用单总线结构,且数字传输,可以与CPU直接接口,电路结构简便,可靠性好. 1.3主控部分 选用单片微控制器AT89C52作为主控.系统方案方框图如图2.1所示

vhdl基本语法(简略共34页)

VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN

VHDL语言的基本知识点罗列

VHDL语言的基本知识点罗列 1 VHDL语言的标识符 VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如下法则: a)标识符由字母(A…Z;a…z)、数字和下划线字符组成。 任何标识符必须以英文字母开头。λ 末字符不能为下划线。λ b)不允许出现两个连续下划线。 标识符中不区分大小写字母。λ VHDL定义的保留子或称关键字,不能用作标识符。λ c) VHDL中的注释由两个连续的短线(--)开始,直到行尾。 以下是非法标识符: -Decoder —起始不能为非英文字母 3DOP —起始不能为数字 Large#number —“#”不能成为标识符的构成符号 Data__bus —不能有双下划线 Copper_ —最后字符不能为下划线 On —关键字不能用作标识符。 注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。 标识符表示的几种数据对象的详细说明如下: 1) 常数(Constant ) 常数是一个固定的值,主要是为了使设计实体中的常数更容易阅读和修改。常数一被赋值就不能在改变。一般格式: CONSTANT 常数名:数据类型:=表达式; 例:CONSTANT Vcc: REAL: =5.0; —设计实体的电源电压指定 常数所赋得值应与定义的数据类型一致。 常量的使用范围取决于它被定义的位置。程序包中定义的常量具有最大的全局化特性,可以用在调用此程序包的所有设计实体中;设计实体中某一结构体中定义的常量只能用于此结构体;结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。 2) 变量(Variable) 变量是一个局部变量,它只能在进程语句、函数语句和进程语句结构中使用。用作局部数据存储。在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量常用在实现某种算法的赋值语句中。 一般格式: VARIABLE 变量名数据类型约束条件:=表达式; 例:VARIABLE x,y:INTEGER; —定义x,y为整数变量 VARIABLE count: INTEGER RANGE0 TO255:=10; —定义计数变量范围 变量的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外,必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。 变量赋值语句的语法格式如下:

多功能时钟流程图

多功能时钟流程图 一. 功能确认 ● 时钟功能: 1. 时钟显示小时和分钟 2. 用户可以通过按键调整时钟的时间 3. 无论当前时钟是否在前台显示,时钟始终是运行的。 ● 定时闹铃功能: 1. 用户可以通过按键设置闹铃时间(小时和分钟),设置完成后可以按确定键退出设 置。 2. 当系统时钟的时间等于预设的闹铃时间时,系统蜂鸣器响5秒钟。 3. 用户可以设置两个闹铃。 ● 秒表功能: 1. 用户可以通过按键进入秒表功能,也可以退出秒表状态。 2. 秒表高2位显示秒,低2位显示百分之一秒。 3. 可以通过按键暂停、(继续)运行秒表,可以通过按键对秒表清零。 二. 状态分析及模块分割 根据以上的分析,系统共有三个大的功能:时钟、设置定时、秒表,各个功能之间可以通过按键来切换,且各个功能部仍需要使用按键来处理,故可以考虑将系统定义为三个状态(status ):时钟状态、设置定时状态、秒表状态。显然,同一个按键在不同状态下的功能是不一样的。这样,在某种状态下,按下某个按键,代表唯一确定的含义。这种处理方法可以称为“状态—按键”法。 这样我们可以把程序对应地分成以下三个任务模块。 这个流程就可以作为主流程(main ()函数),当然,A 、B 、C 三框部的流程仍有 (处理时钟状态下的所有事务) (处理设置闹铃状态下的所有事务) (处理秒表状态下的所有事务)

待于细化。 三.详细设计 A框部要处理的事务见第一部分:功能确认。在此,为了完成时钟调整功能,我们可以定义Key_2为小时调整键,Key_3为分钟调整键,每次按下键,小时数或分钟数加1。当然,当用户没有按键的时候,我们还得经常保持显示屏上的时间刷新。 A框:时钟状态下的处理流程: B框要处理的功能是设置定时闹铃的事务,这里需要预设闹铃时间,同样可以定义Key_2为小时预设键,Key_3为分钟预设键,而Key_1则负责状态切换,当我们预设好时间之后,按下Key_1,就算完成了闹铃预设,让系统离开当前状态,转到秒表状态上去。 B框:设置闹铃状态下的处理流程: C框要处理的是秒表的功能,这里可以定义Key_2为启动/暂停键,Key_3为复位清零键,而Key_1依然负责状态切换,用户如果按下Key_1,就让系统离开秒表状态,转

VHDL语言的基本要素(大全)

VHDL语言的基本要素 一、数据对象 VHDL语言的主要数据对象有信号,变量,常量。 信号—信号是电路中的物理量,对应于电路的连线、节点;信号说明全局量,用于描述中的构造体(Architecture), 实体(Intity),程序包(package)。 变量—变量是程序运算中的中间量,并不对应电路中的物理量。变量说明局部量,用于进程语句(process), 函数(Function), 过程(procedure)。 常量—常数也不对应电路中的物理量,当常量说明全局量,在构造体(Architecture), 实体(Intity),程序包(package),进程语句(process), 函数(Function), 过程(procedure)中均可使用。数据对象的定义格式: signal 信号名:数据类型,约束条件,表达式 Variable 变量名:数据类型,约束条件:=表达式 Constant 常量名:数据类型,约束条件:=表达式 例如:Variable count:INTEGER RANGE 0 TO 255:=10 Constant Daly:Time:=100ns 信号代入和变量赋值的区别:两者形式不同,操作过程也不相同。变量赋值符“:=”,信号的代入符“<=”。 在变量的赋值语句中,该语句一当执行,其值立即将赋予变量;而信号的代入,其语句执行后不会立即使信号发生代入,在下条语句

执行时,仍使用原来的信号值,如进程语句中的敏感表的信号代入就是如此。 二、数据类型 VHDL语言中的数据类型,一般而言可分为:标量类型和组合类型。在实际使用中,也可分成予定义类型和用户定义类型。VHDL语言是强类型的语言,主要可按如下分类和变换处理。 ①标准数据类型 ⑴整数⑵实数(浮点数)-1.0E+38~+1.0E38 ⑶位bit (0,1) ⑷位矢量⑸布尔量,“假”,“真”⑹字符(ASCⅡ)字符 ⑺时间 ⑻错误等级⑼自然数(大于等于0的整数)⑽字符串 (字符矢量) ②用户定义的数据类型 TYPE 数据类型名{数据类型名} 数据类型定义 ⑴枚举类型⑵整数类型⑶实数类型⑷数组类型 ⑸存取类型⑹文件类型⑺记录类型⑻时间类型③用户定义子类型 SUBTUPE 子类型名IS 数据类型名[范围] 例:SUBTYPE digit is INTEGER RANGE 0 TO 9 ④数据类型转换 数据类型的变换函数通常由“STD_LOGIC_1164”,

最新单片机多功能时钟程序毕业

单片机多功能时钟程 序毕业

沈阳工程学院 课程设计设计题目:多功能时钟程序设计

沈阳工程学院 课程设计任务书 课程设计题目:多功能时钟程序设计

多功能时钟程序设计成绩评定表系部:班级:学生姓名: 中文摘要

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。 该数字钟采用液晶显示屏显示其时间与定时时间,即采用P6口输入,P7口输出,由R0输入需显示的时间,再通过延时程序将时间稳定的显示在液晶屏上。校准时间由外部中断4及开关按键控制;定时时间由外部中断3及开关按键控制,KEY3、KEY4键每按一次其时分秒的数字增加一。 关键字: 单片机,数字钟,校时,定时器

目录 1课程设计要求 (1) 1.1设计主要内容及要求 (1) 1.2对设计论文撰写内容、格式及字数的要求 (1) 1.3时间进度安排 (1) 2课程设计思路 (2) 2.1计时 (2) 2.2校时 (2) 2.3闹铃 (2) 3设计流程图 (3) 4各模块设计 (4) 4.1时钟部分 (4) ?时钟程序分析 (4) ?时钟部分程序 (4) 4.2定时部分 (6) ?定时程序分析 (6) ?定时部分程序 (6) 4.3校时部分 (8) ?校时程序分析 (8)

vhdl语言

第6章 VHDL硬件描述语言本章要点 VHDL语言的数据结构 VHDL语言的顺序语句和并行语句 VHDL程序设计 6.1 VHDL概述 6.1.1 VHDL的特点 (1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。 (2)具有丰富的模拟仿真语句和库函数。 (3)VHDL有良好的可读性,接近高级语言,容易理解。 (4)系统设计与硬件结构无关。 (5)支持模块化设计。 (6)用VHDL完成的一个确定设计,可以利用EDA工具自动地把VHDL描述转变成门电路级网表文件。 (7)设计灵活,修改方便。 用VHDL设计电路主要的工作过程是:编辑、编译、功能仿真(前仿真)、综合、布局、布线、后仿真(时序仿真)。 6.1.2 VHDL的基本结构 一个VHDL程序必须包括实体(ENTITY)和结构体(ARCHITECTURE)。除实体和结构体外,多数程序还要包含库和程序包部分。实体中定义了一个设计模块的外部输入和输出端口,即模块(或元件)的外部特征,描述了一个元件或一个模块与其他部分(模块)之间的连接关系,可以看作是输入输出信号和芯片管脚信息。结构体主要用来说明元件内部的具体结构,即对元件内部的逻辑功能进行说明,是程序设计的核心部分。库是程序包的集合,不同的库有不同类型的程序包。程序包用来定义结构体和实体中要用到的数据类型、元件和子程序等。 【例6-1】用VHDL设计一个非门(反向器)。 非门即 y = a,设反相器的VHDL的文件名是not1.vhd,其中的.vhd是VHDL程序文件的扩展名。程序结构如下:--库和程序包部分 LIBRARY IEEE; --打开IEEE库 USE IEEE.STD_LOGIC_1164.ALL; --调用库中STD_LOGIC_1164程序包 --实体部分 ENTITY not1 IS --实体名为 not1 PORT ( --端口说明 a:IN STD_LOGIC; --定义端口类型和数据类型 y:OUT STD_LOGIC); END not1: --实体结束 --结构体部分 ARCHITECTURE inv OF not1 IS --结构体名为 inv BEGIN y <= NOT a; --将a取反后赋值给输出端口y END inv; --结构体结束 这是一个完整的VHDL源程序实例。其中的第一部分是库和程序包,是用VHDL编写的共享文件,定义结构体和实体中要用到的数据类型、元件、子程序等,放在名为IEEE的库中。第二部分是实体,相当于定义电路单元的管脚信息。第三部分是结构体,用来描述电路的内部结构和逻辑功能。两条短划线是注释标识符,其右侧内容是对程序的具体注释,并不执行。所有语句都是以“;”结束,另外程序中不区分字母的大小写。 6.1.3 VHDL的库和程序包 1.库库是专门用于存放预先编译好的程序包的地方,对应一个文件目录,程序包的文件就放在此目录中,其功能相当于共享资源的仓库,所有已完成的设计资源只有存入某个“库”内才可以被其他实体共享。常用的库有IEEE库、STD库和WORK库。库语句格式如下: LIBRARY 库名; 2.程序包程序包是用VHDL语言编写的一段程序,可以供其他设计单元调用和共享,相当于公用的“工具箱”,各种数据类型、子程序等一旦放入了程序包,就成为共享的“工具”,类似于C语言的头文件,使用它可以减少代码的输入量,使程序结构清晰。程序包分为包头和包体两部分。

多功能时钟(AVR)含完整程序

多功能数字钟设计 摘要:本系统基于Mega16设计,使用DS1302时钟芯片,通过LCD1602显示年月日、星期、时分秒,实现了计时与时间校正,正点报时与音乐闹钟,时钟掉电保持,日历和光标定位调整等功能。 关键词:AVR、Mega16、DS1302、LCD1602 设计课题一多功能数字钟设计 一、设计任务 设计并制作一多功能数字钟 二、设计要求 1.基本要求 (1)能实现基本的计时功能,采用24小时制计时,能在数码管或液晶上正常显示时、分、秒。 (2)时间校正功能; 时分均有校时功能。 (3)正点报时功能。当计时器运行到59分49秒开始报时,每鸣叫1s就停叫1s,共鸣叫6,前5响为低音,频率为750Hz;最后1响为高音,频率为1KHz。 (4)可设定至少2个闹钟时间,当按下闹铃开关时,可在规定时间闹铃,当开关复位时,闹铃停止。 (5)时钟掉电保持功能,当电源掉电时时钟不停止。 2.发挥部分 (1)增加日历功能,能正确显示年月日星期等。 (2)增加音乐闹钟功能。 (3)按键语音报时功能。 (4)无线遥控时钟功能。 (5)触摸报时功能。 (6)其它功能。 1 方案论证与比较

1.1核心芯片 方案一:选用ARM 优点:自带实时时钟,速度快 缺点:没有掉电时间保持功能,成本高 方案二:选用mega16+DS1302 优点:价格便宜,能满足课题的要求 缺点:速度比ARM慢,需要另配时钟芯片 芯片选择:两者价格相差比较大,价格便宜的mega16已经能满足课题设计的要求,所以选择方案二性价比高。 1.2显示模块 方案一:数码管 优点:价格便宜 缺点:只能显示阿拉伯数字,需要大量的数码管,电路设计的复杂性高 方案二:选用LCD1602 优点:可以显示英文、数字和符号,屏幕显示细腻直观 缺点:价格比数码管高 显示选择:如果用数码管显示,至少需要17位数码管,成本也不低了,结合1602 的优点,所以选择方案二 2 系统框图 3 原理图 正点 报时按键控制模块 蜂鸣器 Mega16 单片机 DS1302 时钟芯片 音乐 闹钟 后备电池 LCD1602 光标定位 调整日历时间

03 第三章 VHDL语言基础 习题答案

填空题 1、一个标准的VHDL语言程序由库、实体和结构体组成。 2、个完整的VHDL语言描述是以对一个功能元件的完整描述为基础的 3、实体相当于电路图中一个器件符号。 4、端口说明(PORT)是对设计实体与外部接口的描述,也可以说是设计实体的外部引脚的名称,它为实体与外部环境的动态通信提供通道 5、缓冲(BUFFER)端口描述模式和INOUT双向模式的区别在于只能接受一个驱动源,不允许多重驱动。 6、VHDL语言的结构体的这些子结构互相之间是并行的。 7、将VHDL语言的行为描述语句转换为门级描述由VHDL开发工具自动完成,是VHDL语言综合器的任务。 8、数据流描述也称为RTL(寄存器传输级)描述方式,它类似于布尔方程,它既表示某种行为,又隐含结构信息,主要指非结构化的并行语句描述。 9、在结构描述中,元件间的连接是通过定义的端口界面来实现的。 10、结构描述的缺点是程序表示的是电路的结构连接关系,不能直观的得到设计电路的逻辑功能。 综述题 1、写出实体的结构。 答案: ENTITY 实体名IS [GENERIC(类属表);] [PORT(端口表);] END ENTITY 实体名; 2、在IEEE库中定义了哪四种VHDL语言的端口模式? 答案: ●IN:输入。 ●OUT:输出。 ●INOUT:双向,输入输出。 ●BUFFER:缓冲,其实质也是双向的,但是只能接受一个驱动源。 3、写出结构体的结构。

?2 ? 答案: ARCHITECTURE 结构体名OF 实体名IS [说明语句] BEGIN [功能描述语句] END ARCHITECTURE 结构体名; 4、写出结构体的功能性描述语句的5种子结构。 答案: 块语句、进程语句、子程序调用语句、信号赋值语句和元件例化语句。 5、VHDL有哪四种描述风格? 答案: 行为描述、数据流描述、结构描述以及由前三种组合的混合描述。 实验题 实验【一】编写一个实体 实验目的:熟悉实体的编写方法。 实验任务:在Quartus II中建立一个VHDL语言文件,编写一个实体,该实体要求如下: 实体名:TEST。 输入端口:INPUTA,INPUTB,数据类型为BIT。 输出端口:OUTPUT,数据类型为BIT。 没有类属说明。 答案: ENTITY TEST IS --实体 PORT( INPUTA,INPUTB: in bit; --2个输入引脚,类型BIT OUTPUT: out bit); --1个输出引脚,类型BIT END TEST; 实验【二】编写一个结构体 实验目的:熟悉结构体的编写方法。

相关文档
最新文档