基于VHDL的电子秒表课程设计报告

基于VHDL的电子秒表课程设计报告
基于VHDL的电子秒表课程设计报告

课程设计报告

题目:电子秒表

课程:《EDA技术》课程设计

专业班级:电信07级2 班

学生姓名:

学号:

完成日期:2010-6-15

机电工程学院

目录

摘要 (3)

1概述 (3)

1.1课程设计目的 (3)

1.2课程设计内容 (3)

1.3课程设计原理 (3)

2设计过程 (4)

2.1模块1 (4)

2.2模块2 (4)

2.3模块3 (5)

2.4顶层设计模块 (5)

3系统仿真 (5)

3.1 时序仿真 (5)

3.2 电路功能验证 (6)

3.3 问题分析 (7)

4心得体会 (7)

参考文献 (8)

附录1:源程序清单 (8)

摘要

数字秒表是生活中大家都很熟悉的事物,在EDA设计中也是一个不错的选题。设计首先需要考虑秒表的整体构成,主要由分频器与计数器组成。通过计数器进位端相联系。设计好顶层原理图后,需要用VHDL语言对各个模块进行行为描述,完成对各模块的设计。这应该属于自定向下,模块化的设计方法。

1概述

1.1课程设计目的

了解各种PLD器件的基本结构,掌握QUARTUSII的使用方法,用图形输入法和VHDL完成规定的基本练习题,在此基础上完成一个数字系统设计题的设计、仿真、下载(FPGA实现)。通过课程设计使学生能熟练掌握一种EDA软件(QUARTUSII)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。使学生能利用EDA软件(QUARTUSII)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或VHDL硬件描述语言输入法。使学生初步具有分析、寻找和排除电子电路中常见故障的能力。

1.2课程设计内容

使用VHDL语言描述一个秒表电路,利用QuantusII软件进行源程序设计,编译,仿真,最后形成下载文件下载至装有FPGA芯片的实验箱,进行硬件测试,要求实现秒表功能。

1.3课程设计原理

秒表的逻辑结构较简单,它主要由、显示译码器、分频器、十进制计数器和

计时脉6进制计数器组成。在整个秒表中最关键的是如何获得一个精确的100H

Z

冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。秒有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD 码输出,这样便与同显示译码器(七段数码管驱动译码器)的连接,当计时达60分钟后,蜂鸣器鸣响10声。四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行

计时脉冲;显示译码器:完成对显示的控制。选计数;分频器:用来产生100H

Z

定实验箱产生的频率送入分频器,输出100Hz频率,驱动显示百分秒的十进制计数器,此计数器进位端接显示时分秒的十进制计数器。依次接下去,分别是秒,

十秒,分,十分。最后设计一个驱动蜂鸣器的模块。

2设计过程

2.1模块1——分频器

要驱动最小的时间单位百分秒需要一百赫兹的频率,而实验箱不提供这个频率,所以需要一个分频器来提供。分频器原理:输入一个较高的频率,比如750kHz,则设计算法,使得每输入7500个脉冲输出一个脉冲,这样输出端口就提供一个100Hz的频率。

部分源程序及说明:

ARCHITECTURE ART OF CLKGEN IS

SIGNAL CNTER: INTEGER RANGE 0 TO 10#119999#;

BEGIN

PROCESS(CLK) IS

BEGIN

IF CLK' EVENT AND CLK='1'THEN

IF CNTER=10#119999#THEN CNTER<=0;——

ELSE CNTER<=CNTER+1;——对输入脉冲计数7500次

END IF;

END IF;

end process;

PROCESS(CNTER) IS

BEGIN

IF CNTER=10#119999# THEN NEWCLK<='1';——每计数7500次——输出一个脉冲

ELSE NEWCLK<='0';

END IF;

END PROCESS;

END ARCHITECTURE ART;

模块符号:

2.2模块2——十进制计数器

十进制计数器就是输入一个时钟脉冲计一个数,计数当前值通过4位输出端口输出。当计到九且再来一个脉冲时计数输出清零,且进

位端给出高电平。再来脉冲继续计数,进位端清零。计数只有在使能端为1时有效,否则保持。

