基于VHDL硬连线控制器设计研究

基于VHDL硬连线控制器设计研究
基于VHDL硬连线控制器设计研究

东华理工大学信息工程学院

课程设计报告

课程:计算机组成与体系结构

课程设计题目:基于VHDL的硬连线控制器设计研究

学生姓名:

专业:计算机科学与技术

班级:10204102

指导教师:

2013年1月6日

目录

一、摘要-------------------------------------------------------------------------3

二、课程设计目的-------------------------------------------------------------4

三、课程设计的内容----------------------------------------------------------4

四、课程设计的分析与步骤-------------------------------------------------5

五、经验和总结---------------------------------------------------------------10

六、参考文献------------------------------------------------------------------11

七、程序清单------------------------------------------------------------------11

一、摘要

控制器是指挥计算机的各个部件按照指令的功能要求协调工作的部件,是计算机的神经中枢和指挥中心,由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器0C(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。指令寄存器:用以保存当前执行或即将执行的指令的一种寄存器。程序计数器:指明程序中下一次要执行的指令地址的一种计数器,又称指令计数器。操作控制器:CPU内的每个功能部件都完成一定的特定功能。信息在各部件之间传送及数据的流动控制部件的实现。通常把许多数字部件之间传送信息的通路称为“数据通路”。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为“操作控制器”的部件来完成的。

控制器分组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。

硬连线控制器是由基本逻辑电路组成的,对指令中的操作码进行译码,并产生相应的时序控制信号的部件,又称组合逻辑控制器。硬连线控制器由指令部件、地址部件、时序部件、操作控制部件和中断控制部件等组成(参见“中央处理器”条目中的控制器部分)。其中操作控制部件用来产生各种操作控制命令,它根据指令要求和指令流程,按照一定顺序发出各种控制命令。操作控制部件的输人信号有:指令译码器的输出信号、时序信号和运算结果标志状态信号等。设计时根据指令流程、操作时间表得到各种操作控制命令的逻辑表达式,可采用由基本逻辑电路(与门、或门、与非门等)组成的逻辑网络来实现。也可采用可编程逻辑器件PLD来实现。PLD的“与”阵列及“或”阵列和操作控制命令的“与一或”逻辑表达式相对应,为设计组合逻辑控制器提供了一种理想器件。80年代出现的通用阵列逻辑电路〔热L与PAL(参见专用逻辑集成电路))具有与可编程逻辑器件PLD类似的结构,它不但可编程并且是可擦除的,为设计提供了更大的灵活性。组合逻辑控制器的最大优点是速度快。但因其线路复杂而且不规整,不便于调试、维护、修改,也不便于仿真不同的机器的指令集。

组合逻辑控制器的基本组成:(1)指令寄存器用来存放正在执行的指令。指令分成两部分:操作码和地址码。操作码用来指示指令的操作性质,如加法、减法等;地址码给出本条指令的操作数地址或形成操作数地址的有关信息(这时通过地址形成电路来形成操作数地址)。有一种指令称为转移指令,它用来改变指令的正常执行顺序,这种指令的地址码部分给出的是要转去执行的指令的地址。(2)操作码译码器:用来对指令的操作码进行译码,产生相应的控制电平,完成分析指令的功能。(3)时序电路:用来产生时间标志信号。在微型计算机中,时间标志信号一般为三级:指令周期、总线周期和时钟周期。微操作命令产生电路产生完成指令规定操作的各种微操作命令。这些命令产生的主要依据是时间标志和指令的操作性质。该电路实际是各微操作控制信号表达式(如上面的A→L表达式)的电路实现,它是组合逻辑控制器中最为复杂的部分。(4)指令计数器:用来形成下一条要执行的指令的地址。通常,指令是顺序执行的,而指令在存储器中是顺序存放的。所以,一般情况下下一条要执行的指令的地址可通过将现行地址加1形成,微操作命令“ 1”就用于这个目的。如果执行的是转移指令,则下一条要执行的指令的地址是要转移到的地址。该地址就在本转移指令的地址码字段,将其直接送往指令计数器。

控制器功能:(1)数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。(2)差错控制:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向 CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。 (3)数据交换:这是指实现CPU 与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。 (4)状态说明:标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。 (5)接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收CPU发来的Read、Write、Format 等15条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。 (6)地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址

二、课程设计目的

通过硬连线控制器以及其协作工作环境的设计,融会贯通教材上的内容,掌握计算计各功能模块的的工作原理,相互联系和来龙去脉,完整地建立计算机的整机概念。通过具体的动手操作,理论知识运用到具体硬件上,来激发学生的学习热情和主动性,培养学生的独立工作能力,自学查找相关资料的能力,培养学生的相互协作能力;在具体的时间活动中,将所学的知识综合运用,增长才干,并积累经验。

通过学习对TEC-2000系统控制器部件相关程序的VHDL语言,学习了解VHDL语言。理解并学习各个部件之间的程序关联信息。

培养严谨的科研作风,使学生利用先修课和计算机组成原理课程的理论知识和实验技能。在该课程所涉及的工程技术范围内,创造性地完成部件以及系统的分析、设计、组装和调试,从而加深学生对计算机组成原理课程内容的理解和掌握。

三、课程设计的内容

(1)按教材给定的部分代码,编写和完善相关代码。

(2)通过编写运行相关代码,大概学习VHDL语言,了解相关代码的作用。

(3)通过Expert8.3中软件编译并运行相关软件

四、课程设计的分析与设计(整体系统设计概述)

(1)系统指令格式特点

本机模型字长为8位,要求系统支持单字长指令和双字长指令,因此指令应是

8位。为了简便,此设计选择8条具有代表性的指令,刚好指令的操作码部分

只需要3位确定,寻址放式包括立即数寻址方式、寄存器寻址方式、存储器直

接读写

1.ADD RI,RJ

格式

7 5 4 3 2 1 0

000 不用RI RJ

功能:RI ← RI+RJ

2.SUB RI,RJ

格式

7 5 4 3 2 1 0

001 不用RI RJ

功能:RI←RI-RJ

3.AND RI,RJ

格式

7 5 4 3 2 1 0

010 不用RI RJ

功能:RI←RI∧RJ

4.LDR Ri,D

格式

7 5 4 3 2 1 0

011 Ri 不用

D

功能:Ri←M(D)

5.STR Ri,D

格式 7 5 4 3 2 1 0

100 Ri 不用

D

功能:M(D)←(Ri)

6.JMP D

格式 7 5 4 3 2 1 0

1 01 Ri 不用

D

功能:无条件转移 PC ← D

7.OUT Ri,Mj

格式 7 5 4 3 2 1 0

1 1 0 Ri Mj

功能:(M j)← R i

8.TEST RI,RJ

格式 7 5 4 3 2 1 0

111 RI RJ

功能: RI RI OR RJ

