《数字逻辑电路基础》课件第8章_第1页
《数字逻辑电路基础》课件第8章_第2页
《数字逻辑电路基础》课件第8章_第3页
《数字逻辑电路基础》课件第8章_第4页
《数字逻辑电路基础》课件第8章_第5页
已阅读5页,还剩272页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章综合设计开发示例8.1多数码管显示8.2交通信号灯控制器8.3键盘扫描8.4同步串型通信接口8.5语音合成器

8.1多数码管显示

8.1.1工作原理显示单元含有n个数码管,驱动电路中含有n个8位寄存器来保存所对应数码管各段的控制电平。静态显示是将n个寄存器与n个数码管直接相连,如图8.1所示,共需要8n个输出、8n+1个输入。该电路连接线太多,并且功耗也比较大。图8.1多数码管静态显示电路结构

动态显示是指分时轮流驱动数码管。在轮流显示过程中,每位数码管的点亮时间为1~2ms。由于人的视觉暂留现象及发光二极管的余辉效应,只要轮流点亮的速度足够快,动态显示的效果和静态显示是一样的,同时能够节省大量的I/O端口,而且功耗更低。

动态显示电路结构如图8.2所示。

图8.2动态显示电路结构

脉冲分配电路共有n个输出C1~Cn,分别用来控制数码管的COM端,每个低电平时长为2ms(时钟CP的周期为2ms),每个数码管的显示周期为2nms。若增加显示周期,可以增加计数值。数码管的控制输出和数据波形如图8.3所示。

图8.3数码管的控制和数据输出波形

8.1.2模块设计

为了方便书写和描述,以n=6,m=3的模块为例进行设计。

1.变量

1)输入变量

inputCP,G;

input[7:0]D;

input[2:0]A;

2)输出变量

utput[8:1]LQ;

output[6:1]C;

3)寄存器变量

reg[6:1]E,C;

reg[7:0]Q1,Q2,Q3,Q4,Q5,Q6;

reg[8:1]LQ;

reg[2:0]S;

2.数据锁存电路

锁存信号产生电路的输入为m个地址信号A0~Am-1,其输出为n个数据锁存信号E1~En。A0~Am-1所对应的锁存信号为高,其它锁存信号都为低。在锁存信号G上升沿锁存数据D。由于E1~En是中间量,并与A0~Am-1的值一一对应,所以程序中可以省略该中间量。

3.模6计数器

always@(CP)

S<=(S<3'd5)?S+3’d1:3’d0;

4.显示数据与控制输出电路

always@(S)

case(S)

0:{LQ,C}<={Q1,6'b111110};

1:{LQ,C}<={Q2,6'b111101};

2:{LQ,C}<={Q3,6'b111011};

3:{LQ,C}<={Q4,6'b110111};

4:{LQ,C}<={Q5,6'b101111};

5:{LQ,C}<={Q6,6'b011111};

default:{LQ,C}<={8'd0,6'b111111};

endcase

8.1.3仿真波形

多数码显示电路的仿真波形如图8.4所示。

图8.4仿真波形

为了保证数据稳定可靠地锁存,要求地址A和数据D在G的低电平内不能发生变化。波形中,前六个G的上升沿分别将数据0x23~0x28锁存到Q1~Q6中,而显示则在CP脉冲的控制下轮流显示。当第7个G的上升沿到达时,此时A=3、D=0x2E,Q4将数据锁存输出0x2E,在后续的显示数据LQ中,第4个数码管显示的数据为0x2E。

8.2交通信号灯控制器

8.2.1工作原理

1.系统结构十字路口的东西方向和南北方向均有绿灯、黄灯、红灯指示,并有一个颜色可控的两位数码管。数码管显示各灯剩余时间,绿灯亮时数码管为绿色显示,黄灯亮时数码管为黄色显示,红灯亮时数码管为红色显示。

整个交通控制系统结构如图8.5所示。

图8.5交通控制系统结构

2.操作流程

两个方向交通灯的变化规则如图8.6所示。

图8.6交通灯变化规则

3.状态图

电路由倒计时器组成,并由组合电路产生显示数据和颜色。倒计时器由模110减法计数器,状态S为0~109。输出C用来控制显示颜色,0表示东西绿灯亮、南北红灯亮,1表示东西黄灯亮、南北红灯亮,2表示东西红灯亮、南北绿灯亮,3表示东西红灯亮、南北黄灯亮。输出A和B分别为东西方向和南北方向数码管要显示的数值。

图8.7交通灯控制状态图

8.2.2模块设计

1.变量

1)输入变量

inputCP;

2)输出变量

output[5:0]A,B;

output[1:0]C;

3)寄存器变量

reg[5:0]A,B;

reg[1:0]C;

reg[6:0]S;

2.模计数器

always@(posedgeCP)

S<=(|S)?S-1:7‘d109;

3.控制信号产生

由于A和B均为6位,而S为7位,A和B值均由S产生,故会产生截位。

8.2.3仿真波形

图8.8交通灯控制仿真波形

8.3键盘扫描

8.3.1工作原理

1.电路结构键盘采用行列开关矩阵,m行n列的键盘如图8.9所示。若某键被按下,则该键所在的行与列导通。图8.9m行n列键盘的开关矩阵

键盘扫描是反复逐列进行的,共有n列,所以需要采用模n计数器来产生列序号。所有列中同时只能有一个为低电平,所以采用译码器对列序号进行译码来产生所要的列信号。

当键按下时m行中只有一个为低电平,其它均为高电平,所以可以用编码器来生成低电平所在行的序号,并产生有键按下的标志(低电平有效)。当有键被按下时,计数器停止扫描,直到键被松开。

其控制电路结构如图8.10所示。

图8.10键盘扫描控制电路

2.计数器

计数器的模为n,状态S为k位,k=élog2nù,即S={S0,S1,…,Sk-1},有效状态为0~n-1。控制信号E为1时正常计数,E为0时停止计数。

状态转移如8.11所示。

图8.11键盘扫描计数器的状态图

3.译码器

译码器的输入为S={S0,S1,…,Sk-1},输出为C1~Cn。

其真值表如表8.1所示。

4.编码器

编码器的输入为R1~Rm,编码有效输出为E,输出为Y={Y1,Y2,…,YL},其中L=élog2mù。其功能真值表如表8.2所示。

8.3.2模块设计

以n=6、m=6为例。

1.变量

1)输入变量

inputCP;

input[6:1]R;

2)输出变量

output[6:1]C;

output[5:0]D;

outputE;

3)寄存器变量

regE;

reg[6:1]C;

reg[2:0]S,Y;

2.计数器

always@(posedgeCP)

if(E)S<=(S<3’d5)?S+3’d1:3’d0;

3.译码器

always@(S)

case(S)

0:C<=6'b111110;

1:C<=6'b111101;

2:C<=6'b111011;

3:C<=6'b110111;

4:C<=6'b101111;

5:C<=6'b011111;

default:C<=6'b111111;

endcase

4.编码器

always@(R)

case(R)

6'b0xxxxx:{E,Y}<={1’d0,3'd0};

