100进制计数器.docx
《100进制计数器.docx》由会员分享,可在线阅读,更多相关《100进制计数器.docx(17页珍藏版)》请在冰豆网上搜索。
100进制计数器
四川工商学院电子信息工程学院
电子电路课程设计
100进制计数器设计
学生姓名
杨露
学号
2015101027
所在学院
电子信息工程学院
专业名称
通信工程
班级
15通信(移动)
(1)班
指导教师
周春梅
成绩
×××
四川工商学院
二○一七年十二月
电子电路课程设计任务书
学生姓名
杨露
学生学号
2015101027
学生专业
通信工程
学生班级
15通信(移动)
(1)班
指导教师
周春梅
职称
发题日期
2017年12月25日
完成日期
2018年1月8日
设计题目
100进制计数器的设计
设计目的:
实现计数的功能,方便一些生活基本需要。
具体任务及要求:
1.设计要求(前言,设计背景,发张前景)
2.题目分析
3.总体方案
4.原理图设计
5.各部分定性说明及定量计算
6.在设计过程终于到的问题及排除措施
7.设计心得体会
课程设计进度安排:
序号
内容安排
时间
1
选择报告题目,明确任务书内容
2017.12.27
2
查阅相关资料及基础知识
2017.12.28
3
完成要求的设计任务,实现相关功能
2018.1.2
4
完成设计报告及提交
2018.1.3
课程设计参考文献:
[1]
[2]
[3]
[4]
[5]
指导教
师签字
院长审核签字
计数器
内容摘要:
计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。
计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。
它主要的指标在于计数器的位数,常见的有3位和4位的。
很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。
关键词:
计数器指令触发器
Counter
Abstract:
Thecountisoneofthemostsimplebasiccomputingcounterlogiccircuitistorealizethisoperation,thecounterindigitalsystemsistocountthenumberofpulsestoachievethemeasurementandcountingandcontrolfunctions,alsohasthefunctionoffrequencydivision,thecounteriscomposedofbasiccountingunitandacontrolgate,aallkindsoftriggercountingunitiscomposedofaseriesofinformationstoragefunction,thetriggerRSflip-flop,Tflip-flop,Dflip-flop,JKflip-flopetc..Thecounteriswidelyusedindigitalsystems,suchastheaddressoftheinstructioncountinthecomputercontroller,inordertoremovetheorderofthenextinstruction,inthearithmeticunitformultiplicationanddivisionoperationstowritedownthenumberofadditionandsubtraction,andasinthedigitalinstrumentofpulsecountingetc..Thecountercanbeusedtodisplaytheworkingstatusoftheproduct,arecommonlyusedtoindicatetheproducthascompletedanumberofcopiesofthefoldingwithpage.Itsmainindicatoristhenumberofbitsofthecounter,3-bitand4-bitcommon.Itisclearthatthemaximumofthe3digitcountercanbedisplayedto999,themaximumofthe4digitscanbedisplayedto9999.
Keywords:
CounterInstructionsTrigger
100进制计数器
前言
计数器电路是一种随时钟输入CP的变化,其输出按一定的顺序变化的时序电路,其变化的特点不同可将计数器电路按以下几种进行分类:
按照时钟脉冲信号的特点分为同步计数器和异步计数器两大类,其中同步计数中构成计数器的所有触发器在同一个时刻进行翻转,一般来讲其时钟输入端全连在一起;异步计数器即构成计数器的触发器的时钟输入CP没有连在一起,其各触发器不在同一时刻变化。
一般来讲,同步计数器较异步计数器具有更高的速度。
按照计数的数码变化升降分为加法计数器和减法计数器,也有一些计数器既可实现加计数又可实现减计数器,这类计数器为可逆计数器。
按照输出的编码形式可分为:
二进制计数器、二—十进制计数器、循环码计数器等。
按计数的模数(或容量)分:
十进制计数器、十六进制计数、六十进制计数器等。
1设计内容
设计出带有异步清零、同步使能、可预置初值和进位功能的8位100进制计数器设计。
1.1设计要求
在数字系统中,计数器不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲和脉冲序列等。
常用的计数器包括加法计数器、减法计数器和加减可逆计数器。
用层次化设计方法设计一个可控的100进制计数器的计数、译码电路:
Ø计数器的时钟输入信号为1s
Ø计数器的功能是从0到99计数
2涉及工具
计数器,触发器,数码管。
2.1计数器
狭义的计数器是指一些常用计时器,例如体育比赛中测试时间的计时器等,但本词条所要介绍的并不是这种计时器,要介绍的是应用更为广泛的时序逻辑电路中的计数器。
2.1.1计数器的应用
计数器应用包括通话、短信、数据等类别的记录,并支持用户自主选择清零日期,以及按照类别添加提醒数值,如用户可以选择每月任一一天,或者第一天、最后一天作为记录循环清零日,同时添加通话时长、短信条数、数据流量数量的提醒节点。
计数器的应用极为广泛,不仅能用于计数,还可用于分频、定时,以及组成各种检测电路和控制电路。
为了使用方便,在有些单片集成计数器上还附加了异步置零、预置数、保持等功能,并设置了相应的控制端。
2.1.2计数器的种类
如果按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种。
如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器。
另外还有很多种分类不一一列举,但是最常用的是第一种分类,因为这种分类可以使人一目了然,知道这个计数器到底是什么触发方式,以便于设计者进行电路的设计。
此外,也经常按照计数器的计数进制把计数器分为二进制计数器、十进制计数器等等。
2.2触发器
触发器(trigger)是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
触发器可以从DBA_TRIGGERS,USER_TRIGGERS数据字典中查到。
SQL3的触发器是一个能由系统自动执行对数据库修改的语句。
触发器可以查询其他表,而且可以包含复杂的SQL语句。
它们主要用于强制服从复杂的业务规则或要求。
例如:
您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。
如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行
2.2.1触发器的作用
可在写入数据表前,强制检验或转换数据;触发器发生错误时,异动的结果会被撤销;部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器;可依照特定的情况,替换异动的指令(INSTEADOF)。
2.2.2触发器的种类
DML触发器:
当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。
DML触发器的主要作用在于强制执行业务规则,以及扩展SqlServer约束,默认值等。
因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
DDL触发器:
它是SqlServer2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。
比如在修改表,修改列,新增表,新增列等。
它在数据库结构发生变化时执行,我们主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改,比如不允许删除某些指定表等。
登录触发器:
登录触发器将为响应LOGIN事件而激发存储过程。
与SQLServer实例建立用户会话时将引发此事件。
登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。
因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自PRINT语句的消息)会传送到SQLServer错误日志。
如果身份验证失败,将不激发登录触发器。
2.3数码管
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。
2.3.1数码管的结构
led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
2.3.1数码管的应用范围
数码管是显示屏其中一类,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛,空调、热水器、冰箱等等。
绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
3实验流程
3.1新建工程
●启动工程向导
●工程设置向导
●添加设计文件
●选择目标芯片
●选择其他EDA工具
●完成工程项目建立
图3-1-1执行NewProjectWizard命令
图3-1-2工程设置向导
图3-1-3选择EDA其他工具
3.2书写程序
图3-2-1程序图
图3-2-2程序运行图
3.3程序仿真
●数码新建向量波形仿真文件
●添加端口或总线信号
●设置仿真参数
●编辑输入信号
●保存波形文件
●运行仿真器
图3-3-1新建波形仿真文件
图3-3-2设置仿真结束时间
图3-3-3编译命令
图3-3-4波形编辑窗口
图3-3-5“NodeFinder”对话框
图3-3-6“NodeFinder”对话框
图3-3-7建完的波形仿真文件
图3-3-8建完的波形仿真文件
图3-3-9建立QuartusII自带仿真工具
图3-3-10启动仿真器
图3-3-11仿真结果波形图
4结束语
本设计原理简单,结构清晰,较为容易仿真成功。
从本次课程设计中使我获益匪浅,首先使我对数电这门课程有了更深的体会,通过对100进制计数器的设计使我将以前所学的理论知识运用到实际中去,使用软件进行仿真,使我找到了很多以前没有完全理解的知识,通过再次查找资料,我又学会了很多。
本次课程设计也反映出很多问题,比如竞争—冒险现象是很常见的,并且消除此现象并不是很容易,尤其是对结构复杂的电路而言,往往消除了一处竞争—冒险现象,又产生了另一处,此问题需要我以后多加注意。
通过该课程的学习,我体会到理论要与实践结合才能发挥作用,只学习理论并不一定能完成一些实际的设计。
看似很简单的题目到真正来做的时候就会出现各种错误,这也提醒我在以后的学习中要多多实践,将学到的理论知识灵活地运用到实践中去,不断提高自己的动手能力。
另外在实践中不能想当然的去猜想,一定要通过实践来检测设计的电路是否正确。
对于本课程,我希望能在多增加一点课时,熟能生巧,多思考,多动手,才会有真正的收获。
附录
附录1:
程序
modulejishuqi(CLK,RST,EN,LOAD,DATA,COUT,Q);
inputCLK,RST,EN,LOAD;
input[7:
0]DATA;
output[7:
0]Q;
outputCOUT;
reg[7:
0]Q1;
regCOUT;
assignQ=Q1;
always@(posedgeCLKornegedgeRST)
begin
if(!
RST)Q1<=0;
elseif(EN)
begin
if(!
LOAD)Q1<=DATA;
elseif(Q1<99)Q1<=Q1+1;
elseQ1<=8'b00000000;
end
end
always@(Q1)
begin
if(Q1==99)COUT<=1;
elseCOUT<=0;
end
endmodule
参考文献
[1]彭介华.电子技术课程设计指导[M].北京:
高等教育出版社,2002.6:
23—42
[2]王传新.电子技术基础——分析、调试、综合设计[M].北京:
高等教育出版社,2006.1:
270—275
[3]阎石.数字电子技术基础[M].第5版.北京:
清华大学出版社,2006.5:
278—311
[4]康华光.电子技术基础:
数字部分[M].第4版.北京:
高等教育出版社,2000
成绩评定表
学生姓名
学生学号
学生专业
学生班级
指导教师
职称
设计题目
评
语
评定成绩
等级
分数
指导教师签字:
年月日
说明:
分数采用百分制,相应的等级为:
优:
90~100:
良:
80~89;中:
70~79;及格:
60~69;不及格:
60分以下。