其中RI,RJ 是4个通用寄存器,有2位决定。D 为立即数。MJ为断口地址

(2)总体设计

硬连线控制器由程序计数器PC(提供指令地址),指令寄存器IR(保存指令内容),控制信号产生电路CU(产生计算机各部件所需要的控制信号),节拍发生器Timing(提供指令执行步骤)组成。下面分别对这些部件的设计做描述

1.程序计数器

程序计数器保存一条指令在内存中的地址,用于到内存指定单元读取读取指令;

它具有自行增值(形成相邻的下一条指令的地址)和接受下一条要执行指令的

地址的功能(转移指令)。在硬件中,它就是一个寄存器

2.指令寄存器

指令寄存器用于暂时保存从内存中读取的指令并提供操作码信息作为控制信号

产生的条件到时序信号发生部件。也是用一个寄存器实现这个功能。寄存器位

数由指令的位数决定。

3.节拍发生器

节拍发生器是多位触发器的输出信号的不同组合状态,来标志每条指令的不同

执行步骤

4.控制信号产生部件

它依据指令的操作码,指令执行步骤作为输入,使用大量组合逻辑门电路来形

成并提供出计算机各部件当前时刻要用到的控制信号。设计过程中要列出每个

控制信号的逻辑表达式,再对全部的控制信号的逻辑表达式进行综合化简,得

到最尽量可能简单的逻辑实现,有利于提高机器的运算速度和降低成本。

下图所示的方案采用三总线结构,即地址总线,数据总线,控制总线。硬连线控制器就是通过控制总线把控制信号传给系统的各个部件的。内存储器,I/O设备是通过数据总线将操作数传输给通用寄存器,然后再传输给数据缓冲寄存器,经过运算器运算,将结果返回到数据总线。另外,执行算术逻辑指令时,先将第一个操作数由通用寄存器R i送至缓冲寄存器DR1,然后再由通用寄存器R j取第二个操作数送至缓冲寄存器DR2,之后送往ALU进行运算。显然,执行—条算术逻辑指令的时间相应要长一些。

总体数据通路图路

(3)控制流程设计

由于读取指令和检查有无中断请求是2个公操作,所以可以把他们独立的设计成两个执行步骤,对于本模型中的10条指令,(1)加法,减法指令是寄存器寻址方式操作,指令执行步骤是一样的,只是加减的区别(2)LDR指令是写寄存器指令,为寄存器寻址方式(3)STR为读寄存器指令,也为寄存器寻址方式(4)JMP指令是立即数寻址方式指令,跳转指令(5)与或运算指令:寄存器寻址方式,执行两个数的与或运算,将结果保存在某个寄存器中

为了简化节拍发生器的逻辑实现,首先应划分基本指令的执行步骤和安排每个步骤所执行的处理功能的设计,得到的设计结果。本模型机指令执行流程图如下

(4)硬连线控制器设计

1.相关代码解释(部分)

本程序主要是给出的控制器模块Controller的相关代码,在Entity部分通过Port语句说明了控制器部件的输入输出信号。在Architecture部分,首先说明了在控制器部件内使用的一批信号,包括程序计数器pc和指令寄存器ir。在begin之后的执行语句,包括描述多路数据选择的with语句。描述寄存器接收控制的process语句。

节拍发生器timing是非常典型的时序电路,以有限状态自动机的方式运行,可以用状态转换图表示状态的转换关系,这里需要用process语句,并把系统总清reset信号和时钟脉冲clock信号用作为它的敏感信号。Reset信号使计算机进入启动之前的准备状态,使timing取“100”编码的初始状态。Clock信号的状态变化将processs内部的case语句描述。但在执行周期则需要依据指令类型来决定是转回取值周期还是转到内存读写周期,内存读写周期结束后必定转回取值周期。

控制信号产生先开路contrl_signals是组合逻辑电路,用一个process语句描述。这个线路的功能是产生并向各个部件提供他们运行所需要的控制信号,这是控制器设计的重点部分。控制器产生控制信号的基本依据是当前的指令和指令执行所处的步骤,为此在设计中,使用两层的case语句来识别并处理这两部分内容,用外层的case语句来识别指令执行

步骤,再在每一步骤内用内层的case语句来识别当前执行的是那一条指令,则CU控制单元可以给出每个被控制对象此时此刻需要用到的控制信号。选用这种处理方案的优点是的条理清晰,概念准确,易于理解。这里用到process内部语句顺序执行的特性,在process语句开始时首先向大部分的控制信号附一个初值,之后再给出一条指令的一个执行步骤的控制信号时,只需要写出那些与其初值不同的控制信号的当前值即可。

以下是部分代码详解:

library ieee;

--程序中用到的库文件

entity controller is;