部分源程序及说明:

ARCHITECTURE behav OF CNT10 IS

BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ; ——清零

ELSIF CLK'EVENT AND CLK='1' THEN

IF EN = '1' THEN

IF CQI < 9 THEN CQI := CQI + 1; COUT <= '0'; ——计数,进位端清零

ELSE CQI := (OTHERS =>'0'); COUT <= '1'; ——计数端清零,进位端置1。

END IF;

END IF;

END IF;

CQ <= CQI;

END PROCESS;

END behav;

模块图:

2.3模块3——六进制计数器

六进制计数器与十进制的很相似,区别仅在于输入六个脉冲时计数端清零,进位端置1。这里不再赘述。

2.4顶层设计模块

顶层文件是一个原理图文件,见附录源程序清单。

3系统仿真

3.1 时序仿真

分频器时序仿真结果:

仿真时间是100ms,输入脉冲是上面一排,下面是输出脉冲,100ms 内有100个脉冲,即输出是一个100Hz时钟信号。

十进制计数器仿真结果:

仿真时间50us,时钟周期2us。由图可见,使能端使能功能,复位端清零功能均正常。计数端十进制计数正常,进位端进位时间正常。

六进制计数器仿真结果:

仿真时间50us,时钟周期2us。由图可见,使能端使能功能,复位端清零功能均正常。计数端六进制计数正常,进位端进位时间正常。

3.2 电路功能验证

各模块与整体设计完毕并仿真得到预期结果后,就开始分配管脚,下载进行硬件测试。

分配管脚在Assignment Editor里。根据自己选择的模式,选择所需输入输出设备,比如按键,数码管。查表获知管脚名称,写好后保存,全程编译。管脚就分配好了,在顶层原理图上会自动显示管脚名称。

接下来将程序下载至芯片。Tools里的programer。检测到硬件后,选add fiel,找到自己的文件,选中后点Start开始下载。

下载完成后就开始硬件测试。用短路帽选好实验箱上的时钟频率,按下使能键,看到数码管显示秒表开始计时。再按使能键停止计时。按复位键清零。等到计时一个小时后,蜂鸣器响十秒。在此后的十分钟里,每分钟开始的十秒会响,十分钟后不再响。硬件测试达到预期效果。

3.3 问题分析

整个设计过程中遇到很多问题,选择其中有价值的几个说一下。

有一次硬件测试时发现秒的各位逢九就会向高位进位。就是说

18下一个是29,接下来是20,21。。。经过分析认为是计数器逻辑存

在问题,见九就进位,并不等待下一个上升沿到来。检查源程序,问题果然是这样的。修改源程序,使得计到9,再等到下一个时钟上升沿时才进位。保存,编译,再验证,问题解决。

还有一个问题就是发现秒走得太快,不符合实际。认为是分频器有问题,但是检查源程序后发现逻辑是正确的。时序仿真后发现了问题:每一个输出脉冲都带一个毛刺,相当于输出频率提高了一倍。解决办法:修改源程序逻辑以降低输出频率到原来的一半,或者选用相当于原来一半的输入频率。

最后一个问题:将最高为的计数器进位输出端接扬声器,它不会响。查阅资料后发现需要用一个有一定频率的高低变化电平来驱动扬声器。于是将十分与十秒的进位端还有1000Hz的时钟接与门,将与门输出接扬声器,问题解决。

4心得体会

下面谈谈本次设计中的心得。通过这次设计,首先把课堂上学习的硬件描述语言应用到了实际,巩固了已经学到的东西,并对它有了更深层次的理解。理论应用到实际总是能让人学到很多。其次,实际操作让我了解一个电子系统的实际开发过程,这就是学到了实际操作方面的东西。还有,这个设计过程让我体会到了模块化设计法的优势。最后,在设计中遇到的各种问题让我产生很多思考,体会到依靠思考解决实际问题的乐趣。最后想说的是,这虽然是一个很简单的系统,但是在设计过程中也称得上困难重重,历经困惑。一个看上去挺简单的东西,要