6'b10xxxx:{E,Y}<={1’d0,3'd1};

6'b110xxx:{E,Y}<={1’d0,3'd2};

6'b1110xx:{E,Y}<={1’d0,3'd3};

6'b11110x:{E,Y}<={1’d0,3'd4};

6'b111110:{E,Y}<={1’d0,3'd5};

6'b111111:{E,Y}<={1’d1,3'd7};

endcase

5.数码输出

assignD={Y,S};

8.4同步串型通信接口

8.4.1工作原理

1.功能波形

SPI的接口有SCK、LE、MOSI、MISO四个信号,SPI有主次之分。对于主SPI,SCK、LE和MOSI为输出,MISO为输入;对于从SPI,SCK、LE、MOSI为输入,MISO为输出。

对于主SPI,启动发送后,LE变低,随后产生发送时钟SCK,同时将发送寄存器的数据逐位输出到MOSI上,同时锁存MISO上的数据。当SCK上输出规定数目的时钟后,不再产生时钟脉冲,并将LE变高。

对于从SPI,LE变低后,准备收发。当第一个时钟到达时,在规定的接收边沿对MOSI上的数据锁存到接收寄存器,在规定的发送边沿上将数据发送寄存器的数据逐位输出。

下面以8位数据收发器为例,其工作波形如图8.12所示。

图8.12SPI的工作波形

2.SPI波形产生机制

MOSI和MISO受控于LE和SCK,所以要先分析SCK和LE的产生。通过SCK和LE的波形可知需要采用如图8.13所示的18个状态S0~S17来产生。

图8.13SCK和LE波形关系

LE为一个状态位,SCK为一个状态位,由于SCK在LE为0期间是周期变化,所以将状态S的最后一位作为SCK。但在LE=0期间共有17个状态,所以状态S共有6位。状态分配如表8.3所示,产生该状态的时序电路的时钟CP的周期为SCK的周期的1/2。

时序电路状态的产生由启动信号ST=1时产生,其状态转移图如图8.14所示。

图8.14SPI时序电路状态图

在SCK的第一个时钟上升沿置数,将输入数据锁存在移位寄存器中,并在后续时钟的上升沿移位输出。MOSI的波形关系如图8.15所示。

图8.15MOSI的波形关系

置数信号的波形关系如图8.16所示。由于发送时第1个SCK的上升沿用来置数,所以在LE为高电平时LD被置位,当LD为低时,在第1个SCK的下降沿使LD变低。