--工程文件的实体部分,说明其输入输出信号的属性和类型port(clock:in std_logic;

--时钟脉冲

reset :in std_logic;

--系统总清信号

ir :out std_logic_vector(15 downto 0);

--输出的指令内容,用于显示

dr,sr是用来送运运算器的寄存器编号dr和sr

flag_c,flag_z是来自标志位寄存器的c和z

Ib为双向如初的内部总线

architecture behavioral of controller is

--工程文件的结构体部分,描述部件的组成与行为

signal pc_src :std_logic_vector(1 downto 0);

--控制器内部使用的逻辑电路和控制信号

signal timing :std_logic_vector(2 downto 0);

--节拍发生器

signal adder_output :std_logic_vector(15 downto 0);

--程序计数器

icode <=ir_inter(15 downto 8);

--指令操作码

dr <=ir_inter(7 downto 4);

--目的寄存器编号

sr <=ir_inter(3 downto 0);

--源寄存器编号

之后begin进入if判断语句,判断系统总清操作

下一个begin语句开始提供各个部件所需要的控制信号

在下一个begin为子程序调用指令暂存返回地址到NPC寄存器

ir<=ir_inter;

--把指令寄存器的内容输出,用于显示

time_cyc<=timing;

--把节拍发生器的内容输出,用于显示

2.结构框图

MACH4器件用来产生由设计者自己实现的已有指令所使用的全部时序控制信

号,而7片GAL器件用来产生由实验者扩展的新的指令所使用的全部时序控制

信号。MACH4和GAL器件的内部都由“与-或”两级组合逻辑门电路组成,并

且运行于组合逻辑方式,它们的输入主要是指令寄存器的的操作码,节拍发生

器的状态编码,输出的全部时序控制信号。

3.硬连线控制器逻辑模块

五、经验与总结

通过本次课程设计,让我对TEC-2000系统的相关硬连线控制器有了更加深入的了解,并通过相关的程序代码的阅读和学习,对VHDL语言有了基本的了解,虽然本次课程设计主要是运行了教材上的相关代码,但是也有中间补充的相关代码,并在老师的辅导下完成了

本次的课程设计。更主要的是通过本次的课程设计,使我对计算机相关部件又有了更深入的了解。本次课程设计最大的遗憾是没有成功运行程序,因为对VHDL语句初次接触,但通过Expert8.3程序解决了好几个错误,并学会的如何使用Expert8.3以及对软件有了更深入的了解。

六、参考文献

[1] 王诚、宋佳兴,《计算机组成与体系结构(第二版)》,北京:清华大学出版社,2011年

[2] https://www.360docs.net/doc/1f18878582.html,

七、程序清单

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity controller is;

port(clock:in std_logic;

reset :in std_logic;

ir :out std_logic_vector(15 downto 0);

dr :out std_logic_vector(3 downto 0);

sr :out std_logic_vector(3 downto 0);

flag_c :in std_logic;

flag_z :in std_logic;

ib :inout std_logic_vector(15 downto 0);

a_sel :out std_logic;

b_sel :out std_logic_vector(1 downto 0);

reg_src :out std_logic_vector(1 downto 0);

reg_wt :out std_logic;

r_sel :out std_logic_vector(1 downto 0);

s_sel :out std_logic_vector(1 downto 0);

alu_func :out std_logic_vector(2 downto 0);

flag_func :out std_logic_vector(2 downto 0);

y_sel :out std_logic;

ar_wt :out std_logic;

y_ib :out std_logic;

gate_en :out std_logic;

gate_dir :out std_logic;

mio :out std_logic;

req :out std_logic;

we :out std_logic;

time_cyc :out std_logic_vector(2 downto 0);

pc_out :out std_logic_vector(15 downto 0);

addr_sel :out std_logic_vector(1 downto 0);

end controoler;

architecture behavioral of controller is

signal pc_src :std_logic_vector(1 downto 0);

signal timing :std_logic_vector(2 downto 0);

signal adder_output :std_logic_vector(15 downto 0);

signal pc :std_logic_vector(15 downto 0);

signal npc :std_logic_vector(15 downto 0);

signal ir_inter :std_logic_vector(15 downto 0);

signal offset :std_logic_vector(15 downto 0);

signal pc_input :std_logic_vector(15 downto 0);

signal icode :std_logic_vector(15 downto 0);

signal add_src :std_logic;

signal pc_wt :std_logic;

signal ir_wt :std_logic;

signal npc_ib :std_logic;

signal npc_wt :std_logic;

begin

icode <=ir_inter(15 downto 8);

dr <=ir_inter(7 downto 4);

sr <=ir_inter(3 downto 0);

time_keeper:process(clock,reset)

begin

if(reset='1') then timing<="100";

elseif rising_edge(clock) then

case timing is

when"000"=>timing<="001";

when"001"=>if (ir_inter(15)='1') and ((ir_inter(8)='1') or

(ir_inter (11 downto 8)="1110") or (ir_inter (14 downto 8))="

1100000"))

then timing <="011"; else timing<="000";

when"011"=>timing<="000"; end if;

when others=>timing<="000";

end case;

end if;

end process time_keeper;

produce_ctlsig:process(timing)

begin

a_sel<='0';b_sel<="00";reg_wt<='0';flag_func<="000";y_ib<='0';

s_sel<="00";ar_wt<='0';alu_func<="000";npc_ib<='0';

y_sel<='0';r_sel<="00";add_src<='0';mio<='0';

reg_src<="00";gate_en<='0';gate_id<='0';pc_src<="00";pc_wt<='0';npc_wt<='0'; we<='0';

case timing is

when "000"=> pc_wt<='1'; ir_wt<='1';

when "001'=>

case icode is

when X"00"=> flag_func<="001";reg_wt<='1';

when X"02"=>alu_func<="100";flag_func<="001";reg_wt<='1';

when X"03"=>alu_func<="001";flag_func<="001";

when X"08"=>alu_func<="001";flag_func<="001";reg_wt<='1';r_sel<="11";

when X"0b"=>reg_src<="01";flag_func<="100";reg_wt<='1';r_sel<="01";

when X"86"=>b_sel<="10";y_ib<='1';r_sel<="01";we<='1';

gate_dir<='1';gate_en<='1';mio<='1';reg<='1';

if(ir_inter(7 downto 4)="1000") then io_cs<='1';end if;

when X"44"=>add_src<='1';if flag_c='1';then pc_wt<='1';end if;

when X"80"=>pc_src<="01"; pc_wt<='1';

when X"ce"=>b_sel<="01";r_sel<="11"; alu_func<="001";reg_wt<='1';

ar_wt<='1';pc_src<="01";pc_wt<='1';

when X"81"=>sel<="01";ar_wt<='1';

when others=>null;

end case;

when "001"=>gate_en<='1';mio<='1';req<='0';we<='0';

case icode is

when X"ce"=>npc_ib<='1'; gate_dir<='1';we<='1';

when X"81"=>s_sel<="01"; r_sel<="10"; reg_wt<='1';

when others=>nell;

end case;

when others=>null;

end case;

end process produce_ctisig;

set_ir: process(clock,ir_wt)

begin

if(rising_edge(clock)and ir_wt='1')then ir_inter<=im_data;

end if;

end process set_ir;

with pc_src select pc_inpt<=

adder_output when"00",

ib when"10",

(others=>'Z')when others;

ser_pc: process (clock,reset)

begin

if(reset='1')then pc<=X"0000";

elseif(rising_edge(clock)and pc_wt='1')then pc<=pc_input; end if;

end process set_pc;

offset<=ir_inter(7)&ir_inter(7)&ir_inter(7)&ir_inter(7)&ir_inter(7)&ir_inter(7)&ir_inter(7)&ir_in ter(7)&ir_inter(7 down to 0);

with add_src select

adder_out<=pc+offset when'1',

pc+1 when'0',

(other)=>'2'when others;

set_npc: process (clock)

begin

if(rising_edge(clock)and(npc_wt<='1'))then npc<=adder_out; end if;

end process set_npc;

with npc_ib select ib <=

npc when'1',

(others=>'Z')when others;

ir<=ir_inter;

time_cyc<=timing;

end behavioral;

东华理工大学软件学院

课程设计评分表

学生姓名:班级:学号:

课程设计题目:

项目内容满分实评

选题能结合所学课程知识、有一定的能力训练。符合选题要求

(5人一题)

10 工作量适中,难易度合理10

能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10 理论依据充分,数据准确,公式推导正确10

能应用计算机软件进行编程、资料搜集录入、加工、排版、

制图等

10 能体现创造性思维,或有独特见解10

成果质量总体设计正确、合理,各项技术指标符合要求。10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、

结论严谨合理;分析处理科学、条理分明、语言流畅、结构

严谨、版面清晰

10

设计说明书栏目齐全、合理,符号统一、编号齐全。格式、

绘图、表格、插图等规范准确,符合国家标准

10 有一定篇幅,字符数不少于5000 10

总分100

指导教师评语:

指导教师签名:

年月日

计算机组成原理课程设计硬布线控制器的设计与实现

硬布线控制器的设计与调试 教学目的、任务与实验设备 教学目的 熟练掌握实验5和硬布线控制器的组成原理与应用。 复习和应用数据通路及逻辑表达式。 学习运用ISP(在系统编程)技术进行设计和调试的基本步骤和方法,熟 悉集成开发软件中设计调试工具的使用,体会ISP技术相对于传统开发技术的优点。 教学任务 按给定的数据格式和指令系统,在所提供的器件范围内,设计一台硬布线 控制器控制的模型计算机。 根据设计图纸,在通用实验台上进行组装,并调试成功。 在组装调试成功的基础上,整理出设计图纸和其他文件。 实验设备 微操作控制信号·····CnC1结果反馈信息指B1硬布线控制器指令(组合

逻辑网络)令Bn译寄码ispLSI1032E-70LJ84存模器块 T1W1T1W4启动 TJ停止节拍脉冲节拍电位/时钟发生器SKIP复位硬布线控制器结构方框图 计算机组成原理实验系统一台-4TEC 直流万用表一只 器件,则需要一台ISP)ispLSI1032。采用集成电路建议使用ISP芯片(一片 作设计、编程和下载使用。ispEXPERT)机运行设计自动化软件(例如PC 总体设计思路(描述指令系统,给数据通路) 条机器指令。实验设计中采用12采用与模型计算机相同的指令系统,即 条指令93条机器指令,只保留该指令系统的子集:去掉中断指令后的。采用的数据通路和微程序控制器方案相同。 ·数据通路图和数据通路控制信号 DBUS

CINS S2T4CEL#CER端口指令口端数据S1ALUALU_BUS LRW(T3)口端A口端BS0RAM LDAR1(T4) LDDR1(T3)LDDR2(T3)AR1_INC LDAR2(T2)AR1AR2DR2DR1M3MUX3M1M2MUX2MUX1DBUS LDPC(T4)RS_BUS#IAR_BUS#PC PC_ADD LDIAR IAR ALU2PC_INCRD0、RS0RD1、RS1端口B端口A RF WR0、 WR1WRD(T2)LDR4(T2)R4LDER(T4)ER M4MUX4DBUS SW_BUS#WR0、WR1RD0RD1、RS0、RS1控SW7—SW0制器控制..LDIR(T4)信IR.INTQ、C号 图4数据通路总体图2. 控制器的设计思路 硬布线控制器能够实现控制功能,关键在于它的组合逻辑译码电路。译码 电路的任务就是将一系列有关指令、时序等的输入信号,转化为一个个控制信号,输出到各执行部件中。 根据硬布线控制器的基本原理,针对每个控制信号S,可以列出它的译码

多功能定时器课程设计

摘要 在日常生活照,555定时器的应用非常广泛,我们常常用到定时控制。在早期运用的是模拟电路设计的,它的准确性和精度都不是很理想。然而现在基本上都是运用数字技术。定时器可以控制一些常用电器,也可以构成复杂的工业过程控制系统。它的功能强大,体积小且灵活,配以适当的芯片可以实现许多功能。随着电子技术的飞速发展,家用电器逐渐增多,不同的设备需要实现不同的功能,需要自己的控制器,设计十分不便。根据这种情况,本设计设计了一个多功能定时器,可以对许多电器进行定时。这种具有智能化的产品有效的减轻了人们的劳动,带人们走进智能化的时代,为家庭数字化的实现提供了可能。 关键词:555定时器;多功能;电器

目录 1方案论证 (1) 1.1方案的比较环节 (1) 1.2实验方案 (1) 2原理及技术指标 (2) 2.1实验原理 (2) 2.2实验技术指标 (2) 3单元电路设计及参数计算 (3) 3.1单元电路设计 (3) 3.1.1控制电路 (3) 3.1.2可控脉冲发生电路 (3) 3.1.3延时控制电路 (5) 3.1.4电源电路 (6) 3.2实验的连接与处理 (7) 3.2.1各部件实现功能 (7) 3.2.2实验处理 (8) 4电路图 (9) 4.1电路图 (9) 5设计小结 (10) 5.1个人感悟 (10) 5.2遇到问题及解决途径 (10) 参考文献 (11) 附录 (12)

1方案论证 1.1 方案的比较环节 方案一:通过51单片机进行编程设计一个电路系统 方案二:采用555定时器组成的多谐振荡器产生时钟脉冲。。 方案三:采用晶振产生时钟脉冲。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定、精确的单频振荡。 比较分析:三种方案相比较,方案一需要进行编程,而我们无法在短时间内编写好完整的程序,可实现性不强。方案二:555定时器芯片是一种广泛应用的中规模集成电路,只要外围配以几个适当的阻容元件,就可以构成无稳态触发器、单稳态触发器以及双稳态触发器等应用电路,以此为基础可设计各种实用的电路形式。而方案三的晶振的作用是为系统提供基本的时钟信号,但采用晶振需要较多的元器件,并且电路图比较麻烦,而且也不能达到锻炼思考能力、电路分析的目的。 因此,通过比较实用性,合理性,选择方案二。 1.2 实验方案 电源电路采用桥式整流电路从220VAC到5VDC的整流,可控脉冲发生器采用555多谐振荡器产生秒脉冲,延时电路由6级74LS160芯片组成前两级为秒脉冲触发,不参与判断,后四级为分钟脉冲触发,用74LS160控制置位端的A,B,C,D门一个脉冲开关控制此计数器的触发连接74LS21,可通过选通来确定所需要的输出位,当满足条件就会输出一个信号通过继电器的闭合控制用电器开关。

硬连线控制器CPU设计

目录 目录 (i) 摘要 (ii) Abstract (iii) 第一章课题背景 (1) 1.1 设计目的 (1) 1.2 设计原理 (1) 第二章设计简介及设计方案论述 (2) 2.1 单元电路设计 (2) 第三章详细设计 (4) 3.1 芯片介绍 (4) 3.2 指令系统结构及功能确定 (6) 第四章设计结果及分析 (7) 4.1 设计结果分析 (7)

摘要 硬连线控制器是由基本逻辑电路组成的,对指令中的操作码进行译码,并产生相应的时序控制信号的部件,又称组合逻辑控制器。硬连线控制器由指令部件、地址部件、时序部件、操作控制部件和中断控制部件等组成(参见“中央处理器”条目中的控制器部分)。其中操作控制部件用来产生各种操作控制命令,它根据指令要求和指令流程,按照一定顺序发出各种控制命令。操作控制部件的输人信号有:指令译码器的输出信号、时序信号和运算结果标志状态信号等。设计时根据指令流程、操作时间表得到各种操作控制命令的逻辑表达式,可采用由基本逻辑电路(与门、或门、与非门等)组成的逻辑网络来实现。也可采用可编程逻辑器件PLD来实现。PLD的“与”阵列及“或”阵列和操作控制命令的“与一或”逻辑表达式相对应,为设计组合逻辑控制器提供了一种理想器件。80年代出现的通用阵列逻辑电路〔GAL与PAL(参见专用逻辑集成电路))具有与可编程逻辑器件PLD类似的结构,它不但可编程并且是可擦除的,为设计提供了更大的灵活性。组合逻辑控制器的最大优点是速度快。但因其线路复杂而且不规整,不便于调试、维护、修改,也不便于仿真不同的机器的指令集。 关键词:硬连线控制器;基本逻辑

Abstract Hard wired controller is composed of the basic logic circuits, decodes the instruction in the operation code, andproduce the corresponding sequential control signal components, also called combined logic controller. Hard wired controller by the instruction unit, address components, temporal parts, operation control part and the interrupt controlcomponents etc. (see "the controller part central processor" in entry). The operation control unit is used for generating various operation control command, it according to the instructions and instruction process, according to the order of the control commands issued. The operation of part of the control input signal: the instruction decoderoutput signals, timing signals and operation results indicating the status signal. The design according to theinstruction flow, operation schedule obtained logical expression of various operation control command, can beadopted by the basic logic circuits (and gate, or gate and NAND gate logic network composition etc.) to realize. Can also adopt the programmable logic device PLD to realize. PLD "and" and "or" array and array operation control command "and or" logical expression corresponding, providing an ideal device for the design of combinational logic controller. GAL and PAL generic array logic circuit (80 of the 1980s (see special logic integrated circuit)) withprogrammable logic device structure similar to the PLD, it is not only a programmable and erasable, provides more flexibility to design. The biggest advantage combinational logic controller is fast. But because of the circuit complex and irregular, not easy to debug, maintain, modify, also not easy for machines with different instruction set simulation. Keywords:Hard wired controller;basic logic

数字逻辑课程设计(定时器)

一.内容摘要: 定时器的设计: 设计一个0~60分钟之内的定时器,定时开始的时候红指示灯亮,结束的时候绿指示亮,可以随意以分钟为单位,在六十分钟的范围内设定定时时间,随着定时的开始,显示器开始显示时间,即依次显示出0,1,2,3,4….直到定时结束,当定时结束的时候进行手动清零。首先设计一个秒脉冲发生器,一个计数电路,一个比较电路,然后对电路进行输出。当开始定时之前手动对要定时的时间进行预置数,然后运用秒脉冲发生器输入脉冲,用计数器对脉冲的个数进行计数,把编码器的数据与脉冲的个数通过数值比较器进行比较,最后按照要求进行红绿等输出表示定时的状态是正在进行定时,或者是已经定时结束,在定时的过程中显示定时的时间。 二.方案的论证与选择: 方案1 例如设计一个六十分钟的定时器,就需要六十进制的分钟计数器。设计秒脉冲发生器,当计数器完成六十分钟的记数时,就手动清零。需要设定其他的时间时, 只需将计数器的进制改变一下就行。这个方案只适用于特定的定时器,设定的时间 不变。如果本课设用此方案,就需要设计从1——60进制的计数器,工程量太大。 方案2, 设计一个定时器,可以在0~60分之间一分钟为单位任意可调,定时开始的时候红灯亮,定时结束的时候绿灯亮,定时结束之后手动清零,满足设计的要求,故本次课程设计中采用的是这种设计方案。

三.总设计思想框图: 总体的完整电路图: 就是将各个单元电路用导线连接起来,然后进行仿真处理,开始进行定时的时候红指示灯亮。图中所示的是定时为16分钟的定时仿真结果,完整的电路图。

2.5 V 图2 四.单元电路的设计与参数的计算 1.秒脉冲发生器的选择: (1)采用石英晶体的多谐振荡器,在RC环形振荡器电路中,接入RC可以获得较小 的频率,而且通过RC的调节可以调节频率,用于对频率稳定性要求比较高的电路,

课程设计-单片机定时器的设计

摘要 单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU 随机存储器RAM、只读存储器ROM、多种I/O 口和间断系统、定时器/计时器等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完竣的计较机系统。单片机具有特点具有良好的性能价格比;低电压、低功耗;集成度高、体积小、可靠性高;控制成果强等优点。 计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。中断需要解决两个主要问题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程序。 关键词:单片机,中断,延时

目录 1.设计目的 (1) 2.设计任务的内容和要求 (1) 3.设计原理 (1) 4.程序说明 (3) 5.心得体会 (6)

定时器试验 1.设计目的 (1)熟练运用汇编语言编程,并且掌握键盘查表来运行相应的功能 (2)熟悉启东硬件仿真系统,熟练应用该系统调试软件 (3)熟悉单片机应用系统的组成,并能运用程序控制外部流水灯 2.设计任务的内容和要求 (1)初始化定时器,使之采用定时器0,方式2,定时100us时间 (2)通过设置中断,产生总时间为1秒 (3)1秒时间到,控制发光二极管点亮 3.设计原理 在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。 MCS-51单片机由两个可编程定时/计数器(以下简称T/C)。T0,T1 T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。T0,T1是2 个16位寄存器。加1到满溢出产生中断 T0(TH0,TL0);8CH,8AH地址不连续 T1(TH1,TL1);8DH,8BH 都具有定时或者计数功能。 图一 图一有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。C/T=0表示定时,C/T=1表示计数。 当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。 如果主频12M,机器周期为1us,每1us定时寄存器完成1次加1操作。一旦振荡周期确定,机

单片机课程设计篮球计时器

单片机课程设计篮 球计时器

绪论 篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,规则还要求进攻方在24秒内有一次投篮动作,否则视为违例。以下为一个篮球比赛计时器,该计时器采用按键操作、数码管显示,非常实用。此计时器也可作为其它球类比赛的计时器。 本课程设计介绍了一个基于单片机的篮球比赛计时器硬件设计,包括STC89C51, 2个八段共阳数码管显示、上电复位电路、时钟发生电路等基本模块的设计。其功能土要有:一场篮球比赛共分四节,每节12分:每次进攻为24秒,计时器的显示均为倒计时方式,24秒计时用两位数码管显示;所有的计时都要具有暂停、继续、复位;当球员的持球时间超过24秒时,24秒倒计时减为零且有蜂鸣器报警提示。本次课程设计是采用单片机C语言实现倒计时24秒篮球比赛计时器。

1系统工作原理 1.1 功能说明 随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用模电和数电知识设计的电子产品成为社会生活中不可缺少的一部分。在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就犯规了。 大多数篮球计时器的主控芯片为AT89C51,采用12MHz晶振,P0.0-P0.7作数码显示端。24秒计时开始,A3为24秒复位开启键(投篮或交换控球时按下此键);A4为24秒计时停止键(有违例时按下此键); A5为24秒计时启动键;A6为总复位键。而此次我们设计的是1个简易篮球比赛计时器。 最简单的篮球球计时器是24秒倒计时计时器。也就是本次课程设计的课题。24秒篮球计时器要求设置外部操作开关,控制计数器的直接复位、启动和暂停,而且计时电路递减计时,每隔1秒钟,计时器减1,当计时器减0时,显示器上显示00,同时发出蜂鸣器报警信号。 1.2基本原理 24秒计时器的总体参考方案框图如图1所示,它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路

单片机定时器设计

摘要 摘要 随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,单片机以其强大的功能,成为许多功能电子产品的首选。本次电子定时器电路根据设计要求采用AT89C51单片机来实现最大99秒倒计时,采用两位数码管显示。文章的核心主要是硬件介绍及连接和软件编程两个大的方面。硬件电路主要包括AT89C51、晶振电路、数码管,发光二级管,按键。软件用汇编语言实现,主要包括主程序、倒计时、重启控制程序等软件模块。采用软硬件配合基本能实现设定定时时间倒计时功能,达到了设计的要求和目的。并在Proteus软件上进行了仿真和调试。 关键词 AT89C51单片机;定时器;倒计时

目录 摘要…………………………………………………………………………………………… 第一章绪论......................................................... 1.1定时器的发展................................................. 1.2 电子定时器的应用............................................... 1.3选题的目的和意义................................................ 1.4 本章小结 第二章单片机的基础知识 (3) 2.1单片机简介 (3) 2.2单片机的特点 (3) 2.3 本章小节 第三章功能实现及硬件介绍 (4) 3.1 设计功能实现 (4) 3.2 C51单片机引脚介绍 (9) 3.3时钟和复位电路 3.4数码管显示 (10) 3.5键盘 (12) 3.6电气原理图……………………………………………………… 3.7本章小结 第四章软件设计 (15) 4.1 程序流程图 (15) 4.2定时1秒设计 (16) 4.3重新启动 (17) 4.4程序 (17) 4.5 本章小结 结论................................................................ 参考文献............................................................ 致谢.........................................................................

硬布线控制器控制的CPU设计

硬布线控制器控制的CPU设计 &硬布线控制器控制的CPU设计步骤: 1、确定CPU用途; 2、设计指令集,同时,设计指令访问寄存器; 3、设计CPU状态图; 4、建立数据通路; 5、设计控制器。 &设计过程: 一.确定CPU用途: CPU指令执行包括三个阶段: 1、取指令阶段:从存储器取出一条指令; 2、指令译码阶段:对取出的指令进行译码,即确定取到的指令是何种指令,然后转移到该种指令的执行阶段; 3、指令执阶段:执行指令。 指令执行完毕,又转移到下一条指令的取指令阶段,开始新一轮的循环。 CPU状态图二设计指令集: 执行

内存有32个存储单元,每个存储单元8位(一个字节);CPU有5根地址线,即A4、…、A0,8根 三.指令格式 指令格式 专用寄存器: 1、程序计数器PC:5位; 2、地址寄存器AR:5位,接地址总线A[4..0]; 3、数据寄存器DR:8位,接数据总线D[7..0]; 4、指令寄存器IR:8位; 5、程序状态字寄存器PSW:只有进位C一个标志值,可用C代表PSW。 三.设计CPU状态图

5.3.4 取指令和译码周期 5.3.5 取指令和指令执行过程

四.建立数据通路 数据通路:数据在各功能部件之间传送路径。 有两种数据通路设计方案: 1、专用数据通路方式:在需要传送数据的部件之间创建一条专门的直接通路 。特点:数据传输性能高,但硬件设计量大。 2、内部总线方式:所有寄存器的输入端和输出端都连接到一条或多条公共通路上。特点:结构简单,但可能存在冲突现象 控制信号说明 ARLD :AR 锁存信号 PCLD :PC 锁存信号 PC+1:PC 自加1控制信号 DRLD :DR 锁存信号 ACLD :AC 锁存信号 ALU(-):ALU 减法触发信号 IRLD :IR 锁存信号 PCBUS :PC 三态输出控制信号 DRBUS :DR 三态输出控制信号 ACBUS :AC 三态输出控制信号 IRBUS :IR 三态输出控制信号 MBUS :存储器三态输出控制信号 RD :存储器读信号 WR :存储器写信号 寄存器及总线设计 CPU 状态及其控制信号 T 4T T

定时器_课程设计

二○一四~二○一五学年第一学期 西安理工大学 高科学院 课程设计报告书 课程名称:微机原理课程设计 班级: 学号: 姓名: 指导教师:

二○一四年十二月二十日 课程设计任务书 2014 年秋季学期

目录 第1章方案论证 1.1 课程设计的目的和要求 (1) 1.2 总体设计 (1)

第2章硬件设计 (2) 2.1 AT89S51芯片概述 (2) 2.2 LED数码管显示器概述 (5) 2.3 其他元器件介绍及参数选择 (7) 第3章软件设计 (8) 3.1 程序框图 (8) 3.2 定时/计数器初值计算 (8) 3.3 软件程序…………………………………………………………………………………………………………………………………………………9第4章调试与仿真 4.1 Keil软件介绍及使用 (10) 4.2 Proteus软件介绍及使用 (10) 课程设计心得体会 (11) 参考文献 (11) 第一章方案论证 1.1课程设计的目的和要求 1.目的

课程设计是微机原理课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。 课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。2.要求 利用T0产生1秒的定时,当1秒定时时间到,秒计时器价1。秒计时到60时,自动从0开始。 3. 目标 通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。通过做一个综合性训练题目,达到对内容的消化、理解并提高解决问题的能力的目的。 1.2 总体设计 本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒计数程序的编写,包括利用中断实现1秒的定时及60秒的计数。 图1:60秒计数总体电路设计

课程设计--篮球24秒定时器的制作

随着电子技术的飞速发展,电子技术在社会生活中发挥越来越重要的作用,特别是各种竞技运动中,定时器成为检验运动员成绩的重要工具。 篮球是一项大众化的运动,现实生活中的比赛有很多规则,正规比赛中我们知道,在一次进攻中,一方队员只有24秒的进攻时间,超过这个时间则表示一次违例。本课程设计题目紧密联系生活实际,用简单的数字逻辑电路实现24秒减数计时器,每隔一秒计数一次直到减到零并发生光报警,计数器有置数功能,最初置数为24,并且有清零功能和暂停功能,使设计电路具有很好的实用价值; 计时器主要是由即使电路、控制电路、以及译码显示电路3个部分组成。电路结构简单,功能方便、快捷。 篮球24秒定时器的制作 结构设计与方案选择 本设计是以555构成震荡电路,由74LS192来充当计数器,构成NBA24秒倒计时电路。该电路简单,无需用到晶振,芯片都是市场上容易购得的。设计功能完善,能实现直接清零、启动和暂停/连续计时,还具有报警功能。 一、设计原理与电路 原理方框图图: 包括秒脉冲发生器、计数器、译码与显示电路、报警电路和控制电路(辅助时序控制电路)等五个部分组成。计时电路递减计时,每隔1秒钟,计时器减1其中计数器和控制电路是系统的主要部分。计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数器、暂停/连续计数、译码显示电路的显

示与灭灯、定时时间到报警等功能。当计时器递减计时到零(即定时时间到)时,显示器上显示00,同时发出光电报警信号。 二、电路 方案中采用两片192芯片,能实现暂停、清零、置数的功能。结构比较简单,开关3为清零控制端,开关2为置数端,开关1为暂停/继续开关。秒脉冲由555定时器构成。 它的工作原理是:只有当低位BO1端发出借位脉冲时,高位计数器才做减数器。当高低位全部变为零时,且CPD为0时置数端LD2=0,计数器完成置数,在CPD脉冲信号的作用下,计数器再次进入下一轮减计数。 秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不是太高,电路采用555集成电路或由TTL与非门组成的多谐振荡器的构成。 译码显示电路用74LS48和共阴极七段LED显示器组成。报警电路在实验中可用发光二极管代替。 三、单元电路的设计 1、进制计数器的设计 计数器选用集成电路74LS192是十进制可编码同步加法计数器,它有可逆计数功能,CPU、CPD分别是加计数器、减计数器的时钟脉冲输入端(上升沿触发)其中RD是异步清零端,高电平有效,PL是异步并行置数控制端(低电平有效)预置数据输入端包括P0,P1,P2,P3,其中最高端为P3。TCU为加法计数的进位输出端,TCD是减法计数的借位输出端,MR是并行数据输入端,Q3-Q0是输出端。 计数器选用中规模继承74LS192进行设计较为简便,74LS192是十进制可编程同步加/减计数功能。下图是74LS192外引线排列图与功能表:

基于VHDL硬连线控制器设计研究

东华理工大学信息工程学院 课程设计报告 课程:计算机组成与体系结构 课程设计题目:基于VHDL的硬连线控制器设计研究 学生姓名: 专业:计算机科学与技术 班级:10204102 指导教师: 2013年1月6日

目录 一、摘要-------------------------------------------------------------------------3 二、课程设计目的-------------------------------------------------------------4 三、课程设计的内容----------------------------------------------------------4 四、课程设计的分析与步骤-------------------------------------------------5 五、经验和总结---------------------------------------------------------------10 六、参考文献------------------------------------------------------------------11 七、程序清单------------------------------------------------------------------11

一、摘要 控制器是指挥计算机的各个部件按照指令的功能要求协调工作的部件,是计算机的神经中枢和指挥中心,由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器0C(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。指令寄存器:用以保存当前执行或即将执行的指令的一种寄存器。程序计数器:指明程序中下一次要执行的指令地址的一种计数器,又称指令计数器。操作控制器:CPU内的每个功能部件都完成一定的特定功能。信息在各部件之间传送及数据的流动控制部件的实现。通常把许多数字部件之间传送信息的通路称为“数据通路”。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为“操作控制器”的部件来完成的。 控制器分组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。 硬连线控制器是由基本逻辑电路组成的,对指令中的操作码进行译码,并产生相应的时序控制信号的部件,又称组合逻辑控制器。硬连线控制器由指令部件、地址部件、时序部件、操作控制部件和中断控制部件等组成(参见“中央处理器”条目中的控制器部分)。其中操作控制部件用来产生各种操作控制命令,它根据指令要求和指令流程,按照一定顺序发出各种控制命令。操作控制部件的输人信号有:指令译码器的输出信号、时序信号和运算结果标志状态信号等。设计时根据指令流程、操作时间表得到各种操作控制命令的逻辑表达式,可采用由基本逻辑电路(与门、或门、与非门等)组成的逻辑网络来实现。也可采用可编程逻辑器件PLD来实现。PLD的“与”阵列及“或”阵列和操作控制命令的“与一或”逻辑表达式相对应,为设计组合逻辑控制器提供了一种理想器件。80年代出现的通用阵列逻辑电路〔热L与PAL(参见专用逻辑集成电路))具有与可编程逻辑器件PLD类似的结构,它不但可编程并且是可擦除的,为设计提供了更大的灵活性。组合逻辑控制器的最大优点是速度快。但因其线路复杂而且不规整,不便于调试、维护、修改,也不便于仿真不同的机器的指令集。 组合逻辑控制器的基本组成:(1)指令寄存器用来存放正在执行的指令。指令分成两部分:操作码和地址码。操作码用来指示指令的操作性质,如加法、减法等;地址码给出本条指令的操作数地址或形成操作数地址的有关信息(这时通过地址形成电路来形成操作数地址)。有一种指令称为转移指令,它用来改变指令的正常执行顺序,这种指令的地址码部分给出的是要转去执行的指令的地址。(2)操作码译码器:用来对指令的操作码进行译码,产生相应的控制电平,完成分析指令的功能。(3)时序电路:用来产生时间标志信号。在微型计算机中,时间标志信号一般为三级:指令周期、总线周期和时钟周期。微操作命令产生电路产生完成指令规定操作的各种微操作命令。这些命令产生的主要依据是时间标志和指令的操作性质。该电路实际是各微操作控制信号表达式(如上面的A→L表达式)的电路实现,它是组合逻辑控制器中最为复杂的部分。(4)指令计数器:用来形成下一条要执行的指令的地址。通常,指令是顺序执行的,而指令在存储器中是顺序存放的。所以,一般情况下下一条要执行的指令的地址可通过将现行地址加1形成,微操作命令“ 1”就用于这个目的。如果执行的是转移指令,则下一条要执行的指令的地址是要转移到的地址。该地址就在本转移指令的地址码字段,将其直接送往指令计数器。

单片机课程设计--定时器

单片机课程设计--定时器

题目名称:定时器时钟数码管显示姓名: 班级: 学号: 日期:2012年6月29日

单片机时钟 1.摘要: 时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。 利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”。该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。 1.1. 关键词 AT89C52 、LED显示 1.2. 功能要求 1)七位数码管显示时、分、秒,以24小时运算 2)可实现时分调整 1.3. 主要硬件元器件的介绍 1.3.1 51单片机芯片 根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。该系统的设计我们采用8051芯片。 下图所示为双列直插式封装的8051AH芯片的管脚图,功能如下:

8051AH芯片的管脚图 1.电源管脚 Vcc(40脚):接+5V;Vss(20)脚:接地。 2.时钟信号管脚 X1(19脚), X2(18脚):外部时钟信号的两个管脚。 3.控制线 1)RESET(9脚):用作复位输入端。 2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。对片内EPROM编程时,此管脚(作VP)接入21V编程电压。 3)ALE/P’(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。当对内EPROM编程时,该管脚(P’)用于输入编程脉冲。 4)PSEN’(29脚):外部程序存储器读选通控制信号。 4.输入/输出口线 1)P0口(32-39脚):8路漏极开路型双向并行I/O口。在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL 负载。 2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。在对片内EPROM编程及校验时,它接收低8位地址。P1口能驱动4个LETTL负载。

硬布线设计实验报告

计算机组成原理 实验报告 实验名称:使用硬连线控制器的CPU设计专业班级:计算机科学与技术01 学生姓名:贾晓冬宋丽君杨嘉宁肖迪月实验时间:

目录 1 教学目的、实验设备与任务 教学目的 (3) 实验设备........................................................... . (3) 设计与调试任务........................................................... . (3) 2 总体说明 (4) 硬连线控制器的基本原理 (4) 指令系 统..................................................... (4) 控制台指 令..................................................... (5) 数据通 路..................................................... (5) 控制器指令周期流程 图..................................................... (5) 控制台控制信号及作 用..................................................... (6) 3 设计方案 (7) 说明及流程 图..................................................... (7) 逻辑状态 表..................................................... (8)