实现它却是另一回事,会有很多想不到的困难。那么看上去就很难的东西,实现起来就更难于上青天了。但是人们却能把这样的东西做出来,比如计算机系统。这就是人类智慧和现代科技的伟力。

参考文献:

《EDA技术与PLD设计》《VHDL与可编程逻辑器件应用》《EDA技术及应用》《现场可编程门阵列(FPGA)及其应用》

百度百科

附录1:源程序清单:

clkgen.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY CLKGEN IS

PORT (CLK :IN STD_LOGIC;

NEWCLK : OUT STD_LOGIC);

END ENTITY CLKGEN;

ARCHITECTURE ART OF CLKGEN IS

SIGNAL CNTER: INTEGER RANGE 0 TO 10#119999#;

BEGIN

PROCESS(CLK) IS

BEGIN

IF CLK' EVENT AND CLK='1'THEN

IF CNTER=10#119999#THEN CNTER<=0;

ELSE CNTER<=CNTER+1;

END IF;

END IF;

end process;

PROCESS(CNTER) IS

BEGIN

IF CNTER=10#119999# THEN NEWCLK<='1';

ELSE NEWCLK<='0';

END IF;

END PROCESS;

END ARCHITECTURE ART;

Cnt10.vhd

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT10 IS

PORT (CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT : OUT STD_LOGIC );

END CNT10;

ARCHITECTURE behav OF CNT10 IS

BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ;

ELSIF CLK'EVENT AND CLK='1' THEN

IF EN = '1' THEN

IF CQI < 9 THEN CQI := CQI + 1; COUT <= '0';

ELSE CQI := (OTHERS =>'0'); COUT <= '1';

END IF;

END IF;

END IF;

CQ <= CQI;

END PROCESS;

END behav;

Cnt6.vhd

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT6 IS

PORT (CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT : OUT STD_LOGIC );

END CNT6;

ARCHITECTURE behav OF CNT6 IS

BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ;

ELSIF CLK'EVENT AND CLK='1' THEN

IF EN = '1' THEN

IF CQI < 5 THEN CQI := CQI + 1; COUT <= '0';

ELSE CQI := (OTHERS =>'0'); COUT <= '1';

END IF;

END IF;

END IF;

CQ <= CQI;

END PROCESS;

END behav;

顶层原理图文件:

数字电子秒表课程设计

西安航空职业技术学院 电子技术实践课程设计报告 课设题目:数字电子秒表 所属系部:电子工程系 指导老师: 作者: 专业:电子信息工程技术 西安航空职业技术学院制 西安航空职业技术学院 课程设计任务书 题目:数字电子秒表 任务与要求: 1、设计数字电子秒表原理图。 2、用6个数码管显示分、秒、毫秒。 3、计时误差不得超过1s;具有清零、启动计时、暂停计时及继续 计时等控制功能。 4、画出总体电路图。 5、安装自己设计的电路,按照自己设计的电路,在通用板上焊接。 焊接完毕后,应对照电路图仔细检查,看是否有错接、漏接、 虚焊的现象。 6、调试电路。 时间:2010年11月29 日至 2010年12 月10 日共2周

所属系部:电子工程系 指导单位或教研室:电子信息教研室 西安航空职业技术学院制 摘要: 采用现代数字电路设计方法和EDA技术,即自顶向下的设计方法,应用protues开发平台进行设计并仿真验证和硬件测试。从总体设计框图开始,将设计任务逐步分解,直到可以用标准的集成电路部件实现,然后将各部件联结成系统,通过protues集成开发平台进行设计的分析综合和时序仿真验证。最后,在分析时序仿真结果的基础上,对设计进行进一步的修改和完善,已达到对设计电路正确运行且学会运用protues电路设计与仿真的目的。 关键词: 555定时器;LED;暂停计时 Abstract: Adopt modern digital circuit design method and EDA technique, namely the top-down design methods, application protues development platform design and simulation validation and hardware test. From the beginning, overall design diagram design task decomposed step by step, until can use standard of integrated circuit components, and then will realize connecting components into system, through protues integrated development platform design of comprehensive analysis and time-series simulation prove. Finally, by analyzing the timing simulation results, on the basis of design for further revised and perfected, reached the correct operation of circuit design and learn to use protues circuit design and simulation of purpose. Key words: 555 timing, Leds, Suspended timing 目录 1 设计方案的选择 (1) 2 总体框架设计 (2) 3 分步电路设计 (3) 3.1控制电路的设计 (3) (3) (3) 3.2数码管显示电路 (4)

