当前位置:文档之家› 键盘输入显示数电课程实验报告

键盘输入显示数电课程实验报告

键盘输入显示数电课程实验报告
键盘输入显示数电课程实验报告

西北工业大学

课程设计报告

题目键盘输入显示

学院

班级

学生(学号)

学生(学号)

学生(学号)

日期2013年1月11日

摘要:

键盘是最常用人机接口设备之一,在嵌入式系统中有着相当广泛的应用。一般自行设计的简易矩阵键盘仅仅是按行、列排列起来的矩阵开关。当需要较多的按键时,则会占用较多的I/O 端口,在软件上则要进行上电复位按键扫描及通信处理,而且还要加上按键的去抖动处理,增大了软硬件开销。而PS/2 键盘,内嵌自动去除按键抖动设计,自动地识别键的按下与释放,软硬件开发简便,价格便宜,稳定可靠,将PS/2 键盘作为嵌入式系统的输入设备已经成为可行的方案。

本设计是以现场可编程逻辑器件(FPGA)为核心的PS/2接口键盘的输入识别电路。利用QuartusⅡ软件编写verilog HDL硬件描述语言程序以实现键盘部分简单键值的识别与输出。本设计主要以程序为核心,硬件电路的搭建使用FPGA实验箱,将程序顶层文件里定义的输入输出端口与实验箱管脚进行相应的配置,除实验箱上的reset键以外,外设是一个与实验箱通过PS/2接口相连的键盘和VGA接口相连的显示屏。当系统上电后,按下键盘上的按键,实验箱上的数码管可以依次显示从键盘上输入的键值,同时VGA显示屏显示键值。

关键字:

Ps/2接口键盘、FPGA 、QuartusⅡ、Verilog HDL、 VGA接口

目录

一、课程设计目的 (4)

二、设计任务与要求 (4)

三、方案设计与论证 (4)

四、单元电路设计与参数计算 (5)

五、程序设计 (7)

六、程序调试 (7)

七、遇到的问题及解决方法 (8)

八、结论与心得 (8)

九、参考文献 (9)

键盘输入显示

一、课程设计目的

(1)巩固和加深所学电子技术课程的基本知识,提高综合运用所学知识的能力;(2)培养学生根据课题需要选用参考书、查阅手册、图表和文献资料的能力,提高学生独立解决工程实际问题的能力.

(3)通过设计方案的分析比较、设计计算、元件选绎及电路安装调试等环节.初步掌握简单实用电路的工程设计方法.

(4)提高学生的动手能力.掌握常用仪器设备的正确使用方法,学会对简单实用电路的实验调试和对整机指标的测试方法,

(5)了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务书的要求编写设计说明书,能正确反映设计和实验成果,能正确绘制电路固等.

二、设计任务与要求

1.任务:设计一个键盘输入显示控制电路

2.要求和指标:

(1)由键盘输入0~F,总计16个字符,由开发板上的数码管显示;

(2)该字符同时能在VGA上显示输出;

3. 扩展要求:

(A)能在VGA显示屏上切换字符显示的大小。

(B)能连续显示输入字符;

三、方案设计与论证

本电路总共分为分频模块、PS/2键盘输入模块、字符码转换模块、VGA驱动模块。各模块之间的关系如下图所示:

使用现场可编程逻辑器件(FPGA)制作,利用Verilog HDL硬件描述语言编程进

行控制,然后下载至实验箱实现。利用QuartusⅡ软件编写verilog HDL硬件描述语言程序以实现键盘部分简单键值的识别与输出。硬件电路的搭建使用FPGA实验箱,将程序顶层文件里定义的输入输出端口与实验箱管脚进行相应的配置,除实验箱上的reset键以外,外设是一个与实验箱通过PS/2接口相连的键盘。

工作原理:对键盘按键进行扫描,采集按键的扫描码,然后字符码转换分为两路传送:一条送入数码显示管进行字符显示;另一条通过字模软件获取键盘输入字的字模数据,送入VGA驱动,进行字符的VGA显示。

四.单元电路设计与参数计算

设计分为三部分。分别为键盘数据接收部分、数码管显示部分和VGA显示部分。模块电路设计及说明:

1.键盘数据接收部分

键盘PS/2的接口简介:

接口的六个脚中,只有四个脚有意义,分别是:时钟脚、数据脚、电源脚、电源地。其余为保留脚。PS/2靠系统的PS/2端口提供+5V电源。这里需要用到的即是:时钟脚和数据脚。这两个脚都是集电极开路,所以必须接大阻值的上拉电阻。他们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。

PS/2设备的clock和data平时都是高电平。当设备等待发送数据时,它首先检查clock是否为高。如果为低,则认为PC抑制了通讯,此时它缓冲数据知道获得总线的控制权。如果clock为高电平,PS/2设备则开始向PC发送数据。数据位在clock为高电平时准备好,在clock下降沿被PC读入。

数据从键盘发送到主机或从主机发送到键盘,时钟都是PS/2设备产生,主机对时钟控制有优先权,即主机想发送控制指令给PS/2设备时,可以拉低时钟线至少100us。然后再下拉数据线,最后释放时钟线为高。PS/2设备的时钟线和数据线都是集电极开路的,容易实现拉低电平。

其数据发送时序如下:

键盘发送时序

键盘接收时序

因为我们的功能只涉及到键盘的数据发送,所以对接收不做具体说明。现在的PC 机使用的PS/2键盘都默认采用第二套扫描码集,扫描码有两种不同的类型:通码和断码。当一个键被按下或持续按住时,键盘会将改键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机。

我们做的比较简单,因此只用到了第一类按键。(返回值见附录)

第一类按键:通码为1字节,断码为0xF0+通码形式。如1键,其通码为0x16,断码为0xF0 0x1C.

在具体的实验过程中,PS/2键盘通过Clock管脚来控制通信方向并且充当本次实验的一个时钟管脚,在键盘时钟下,数据段进行收发数据,本次实验只是使用它来发送数据,未设计键盘接收数据。每按下一个键,data管脚发送一个数据帧,具体格式如下:

PS/2键盘扫描码

此模块的功能说明:当按下一个键时,FPGA在时钟信号下接受来自PS/2键盘的数据(8个数据位),接收完毕后锁存并转化为十六进制数据,例如4’ha。当按键放开时,发出信号change。这时开始识别按键,如果接收到8’d102,则表示接收到按键Backspace,则清空显示数据。否则,数码管进行译码后则显示键盘的键值。

总体来说,此部分分为接收数据模块、数据判断与锁存模块、键值转化模块。

2.数码管显示部分

此模块的功能说明:这部分内容较简单,由于已经得到了键盘信息,在接收到change信号后,且十六进制数据不是8’d102时(即不是Backspace清零信号),则根据数字对应的通码反过来找数字,经过8段数码管的译码后显示键盘键值。可显示的键值有:0~9,a~f。

此部分总体分为数据接收模块、分频模块、位选信号模块、译码模块。之所以有分频主要是为了提供数码管动态扫描的扫描频率,频率要适中。否则数码管不能正常工作。

3.VGA显示部分

VGA时序控制模块是整个显示控制器的关键部分,最终的输出信号行、场同步信号必须严格按照VGA时序标准产生相应的脉冲信号。对于普通的VGA显示器,其引出线的共含5个信号:G,R,B(三基色信号),HS(行同步信号)VS(场同步信号)。在五个信号时序驱动时,VGA显示器要严格遵循“VGA工业标准”,即640×480×25MHz模式或800×600×40MHz模式,本次字符显示试验采用800×600×40MHz模式。

五.程序设计

程序代码见附录

六.程序调试