定时器_课程设计

二○一四~二○一五学年第一学期 理工大学 高科学院 课程设计报告书 课程名称:微机原理课程设计 班级: 学号: 姓名: 指导教师:

二○一四年十二月二十日课程设计任务书

目录 第1章方案论证 1.1 课程设计的目的和要求 (1) 1.2 总体设计 (1)

第2章硬件设计 (2) 2.1 AT89S51芯片概述 (2) 2.2 LED数码管显示器概述 (5) 2.3 其他元器件介绍及参数选择 (7) 第3章软件设计 (8) 3.1 程序框图 (8) 3.2 定时/计数器初值计算 (8) 3.3 软件程序…………………………………………………………………………………………………………………………………………………9第4章调试与仿真 4.1 Keil软件介绍及使用 (10) 4.2 Proteus软件介绍及使用 (10) 课程设计心得体会 (11) 参考文献 (11) 第一章方案论证 1.1课程设计的目的和要求 1.目的

课程设计是微机原理课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。 课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学容做一定的扩充。 2.要求 利用T0产生1秒的定时,当1秒定时时间到,秒计时器价1。秒计时到60时,自动从0开始。 3. 目标 通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。通过做一个综合性训练题目,达到对容的消化、理解并提高解决问题的能力的目的。 1.2 总体设计 本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒计数程序的编写,包括利用中断实现1秒的定时及60秒的计数。 图1:60秒计数总体电路设计

