小型数字系统设计——健身自行车控制器

  • 格式:doc
  • 大小:302.00 KB
  • 文档页数:10

东南大学电工电子实验中心
实验报告
课程名称:数字逻辑电路设计实践
第五次实验
实验名称:小型数字系统设计
院(系):专业:
姓名:学号:
实验室: 103 实验组别:
同组人员:实验时间:2009年12月12 日评定成绩:审阅教师:
一、实验目的
掌握小型数字系统的基本设计和调试方法
二、实验原理
见教材
三、实验内容
1、实验要求:
设计一个健身房使用的健身自行车控制器。

控制器的输出信号给D/A转换器,以控制自行车的阻力,从而改变训练强度。

输入采用4×4键盘,显示采用3位数码管,其中最高位显示训练强度,低2位显示时间。

(1)使用者骑上自行车时,控制器处于初始状态。

按“F”键启动控制器,此时3位数码管显示“000”。

(2)用户输入从0到9中的任意数字,以改变训练强度,按“E”键确认。

选定的训练强度显示在数码管的最高位。

(3)训练强度选择完成之后,数码管低2位显示“00”,即最长训练时间为1分钟。

通过数字键盘输入数字,以决定训练的时间,输入时数字顺序是从左到右。

例如,输入2、3应该在显示器上显示“23”,表示训练时间被设定为60-23=37秒,如果输入正确,按下“E”键确认。

如果使用者输错了时间,可以按“C”清除,显示恢复“00”的状态。

(4)训练时间输入完成后,按下“F”键开始训练。

此时4位数码管的低两位显示时间从输入的时间值加计数到“00”。

在最后10秒时,发光二极管亮1秒暗1秒。

当计时到设定的时间,控制器恢复到初始状态,此时定时器是“00”,训练强度为前面设定的值。

2、实验电路:
实验整个电路图如下:
3、实验过程:
(1)设计思路:
a、根据实验所需的设计功能,可以得到电路的模块框图为
当前状态输入
b、电路整体实现思路:
如上图所示,电路中利用ROM 和74HC138译码器实现状态的转换。

不同的当前状态对应的状态码与输入的数据信号一起加在ROM的7个输入端,输出下一状态和相应的BCD码。

输出的下一状态反馈到ROM的输入端,又作为当前状态与下一次输入的数据信号组合。

输出的BCD码加在寄存强度、时间高位和时间低位的三个寄存器的数据输入端。

同时将输出的三位状态码输入到138译码器的三个输入端,来控制三个寄存器实现不同的功能。

在整个过程中,寄存时间高位和低位的两个寄存器所加的信号不是唯一的。

所以用译码器的八种输出来控制时钟信号选择电路,实现不同频率的时钟信号的加入。

c、状态转换图:
分析实验要求中所要实现的功能,可以把整个过程分为8个状态,通过按键所输出的信号来控制各个状态的转换。

所以可以做出状态转换图如下:
、状态转换及各状态功能实现方案:
用一个74HC138译码器的八个不同的输出来表示八个状态。

如图所示,分别为八个状态编码为000,001,010,011,100,101,110,11 d 1。

清0状态为001,使寄存强度的寄存器置数端使能,进入清0状态时使用同步清0强度,并异步清0时间高位和低位寄存器 。

强度确认状态为011,使能时间高位寄存器的置数端,同时使能时间低位寄存器的清0端。

进入设置时间高位状态时,设置时间高位。

设置时间高位状态的状态码为100,此状态下,时间低位寄存器的置数端使能,并控制时钟信号选择器在时间低位寄存器的时钟端加100Hz 的时钟信号。

开始计时状态的状态码为111,此状态下,使寄存时间高位和时间低位的计数器处于计数状态,并且控制时钟选择电路,使时间高位寄存器的时钟端加时钟低位寄存器输出的进位信号,而时钟低位寄存器的时钟端加1Hz 的时钟信号。

从而实现了八个状态的转换与各个状态不同功能的实现。

e 、编写ROM 的数据表如下:
非F 键 非0—9键 非E 键 非0—6键 键
f、ROM的数据表分析:
如ROM数据表所示,ROM的功能是将按键的信号与当前状态信号组合后输出下一状态码和相应的数据的BCD码。

例如在状态000时,只有按键F的信号加在ROM的A7~A0端时,ROM才会输出下一状态
001,并且在松开F键时,状态码001才能寄存在寄存器中,而其他的按键信号输入ROM时,ROM只会输出当前状态码。

从而使得电路进入第二个状态。

其他状态的实现也是运用类似的方法实现,不过不同的状态下ROM只有在有设定的按键信
号输入才会输出下一状态的状态码。

特别是在设置时间高位状态100和设置时间低位状态101,设定如有C键的按键信号输入
ROM时,则ROM输出的状态码为011,即进入强度确认状态从而使得时间高位和低位都清
0,并需要重新开始设置时间。

这样就实现了C键的清0功能。

(2)、实验各个模块电路:
键盘模块电路:
控制模块电路如下:
a、键盘信号控制状态寄存的实现思路:
如下面的电路图所示,利用键盘电路的消抖触发器的Q端输出的脉冲信号作为寄存状态码的寄存器的时钟信号,则在每次按键松开时,产生一个上升沿,使寄存器寄存加在三个置数
端的状态码。

b、发光二极管的功能实现思路:
利用时间高位和时间低位的两个计数器的级联来做成模六十的计数器,寄存时间高位的计数
器的QAQC两端相与之后的输出与寄存时间低位的计数器的QA输出端再与非后,加在二极
管的正极。

因为寄存时间低位的计数器的QA端输出的脉冲信号频率为2Hz,且仅当高位数字变为5时,QA的信号才能加到二极管上,否则与非门的输出端时钟为0。

这样就实现了在最后十秒,二极管亮一秒暗一秒的功能。

4、实验中遇到的故障及解决方案
a、在测试时,时间低位的设置只能为1—8,无法设置为9。

故障原因:分析电路发现,在将两个计数器级联为模六十计数器时,使用的清0方式为同步清0,所以低位设置9时,计数器的置数端使能,而此时输入的数据码为0000,所以在置9后又置0,所以相当于无法将9置入。

解决法案:将时间低位计数器的清0方式改为异步清0。

这样只能在计数器输出为1010时才会置0,从而能实现时间低位的置9。

b、在设置时间高位时,如果按键时间过长,会使得时间低位也会置入相同数字,并且跳过
设置时间高位状态100进入时间设置时间低位状态101。

故障原因:在按住键不放时,由于消抖触发器的时钟信号和扫描信号是同一个信号,所以在0信号到达触发器的D输入端时,Q端仍输出1信号时。

待时钟的下一个上升沿来时,Q端
才输出0,而此时由于时钟信号比Q输出的0信号先到达寄存器,所以扫描信号也发生了一次改变。

因此在第三次时钟到来之后,Q的输出就变成1信号了,即寄存器没有被锁住,也就是说在按住键不放时,产生扫描信号的194移位寄存器没有停止扫描。

那么就会造成在按键时间过长时,会产生几个脉冲信号。

而电路又是以Q输出脉冲来作为状态码寄存器的
置数时钟信号,从而就出现了上述故障。

解决方案:
方案一:可将触发器的时钟信号改为1KHz,这样就能保证Q端的输出信号早于时钟信号到
达寄存器。

方案二:可将键盘row4,row3,row2,row1四个输出端的输出信号与非后的输出进过一个
非门后加到寄存器的S0,这样也能保证在时钟的下一个上升沿到来时,S0端输入的信号为0。

并且输入的0信号为稳定的低电平信号。