数电课程设计

发布 2022-10-04 02:25:28 阅读 1286

数字电子技术课程设计报告书。

设计题目:电子秒表的设计。

学院: 系别:

班级:姓名:

学号:指导教师:

设计题目:一项目名称:电子秒表。

设计一个电子秒表,该秒表在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的电子生日蜡烛。这种蜡烛与吹灭蜡制蜡烛一样具有相同的乐趣,并且它是可重复利用的,可改进的以及低碳...