双路定时器课程设计

单片机原理与接口技术B 课程设计 双路定时器设计 所在学院:信息工程学院 专业名称: 通信工程09-2 学生姓名:任庆芳王媛媛梁芳孙泉指导教师:葛振 2012 年6月

目录 一题目 (1) 二设计任务 (1) 三设计思路?1 基本设计思路?1 (一)硬件电路设计?1 1.单片机的选择 (1) 2..LED显示电路 (2) LED数码显示器简介?2 LED数码显示器的结构与原理?2 LED数码显示器显示方式 (2) (二).软件设计?4 (三).程序设计 (5) 四实验源程序 (6) 五设计体会 (14) 六参考文献?15

三、题目:双路定时器设计 四、设计任务 1、以MCS—51系列单片机为核心器件,组成一个双路定时器系统 2、显示器由6位LED数码管组成,分别显示时、分、秒 3、用于棋类比赛,对两选手的思考时间分别计时 4、将一开关与P3.3相连,当开关置低电平时,为甲选手思考时间,当开关置高电平时,为乙选手思考时间,两个时间各自累加 五、设计思路 (一)、基本设计思路 (1)本课题设计关键是必须统计好二个时间,第一个是甲选手思考时间,第二个是,乙选手思考时间 (2)计时单元由单片机内部的定时/计数器0来实现 (3)时间显示由6段LED数码管,动态扫描方式 (4)LED数码管的段码输入,由并行端口P1低四位产生 (5)LED数码管的位码输入,由并行端口P1高四位产生 (6)通过一个开关来控制双方计时的转换 (7)时间调整通过接入按键电路来实现 (二)、硬件电路设计 1、单片机选择 根据初步设计方案的分析,设计这样一个应用系统,可选择带有EPROM的单片机,应用程序直接存储在片内,不用外部扩展程序存储器,电路可简化,可选用INTEL公司的8051芯片.