图8.16置数信号与其它信号的波形关系

对于主SPI来说,MISO是输入,而对于从SPI来说,MOSI是输入,它们的的波形处理如图8.17所示,接收采用移位寄存器,每个时钟的下降沿锁存。

图8.17MOSI的波形关系

3.电路结构

SPI电路由主SPI和从SPI两种结构,如图8.18所示。

图8.18SPI的电路结构

8.4.2主SPI模块设计

1.变量

1)输入变量

inputCP,nRST,ST,MISO;

input[7:0]TD;

2)输出变量

outputSCK,LE,MOSI;

output[7:0]RD;

3)寄存器变量

reg[7:0]RD,SD;//SD为发送移位寄存器状态,RD为接收移位寄存器状态(也是输出)

reg[5:0]S;

regLD;

2.模n计数器

always@(posedgeCPornegedgenRST)

if(!nRST)S<=6'd32;

elseif(S<6'd17)S<=S+6’d1;

elseif(ST)S<=6'd0;

elseS<=6'd32;

3.发送控制

assign{LE,SCK}={S[5],S[0]};

always@(negedgeSCKorposedgeLE)

if(LE)LD<=1’d1;

elseLD<=1’d0;

4.数据发送

assignMOSI=SD[0];

always@(posedgeSCK)

if(LD)SD<=TD;

elseSD<={1’d0,SD[7:1]};

5.数据接收

always@(negedgeSCK)

RD<={MISO,RD[7:1]};

8.4.3从SPI模块设计

1.变量

1)输入变量

inputSCK,LE,MOSI;

input[7:0]TD;

2)输出变量

outputMISO;

output[7:0]RD;

3)寄存器变量

reg[7:0]RD,SD;//SD为发送移位寄存器状态,RD为接收移位寄存器状态(也是输出)

regLD;

2.发送控制

always@(negedgeSCKorposedgeLE)

if(LE)LD<=1’d1;

elseLD<=1’d0;

3.数据发送

assignMISO=SD[0];

always@(posedgeSCK)

if(LD)SD<=TD;

elseSD<={1’d0,SD[7:1]};

4.数据接收

always@(negedgeSCK)

RD<={MOSI,RD[7:1]};

8.4.4SPI仿真波形

1.主SPI工作波形

图8.19主SPI的工作波形

2.从SPI工作波形

图8.20从SPI的工作波形

8.5语音合成器

8.5.1工作原理

1.功能描述

每个汉字的发音时间为256ms,话音采用8位DAC进行转换,转换时钟为8KHz,因此每个汉字需要16384比特的存储空间。生成话音时,每125us从存储空间读取8比特。故汉字语音数据的存储位宽为8比特,每个汉字占用2048个地址。

每个汉字字符采用16位的UNICODE编码,编码值范围为0x4e00~0x9fa5,共有20902个汉字。所有汉字的话音数据以字符编码值从小到大顺序保存,汉字语音数据存储位宽为8比特,共需要42807296个地址。

2.原理电路

整个控制电路主要实现字符的读取和话音数据的读取及DAC发送。为了保证话音输出的连续,每个时钟都向DAC发送数据。控制电路通过发送读信号从FIFO读数据,FIFO的空标志作为数据指示信号,若FIFO为空,不再读取数据。读取数据后,计算该字符所对应的语音数据存储单元首地址,并不断从语音存储器中连续读取2048个存储数据。

图8.21原理电路

3.控制波形

1)控制单元与DAC之间的接口波形

DAC的锁存信号CLK和输入数据VD之间关系如图8.22所示,每个时钟的上升沿数据变化,同时DAC锁存数据。一个字符的语音数据共需2048个时钟传输。

图8.22DAC控制波形

2)控制单元与语音存储器之间的接口波形

语音存储器有26位地址线A25~A0和8位数据线D7~D0,其中A10~A0从0变化到2047,每2048个变化后A25~A11才会变化一次,有效地址输出后有效数据才会输出。

图8.23控制单元与语音存储器之间的接口波形

3)控制单元与FIFO之间的接口波形

FIFO在读信号nFR有效时,16位数据线FD15~FD0上输出数据,nFR无效时数据线处于高阻态。若一次计数循环结束时FE为0(有数据),nFR则产生低电平脉冲。当nFR变高时将FD上的数据锁存。

图8.24控制单元与FIFO之间的接口波形

4)接口之间的信号关系

(1)DAC的CLK、存储器的A10~A0、FIFO的读信号nFR之间关系如图8.25所示。

图8.25CLK、A10~A0和nFR之间关系

(2)DAC的数据VD、存储器数据D和FIFO的数据FD之间的关系如图8.26所示。

图8.26VD、D和FD之间的关系

5)信号产生关系

以CLK为输入时钟构成模2048的加法计数器,时钟状态作为存储器的地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论