数字电子技术课程设计报告书。
设计题目:电子秒表的设计。
学院: 系别:
班级:姓名:
学号:指导教师:
设计题目:一项目名称:电子秒表。
设计一个电子秒表,该秒表在2个按钮a、b控制下工作。当按钮a第1次按下时,秒表开始计数;当按钮a第2次按下时,秒表停止计数;当按钮a第3次按下时,秒表继续计数。在秒表停止计数时,按钮b可以使秒表清零。
二原理框图:
三状态转换图:
四实验程序。
状态机程序:
module statemiao(a,b,clk,reset,jishu);
input a,b,clk;
output reset,jishu;
reg reset,jishu;
reg [2:0] zstate,znext;
parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100;
always @(posedge clk)
zstate<=znext;
always @(zstate or a or b)
begincase(zstate)
s0: begin reset<=1;jishu<=0;
if(!a) znext<=s1;else znext<=s0;
ends1: begin reset<=0;jishu<=1;
if(a) znext<=s2;else znext<=s1;
ends2: begin reset<=0;jishu<=1;
if(!a) znext<=s3;else znext<=s2;
ends3: begin reset<=0;jishu<=0;
if(a) znext<=s4;else znext<=s3;
ends4: begin reset<=0;jishu<=0;
if(!a) znext<=s1;
elseif(!b) znext<=s0;else znext<=s4;
enddefault:znext<=s0;
endcase
endendmodule
状态机功能说明:第一次按下开关a后,输出jishu为高电平,启动十进制计数器;第二次按下开关a后,输出jishu为低电平,停止十进制计数器;第三次按下开关a后,输出jishu为高电平,又启动十进制计数器;若在第二次按下a后,即十进制计数器暂停计数时,按下开关b,输出reset为高电平,十进制计数器清零。
十进制计数器程序:
module jishujafa (clk,reset,jishu,m1,m2);
input clk,reset,jishu;
output[3:0] m1,m2;
wire[3:0] m1,m2;
reg[3:0] n1,n2;
reg g;
always @(posedge clk)
beginif(reset==1 &&jishu==0) begin n1<=0;n2<=0; end
else if(reset==0 &&jishu==1) begin n1<=n1+1;
if(g==1) begin n2<=n2+1;n1<=0;end
else n2<=n2;
endelse if(reset==0 &&jishu==0) begin n1<=n1; n2<=n2; end
endalways @ n1)
begin
case(n1)
4'b0000 : g=0;
4'b0001 : g=0;
4'b0010 : g=0;
4'b0011 : g=0;
4'b0100 : g=0;
4'b0101 : g=0;
4'b0110 : g=0;
4'b0111 : g=0;
4'b1000 : g=0;
4'b1001 : g=1;
default : g=1;
endcase
endassign m1=n1;
assign m2=n2;
endmodule
十进制计数器功能说明:当jishu为高电平,启动十进制计数器;当jishu为低电平时,停止十进制计数器;当reset为高电平时,计数器清零。
译码器程序:
module bcd(ag,bcd);
output[6:0] ag;
input[3:0] bcd;
reg [6:0] ag;
always @(bcd)
begincase(bcd)
4'd0: ag=7'b0000001;
4'd1: ag=7'b1001111;
4'd2: ag=7'b0010010;
4'd3: ag=7'b0000110;
4'd4: ag=7'b1001100;
4'd5: ag=7'b0100100;
4'd6: ag=7'b0100000;
4'd7: ag=7'b0001111;
4'd8: ag=7'b0000000;
4'd9: ag=7'b0000100;
4'd10: ag=7'b0001000;
4'd11: ag=7'b1100000;
4'd12: ag=7'b0110001;
4'd13: ag=7'b1000010;
4'd14: ag=7'b0110000;
4'd15: ag=7'b0111000;
endcase
endendmodule
五顶层模块图:
第一次按下a后,秒表开始计数,第二次按下a后,计数暂停,第三次按下a后,继续计数;计数暂停时,按下b,秒表复位。
说明:根据**结果和引脚锁定,在实验电路板上进行试验,达到题目的要求。
六硬件电路设计。
原理图:如下图所示,本实验采用了一个芯片,两个按钮,两个数码管,一个jtag接口,一个电源,一个555定时器。
pcb图:七总结:
这是上大学期间的第一个课程设计,题目看似普通,只是一个最常用的秒表,但是设计过程中,感觉其实并不简单。
在第一部分中,通过对题目的解析和所学的对数字电子技术的知识,加上自己的反复思考和老师的请教,终于构思出了原理图和状态图,知道了秒表每一个状态各个部分的位置和功能;第二部分就是刚刚学过的编写实验程序,这一部分确实令人头疼,开始并不了解,经过老师的讲解,发现verilog hdl语言和学过的c语言有相似之处都是一步一步,一个状态一个状态通过相应的语言表达出来的,而且verilog hdl是使用广泛的硬件描述语言,该语言的特点是语言能力强,**简单,虽然有所了解,但实际操作上问题还是不少,经过几次尝试之后,终于编好了此程序。
max+plusⅱ、protel99se 这两个软件由于是第一次使用,还不熟练,因而在运用过程中也遇到了一些困难。比如,用max+plusⅱ进行**、用 protel99se 进行布线,都是在请教了老师和同学之后才逐渐学会使用的。但是第一次使用,肯定完成的不是很理想,比如,布局布的不够好,布线不够整齐,还用了一些过孔等导致整个图看上去不是很美观,不过,我相信,经过多次练习,会越来越熟练,在以后的设计中会做的更好的。
总的来说,经过这一次课程设计,使我了解了一个产品从设计到制作的整个流程,这是一个很大的收获,过程虽然有些苦,但结果却是甜的,因为看到了自己的设计成果。这次设计,给了我们一个很大的锻炼机会,我依然相信,只要经过不断练习、不懈努力, 在以后的日子里,我们会设计出更多优秀的产品 ……
基于eda的电子技术课程设计夏路易编著 2024年版。
数电课程设计
两位十进制计数显示器。一 设计内容。本设计主要采用芯片有555定时器 74162计数器 7448七段字形译码器,以及七段led数码管。能过以上元器件的组合,构成一个两位十进制计数显示器,实现循环依序显示0 99的数字。要求每位同学独立设计电路原理图,制作pcb电路板并印制上自己的学号。二 电路原理。...
数电课程设计
数字电子技术基础 课程设计报告。数字万年历。班级 姓名 签字。学号 日期 目录。1.设计任务及要求3 2 设计思路与说明3 2.1电路图及原理说明3 2.1.1年部分计数器3 2.1.2月部分计数器5 2.1.3日期部分计数器6 2.1.4 星期部分计数器7 3 电路调试基本过程遇到的问题及调试结果...
数电课程设计
数字电子课程设计报告。题目 电子生日蜡烛。系班 电气0805 组员 焦雪菲08291140齐龙。杨超08291158 指导老师 王强。电路原理图。一 系统功能概述。如图1所示,这个电路产生了一套基于led的电子生日蜡烛。这种蜡烛与吹灭蜡制蜡烛一样具有相同的乐趣,并且它是可重复利用的,可改进的以及低碳...