硬连线控制器设计

模型机硬连线控制器设计 一、实验目的 (1)融会贯通计算机组成原理与体系结构课程各章教学内容,通过知识的综合运用,加深对CPU个模块工作原理及相互联系的认识; (2)掌握硬连线控制器的设计方法; (3)培养科学研究能力,取得设计和调试的实践经验。 二、实验设备 (1)TEC-8实验系统1台 (2)Pentium 3 以上的PC 1台 (3)双踪示波器1台 (4)直流万用表1块 (5)逻辑测试笔(在TEC-8实验台上)1支 三、设计与调试任务 (1)设计一个硬连线控制器,和TEC-8模型计算机的数据通路结合在一起,构成一个完整的CPU,对该CPU要求: ●能顾完成控制台操作,包括启动程序运行、读存储器、写存储器、读寄存 器、写寄存器。 ●能够执行表3.1中的指令,完成规定的指令功能。 表3.1中,XX代表任意值,Rs代表源寄存器号,Rs代表目的寄存器号。 在条件转移指令中,@代表当前PC的值,offset是一个四位的有符号数,第三位是符号位,0代表正数,1代表负数。注意:@不是当前指令的PC 值,而是当前指令的PC值加1。

表错误!文档中没有指定样式的文字。.1新设计CPU的指令系统 ●在Quartus||下对硬连线控制器进行编程的编译。 ●将编译后的硬连线控制器下载到TEC-8实验台的可编程器件EPM7128S中 去,使得EPM7128S成为一个硬连线控制器。

根据指令系统,编写检测硬连线控制器正确性的测试程序,并用测试程序对硬连线控制器在单微指令方式下进行调试,直到成功。 (2)在调试成功的基础上,整理出设计文件。 1.硬连线控制器逻辑模块图; 2.硬连线控制器指令周期流程图; 3.硬连线控制器的硬件描述语言源程序; 4.测试程序; 5.设计说明书; 6.调试总结。 四、硬连线控制器逻辑模块图 本实验要求设计硬连线控制器,而仍然利用实验台的数据通路和其他模块。因此我们只需对硬连线控制器部分进行编程就行了。TEC-8模型计算机电路框图如下图1。

相关文档
最新文档