VHDL与数字系统课程设计

课程设计报告 实践课题:VHDL与数字系统课程设计 学生:XXX 指导老师:XXX、XXX 系别:电子信息与电气工程系 专业:电子科学与技术 班级:XXX 学号:XXX

一、设计任务 用VHDL设计一个简单的处理器,并完成相关的仿真测试。 .设计要求: 图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。 图1 简单处理器的电路图 数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0~R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。 加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行运算,运算结果存入寄存器G中,G中的数据又可根据要求通过复用器转存到其他寄存器中。 1)Rx ←[Ry] :将寄存器Ry中的内容复制到Rx; 2)Mvi Rx,#D :将立即数存入寄存器Rx中去。 所有指令都按9位编码(取自DIN的高9位)存储在指令存储器IR中,编编码规则为IIIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入

的。 有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输 时间 指令 T0T1T2T3 (mv):I0 (mvi):I1 (add):I2 (sub):I3 IR in IR in IR in IR in RY out,RX in,Done DIN out,RX in,Done RX out,A in RX out,A in ---- ---- RY out,G in,Addsub RY out,G in,Addsub ---- ---- G out,RX in,Done G out,RX in,Done 二、实现功能说明 2.1 mv Rx,Ry 实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例) (1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。 置位的控制信号如图3加粗黑线所示。 图3 (2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R5的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个寄存器对寄存器的赋值过程。置位的控制信号和数据流如图4加粗黑线所示。 图4

“秒表测时”实验报告Word版

“秒表测时”实验报告 一、实验任务 利用秒表对电脑主机主要元件装配作业进行测时,计算标准时间 二、实验目的 1、掌握秒表测时技术; 2、掌握标准时间的制定原理、方法、程序和步骤; 3、学会正确划分各测时单元及其计时点,并学会确定正确的宽放率; 4、掌握必要的软件工具。 三、实验原理 1、秒表测时的定义 2、秒表测时的用途 3、测时单元的划分 四、实验设备、仪器、工具及资料 1、电脑主机 2、计算机 3、装拆工具、笔、纸、记录表格 4、秒表、计算器 五、实验过程 1、实验分组,每四人一组,两人负责装配产品,两人负责观测记录 2、收集资料,实验准备,布置工作地 3、划分操作单元,确定计时点 4、测时 采用连续法记录时间研究,在现场记录时用铅笔填写秒表读数“W.R”,见附件:时间研究表(一)。计算基本时间“B.T”。 4、填写时间研究表(二),剔除异常值,用三倍标准法决定正常值范围(正常值范围在x±3σ内)。 5、决定宽放时间 取宽放率为:15%。宽放时间=正常时间×宽放率

6、计算标准时间:标准时间=平均操作时间×评比系数+宽放时间 六、整理时间研究表(一)和时间研究表(二) 时间研究表(一)(现场记录)

时间研究表(二)(统计表)

七、绘制管制界限图 对每一个操作单元进行异常值剔除,选取其中一个操作单元绘制其管制界限图 1、剔除异常值 (1)、操作单元1: n X X n i i ∑== 1 11(其中n=8) 计算得69.71=X n X X n i i ∑=-= 1 2 111)(σ 计算得=1σ 1.48 正常值为σ3±X 之内,即在(3.25,12.13)之间,所以操作单元1无异常值 (2)、操作单元2: n X X n i i ∑== 1 22(其中n=8) 计算得=2X 6.79 n X X n i i ∑=-= 1 2 222)(σ 计算得=2σ0.28 正常值为σ3±X 之内,即在(5.95,7.63)之间,所以操作单元2无异常值 (3)、操作单元3: n X X n i i ∑== 1 33(其中n=8) 计算得=3X 6.42 n X X n i i ∑=-= 1 2 333)(σ 计算得=3σ0.32 正常值为σ3±X 之内,即在(5.46,7.38)之间,所以操作单元3无异常值 (4)、操作单元4: n X X n i i ∑== 1 44(其中n=8) 计算得=4X 6.55 n X X n i i ∑=-= 1 2 444)(σ 计算得=4σ0.90

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

数字电子秒表课程设计报告

重庆机电职业技术学院课程设计说明书 设计名称:单片机原理设计 题目:数字电子秒表 学生姓名: X X 专业:电气自动化 班级: 1 班 学号: XXXXXXXXXXXXXXX 指导教师: X X X 日期: 2010 年 6 月 16 日

重庆机电职业技术学院 课程设计任务书 电气自动化专业2008 年级 1 班XX 一、设计题目 数字电子秒表设计 二、主要内容 利用独立式按键AN1(P0.0)启动定时器T0计时,AN2(P0.1)停止用于停止定 时器T0计时,使用2个八段数码管输出记时值,秒钟的计时时间范围在0~99秒内。 三、具体要求 3.1、实验电路连线 ①本实验中要把跳线JP1(板子右上角,LED灯正上方)跳到DIG上,J23(在黄色继电器右上方)接到右端;把跳线J9(紧贴51插座右方,蜂鸣器下方,RST复位键上方)跳到右端;把跳线J6跳到AN端,AN1(P0.0)~ AN4(P0.4),(J6在51插座右下方,4×4键盘左上方)。 3.2、实验说明 ①本实验中要将记时结果送2个数码管中显示,这可通过调用编写的显示子程序来实现,实现过程是:先将记时值一位一位的拆开,分别送到显示缓冲区(片内数据存储30H~35H设定为显示缓冲区用于存放段码数据, 其中32H~35H里面均存放0的段码0DFH)中去,然后调用显示子程序。②与定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。本实验中用定时器T0产生1秒钟基本时间单位,本系统fosc=11.0592MHz,当定时器T0工作在方式1(16位)时,最大定时时间为:216* 0.9216μs= 60397.9776μs;再利用软件记数,当T0中断17次时,所用时间为60397.9776*17=1026765.6192μs≈1s因此在T0中断处理程序中,要判断中断次数是否到17次,若不到17次,则只使中断次数加1,然后返回,若到了17次,则使电 子秒表记时值加1(十进制),请参考硬件实验四有关内容。③使用独立式按键 AN1(P0.0)~ AN2(P0.1)时要注意采用软件消抖动的方法,一般采用软件延时(10ms)的方法,即通过P0.0和P0.1的输入值的变化控制秒表的启动和停止。 3.3

VHDL语言与EDA课程设计

湖南人文科技学院 课程设计报告课程名称: VHDL语言与EDA课程设计 ~ 设计题目:出租车自动计价器设计 系别: 专业: 班级: 学生姓名: 学号: 起止日期: 2011年6月13日~2011年6月26日 $ 指导教师: 教研室主任:

摘要 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。根据预定的设计要求和设计思路,我们使用VHDL硬件描述语言设计了一个实际的基于Altera FPGA芯片的出租车自动计价器系统,介绍了该系统的电路结构和程序设计。通过在软件中编译和下载测试,得到了仿真波形和关键的设计结果。经过在实验箱上进行硬件测试,证明该出租车计价系统具有实用出租车计价器的基本功能,如能进一步完善,将可以实用化和市场化。 关键词:出租车自动计价器;VHDL; FPGA ;

目录 设计要求 (1) 1、方案论证与对比 (1) 方案一 (1) 方案二 (2) 两种方案的对比 (2) 2、实验步骤和设计过程 (2) 计程模块 (2) 等待计时模块 (2) 计费模块 (3) 3、调试与操作说明 (3) 中的VHDL程序 (3) 程序的编译与及仿真波形 (6) 程序的下载与功能的测试 (7) 4、课程设计心得体会 (9) 5、元器件及仪器设备明细 (10) 6、参考文献 (11) 7、致谢 (12)

秒表实验报告

实验三:秒表实验报告 一、实验目的 1、了解74ls273的工作原理; 2、看懂8086工作的时序图,并且掌握8086总线的技术; 3. 通过此实验,熟悉protues7.9的基本操作和工作环境以及MASM32文件的建立与运行; 二、实验原理 用74ls273扩展IO口,通过片选信号和写信号奖数据总线上的值锁存在273中,同时在273的输出端口输出,当数据总线上的值撤销以后,由于74ls273能够锁存信号,所以273的输出端保持不变,直到下次有新的数据被锁存,通过按键可以控制数据的变化,cpu根据按键变化控制输出,通过总线就可以控制数码管的变化,显示出秒表的效果。 3、实验步骤 1、根据实验目的及内容在proteus画出电路图,如下图所示 2、画好电路图后用汇编软件,按要求写出实验代码,代码如下: .MODEL SMALL .8086 .stack .code

.startup MOV DX,0200H LOOP0: MOV BL,SEC AND BX,000FH MOV SI,BX MOV AL,SITUATION[SI] MOV BL,SEC AND BX,00F0H MOV CL,4 SHR BX,CL MOV SI,BX MOV AH,SITUATION[SI] OUT DX,AX CALL DELAY MOV AL,SEC ADD AL,1 DAA MOV SEC,AL CMP SEC,60H JB LOOP0 MOV SEC,0 JMP LOOP0 DELAY PROC NEAR PUSH BX PUSH CX MOV BX,50 DEL1: MOV CX,5882 DEL2: LOOP DEL2 DEC BX JNZ DEL1 POP CX POP BX RET DELAY ENDP .data SEC DB 00H

VHDL课程设计PS键盘

目录 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用;

(2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器; 8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。 三、课程设计的内容与要求 1、设计内容 (1)系统功能的分析; (2)实现系统功能的实际方案; (3)编写各功能模块的VHDL语言程序; (4)对各功能模块进行编译、综合、仿真、分析; (5)顶层文件设计 (6)对整个系统进行编译、综合、仿真、分析; (7)在CPLD\FPGA实验开发系统试验箱上进行硬件验证; (8)写实验报告;

电子秒表课程设计报告

电子信息工程专业10级学生单片机原理课程设计任务书 电子秒表的设计 一、设计要求 设计一个电子秒表,与通用秒表功能类似,有启动,暂停、复位等键。计时长长度为300秒,需显示百分秒。 二、设计方案分析

1.方案设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 本系统采用C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 本设计利用STC89C52单片机的定时器/计数器定时和计数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。根据要求知道秒表设计主要实现的功能是计时和显示。因此设置了两个按键和LCD显示时间,两个按键分别是开始、停止和复位按键。利用这两个建来实现秒表的全部功能,而LCD 则能显示最多4.59.99秒的计时。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图1.1进行设计。 图1.1 数字秒表硬件电路基本原理图 本设计中,数码管显示的数据存放在内存单元31H-33H中。其中31H存放分钟变量,32H存放秒钟变量,33H存放10ms计数值,即存放毫秒位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出31H -33H某一地址中的数据,然后查得对应的显示位,并从P1口输出,就能显示该地址单元的数据值。 INT中断完成,定时溢出中断周期为1ms,当一处中断后向CPU 计时通过1 发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到4.59.99秒重新复位。 再看按键的处理。这两个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键主要功能在于数值复位,对于时间的要求不是很严格。而开始和停止键则是用于对时间的锁定,需要比较准确的控制。因此可以对复位按键采取扫描的方式。而对开始和停止键采用外部中断的方式。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,显示电路和回零、启动、查看、停表电路等。主控制器采用单片机STC89C52,

跑马灯VHDL课程设计报告

跑马灯VHDL课程设计 一、设计任务 控制8个led进行花式显示,设计四种显示模式: 1.从左到右逐个点亮led; 2.从右到左逐个点亮led; 3.从两边到中间逐个点亮led; 4.从中间到两边逐个点亮led; 四种模式循环切换,由复位键rst控制系统的运行与停止. 二、设计过程 根据系统设计要求,采用状态机进行设计,状态机具有四种状态,每种状态完成一种显示模式四种状态间使用case语句进行切换. 程序如下: library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all; entity pmd is port( clk, rst: in std_logic; y: buffer std_logic_vector(7 downto 0)); end pmd; architecture behave of pmd is type states is (state0, state1, state2, state3); signal state: states;

begin process (clk, rst) begin if rst='1' then y<="00000000" ; state <= state0; elsif (clk'event and clk='1') then case state is when state0 => if y="00000000" then y<="10000000";state <= state0; elsif y="10000000" then y<="01000000";state <= state0; elsif y="01000000" then y<="00100000";state <= state0; elsif y="00100000" then y<="00010000";state <= state0; elsif y="00010000" then y<="00001000";state <= state0; elsif y="00001000" then y<="00000100";state <= state0; elsif y="00000100" then y<="00000010";state <= state0; elsif y="00000010" then y<="00000001";state <= state1; end if; when state1 => if y="00000001" then y<="00000010";state <= state1; elsif y="00000010" then y<="00000100";state <= state1; elsif y="00000100" then y<="00001000";state <= state1; elsif y="00001000" then y<="00010000";state <= state1; elsif y="00010000" then y<="00100000";state <= state1; elsif y="00100000" then y<="01000000";state <= state1;

数字秒表的设计与实现实验报告

电子科技大学《数字秒表课程设计》 姓名: xxx 学号: 学院: 指导老师:xx

摘要 EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。通过数码管驱动电路动态显示计时结果。给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。 关键词:FPGA, VHDL, EDA, 数字秒表

目录 第一章引言 (4) 第二章设计背景 (5) 2.1 方案设计 (5) 2.2 系统总体框图 (5) 2.3 -FPGA实验板 (5) 2.4 系统功能要求 (6) 2.5 开发软件 (6) 2.5.1 ISE10.1简介 (6) 2.5.2 ModelSim简介 (6) 2.6 VHDL语言简介 (7) 第三章模块设计 (8) 3.1 分频器 (8) 3.2 计数器 (8) 3.3 数据锁存器 (9) 3.4 控制器 (9) 3.5 扫描控制电路 (10) 3.6 按键消抖电路 (11) 第四章总体设计 (12) 第五章结论 (13) 附录 (14)

第一章引言 数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

单片机秒表实验报告

安徽科技学院机电与车辆工程学院 《电子电路课程综合实训》 验收材料 题目: 电子秒表 姓名(学号) 胡斌1609110208 李绪1609110214 王增龙1609110227 段鑫鹏 专业: 电气工程及其自动化 班级: 112班 指导教师:叶爱芹 2013 年 12 月 29日

目录 第一章单片机课程设计任务书 (1) 一、目的意义 (1) 二、设计时间、地点和班级 (1) 三、设计内容 (1) 四、参考电路图形 (2) 五、单片机的相关知识 (3) 第二章硬件设计 (5) 一、单片机简介 (5) 二、电源电路 (5) 三、晶振振荡电路 (5) 四、复位电路 (5) 五、显示电路 (6) 六、键盘电路 (6) 七、硬件主电路图设计 (7) 八、元件清单 (7) 第三章软件设计 (8) 一、软件设计概述 (8) 二、主程序流程图 (8) 三、程序中各函数设计 (8) 四、C语言主程序设计 (10) 第四章课程设计体会 (13) ..

五、单片机相关知识 本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了AT89C51。 AT89C51单片机采用40引脚的双列直插封装方式。图1.2为引脚排列图,40条引脚说明如下: 主电源引脚Vss和Vcc ①Vss接地 ②Vcc正常操作时为+5伏电源 外接晶振引脚XTAL1和XTAL2 ①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 ②XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。 图1.2 AT89C51单片机引脚图 控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp ①RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低 字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。对于EPROM型单片机,在EPROM编程期间, 此引脚接收编程脉冲(PROG功能)

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

电子秒表课程设计报告

西安郵電學院 控制系统课程设计报告书 系部名称:信息与控制系 学生姓名:XXX 专业名称:测控技术与仪器 班级:测控XXXX 2010年9月13日至 时间: 2010 年9月26日

电子秒表的设计 一、设计要求 设计一个电子秒表,与通用秒表功能类似,有启动,暂停、复位等键。计时长长度为300秒,需显示百分秒。 二、 设计方案分析 1.方案设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 本系统采用C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,硬件系统利用PROTEUS 强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 本设计利用STC89C52单片机的定时器/计数器定时和计数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。根据要求知道秒表设计主要实现的功能是计时和显示。因此设置了两个按键和LCD 显示时间,两个按键分别是开始、停止和复位按键。利用这两个建来实现秒表的全部功能,而LCD 则能显示最多4.59.99秒的计时。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图1.1进行设计。 图1.1 数字秒表硬件电路基本原理图 本设计中,数码管显示的数据存放在内存单元31H -33H 中。其中31H 存放分钟变量,32H 存放秒钟变量,33H 存放10ms 计数值,即存放毫秒位数据,每一地址单元内均为十进制BCD 码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD 码数据的对应段码存放在ROM 表中。显示时,先取出31H -33H 某一地址中的数据,然后查得对应的显示位,并从P1口输出,就能显示该地址单元的数据值。 计时通过1INT 中断完成,定时溢出中断周期为1ms ,当一处中断后向CPU

VHDL课程设计报告---交通灯设计

课程设计 课程名称:交通灯设计. 学院:电气工程学院专业:测仪姓名:学号: 年级:级任课教师: 2012年 1月12日

电气工程学院 课程设计任务书 课题名称:交通灯控制器的设计 专业、班级:测控技术与仪器测仪班 指导教师: 20 年1 月2 日至20 年1 月13 日共2周 指导教师签名: 教研室主任签名: 分管院长签名:

一、课程设计内容 1.学习ALTERA公司的FPGA/CPLD的结构、特点和性能。 2.学习集成开发软件MAX+plus II/Quartus II的使用及设计过程。 3.熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。 4.根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。 二、课程设计应完成的工作 1.在所选择器件内完成交通灯控制器的设计,要求设计完成后芯片具有交通灯控制器的全部功能、包括显示和操作接口。 2.交通灯控制器要求控制十字路口两道路的交通灯,两道路交替通行,每次通行时间可设定20——60秒之间,每个路口要求有前行、禁止、人行灯。 (根据实际设计进度考虑可以增加左右转向灯,等待和通行时间显示等)。 3.撰写设计说明书一份(不少于2000字),阐述系统的工作原理,软、硬件设计方法,重点阐述软件思路。说明书应包括封面、任务书、目录、摘要、正文、参考文献(资料)等内容,以及硬件电路综合图和软件程序清单等材料。 注:设计说明书题目字体用小三,黑体,正文字体用五号字,宋体,小标题用四号及小四,宋体,并用A4纸打印。 三、课程设计进程安排

四、设计资料及参考文献 1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001 3.潘松等主编,《EDA技术实用教程》,科学出版社,2006 4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006 5.Charles H.Roth等著,《数字系统设计与VHDL》,电子工业出版社,2008 五、成绩评定综合以下因素: (1) 说明书及设计图纸的质量(占50%)。 (2) 独立工作能力及设计过程的表现(占30%)。 (3) 回答问题的情况(占20%)。 说明书和图纸部分评分分值分布如下:

简易秒表设计实验报告

实 验 报 告 系别 信工系 专业 班级 姓名 学号 简易秒表设计 实验目的: 1、 熟悉Keil C51软件的使用方法及proteus 仿真软件的使用; 2、 综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。 3、 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。 设计要求: 制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。 设计思路: 硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低电平扫描。按键电路部分,将按键一侧与单片机任一I/O 口相连。 软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。 原理图: XTAL218XTAL119ALE 30EA 31PSEN 29RST 9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.01P1.12P1.23P1.34P1.45P1.56P1.6 7P1.7 8P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C1 1nF C21nF R110k C31uF 234567891 RP1 RESPACK-8 源代码: #include<>

相关文档
最新文档