1、运行Quartus II软件,新建工程和命名顶层文件。

2、建立文件Verilog HDL File。命名为ps2.v。在文件中写入程序,保存,编

译。

3、分配管脚。保存,编译。

4、先下载简单的程序,已确定实验箱可用。

5、之后将生成的.sof文件下载至FPGA实验箱中。

6、在键盘上一次输入0~9,a~f。观察数码管显示的数据是否与键盘的输入键值

相同。

7、若不相同或不完全相同,则分模块调试。

调试现象:

1、分别输入0~9和a~f,数码管上均能正确显示,VGA正确显示。

2、输入其他的键值,数码管显示0,VGA显示0。

七.遇到的问题及解决方法

1.不会使用Quartus II软件及verilog HDL语言编写程序。

学习老师给的资料,并在图书馆借阅资料,尝试编写一些简单的verilog HDL 程序,熟悉Quartus II软件及verilog HDL语言编写程序的方法。

2. 数码管显示不正确。

不会连接DE0的管脚,管脚配置不正确导致数码管显示异常。查看老师给的文件DE0_User_manual.pdf,学习DE0管脚接法。

3.VGA显示时,屏幕无显示,且出现‘闪屏’。

VGA的时钟控制信号要求为25M Hz,编程时为编写分频器模块,因此时钟输入为50M Hz。解决办法是利用DE0的锁相环二分频得到25M Hz 输入信号。

八.结论与心得

通过本次课程设计,让我对FPGA有了进一步的了解,虽然我们只做了一些最底层、最基本的设计,也只接触了那么一些小小的内容,但通过整个设计过程使我深深地了解了FPGA的强大功能,认识了一些单元的工作原理。

我们小组做的是键盘输入显示,能在DE0的七段数码显示管上显示,也能在VGA 上显示键盘输入的字符,从头到尾让我对PS/2键盘、VGA显示原理都有了深刻的认识。在此过程中我们也遇到了许多困难,最开始不会使用Quartus II软件及verilog HDL

语言编写程序,我们就开始学习老师给的资料,并在图书馆借阅资料,尝试编写一些简单的verilog HDL程序,熟悉Quartus II软件及verilog HDL语言编写程序的方法,但是对所选的题没有思路,于是我们就看老师所给的程序,理解它的功能,从而得到编程的“灵感”。通过不断地努力,我们初步编写出程序。在调试程序时出现了不少语法错误,在看了verilog HDL语言的书后,我们发现了这些错误。总之,设计过程中困难是多种多样的,但我们没放弃,通过查阅资料、询问老师、小组讨论、商量都一一解决了。在此过程中也让我们提高了真正地去发现问题、分析问题、解决问题的能力,获益匪浅。本次课程设计也让认识到只有真正的理解一个东西的工作原理过后,才知道如何下手去解决问题,盲目地写程序,摘抄别人的东西最终还是一无所获。

九.参考文献

【1】崔葛瑾.基于FPGA的数字电路系统设计.西安电子科技大学出版社.2008

【2】郭永贞.数字电路实验与EDA技术.东南大学出版.2010

附录一:

扫描码表:

键盘数据接收部分:

`timescale 1ns / 1ps

///////////////////////////////////////////////////////////////////////////

module

ps2(clk,rst_n,ps2k_clk,ps2k_data,oSEG,hsync,vsync,vga_r,vga_g,vga_b);

input clk; //50M时钟信号

input rst_n; //复位信号,active_low

input ps2k_clk; //PS2接口时钟信号

input ps2k_data; //PS2接口数据信号

output [6:0] oSEG; //数码管显示值

output hsync; //行同步信号

output vsync; //场同步信号

output[2:0] vga_r;

output[2:0] vga_g;

output[1:0] vga_b;

reg [6:0] oSEG;

reg[7:0] ps2_asci; //1byte键值,只做简单的按键扫描,以ASCII码保存。

//------------------------------------------

reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; //ps2k_clk状态寄存器

wire pos_ps2k_clk; // ps2k_clk上升沿标志位

wire neg_ps2k_clk; // ps2k_clk下降沿标志位

always @ (posedge clk or negedge rst_n)

begin //去抖动

if(!rst_n) begin

ps2k_clk_r0 <= 1'b0;

ps2k_clk_r1 <= 1'b0;

ps2k_clk_r2 <= 1'b0;

end

else begin //锁存状态,sequential execution

ps2k_clk_r0 <= ps2k_clk;

ps2k_clk_r1 <= ps2k_clk_r0;

ps2k_clk_r2 <= ps2k_clk_r1;

end

end

assign neg_ps2k_clk = ~ps2k_clk_r1 & ps2k_clk_r2;//下降沿

//------------------------------------------

reg[7:0] ps2_byte_r; //接收来自PS2的一个字节数据存储器

reg[7:0] temp_data; //当前接收数据寄存器

reg[3:0] num; //计数寄存器

always @ (posedge clk or negedge rst_n)

begin

if(!rst_n) begin

num <= 4'd0;

temp_data <= 8'd0;

end

else if(neg_ps2k_clk) begin //检测到ps2k_clk的下降沿case (num)

4'd0: num <= num+1'b1;

4'd1: begin

num <= num+1'b1;

temp_data[0] <= ps2k_data;

//bit0

end

4'd2: begin

num <= num+1'b1;

temp_data[1] <= ps2k_data;

//bit1

end

4'd3: begin

num <= num+1'b1;

temp_data[2] <= ps2k_data;

//bit2

end

4'd4: begin

num <= num+1'b1;

temp_data[3] <= ps2k_data;

//bit3

end

4'd5: begin

num <= num+1'b1;

temp_data[4] <= ps2k_data;

//bit4

end

4'd6: begin

num <= num+1'b1;

temp_data[5] <= ps2k_data;

//bit5

end

4'd7: begin

num <= num+1'b1;

temp_data[6] <= ps2k_data;

//bit6

end

4'd8: begin

num <= num+1'b1;

temp_data[7] <= ps2k_data;

//bit7

end

4'd9: begin

num <= num+1'b1;//odd-even check bit

end

4'd10: begin

num <= 4'd0; // num清零

end

default: ;

endcase

end

end

reg key_f0; //松键标志位,置1表示接收到键盘断码数据8'hf0,再接收到下一个数据后清零

reg ps2_state_r; //键盘当前状态,ps2_state_r=1表示有键被按下

always @ (posedge clk or negedge rst_n) begin //接收数据的相应处理,这里只对1byte的键值进行处理

if(!rst_n) begin

key_f0 <= 1'b0;

ps2_byte_r <= 8'h45;

end

else if(num==4'd10)//刚传送完一个字节数据

begin

if(temp_data == 8'hf0)

key_f0 <= 1'b1;

else begin

if(!key_f0) begin //说明有键按下

ps2_state_r <= 1'b1;

ps2_byte_r <= temp_data;//锁存当前键值

end

else begin

ps2_state_r <= 1'b0;

key_f0 <= 1'b0;

end

end

end

end

数码管显示部分:

always @ (ps2_byte_r) begin

case (ps2_byte_r) //键值转换为ASCII码,只处理十六进制数字8'h24: ps2_asci <= 8'h45; //E

8'h1c: ps2_asci <= 8'h41; //A

8'h23: ps2_asci <= 8'h44; //D

8'h2b: ps2_asci <= 8'h46; //F

8'h21: ps2_asci <= 8'h43; //C

8'h32: ps2_asci <= 8'h42; //B

8'h45: ps2_asci <= 8'h30; //0

8'h16: ps2_asci <= 8'h31; //1

8'h1e: ps2_asci <= 8'h32; //2

8'h26: ps2_asci <= 8'h33; //3

8'h25: ps2_asci <= 8'h34; //4

8'h2e: ps2_asci <= 8'h35; //5

8'h36: ps2_asci <= 8'h36; //6

8'h3d: ps2_asci <= 8'h37; //7

8'h3e: ps2_asci <= 8'h38; //8

8'h46: ps2_asci <= 8'h39; //9

default: ps2_asci <= 8'h30;

endcase

end

always @(ps2_asci)

begin //oSEG的7位和数码管的7段的code

case(ps2_asci)

8'd14: oSEG <= 7'b0000110; // ---t-- //reference:DE0 demonstration default

8'h41: oSEG <= 7'b0001000; // | |

8'h44: oSEG <= 7'b0100001; // lt rt

8'h46: oSEG <= 7'b0001110; // | |

8'h43: oSEG <= 7'b1000110; // ------

8'h42: oSEG <= 7'b0000011; // | |

8'h30: oSEG <= 7'b1000000; // lb rb

8'h31: oSEG <= 7'b1111001; // | |

8'h32: oSEG <= 7'b0100100; // ---b--

8'h33: oSEG <= 7'b0110000;

8'h34: oSEG <= 7'b0011001;

8'h35: oSEG <= 7'b0010010;

8'h36: oSEG <= 7'b0000010;

8'h37: oSEG <= 7'b1011000;

8'h38: oSEG <= 7'b0000000;

8'h39: oSEG <= 7'b0010000;

endcase

end

/*

clk PIN_G21

rst_n PIN_H2 //BUTTON0

ps2k_clk PIN_P22

ps2k_data PIN_P21

oSEG[0] PIN_E11

oSEG[1] PIN_F11

oSEG[2] PIN_H12

oSEG[3] PIN_H13

oSEG[4] PIN_G12

oSEG[5] PIN_F12

oSEG[6] PIN_F13 */

VGA显示部分:

reg [1:0] c;

wire clk_25m;

pll u1

(.inclk0(clk),

.c0(clk_25m));

//--------------------------------------------------

// 坐标计数

reg[9:0] x_cnt; //行坐标

reg[9:0] y_cnt; //列坐标

reg[7:0]

char_line0,char_line1,char_line2,char_line3,char_line4,char_line5;

reg[7:0] char_line6,char_line7,char_line8,char_line9,char_linea;

reg[7:0] char_lineb,char_linec,char_lined,char_linee,char_linef;

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) x_cnt <= 10'd0;

else if(x_cnt == 10'd799) x_cnt <= 10'd0;

else x_cnt <= x_cnt+1'b1;

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) y_cnt <= 10'd0;

else if(y_cnt == 10'd524) y_cnt <= 10'd0;

else if(x_cnt == 10'd799) y_cnt <= y_cnt+1'b1;

//--------------------------------------------------

// VGA场同步,行同步信号

reg hsync_r,vsync_r; //同步信号

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) hsync_r <= 1'b1;

else if(x_cnt == 10'd0) hsync_r <= 1'b0; //产生hsync信号

else if(x_cnt == 10'd96) hsync_r <= 1'b1;

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) vsync_r <= 1'b1;

else if(y_cnt == 10'd0) vsync_r <= 1'b0;//产生vsync信号

else if(y_cnt == 10'd2) vsync_r <= 1'b1;

assign hsync = hsync_r;

assign vsync = vsync_r;

//--------------------------------------------------

//有效显示标志位产生

reg valid_yr; //行显示有效信号

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) valid_yr <= 1'b0;

else if(y_cnt == 10'd32) valid_yr <= 1'b1;

else if(y_cnt == 10'd512) valid_yr <= 1'b0;

wire valid_y = valid_yr;

reg valid_r; // VGA有效显示区标志位

always @ (posedge clk_25m or negedge rst_n)

if(!rst_n) valid_r <= 1'b0;

else if((x_cnt == 10'd141) && valid_y) valid_r <= 1'b1;

else if((x_cnt == 10'd781) && valid_y) valid_r <= 1'b0;

wire valid = valid_r;

//wire[9:0] x_dis; //横坐标显示有效区域相对坐标值0-639 wire[9:0] y_dis; //竖坐标显示有效区域相对坐标值0-479

//assign x_dis = x_cnt - 10'd142;

assign y_dis = y_cnt - 10'd33;

//--------------------------------------------------

//--------------------------------------------------

// VGA色彩信号产生

/*

RGB = 000 黑色RGB = 100 红色

= 001 蓝色= 101 紫色

= 010 绿色= 110 黄色

= 011 青色= 111 白色

*/

/*EDN字模参数*/

always @(ps2_asci)

begin

if(ps2_asci==8'h30)

begin

char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h18;

char_line4 <= 8'h24;

char_line5 <= 8'h42;

char_line6 <= 8'h42;

char_line7 <= 8'h42;

char_line8 <= 8'h42;

char_line9 <= 8'h42;

char_linea <= 8'h42;

char_lineb <= 8'h42;

char_linec <= 8'h24;

char_lined <= 8'h18;

char_linee <= 8'h00;

char_linef <= 8'h00; //0 end

else if(ps2_asci==8'h31) begin

char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h10;

char_line3 <= 8'h70;

char_line4 <= 8'h10;

char_line5 <= 8'h10;

char_line6 <= 8'h10;

char_line7 <= 8'h10;

char_line8 <= 8'h10;

char_line9 <= 8'h10;

char_linea <= 8'h10;

char_lineb <= 8'h10;

char_linec <= 8'h7C;

char_lined <= 8'h00;

char_linef <= 8'h00; //1 end

else if(ps2_asci==8'h32) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h3C;

char_line3 <= 8'h42;

char_line4 <= 8'h42;

char_line5 <= 8'h42;

char_line6 <= 8'h04;

char_line7 <= 8'h04;

char_line8 <= 8'h08;

char_line9 <= 8'h10;

char_linea <= 8'h20;

char_linec <= 8'h42;

char_lined <= 8'h7E;

char_linee <= 8'h00;

char_linef <= 8'h00; //2

end

else if(ps2_asci==8'h33) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h3C;

char_line4 <= 8'h42;

char_line5 <= 8'h42;

char_line6 <= 8'h04;

char_line7 <= 8'h18;

char_line8 <= 8'h04;

char_line9 <= 8'h02;

char_linea <= 8'h02;

char_lineb <= 8'h42;

char_linec <= 8'h44;

char_lined <= 8'h38;

char_linee <= 8'h00;

char_linef <= 8'h00; //3

end

else if(ps2_asci==8'h34) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h04;

char_line4 <= 8'h0C;

char_line5 <= 8'h14;

char_line6 <= 8'h24;

char_line7 <= 8'h24;

char_line8 <= 8'h44;

char_line9 <= 8'h44;

char_linea <= 8'h7E;

char_lineb <= 8'h04;

char_linec <= 8'h04;

char_lined <= 8'h1E;

char_linee <= 8'h00;

char_linef <= 8'h00; //4

end

else if(ps2_asci==8'h35) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h7E;

char_line4 <= 8'h40;

char_line5 <= 8'h40;

char_line7 <= 8'h58;

char_line8 <= 8'h64;

char_line9 <= 8'h02;

char_linea <= 8'h02;

char_lineb <= 8'h42;

char_linec <= 8'h44;

char_lined <= 8'h38;

char_linee <= 8'h00;

char_linef <= 8'h00; //5

end

else if(ps2_asci==8'h36)begin char_line0 <= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h1C;

char_line4 <= 8'h24;

char_line5 <= 8'h40;

char_line6 <= 8'h40;

char_line7 <= 8'h58;

char_line8 <= 8'h64;

char_line9 <= 8'h42;

char_linea <= 8'h42;

char_lineb <= 8'h42;

char_linec <= 8'h24;

char_lined <= 8'h18;

char_linee <= 8'h00;

char_linef <= 8'h00; //6

end

else if(ps2_asci==8'h37) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h7E;

char_line4 <= 8'h44;

char_line5 <= 8'h44;

char_line6 <= 8'h08;

char_line7 <= 8'h08;

char_line8 <= 8'h10;

char_line9 <= 8'h10;

char_linea <= 8'h10;

char_lineb <= 8'h10;

char_linec <= 8'h10;

char_lined <= 8'h10;

char_linef <= 8'h00; //7

end

else if(ps2_asci==8'h38) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h3C;

char_line4 <= 8'h42;

char_line5 <= 8'h42;

char_line6 <= 8'h42;

char_line7 <= 8'h24;

char_line8 <= 8'h18;

char_line9 <= 8'h24;

char_linea <= 8'h42;

char_lineb <= 8'h42;

char_linec <= 8'h42;

char_lined <= 8'h3C;

char_linee <= 8'h00;

char_linef <= 8'h00; //8

end

else if(ps2_asci==8'h39) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h18;

char_line4 <= 8'h24;

char_line5 <= 8'h42;

char_line6 <= 8'h42;

char_line7 <= 8'h42;

char_line8 <= 8'h26;

char_line9 <= 8'h1A;

char_linea <= 8'h02;

char_lineb <= 8'h02;

char_linec <= 8'h24;

char_lined <= 8'h38;

char_linee <= 8'h00;

char_linef <= 8'h00; //9

end

else if(ps2_asci==8'h41) begin char_line0<= 8'h00;

char_line1 <= 8'h00;

char_line2 <= 8'h00;

char_line3 <= 8'h10;

数电实验报告册

湖北理工学院电气与电子信息工程学院 实验报告 课程名称:电子技术实验(数电部分) 专业名称: 班级: 学号: 姓名: 1

湖北理工学院电气与电子信息工程学院实验报告规范实验报告是检验学生对实验的掌握程度,以及评价学生实验课成绩的重要依据,同时也是实验教学的重要文件,撰写实验报告必须在科学实验的基础上进行。真实的记载实验过程,有利于不断积累研究资料、总结研究实验结果,可以提高学生的观察能力、实践能力、创新能力以及分析问题和解决问题的综合能力,培养学生理论联系实际的学风和实事求是的科学态度。 为加强实验教学中学生实验报告的管理,特指定湖北理工学院电气与电子信息工程学院实验报告规范。 一、每门实验课程中的每一个实验项目均须提交一份实验报告。 二、实验报告内容一般应包含以下几项内容: 1、实验项目名称:用最简练的语言反映实验内容,要求与实验课程安排表中一致; 2、实验目的和要求:明确实验的内容和具体任务; 3、实验内容和原理:简要说明本实验项目所涉及原理、公式及其应用条件; 4、操作方法与实验步骤:写出实验操作的总体思路、操作规范和操作主要注意事项,准确无误地记录原始数据; 5、实验结果与分析:明确地写出最后结果,并对实验得出的结果进行具体、定量的结果分析,说明其可靠性; 6、问题与建议(或实验小结):提出需要解决问题,提出改进办法与建议,避免抽象地罗列、笼统地讨论。(或对本次实验项目进行总结阐述。) 三、实验报告总体上要求字迹工整,文字简练,数据齐全,图标规范,计算正确,分析充分、具体、定量。 四、指导教师及时批改实验报告,并将批改后的报告返还学生学习改进。 五、实验室每学期收回学生的实验报告,并按照学校规章保存相应时间。 2

交通灯控制逻辑电路设计实验报告

《数字设计》课程实验报告 实验名称:交通灯控制逻辑电路的设计与仿真实现 学员:学号: 培养类型:年级: 专业:所属学院: 指导教员:职称: 实验室:实验日期:

交通灯控制逻辑电路的设计与仿真实现 一、实验目的: 1. 熟悉Multisim仿真软件的主要功能和使用。 2. 熟悉各种常用的MSI时序逻辑电路的功能和使用。 3. 运用逻辑设计知识,学会设计简单实用的数字系统。 二、实验任务及要求: 1.设计一个甲干道和乙干道交叉十字路口的交通灯控制逻辑电路。每个干道各一组指示灯(红、绿、黄)。要求:当甲干道绿灯亮16秒时,乙干道的红灯亮;接着甲干道的黄灯亮5秒,乙干道红灯依然亮;紧接着乙干道的绿灯亮16秒,这时甲干道红灯亮;然后乙干道黄灯亮5秒,甲干道红灯依然亮;最后又是甲干道绿灯亮,乙干道变红灯,依照以上顺序循环,甲乙干道的绿红黄交通指示灯分别亮着。 2.要求: (1)分析交通灯状态变换,画出基于格雷码顺序的交通灯控制状态图。 (2)设计时序逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (3)设计组合逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (4)用74LS161计数器构造16秒定时和5秒定时的定时电路,画出连线图。在Multisim仿真平台上,选用74LS161芯片连线,测试验证,将电路调试正确。 (5)在Multisim仿真平台上形成整个系统完整的电路,统调测试结果。三、设计思路与基本原理: 依据功能要求,交通灯控制系统应主要有定时电路、时序逻辑电路及信号灯转换器组合逻辑电路组成,系统的结构框图如图1所示。其中定时电路控制时序逻辑电路状态的该表时间,时序逻辑电路根据定时电路的驱动信号而改变状态,进而通过组合逻辑电路控制交通灯系统正常运行。 在各单元电路的设计顺序上,最先设计基础格雷码顺序的交通灯控制状态图,由此确定时序逻辑电路的设计,并完成该部分电路的调试。接着在设计好时序路逻辑电路的基础上,根据状态输出设计组合逻辑电路,并完成该部分的调试。最后完成定时电路的设计与调试。整合电路,形成整个系统完整的电路,统调测试结果。

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

模电课程设计报告

模电课程设计实验报告课题:函数信号发生器 指导老师:________________ 学院:___________________ 班级:___________________ 姓名:___________________ 学号:___________________

日期:__________________ 一.设计目的与要求 1.1设计目的 1.设计电路产生RC桥式正弦波产生电路,占空比可调的矩形波电路,占空比可调的三角波电路,多用信号源产生电路,分别产生正弦波、方波、三角波 2.通过设计,可以将所学的电子技术应用到实际当中,加深对信号产生电路的理解,锻炼自己的动手能力与查阅资料的能力。使自己的对模电的理解更为透彻。 1.2设计内容及要求 1)RC桥式正弦波产生电路,频率分别为300Hz、1KHz、10KHz、500KHz,输出幅值300mV~5V可调、负载1KΩ。 (2)占空比可调的矩形波电路,频率3KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。

(3)占空比可调的三角波电路,频率1KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (4)多用信号源产生电路,分别产生正弦波、方波、三角波,频率范围100Hz~3KHz、输出幅值≥5V、负载电阻1KΩ。 软件仿真部分元器件不限,只要元器件库中有即可,但需要注意合理选取。 二.单信号发生电路 2、1 RC桥式正弦波产生电路 参数计算:

器件选择: 2、2占空比可调的矩形波产生电路 参数计算: 器件选择:

2、3占空比可调的三角波产生电路 参数计算: 器件选择:

数电实验报告

选课时间段: 序号(座位号): 杭州电子科技大学 实验报告 课程名称: 数字原理与系统设计实验 实验名称: 组合电路时序分析与自动化设计 指导教师: 学生姓名 学生学号 学生班级 所学专业 实验日期

实验一、设计8位串行进位加法器电路设计: 一位全加器: 八位串行进位加法器:

仿真波形:

实验二、设计5人表决电路 代码: module BJDL45(A,B,C,D,E,YES,NO); input A,B,C,D,E; output YES,NO; reg YES,NO; always@ (A,B,C,D,E,YES,NO) case ({A,B,C,D,E}) 5'B00000:{YES,NO}<=2'B01; 5'B00001:{YES,NO}<=2'B01; 5'B00010:{YES,NO}<=2'B01; 5'B00011:{YES,NO}<=2'B01; 5'B00100:{YES,NO}<=2'B01; 5'B00101:{YES,NO}<=2'B01; 5'B00110:{YES,NO}<=2'B01; 5'B00111:{YES,NO}<=2'B10; 5'B01000:{YES,NO}<=2'B01; 5'B01001:{YES,NO}<=2'B01; 5'B01010:{YES,NO}<=2'B01; 5'B01011:{YES,NO}<=2'B10; 5'B01100:{YES,NO}<=2'B01; 5'B01101:{YES,NO}<=2'B10; 5'B01110:{YES,NO}<=2'B10; 5'B01111:{YES,NO}<=2'B10; 5'B10000:{YES,NO}<=2'B01; 5'B10001:{YES,NO}<=2'B01; 5'B10010:{YES,NO}<=2'B01; 5'B10011:{YES,NO}<=2'B10; 5'B10100:{YES,NO}<=2'B01; 5'B10101:{YES,NO}<=2'B10; 5'B10110:{YES,NO}<=2'B10; 5'B10111:{YES,NO}<=2'B10; 5'B11000:{YES,NO}<=2'B01; 5'B11001:{YES,NO}<=2'B10; 5'B11010:{YES,NO}<=2'B10; 5'B11011:{YES,NO}<=2'B10; 5'B11100:{YES,NO}<=2'B10; 5'B11101:{YES,NO}<=2'B10; 5'B11110:{YES,NO}<=2'B10; 5'B11111:{YES,NO}<=2'B10; default: {YES,NO}<=2'B10; endcase

交通灯控制器课程设计实验报告

2011级课程设计实验报告 交 通 灯 控 制 器 院(系):计算机与信息工程学院 专业年级: 2011级通信工程一班 姓名: 谢仙 学号: 指导教师: 杨菊秋 2013年06月25日

目录 1 引言 (3) 2 任务与要求 (3) 3 课程设计摘要及整体方框图 (3) 4 课程设计原理 (4) 555定时器 (5) 七位二进制计数器4024 (6) 二进制可逆计数器74LS193 (8) 数码显示电路 (9) 结论 (10) 体会与收获 (10) 附录: 1、整体电路原理图 (11) 2、元件表 (12) 3、焊接与调试 (12) 1引言

交通信号灯常用于交叉路口,用来控制车辆的流量,提高交叉路口车辆的通行能力,减少交通事故。本交通灯设计主要由秒脉冲发生器、计数器、译码显示电路组成。秒脉冲发生器由NE555产生脉冲,计数器由74LS193和4024实现,译码电路采用74LS48和七段数码管来显示。 2设计任务与要求 交通灯控制信号的应用非常广泛。本电路设计一个交通灯控制器,需要达到的目的如下; 一个周期64秒,平均分配,前32秒红灯亮,后32秒绿灯亮。 在红灯亮的期间的后8秒与红灯在一起的黄灯闪烁(注意:红灯同时亮)。为了显示效果明显,设计闪烁频率为1。 在绿灯亮的期间的后8秒与绿灯在一起的黄灯闪烁(注意:绿灯同时亮),为了显示效果明显,设计闪烁频率为1。 在黄灯闪烁期间,数码管同时倒计时显示,在此期间以外,数码管不亮。 3课程设计摘要及整体方框图 为了完成交通灯控制电路的设计,方案考虑如下: 一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮是由二进制加法计数器的输出端状态来决定的,因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二极管的控制信号,因此,需要一个组合逻辑电路,六个发光二极管(二个红色发光二极管,二个绿色发光二极管,二个黄色发光二极管)电路,一个数码管显示电路。结构图如下: 4 课程设计原理分析及相关知识概述

数电课程设计-温度计实验报告(提交版)

一、设计项目名称 温度采集显示系统硬件与软件设计 二、设计内容及要求 1,根据设计要求,完成对单路温度进行测量,并用数码管显示当前温度值系统硬件设计,并用电子CAD软件绘制出原理图,编辑、绘制出PCB印制版。 要求: (1)原理图中元件电气图形符号符合国家标准; (2)整体布局合理,注标规范、明确、美观,不产生歧义。 (3)列出完整的元件清单(标号、型号及大小、封装形式、数量) (4) 图纸幅面为A4。 (4)布局、布线规范合理,满足电磁兼容性要求。 (5)在元件面的丝印层上,给出标号、型号或大小。所有注释信息(包括标号、型号及说明性文字)要规范、明确,不产生歧义。 2.编写并调试驱动程序。 功能要求: (1)温度范围0-100℃。 (2)温度分辨率±1℃。 (3)选择合适的温度传感器。 3.撰写设计报告。 提示:可借助“单片机实验电路板”实现或验证软件、硬件系统的可靠性。 温度传感器 摘要:温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器 实现对温度的测试与控制得到更快的开发,随着时代的进步和发展,单 片机技术已经普及到我们生活,工作,科研,各个领域。一种数字式温 度计以数字温度传感器DS18B20作感温元件,它以单总线的连接方式, 使电路大大的简化。传统的温度检测大多以热敏电阻为传感器,这类传 感器可靠性差,测量温度准确率低且电路复杂。因此,本温度计摆脱了 传统的温度测量方法,利用单片机STC89C52对传感器进行控制。这样

易于智能化控制。 关键词:数字测温;温度传感器DS18B20;单片机STC89C52; 一.概述 传感器从功能上可分为雷达传感器、电阻式传感器、电阻应变式传感器、压阻式传感器、热电阻传感器、温度传感器、光敏传感器、湿度传感器、生物传感器、位移传感器、压力传感器、超声波测距离传感器等,本文所研究的是温度传感器。 温度传感器是最早开发,应用最广泛的一类传感器。温度传感器是利用物质各种物理性质随温度变化的规律把温度转换为电量的传感器。这些呈现规律性变化的物理性质主要有半导体。温度传感器是温度测量仪表的核心部分,品种繁多。 随着科学技术的发展,测温系统已经被广泛应用于社会生产、生活的各个领域,在工业、环境监测、医疗、家庭多方面均有应用。从而使得现代温度传感器的发展。微型化、集成化、数字化正成为发展的一个重要方向。 二.硬件设计 1.DS18B20 DS1820 单线数字温度计特性 ? 独特的单线接口仅需一个端口引脚进行通讯 ? 简单的多点分布应用 ? 无需外部器件 ? 可通过数据线供电 ? 零待机功耗 ? 测温范围-55~+125℃,以 0.5℃递增 ? 温度以 9 位数字量读出 ? 温度数字量转换时间 200ms (典型值) ? 用户可定义的非易失性温度报警设置 ? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 ? 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 DS1820温度传感器外观图(a )和引脚图(b ) ①引脚1接地 ②引脚2数字信号输入/输出 ③引脚3接高电平5V 高电平

数电实验报告1

实验一门电路逻辑功能及测试 一、实验目的 1、熟悉门电路逻辑功能。 2、熟悉数字电路学习机及示波器使用方法。 二、实验仪器及材料 1、双踪示波器 2、器件 74LS00 二输入端四与非门2片 74LS20 四输入端双与非门1片 74LS86 二输入端四异或门1片 74LS04 六反相器1片 三、预习要求 1、复习门电路工作原理相应逻辑表达示。 2、熟悉所有集成电路的引线位置及各引线用途。 3、了解双踪示波器使用方法。 四、实验内容 实验前按学习机使用说明先检查学习机是否正常,然后选择实验用的集成电路,按自己设计的实验接线图接好连线,特别注意Vcc及地线不能接错。线接好后经实验指导教师检查无误方可通电。试验中改动接线须先断开电源,接好线后在通电实验。 1、测试门电路逻辑功能。 (1)选用双输入与非门74LS20一只,插入面包板,按图 连接电路,输入端接S1~S4(电平开关输入插口),输 出端接电平显示发光二极管(D1~D8任意一个)。 (2)将电平开关按表1.1置位,分别测出电压及逻辑状态。(表1.1) 输入输出 1 2 3 4 Y 电压(V) H H H H 0 0.11 L H H H 1 4.23 L L H H 1 4.23 L L L H 1 4.23 L L L L 1 4.23

2、异或门逻辑功能测试 (1)选二输入四异或门电路74LS86,按图接线,输入端1﹑2﹑4﹑5接电平开关,输出端A ﹑B ﹑Y 接电平显示发光二极管。 (2)将电平开关按表1.2置位,将结果填入表中。 表 1.2 3、逻辑电路的逻辑关系 (1)选用四二输入与非门74LS00一只,插入面包板,实验电路自拟。将输入输出逻辑关系分别填入表1.3﹑表1.4。 输入 输出 A B Y Y 电压(V ) L L L L 0 0 0 0.16 H L L L 1 0 1 4.18 H H L L 0 0 0 0.17 H H H L 0 1 1 4.18 H H H H 0 0 0 0.17 L H L H 1 1 0.17 输入 输出 A B Y L L 0 L H 1 H L 1 H H 输入 输出 A B Y Z L L 0 0 L H 1 0 H L 1 0 H H 1

交通灯实验报告——数字电路

一、用中规模器件设计交通灯控制器 一、任务要求 1)通过数字电路的设计,在面包板上模拟交通红绿灯。要求分主干道和支干道,每条道上安装红(主R,支r)绿(主G,支g)黄(主Y,支y)三种颜色的灯,由四种状态自动循环构成(G、r→Y、r→R、g→R、y); 2)在交通灯处在不同的状态时,设计一计时器以倒计时方式显示计时,并要求不同状态历时分别为:G、r:30秒;R、g:20秒;Y、r,R、y:5秒。 二、总体方案 三、单元电路设计 1)主控电路 在设计要求中要实现四种状态的自动转换,首先要把这四种状态以数字的形态表示出来。因2*2=4,所以可以两位二进制数表示所需状态(00—G、r, 01—Y、r, 10—R、g, 11—R、y),循环状态:(00—10—11—01—00) 数字电路课程中介绍的计数器就是通过有限几个不同状态之间的循环实现不同模值计数,由此可以尝试设计一模值为4的计数器,其输出(代表不同状态)既可以循环转换,而且能够控制其他部分电路。在课程设计中本人利用74LS74(双上升沿D触发器)设计模4计数器作为主控部分电路。 主控电路图如下:

红绿灯显示电路接线如下: 4)计时部分电路 a)计时器状态产生模块: 设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。限于实验 室器材本人采用两个74LS161完成计时器状态产生模块设计。 设计思路: 要以十进制输出,而又有一些状态维持时间超过10秒,则必须用两个74LS161分别 产生个位和十位的数字信号。显然,计数器能够完成计时功能,我们可以用74LS161设计, 并把它的时钟cp接秒脉冲。74LS161计数器是采用加法计数,要想倒计时,则在74LS161 输出的信号必须经过非门处理后才能接入数码管的驱动74LS48,而在显示是最好以人们 习惯的数字0---9显示计时,故在设计不同模值计数器确定有效状态时,本人以0000,0001,0010-----1111这些状态中靠后的状态为有效状态。 例如:有效状态1011—1100—1101—1110—1111 取反0100—0011—0010—0001—0000即4------3------2-------1------0实现模5的倒计时。 在将74LS161改装成其他模值时既可以采用同步清零法,也可采用异步置数法,但 0000不可能为有效状态,所以采用异步置数法完成不同模值转化的实现。 首先对控制个位输出的74LS161设计: 按要求对系统的状态不同,即红绿灯的状态不同,个位的进制也就要求不同。本人利 用系统的状态量Q 2、Q 1 控制74LS161的置数端D 3 D 2 D 1 D 。当系统处在G、r或R、g状态时, 个位的进制是十(模10),即逢十进一,当系统处在Y、r或R、y状态时,个位的进制是 五(模5),即逢五进一,模10时,有效状态为0110-----1111,置D 3D 2 D 1 D 为0110,模5

模电实验报告

模拟电子电路课程设计报告书 题目名称:直流稳压电源 姓名:刘海东潘天德 班级:15电科2 学号:23 26 日期:2017.6.11

目录 绪论 (2) 一设计目的 (3) 二设计要求与指标 (3) 三理论分析 (4) 四器件选择及计算 (9) 五具体制作步骤 (12) 六测试方法 (13) 七问题及总结 (15) 八心得体会 (17) 绪论 直流稳压电源一般由电源变压器,整流滤波电路及稳压电路所组成。变压器把市电交流电压变为所需要的低压交流电。整流器把交流电变为直流电。经滤波后,稳压器再把不稳定的直流电压变为稳定的直流电压输出。本设计主要采用直流稳压构成集成稳压电路,通过变压,整流,滤波,稳压过程将220V交流电,变为稳定的+/- 5v直流电,并实现电压可在8-15V连续可调。电源在生活中是非常常见的一种电器,任何电子电路都离不开电源,就像我们下学期即将学到的单片机一样,需要5V的直流电源,没有电源就不能进行正常的工作,如果用干电池进行供电,则有供电功率低,持续供电能力差,成本高等缺点。而交流电在产生、电能输送等方面具有独特的优点,发电站、各市电网中的电能传输都是以交流电的形式进行输送,如果我们对市电提供的电压进行降压整流等,把交流电转换成直流电,以获得我们所

需要的电压。 一设计目的 1.学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2.学会直流稳压电源的设计方法和性能指标测试方法。 3.培养实践技能,提高分析和解决实际问题的能力。 二设计要求与指标 2.1设计要求 (1)分析电路组成及工作原理; (2)单元电路设计计算; (3)采用分立元件电路; (4)画出完整电路图; (5)调试方法; (6)小结与讨论。 2.2设计指标 (1)输出电压:8~15V可调 (2)输出电流:I O=1A (3)输入电压:交流 220V+/-10%

数字电子技术实验报告汇总

《数字电子技术》实验报告 实验序号:01 实验项目名称:门电路逻辑功能及测试 学号姓名专业、班级 实验地点物联网实验室指导教师时间2016.9.19 一、实验目的 1. 熟悉门电路的逻辑功能、逻辑表达式、逻辑符号、等效逻辑图。 2. 掌握数字电路实验箱及示波器的使用方法。 3、学会检测基本门电路的方法。 二、实验仪器及材料 1、仪器设备:双踪示波器、数字万用表、数字电路实验箱 2. 器件: 74LS00 二输入端四与非门2片 74LS20 四输入端双与非门1片 74LS86 二输入端四异或门1片 三、预习要求 1. 预习门电路相应的逻辑表达式。 2. 熟悉所用集成电路的引脚排列及用途。 四、实验内容及步骤 实验前按数字电路实验箱使用说明书先检查电源是否正常,然后选择实验用的集成块芯片插入实验箱中对应的IC座,按自己设计的实验接线图接好连线。注意集成块芯片不能插反。线接好后经实验指导教师检查无误方可通电实验。实验中

1.与非门电路逻辑功能的测试 (1)选用双四输入与非门74LS20一片,插入数字电路实验箱中对应的IC座,按图1.1接线、输入端1、2、4、5、分别接到K1~K4的逻辑开关输出插口,输出端接电平显 图 1.1 示发光二极管D1~D4任意一个。 (2)将逻辑开关按表1.1的状态,分别测输出电压及逻辑状态。 表1.1 输入输出 1(k1) 2(k2) 4(k3) 5(k4) Y 电压值(v) H H H H 0 0 L H H H 1 1 L L H H 1 1 L L L H 1 1 L L L L 1 1 2. 异或门逻辑功能的测试

图 1.2 (1)选二输入四异或门电路74LS86,按图1.2接线,输入端1、2、4、5接逻辑开关(K1~K4),输出端A、B、Y接电平显示发光二极管。 (2)将逻辑开关按表1.2的状态,将结果填入表中。 表1.2 输入输出 1(K1) 2(K2) 4(K35(K4) A B Y 电压(V) L H H H H L L L H H H H L L L H H L L L L L H H 1 1 1 1 1 1 1 1

数电实验报告

数电实验报告

《数字电子技术》 实验报告 姓名:*** 班级:****888

学号:2014*******8 指导老师:**** 编制时间:2016.06.10 北京联合大学 实验一基本集成逻辑门电路功能分析一、实验目的 1.理解TTL和CMOS普通门电路的参数含义。 2.掌握TTL和CMOS普通门电路的使用方法。 3.掌握分析普通门电路逻辑功能的一般方法。 4.理解TTL和CMOS普通门电路参数的一般分析方法。 二、实验元器件 双四输入与非门 74LS00×1片 六反相器 74LS04×1片 电阻 300Ω×1只 三、实验内容

(一) TTL 双四输入与非门74LS00功能分析 (1)逻辑功能分析 参考图1.1连接电路。一只74LS00芯片中含有四个相同的2输入与非门,可以随意选用,此处选用的是第一个门电路。检查电路无误时方可通电。 图1.1 与非门逻辑功能测试电路 变换单刀双掷开关J1和J2的状态,用直流电压表测试电路的输出电压,将测试结果记入表1.1中。 表1.1 输入 输出 U 1/V U 2/V 实测值 逻辑值 0 0 5 5 0 5 5 5 5 5 5 U1A 7400N J2Key = A J1 Key = B VCC 5V 0.000 V +-

5 5 0 0 (2)电压传输特性分析 依照图1.3编辑电路。在0~5V 间逐步调整输入的直流电压,将随之变化的输出电压记入表1.2中。 图1.3 分析与非门电压传输特性仿真电路 表1.2 U I /V U O /V U I /V U O /V U I /V U O /V U I /V U O /V 5.0 0 3.8 0 2.6 0 1.4 5 4.8 0 3.6 0 2.4 5 1.2 5 4.6 0 3.4 0 2.2 5 1.0 5 4.4 0 3.2 0 2.0 5 0.8 5 4.2 0 3.0 0 1.8 5 0.4 5 4.0 0 2.8 1.6 5 5 5.000 V +-VSS U1A 7400N V2 1.8 V

模电课程设计实验报告分析

模电课程设计实验报告 实验内容:一、设计并制作一个能输出+5V 电压的直流稳压电源,输入电压为直流9V。二、利用课程设计(一)制作的电源、电压比较器、电压跟随器设计,驱动三 极管,通过可调电阻,控制LED灯的点亮和熄灭。 实验要求:(1)设计出+5V 直流稳压电源的电路原理图; (2)在万用板上焊接组装给定的元器件并进行调试,输入电压没有极性之分, 输出电压+5V,并点亮电源指示灯(红色); (3)设计一款电压比较器A,参考电压2.5V; (4)设计一款电压跟随器B,跟随电压比较器A 的电压; (5)驱动三极管,通过可调电阻,实现对LED(绿色)灯的控制; (6)完成课程设计报告的撰写。 实验原理: 一、制作稳定电压源 采用二极管、集成运放、电阻、稳压管、电容、二极管、LED发光二极管等元件器件。 输入电压为9V 的直流电源经桥式整流电路和滤波电路形成稳定的直流电源,稳压部分采用 串联型稳压电路。比例运算电路的输入电压为稳定电压;同时,为了扩大输出大电流,集 成运放输出端加晶体管,并保持射极输出形式,就构成了具有放大环节的串联型稳压电路。整体功能结构如图 直流9V 1、单相桥式整流电路 直流5V 为了将电压转换为单一方向的电压,通过整流电路实现。查阅资料可知单相整流电路有单相桥式整流电路(全波整流电路)。桥式整流电路巧妙地利用了二极管的单向导电性,将四个二极管分为两组,根据变压器次级电压的极性分别导通,将变压器次级电压的正极性端与负载电阻的上端相连,负极性端与负载电阻的下端相连,使负载上始终可以得到一个单方向的脉动电压。单相桥式整流电路,具有输出电压高,变压器利用率高、脉动系数小等优点。所以在电路中采用单相桥式整流电路。 2、滤波电路 整流电路滤波电路稳压电路

数电实验实验报告

数字电路实验报告

实验一 组合逻辑电路分析 一.试验用集成电路引脚图 74LS00集成电路 74LS20集成电路 四2输入与非门 双4输入与非门 二.实验内容 1.实验一 2.实验二 密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开。否则,报警信号为“1”,则接通警铃。试分析密码锁的密码 X1 2.5 V A B C D 示灯:灯亮表示“1”,灯灭表示“0” ABCD 按逻辑开关,“1”表示高电平,“0”表示低电平

ABCD是什么?

ABCD 接逻辑电平开关。 最简表达式为:X1=AB’C’D 密码为: 1001 A B C D X1 X2 A B C D X1 X2 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 三.实验体会: 1.分析组合逻辑电路时,可以通过逻辑表达式,电路图和真值表之间的相互转换来到达实验所要求的目的。 2.这次试验比较简单,熟悉了一些简单的组合逻辑电路和芯片 ,和使用仿真软件来设计和构造逻辑电路来求解。 实验二 组合逻辑实验(一) 半加器和全加器 一.实验目的 1. 熟悉用门电路设计组合电路的原理和方法步骤 二.预习内容 1. 复习用门电路设计组合逻辑电路的原理和方法步骤。 2. 复习二进制数的运算。 3. 用“与非门”设计半加器的逻辑图。 4. 完成用“异或门”、“与或非”门、“与 非”门设计全加器的逻辑图。 5. 完成用“异或”门设计的3变量判奇 电路的原理图。 三.元 件参考 U1A 74LS00D U1B 74LS00D U1C 74LS00D U1D 74LS00D U2A 74LS00D U2B 74LS00D U2C 74LS00D U3A 74LS20D X1 2.5 V X2 2.5 V VCC 5V A B C D

交通灯控制逻辑电路设计实验报告

交通灯控制逻辑电路设 计实验报告 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

《数字设计》课程实验报告 实验名称:交通灯控制逻辑电路的设计与仿真实现学员:学号: 培养类型:年级: 专业:所属学院: 指导教员:职称: 实验室:实验日期: 交通灯控制逻辑电路的设计与仿真实现 一、实验目的: 1. 熟悉Multisim仿真软件的主要功能和使用。 2. 熟悉各种常用的MSI时序逻辑电路的功能和使用。 3. 运用逻辑设计知识,学会设计简单实用的数字系统。 二、实验任务及要求: 1.设计一个甲干道和乙干道交叉十字路口的交通灯控制逻辑电路。每个干道各一组指示灯(红、绿、黄)。要求:当甲干道绿灯亮16秒时,乙干道的红灯亮;接着甲干道的黄灯亮5秒,乙干道红灯依然亮;紧接着乙干道的绿灯亮16秒,这

时甲干道红灯亮;然后乙干道黄灯亮5秒,甲干道红灯依然亮;最后又是甲干道绿灯亮,乙干道变红灯,依照以上顺序循环,甲乙干道的绿红黄交通指示灯分别亮着。 2.要求: (1)分析交通灯状态变换,画出基于格雷码顺序的交通灯控制状态图。 (2)设计时序逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (3)设计组合逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (4)用74LS161计数器构造16秒定时和5秒定时的定时电路,画出连线图。在Multisim仿真平台上,选用74LS161芯片连线,测试验证,将电路调试正确。 (5)在Multisim仿真平台上形成整个系统完整的电路,统调测试结果。三、设计思路与基本原理: 依据功能要求,交通灯控制系统应主要有定时电路、时序逻辑电路及信号灯转换器组合逻辑电路组成,系统的结构框图如图1所示。其中定时电路控制时序逻辑电路状态的该表时间,时序逻辑电路根据定时电路的驱动信号而改变状态,进而通过组合逻辑电路控制交通灯系统正常运行。

数电课程设计

一、数字电子钟 1.设计目得 (1)培养数字电路得设计能力。 (2)掌握数字电子钟得设计、组装与调试方法。 2.设计内容及要求 (1)设计一个数字电子钟电路。要求: ①按24小时制直接显示“时”、“分”、“秒”。 ②当电路发生走时误差时具有校时功能。 ③具有整点报时功能,报时音响为4低1高,即在59分51秒、53秒、55秒、57秒输出500Hz信号,在59分59秒时输出1000 Hz信号,音响持续时间为1秒,最后一响结束时刻正好为整点。 (2)用中小规模集成电路组成电子钟,并在实验仪上进行组装、调试。 (3)画出各单元电路图、整机逻辑框图与逻辑电路图,写出设计、实验总结报告。 (4)选作部分:①闹钟系统。②日历系统。 3.数字电子钟基本原理及设计方法 数字电子钟得逻辑框图如图1411所示。它由振荡器、分频器、计数器、译码器、显示器、校时电路与整点报时电路组成。振荡器产生得脉冲信号经过分频器作为秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器显示时间。有得数字电子钟还加有定时响铃、日历显示等其它功能,需增加相应得辅助电路。 图1411 数字电子钟得基本逻辑框图 (1)振荡分频电路 振荡器就是数字电子钟内部用来产生时间标准“秒”信号得电路。构成振荡器得电路很多,图1412(a)就是RC环形多谐振荡器,其振荡周期T≈2、2RC。作为时钟,最主要得就是走时准确,这就要求振荡器得频率稳定。要得到频率稳定得信号,需要采用石英晶体振荡器。石英晶体振荡器电路如图1412(b)所示,这种电路得振荡频率只取决于石英晶体本身得固有频率。 图1412 振荡器

(a)RC环形多谐振荡器 (b)石英晶体多谐振荡器 由于石英晶体振荡器产生得频率很高,要得到秒信号,需采用分频电路。例如,振荡器输出4 MHz信号,先经过4分频变成1 MHz,再经过6次10分频计数器,便可得到1Hz得方波信号作为秒脉冲。 (2)计数器 把秒脉冲信号送入秒计数器个位得CP输入端,经过6级计数器,分别得到“秒”个位、十位,“分”个位、十位,以及“时”个位、十位得计时。“秒”、“分”计数器为60进制,“时”计数器为24进制。 24进制计数器如图1413所示。当“时”个位计数器输入端CP来到第10个触发脉冲时,该计数器归零,进位端Q D5向“时”十位计数器输出进位信号。当第24个“时”脉冲(来自“分”计数器输出得进位信号)到来时,十位计数器得状态为0010,个位计数器得状态位0100,此时“时”十位计数器得Q B6与“时”个位计数器得Q C5输出为1。两者相与后送到两计数器得清零端R0A与R0B,通过74LS90内部得R0A与R0B与非后清零,完成24进制计数。同理可构成60进制计数器。 CP 来自分计数器 的进位信号 图1413 24进制计数器 (3)译码显示电路 译码驱动器采用8421 BCD码七段译码驱动器74LS48,显示器采用共阴极数七段数码显示器,有关74LS48与七段显示器得使用方法前面已经作了介绍,这里不再赘述。 (4)校时电路 当数字电子钟出现走时误差时,需要对时间进行校准。实现校时电路得方法很多,如图1414所示电路即可作为时计数器或分计数器得校时电路。 图1414 校时电路 现设用该电路作为分计数器得校时电路,图中采用RS触发器作为无抖动开关。通过开关K得接入位置,可以选择就是将“1 Hz信号”还就是将“来自秒计数器得进位信号”送至分计数器得CP端。当开关K置于B端时,RS触发器得输出、,“来自秒计数器得进位信号”被送至分计数器得CP端,分计数器正常工作;需要校正分计数器时,将开关K置于A端,这时RS触发器得输出、,“1 Hz信号”被送至分计数器得CP端,分计数器在“1Hz信号”得作用下快速计数,直至正确得时间,再将开关K置于B端,达到了校准时间得目得。 (5)整点报时电路 电路得设计要求在差10 s为整点时开始每隔1 s鸣叫一次,每次持续时间为1 s,共鸣叫5次,前4次为低音500 Hz,最后一次为高音1 kHz。因为分计数器与秒计数器从59分51秒计数到59分59秒得过程中,只有秒个位计数器计数,分十位、分个位、秒十位计数器得状态不变,分别为Q D4Q C4Q B4Q A4=0101,Q D3Q C3Q B3Q A3=1001,Q D2Q C2Q B2Q A2=0101,所以Q C4=Q A4=Q D3=Q A3=Q C2=Q A2=1不变。设Y1=Q C4Q A4Q D3Q A3Q C2Q A2,又因为在51、53、55、57秒时Q A1=1,Q D1=0,输出500Hz信号f2;59秒时Q A1=1,Q D1=1,输出1kHz信号f1,由此可写出整点报时电路得逻辑表达式为:

模电课设实验报告

河北科技大学 课程设计报告 学生姓名:xxx学号:120701103 专业班级:xxx 课程名称:模拟电子技术基础 学年学期:2 013 —2 014 学年第一学期指导教师:王彦朋蔡明伟 2 0 1 3 年12 月

课程设计成绩评定表

目录 一任务.................................................................................................................. - 1 - 二电路原理图...................................................................................................... - 1 - 三单元电路设计.................................................................................................. - 1 - 1.稳压电源单元电路设计............................................................................... - 1 - 2.正弦波单元电路设计................................................................................... - 2 - 3.方波单元电路设计....................................................................................... - 3 - (1)过零比较器及限幅电路.................................................................. - 3 - (2)反相比例运算放大电路.................................................................. - 4 - 4.三角波单元电路设计................................................................................... - 5 - 四元件明细表...................................................................................................... - 6 - 五安装与调试...................................................................................................... - 7 - 六收获体会.......................................................................................................... - 7 - 七附录.................................................................................................................. - 8 - 八参考文献.......................................................................................................... - 8 -

相关主题
文本预览
相关文档 最新文档