首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 现代电子技术综合实验报告

    时间:2021-03-02 06:03:22 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:电子技术 实验 报告

    现代电子技术综合实验报告 本文关键词:电子技术,实验,报告,综合

    现代电子技术综合实验报告 本文简介:电子科技大学机械电子工程学院实验报告实验名称现代电子技术综合实验姓名:靳忠忠学号:2011084010006评分:教师签字电子科技大学教务处制电子科技大学实验报告学生姓名:靳忠忠学号:2011084010006指导教师:熊万安实验地点:科A333实验时间:2014年4月8号一、实验室名称:电子技术综

    现代电子技术综合实验报告 本文内容:

    电子科技大学机械电子工程学院

    实验名称

    现代电子技术综合实验

    姓名:靳忠忠

    学号:2011084010006

    评分:

    教师签字

    电子科技大学教务处制

    学生姓名:靳忠忠

    学号:

    2011084010006

    指导教师:熊万安

    实验地点:

    科A333

    实验时间:

    2014年4月8号

    一、

    实验室名称:

    电子技术综合实验室

    二、

    实验项目名称:电子技术综合设计实验

    三、

    实验学时:

    32

    四、

    实验目的与任务:

    1、

    熟悉系统设计与实现原理

    2、

    掌握KEIL

    C51的基本使用方法

    3、

    熟悉SMART

    SOPC实验箱的应用

    4、

    连接电路,编程调试,实现各部分的功能

    5、

    完成系统软件的编写与调试

    五、

    实验器材

    1、

    PC机一台

    2、

    SMART

    SOPC实验箱一套

    六、

    实验原理、步骤及内容

    1、在数码管的第一、二个显示设定温度,第三、六个数码管显示“-”号,第四、五个数码管显示当前环境温度,第七、八个数码管显示电机转速;设定温度初值为(当前环境温度-2)度,每隔3秒设定温度值加1,加到(当前环境温度+2)度后,隔3秒,设定温度值变回(当前环境温度-2)度,进入循环状态。

    2、根据设定温度和实际环境温度的温差驱动直流电机。设定温度等于环境温度,直流电机停转;设定温度和环境温度温差的绝对值越大,直流电机转速越快(最大转速在100以内)。

    3、增加一个按键,当其按下,数码管显示学号(后8位)再次按下,恢复温度和转速的显示,按键时,蜂鸣器响0.2秒。

    1、

    硬件设计

    请参照《Quick51跳线设置表》检查Quick51电路板上跳线JP1~JP7是否为默认设置;

    Quick51实验板J14的PB-LE用杜邦线连接到J9;

    Quick51实验板的P1端口用8芯排线连接到SmartSOPC实验箱B3区的COM6;

    Quick51的J11(PB端口)用8芯排线连接到SmartSOPC实验箱B3区的COM3;

    Quick51实验板J5的/INT0用杜邦线连接到SmartSOPC实验箱D4区的nCS;

    Quick51实验板J5的/INT1用杜邦线连接到SmartSOPC实验箱D4区的DAT;

    Quick51实验板J5的T0用杜邦线连接到SmartSOPC实验箱D4区的CLK;

    Quick51实验板P2.6用杜邦线连接到SmartSOPC实验箱B2区中的MotorA;

    Quick51实验板P2.0用杜邦线连接到SmartSOPC实验箱B2区中的KEY1;

    Quick51实验板P2.1用杜邦线连接到SmartSOPC实验箱B2区中的BEEP;

    SmartSOPC实验箱A6区跳线JP7用跳线帽短接。

    2、

    各部分硬件原理

    开始

    3、

    软件设计流程图

    显示秒表/电压/温度

    显示学号并响铃0.6s

    显示秒表/电压/温度并响铃0.6s

    七、

    总结及心得体会

    首先,进行综合实验之前要把它所包含的每个小部分都弄清楚,为综合实验打下基础。

    其次,要把综合实验分解,并安排好先实现什么再实现什么,事先规划好步骤,这样在进行综合实验的设计时才能有条不紊。

    最后,在进行实验编程调试时,不要先把所有程序写完再调试,而是没完成一项功能就进行一次调试,并在硬件上实现,这样方便我们及时的发现错误并纠正。

    综合实验不是很段时间就可以完成得,尤其是在考虑到自己对单片机掌握的基础的前提下,综合实验的完成必然不是一件容易的事情。所以,在一开始就做了相当的准备。计划好每一次都完成什么样的功能,同时,在每一次出现问题时,能够冷静的思考并检查,当实在难以解决的时候,请教会做的人也是一个明智的决定。但请教绝不等同于抄袭。例如,此次实验中,在如何及时的将按键的作用反映到显示上去的问题上,经同学点拨思路后,自行实现,虽然调试过程显得颇为繁琐,但如此一来,至少问心无愧。

    在实验中要有二“心”,耐心和细心。本次实验的顺利完成得益于同学的提醒及老师的点拨,足以见得,学习的过程绝对不会是单凭个人就可以的。

    八、

    对本实验过程及方法、手段的改进建议

    对于综合实验的小建议:综合实验的题不要仅仅局限于某一两个,多准备一些让同学自行选择。这样既可以降低同学间程序雷同的可能性,有可以为同学提供多种选择。

    九、

    附录

    #include

    “Disp.h“#include

    “I2C.h“#include

    //#include

    “VolTab.h“sbit

    BUZZER

    =

    P2^3;

    sbit

    CS

    =

    P3^2;

    sbit

    DAT

    =

    P3^3;

    sbit

    CLK

    =

    P3^4;

    sbit

    KEY1

    =

    P2^0;

    /*

    函数:ReadAdc()

    功能:读取A/D转换结果

    返回:8位ADC代码/

    unsigned

    char

    ReadAdc()

    {

    unsigned

    char

    d;

    unsigned

    char

    n;

    CS

    =

    0;

    n

    =

    5;

    while

    (

    --n

    !=

    0

    );

    n

    =

    8;

    do

    {

    d

    >=

    5;//去掉无关位

    return

    t;

    }

    /*

    函数:ByteToStr()

    功能:字节型变量c转换为十进制字符串/

    void

    ByteToStr(unsigned

    char

    idatas,unsigned

    char

    c)

    {

    code

    unsigned

    char

    Tab[]

    =

    {100,10};

    unsigned

    char

    i;

    unsigned

    char

    t;

    for

    (

    i=0;

    i<2;

    i++

    )

    {

    t

    =

    c

    /

    Tab[i];s++

    =

    0

    +

    t;

    c

    -=

    t

    Tab[i];

    }s++

    =

    0

    +

    c;s

    =

    /0

    ;

    }

    /*

    函数:DispTemp()

    功能:在数码管上显示出温度值

    参数:

    t:补码,除以8以后才是真正温度值/

    void

    DispTemp(int

    t)

    {

    unsigned

    char

    Tab[8]=“01345689“;

    unsigned

    char

    buf[4];

    unsigned

    char

    i;//整数部分

    unsigned

    char

    d;//小数部分

    //分离出符号

    //分离出整数和小数部分

    i

    =

    t

    /

    8;

    d

    =

    t

    %

    8;

    ByteToStr(buf,i);

    DispChar(0,buf[1]);

    DispChar(1,buf[2]);

    DispDotOn(1);

    DispChar(2,Tab[d]);

    }

    void

    Sng()

    {

    code

    unsigned

    char

    s[]

    =

    “0123456789“;

    unsigned

    char

    xs;

    unsigned

    char

    buf2[4];

    unsigned

    char

    v;//电压值

    unsigned

    char

    buf1[4];

    int

    t;

    SysInit();

    xs=0;

    for

    (;;)

    {

    t

    =

    LM75A_GetTemp();

    DispTemp(t);

    DispDotOn(3);

    v

    =

    ReadAdc();//读取ADC值

    ByteToStr(buf1,v);

    DispStr(5,buf1);

    DispDotOn(5);

    if

    (

    KEY1

    ==

    0

    )break;

    for(;;)

    {

    if(xs<100)

    {

    Delay(1500);

    ByteToStr(buf2,xs);

    DispChar(3,buf2[1]);

    DispChar(4,buf2[2]);

    xs++;

    }

    else

    {

    xs=0;

    }

    break;

    }

    }

    }

    void

    main()

    {

    unsigned

    char

    xh[]=“84010003“;

    int

    i;

    SysInit();

    Sng();

    for

    (;;)

    {

    for

    (;;)

    {

    if

    (

    KEY1

    ==

    0

    )

    break;

    }

    for(i=0;i<320;i++)

    {

    Delay(19);

    BUZZER

    =

    !BUZZER;

    }

    DispStr(0,xh);

    for

    (;;)

    {

    if

    (

    KEY1

    !=

    0)

    break;

    }

    for

    (;;)

    {

    if

    (

    KEY1

    ==

    0

    )

    break;

    }

    for

    (;;)

    {

    if

    (

    KEY1

    !=

    0)

    break;

    }

    for(i=0;i<370;i++)

    {

    Delay(17);

    BUZZER

    =

    !BUZZER;

    }

    Sng();

    }

    }

    篇2:西安交大数子电子技术实验报告

    西安交大数子电子技术实验报告 本文关键词:电子技术,西安交大,实验,报告

    西安交大数子电子技术实验报告 本文简介:西安交通大学数字电子技术实验报告姓名:高加西班级:电气12学号:2110401039ISE基础实验一、设计要求1)通过使用ISE软件和FPGA实现带有置位和清零端的边沿D触发器的逻辑图。2)练习verilog语法编写,掌握用HDL实现基本逻辑功能。二、HDL综合实验任务边沿D触发器的设计1.实验方法

    西安交大数子电子技术实验报告 本文内容:

    西安交通大学

    数字电子技术

    实验报告

    姓名:高加西

    班级:电气12

    学号:2110401039

    ISE基础实验

    一、

    设计要求

    1)

    通过使用ISE软件和FPGA实现带有置位和清零端的边沿D触发器的逻辑图。

    2)

    练习verilog语法编写,掌握用HDL实现基本逻辑功能。

    二、

    HDL综合实验任务

    边沿D触发器的设计

    1.

    实验方法和步骤

    (1)

    建立工程文件,输入HDL程序如下:

    module

    D_Flip_Flop(

    input

    clk,input

    set,input

    D,input

    clr,output

    reg

    q//注意:always模块中的输出必须是寄存器型变量

    );

    always

    @(posedge

    clk

    or

    posedge

    clr

    or

    posedge

    set)

    begin

    if(clr)

    q<=0;

    else

    if(set)

    q<=1;

    else

    q<=D;

    end

    endmodule

    (2)

    编写约束文件:

    NET

    “clk“LOC

    =“B8“;

    //时钟

    NET

    “D“LOC

    =“N3“;

    //SW7

    NET

    “set“LOC

    =“L3“;

    //SW1

    NET

    “clr“LOC

    =“P11“;

    //SW0

    NET

    “q“LOC

    =“G1“;

    //LD7

    (3)

    综合、实现及生成编程文件;仿真,设计下载:

    仿真测试文件如下:

    module

    test_D_Flip_Flop;

    //

    Inputs

    reg

    clk;

    reg

    set;

    reg

    D;

    reg

    clr;

    //

    Outputs

    wire

    q;

    //

    Instantiate

    the

    Unit

    Under

    Test

    (UUT)

    D_Flip_Flop

    uut

    (

    .clk(clk),.set(set),.D(D),.clr(clr),.q(q)

    );

    initial

    begin

    //

    Initialize

    Inputs

    clk=0;

    set=1;

    D=0;

    clr=0;

    //

    Wait

    100

    ns

    for

    global

    reset

    to

    finish

    #100;

    //

    Add

    stimulus

    here

    End

    always#10clk=~clk;

    always#12D=~D;

    always#33clk=~clk;

    always#42set=~set;

    endmodule

    仿真结果:

    三、分析与讨论

    由仿真结果可以看出该电路完成了想要实现的逻辑功能(即边沿D触发器),通过这次实验我大体了解了ISE软件和Verilog程序语言.

    组合逻辑电路实验

    一、

    实验目的及其设计要求

    1)学习使用ISE软件生成一个新工程文件

    2)学习使用HDL进行电路设计

    3)学会编辑顶层文件和用户约束文件

    4)熟悉仿真及综合及实现还有FPGA配置等

    5)

    熟悉在BASYS2开发板上的简单外围设备的控制

    6)使用HDL设计一个新的逻辑功能并验证,本实验设计的逻辑功能函数表达式为:。

    7)

    设计一个4选1多路选择器,并在开发板上验证。

    8)

    完成4位数码管动态显示设计,实现将8个SW输入的两位十六进制对应的8421BCD码,显示在数码管上。

    二、

    组合逻辑电路实验任务

    任务1:逻辑功能函数表达式设计

    实验方法和步骤

    (1)

    建立工程文件,输入HDL程序如下:

    (2)

    module

    gate2(

    (3)

    input

    a,(4)

    input

    b,(5)

    input

    c,(6)

    input

    d,(7)

    output

    z

    (8)

    );

    (9)

    assign

    z=~((a

    (10)

    endmodule

    (11)

    编写约束文件:

    NET

    “a“LOC=P11;

    NET

    “b“LOC=L3;

    NET

    “c“LOC=K3;

    NET

    “d“LOC=B4;

    NET

    “z“LOC=M5;

    (12)

    综合、实现及生成编程文件;仿真,设计下载:

    仿真测试文件如下:

    module

    gates2test;

    //

    Inputs

    reg

    a;

    reg

    b;

    reg

    c;

    reg

    d;

    //

    Outputs

    wire

    y;

    //

    Instantiate

    the

    Unit

    Under

    Test

    (UUT)

    gates4uut

    (

    .a(a),.b(b),.c(c),.d(d),.y(y)

    );

    initial

    begin

    //

    Initialize

    Inputs

    a

    =

    0;b

    =

    0;c

    =

    0;d

    =

    0;

    //

    Wait

    100

    ns

    for

    global

    reset

    to

    finish

    #100;

    //

    Add

    stimulus

    here

    #100;a<=0;b<=0;c<=0;d<=1;

    #200;a<=0;b<=0;c<=1;d<=0;

    #200;a<=0;b<=0;c<=1;d<=1;

    #200;a<=0;b<=1;c<=0;d<=0;

    #200;a<=0;b<=1;c<=0;d<=1;

    #200;a<=0;b<=1;c<=1;d<=0;

    #200;a<=0;b<=1;c<=1;d<=1;

    #200;a<=1;b<=0;c<=0;d<=0;

    #200;a<=1;b<=0;c<=0;d<=1;

    #200;a<=1;b<=0;c<=1;d<=0;

    #200;a<=1;b<=0;c<=1;d<=1;

    #200;a<=1;b<=1;c<=0;d<=0;

    #200;a<=1;b<=1;c<=0;d<=1;

    #200;a<=1;b<=1;c<=1;d<=0;

    #200;a<=1;b<=1;c<=1;d<=1;

    #200;

    end

    endmodule

    仿真结果:

    任务2:4选1多路选择器的设计与验证

    实验方法和步骤

    (1)建立工程文件,输入HDL程序如下:

    module

    MUX(

    input

    wire

    a,input

    wire

    b,input

    wire

    c,input

    wire

    d,input

    wire

    s1,input

    wire

    s2,output

    wire

    y

    );

    assign

    y=(a

    (2)

    编写约束文件:

    NET“s1“LOC=P11;

    NET“s2“LOC=L3;

    NET“a“LOC=K3;

    NET“b“LOC=B4;

    NET“c“LOC=G3;

    NET“d“LOC=F3;

    NET“y“LOC=M5;

    (3)综合、实现及生成编程文件;仿真,设计下载:

    仿真测试文件如下:

    #100

    a<=1;

    b<=0;

    c<=0;

    d<=0;

    s1<=0;

    s2<=0;

    #400

    a<=0;

    b<=1;

    c<=0;

    d<=0;

    s1<=0;

    s2<=1;

    #400

    a<=0;

    b<=0;

    c<=1;

    d<=0;

    s1<=1;

    s2<=0;

    #400

    a<=0;

    b<=0;

    c<=0;

    d<=1;

    s1<=1;

    s2<=1;

    end

    仿真结果:

    任务3:4位数码管动态显示设计

    实验方法和步骤

    建立工程文件,输入HDL程序如下:

    module

    x7seg(

    input

    wire[7:0]x,input

    wire

    clk,input

    wire

    clr,output

    reg[6:0]a_to_g,output

    reg[3:0]an

    );

    wire

    [1:0]s;

    reg

    [3:0]digit;

    reg[19:0]clkdiv;

    assign

    s=clkdiv[19:18];

    [email protected](*)

    case(s)

    0:digit=x[7:4];

    1:digit=x[3:0];

    2:digit=0;

    3:digit=0;

    default:digit=x[7:4];

    endcase

    [email protected](*)

    case(digit)

    0:a_to_g=7

    b0000001;

    1:a_to_g=7

    b1001111;

    2:a_to_g=7

    b0010010;

    3:a_to_g=7

    b0000110;

    4:a_to_g=7

    b1001100;

    5:a_to_g=7

    b0100100;

    6:a_to_g=7

    b0100000;

    7:a_to_g=7

    b0001111;

    8:a_to_g=7

    b0000000;

    9:a_to_g=7

    b0000100;

    hA:a_to_g=7

    b0001000;

    hB:a_to_g=7

    b1100000;

    hC:a_to_g=7

    b0110001;

    hD:a_to_g=7

    b1000010;

    hE:a_to_g=7

    b0110000;

    hF:a_to_g=7

    b0111000;

    default:a_to_g=7

    b0000001;

    endcase

    [email protected](*)

    begin

    an=4

    b1111;

    an[s]=0;

    end

    [email protected](posedge

    clk

    or

    posedge

    clr)

    begin

    if(clr==1)

    clkdiv<=0;

    else

    clkdiv<=clkdiv+1;

    end

    endmodule

    (2)

    编写约束文件:

    NET“a_to_g[0]“LOC=M12;

    NET“a_to_g[1]“LOC=L13;

    NET“a_to_g[2]“LOC=P12;

    NET“a_to_g[3]“LOC=N11;

    NET“a_to_g[4]“LOC=N14;

    NET“a_to_g[5]“LOC=H12;

    NET“a_to_g[6]“LOC=L14;

    NET“an[3]“LOC=K14;

    NET“an[2]“LOC=M13;

    NET“an[1]“LOC=J12;

    NET“an[0]“LOC=F12;

    NET“clk“LOC=B8;

    NET“clr“LOC=G12;

    NET“x[0]“LOC=P11;

    NET“x[1]“LOC=L3;

    NET“x[2]“LOC=K3;

    NET“x[3]“LOC=B4;

    NET“x[4]“LOC=G3;

    NET“x[5]“LOC=F3;

    NET“x[6]“LOC=E2;

    NET“x[7]“LOC=N3;

    (3)综合、实现及生成编程文件,设计下载。

    三、讨论与分析

    由任务一仿真结果可以看出该设计完成了想要实现的逻辑功能(即),仿真图中a=1、b=1、c=0、d=1时,

    y=1,与理论结果相同;

    由任务二仿真结果可以看出该设计完成了想要实现的逻辑功能(即4选1多路选择器),与理论结果相同。

    将任务三的程序下载到BASYS2板子上后,通过改变选择八个开关的0-1状态,我们发现每两个数码管将分别显示一位16进制数(按10进制显示),实现了4位数码管动态显示的功能。

    通过这次实验我对组合逻辑电路有了进一步的认识,并对verilog语言有了初步的了解,为下一步实验打好了基础。

    时序逻辑电路实验

    一、

    设计要求

    1)

    设计一个秒脉冲发生器,用LED指示秒脉冲的发放。(检查秒脉冲发生器的精度,能将1秒的脉冲周期改为2秒或3秒等)。

    2)

    试设计一个带有异步清零和同步置数信号的4位寄存器,并在开发板上验证。实验前编写好HDL源文件、用户约束文件和仿真文件,并给出仿真波形。

    二、

    时序逻辑电路实验任务

    任务1:秒脉冲发生器的设计

    实验方法和步骤

    (1)

    建立工程文件,输入HDL程序如下:

    module

    miaomaichong(

    input

    clk,clr,output

    reg[6:0]

    a_to_g,output

    wire[3:0]

    an,output

    reg[3:0]q

    );

    assign

    an=4

    b1110;

    reg

    [26:0]

    counter;

    always

    @(posedge

    clk)

    if(counter==25000000)

    counter

    <=

    0;

    else

    counter

    <=

    counter+1;

    reg

    clk_div;

    always

    @(posedge

    clk)

    if(counter==25000000)

    clk_div

    <=

    ~clk_div;

    [email protected](posedge

    clk_div

    or

    posedge

    clr)

    begin

    if(clr==1)

    q<=0;

    else

    if(q==9)

    q<=0;

    else

    q<=q+1;

    end

    [email protected](*)

    case(q)

    0:a_to_g=7

    b0000001;

    1:a_to_g=7

    b1001111;

    2:a_to_g=7

    b0010010;

    3:a_to_g=7

    b0000110;

    4:a_to_g=7

    b1001100;

    5:a_to_g=7

    b0100100;

    6:a_to_g=7

    b0100000;

    7:a_to_g=7

    b0001111;

    8:a_to_g=7

    b0000000;

    9:a_to_g=7

    b0000100;

    default:a_to_g=7

    b0000001;

    endcase

    endmodule

    (2)

    编写约束文件:

    NET“a_to_g[0]“LOC=M12;

    NET“a_to_g[1]“LOC=L13;

    NET“a_to_g[2]“LOC=P12;

    NET“a_to_g[3]“LOC=N11;

    NET“a_to_g[4]“LOC=N14;

    NET“a_to_g[5]“LOC=H12;

    NET“a_to_g[6]“LOC=L14;

    NET“an[0]“LOC=F12;

    NET“an[1]“LOC=J12;

    NET“an[2]“LOC=M13;

    NET“an[3]“LOC=K14;

    NET“clk“LOC=B8;

    NET“clr“LOC=P11;

    NET“q[3]“LOC=G1;

    //LED7

    NET“q[2]“LOC=P4;

    //LED6

    NET“q[1]“LOC=N4;

    //LED5

    NET“q[0]“LOC=N5;

    //LED4

    (3)

    综合、实现及生成编程文件,设计下载。

    任务2:带有异步清零和同步置数信号的4位寄存器设计

    实验方法和步骤

    (1)建立工程文件,输入HDL程序如下:

    module

    register(

    input

    load,inputclk,inputclr,input

    wire[3:0]d,outputreg[3:0]q

    );

    //定义足够大的计数器,使时钟脉冲的周期可分辨

    reg

    [27:0]q1;

    [email protected](posedgeclk

    or

    posedgeclr)

    begin

    if(clr==1)

    q1<=0;

    else

    q1<=q1+1;

    end

    assignmclk=q1[27];

    //实现异步清零,同步置数功能

    [email protected](posedgemclk

    or

    posedgeclr)

    if(clr==1)

    q<=0;

    else

    if(load==1)

    q<=d;

    endmodule

    (2)

    编写约束文件:

    Project→New

    Source→选Implantation

    Constraints

    File→输入文件名:register→点击Next按钮→点击Finish按钮→输入ucf文件如下:

    NET“clk“LOC=“B8“;

    NET“clr“LOC=“P11“;

    NET“load“LOC=“L3“;

    NET“d[0]“LOC=“K3“;

    NET“d[1]“LOC=“B4“;

    NET“d[2]“LOC=“G3“;

    NET“d[3]“LOC=“F3“;

    NET“q[0]“LOC=“M5“;

    NET“q[1]“LOC=“M11“;

    NET“q[2]“LOC=“P7“;

    NET“q[3]“LOC=“P6“;

    (3)

    综合、实现及生成编程文件;仿真,设计下载:

    仿真测试文件如下:

    moduleregistertest;

    //

    Inputs

    reg

    load;

    regclk;

    regclr;

    reg

    [3:0]

    d;

    //

    Outputs

    wire

    [3:0]

    q;

    //

    Instantiate

    the

    Unit

    Under

    Test

    (UUT)

    registeruut

    (

    .load(load),.clk(clk),.clr(clr),.d(d),.q(q)

    );

    initial

    begin

    //

    Initialize

    Inputs

    load

    =

    0;

    clk

    =

    0;

    clr

    =

    0;

    d

    =

    4

    b0101;

    //

    Wait

    100

    ns

    for

    global

    reset

    to

    finish

    #100;

    end

    always

    #24

    load=~load;

    always

    #10

    clk=~clk;

    always

    #42

    clr=~clr;

    endmodule

    仿真结果:

    寄存器清零信号有效时的仿真结果

    寄存器置数信号有效时的仿真结果

    三、讨论与分析

    将任务一的程序下载到BASYS2板子上后,可实现秒脉冲发生器的功能。

    由任务二的仿真结果可以看出,当清零信号有效时(clr=1),无论输入数据为何值(此时为0101),寄存器的数据都被清零(即q=0000);当置数信号有效且清零信号无效时(load=1且clr=0),输入数据(此时为0101)被寄存到寄存器中(即q=0101);

    通过这次实验我学习使用HDL进行时序电路设计,并且学习编辑顶层文件和用户约束文件,并且熟悉了同步与异步的概念及实现方法,熟悉在Basys2开发板简单外围设备的控制,了解了时钟的分频方法及占空比的调节。

    HDL综合实验

    一、

    设计要求

    数字钟:设置一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒闪烁一次。如有可能,请增加校时功能。

    二、

    HDL综合实验任务

    数字钟的设计

    实验方法和步骤

    (1)

    建立工程文件,输入HDL程序如下:

    moduleclocktjjs(

    inputclk,inputclr,input

    [1:0]FLAG,input

    [5:0]Stime,inputSetH,inputSetM,outputSflash,outputreg[6:0]a_to_g,outputreg[3:0]an

    );

    reg

    [3:0]cent60L;

    reg

    [3:0]cent60H;

    reg

    [3:0]cent24L;

    reg

    [3:0]cent24H;

    reg

    [3:0]LED1,LED2,LED3,LED4;

    reg

    [1:0]s;

    reg

    [3:0]digit;

    reg

    [16:0]clkdiv;

    reg

    [26:0]q1;

    reg

    sec;

    integerss;

    integeri;

    initial

    begin

    cent60L=9;

    cent60H=5;

    cent24L=3;

    cent24H=2;

    ss=0;

    LED4=cent60L;

    LED3=cent60H;

    LED2=cent24L;

    LED1=cent24H;

    end

    [email protected](*)

    begin

    an=4

    b1111;

    s<=clkdiv[16:15];

    an[s]=0;

    case(s)

    0:digit<=LED1;

    1:digit<=LED2;

    2:digit<=LED3;

    3:digit<=LED4;

    default:digit<=LED4;

    endcase

    case(digit)

    0:a_to_g=7

    b0000001;

    1:a_to_g=7

    b1001111;

    2:a_to_g=7

    b0010010;

    3:a_to_g=7

    b0000110;

    4:a_to_g=7

    b1001100;

    5:a_to_g=7

    b0100100;

    6:a_to_g=7

    b0100000;

    7:a_to_g=7

    b0001111;

    8:a_to_g=7

    b0000000;

    9:a_to_g=7

    b0001100;

    hA:a_to_g=7

    b0001000;

    hB:a_to_g=7

    b1100000;

    hC:a_to_g=7

    b0110001;

    hD:a_to_g=7

    b1000010;

    hE:a_to_g=7

    b0110000;

    hF:a_to_g=7

    b0111000;

    default:a_to_g=7

    b0000001;

    endcase

    end

    [email protected](posedgeclk)

    begin

    clkdiv<=clkdiv+1;

    end

    //时钟程序,计时加校时

    [email protected](posedgeclk

    or

    posedgeclr)

    begin

    if(clr==1)

    begin

    q1<=0;

    LED1=0;

    LED2=0;

    LED3=0;

    LED4=0;

    cent60L<=0;

    cent60H<=0;

    cent24L<=0;

    cent24H<=0;

    ss<=0;

    end

    else

    if(FLAG==2

    b10)//调分状态

    begin

    if(SetM)

    begin

    if(Stime<=59)

    begin

    for(i=0;i<6;i=i+1)

    begin

    if(Stime[5:0]-i*10<10)

    begin

    cent60L<=Stime[5:0]-i*10;

    cent60H<=i;

    i=6;

    end

    end

    end

    else

    begin

    cent60H<=0;

    cent60L<=0;

    end

    ss<=0;

    LED4[3:0]=cent60L[3:0];

    LED3[3:0]=cent60H[3:0];

    end

    end

    else

    if(FLAG==2

    b11)//调时状态

    begin

    if(SetH)

    begin

    if(Stime<=23)

    begin

    for(i=0;i<=3;i=i+1)

    begin

    if(Stime[5:0]-i*10<10)

    begin

    cent24L<=Stime[5:0]-i*10;

    cent24H<=i;

    i=6;

    end

    end

    end

    else

    begin

    cent24L<=0;

    cent24H<=0;

    end

    ss<=0;

    LED2[3:0]=cent24L[3:0];

    LED1[3:0]=cent24H[3:0];

    end

    end

    else

    if(FLAG==2

    b00)

    begin

    if(q1==50000000)

    begin

    q1<=0;

    sec=~sec;

    LED4[3:0]=cent60L[3:0];

    LED3[3:0]=cent60H[3:0];

    LED2[3:0]=cent24L[3:0];

    LED1[3:0]=cent24H[3:0];

    ss<=ss+1;

    if(ss==59)

    begin

    ss<=0;

    cent60L<=cent60L+1;

    if(cent60L==9)

    begin

    cent60L<=0;

    cent60H<=cent60H+1;

    end

    if(cent60H==5

    cent60H<=0;

    cent24L<=cent24L+1;

    if(cent24L==9)

    begin

    cent24L<=0;

    cent24H<=cent24H+1;

    end

    if(cent24H==2

    cent24H<=0;

    end

    end

    end

    end

    else

    q1<=q1+1;

    end

    end

    assignSflash=sec;

    endmodule

    (2)

    编写约束文件:

    NET“a_to_g[6]“LOC=L14;

    NET“a_to_g[5]“LOC=H12;

    NET“a_to_g[4]“LOC=N14;

    NET“a_to_g[3]“LOC=N11;

    NET“a_to_g[2]“LOC=P12;

    NET“a_to_g[1]“LOC=L13;

    NET“a_to_g[0]“LOC=M12;

    NET“an[3]“LOC=F12;

    NET“an[2]“LOC=J12;

    NET“an[1]“LOC=M13;

    NET“an[0]“LOC=K14;

    NET“clk“LOC=“B8“;

    NET“clr“LOC=“G12“;

    NET“Sflash“LOC=“M5“;

    NET“FLAG[0]“LOC=“P11“;

    NET“FLAG[1]“LOC=“L3“;

    NET“Stime[5]“LOC=“N3“;

    NET“Stime[4]“LOC=“E2“;

    NET“Stime[3]“LOC=“F3“;

    NET“Stime[2]“LOC=“G3“;

    NET“Stime[1]“LOC=“B4“;

    NET“Stime[0]“LOC=“K3“;

    NET“SetH“LOC=“M4“;

    NET“SetM“LOC=“C11“;

    (3)

    综合、实现及生成编程文件,设计下载。

    三、分析与讨论

    将程序下载到BASYS2板子上后,能够实现简易数字钟的功能,可以看到LED灯1s闪一下,4个数码管实现了数字钟小时和分钟的显示,而且通过开关控制可以将六位二进制数赋值给小时或分钟位,实现校表的功能。

    在这次实验中,我熟悉了Verilog语言中的模块化设计方法,对于设计一个简单的数字系统有了初步的了解。通过这次试验,我认识到一个数字系统是很复杂的,为未来更深层次的学习打好了良好的基础。

    结语:数字电子技术是一门以实验为基础的科学,数字概念、数字规律是人们对客观事实、客观现象的概括总结,是理性认识。数字电子技术实验是数字电子技术知识结构的基础,不仅可以有效地帮助我们建立概念,掌握规律,突破难点,而且对引导我们发展特长、拓展思维、培养创新能力有着独特的作用。我认为:第一,运用数字电子技术开放实验可以激发我们的学习数字电子技术的兴趣,使我们更自觉、更愉快地学习数字电子技术知识;第二,运用数字电子技术开放实验培养我们的创新能力,如观察能力、思维能力、实际操作能力等;第三,运用数字电子技术开放实验培养我们求实进取、刻苦创新、合作奉献的科学精神和细致周到,实事求是、服从真理的科学态度;第四,运用数字电子技术开放实验培养我们深入钻研,勇于思考,勇于探索,勇于创新的良好品质,能以科学家为榜样,面对困难力排干扰,持之以恒,脚踏实地,以顽强的意志争取成功。

    数字电子技术开放实验为我们提供了一个可以在知识的天空里自由翱翔的空间;提供了一个可以在知识的海洋里扬帆远行的空间。他为我们的学习生活增添了一道亮丽的风景线,为我们的理想之塔增砖添瓦,为我们的知识小帆鼓风助力。我们必将坐着智慧小船乘千里风破万里浪,开拓进取,勇往直前,朝着我们的理想彼岸前进。在此感谢辛辛苦苦培养我们的宋竞梅老师和金印斌老师,你们让学生受益匪浅,谢谢您。

    37

    篇3:《电子技术基础》教学工作总结

    《电子技术基础》教学工作总结 本文关键词:工作总结,电子技术,基础,教学

    《电子技术基础》教学工作总结 本文简介:《电子技术基础》教学工作总结(2015-2016学年第二学期)任教学科:电子技术基础任教班级:15级太阳能(2)、(3)、(4)班任课教师:本学期担任15级太阳能(2)、(3)、(4)班的《电子技术基础》的教学工作,《电子技术基础》是电子专业一门非常重要的专业基础课程,内容多,且抽象,学生学习起来有

    《电子技术基础》教学工作总结 本文内容:

    《电子技术基础》教学工作总结

    (2015-2016学年第二学期)

    任教学科:

    电子技术基础

    任教班级:15级太阳能(2)、(3)、(4)班

    任课教师:

    本学期担任15级太阳能(2)、(3)、(4)班的《电子技术基础》的教学工作,《电子技术基础》是电子专业一门非常重要的专业基础课程,内容多,且抽象,学生学习起来有些难度,教学中我采取了一些措施,收到了良好的效果。

    1、教学情况

    (1)备课:俗话说:不打无准备之仗!开学初,积极参加教研室组织的教研活动,根据要求,提前一周备好课,写好教案。在备课上多下功夫,为了上好一节课,能让学生能更直观地感受所学的知识内容,我多方查找资料,集中别人的优点确定自己的教学思路,为的就是能够做到每节课都“有备而来”,针对学生的具体特点备课,讲课。

    (2)采用实物与理论、元件性能与实际应用相结合的手段讲授理论内容。

    (3)采用启发式,讨论式的教学方法去理解抽象的概念。

    (4)除定时辅导答疑外,课前早到随时答疑。

    (5)及时批改作业,发现问题及时解决。

    (6)及时与学生沟通,听取学生意见,改进教学方法。

    2、学生学习情况

    (1)太阳能班学生学风好,学习兴趣浓,积极性高,思想活跃,喜欢提问,抓住活跃的课堂气氛进行师生互动对于教学工作有事半功倍的效果。

    (2)个别同学学习态度不端正、不用功,没有及时将所学内容消化,甚至出现思想脱节的情况,针对这些同学,我每节内容结束后单独讲解辅导,引导学生跟上节奏。

    (3)作业情况:学生作业能够按时完成,通过作业反映出学生对于课堂内容大部分能够理解,扔有部分知识掌握模糊。

    3、教学方法及分析

    (1)掌握一些思考的方法,对待问题比较严谨。解决一个问题,应该选用正确的方法,否则将会很难甚至无法解决一个问题。例如,在求不同组态负反馈的电压放大倍数时,不同组态有不同的方法,方法上必须要对应。对于同一问题的不同解法,尤其要注意方法的适用范围,在合适的范围内使用方法。例如,在用微变等效电路求解有关基本放大电路时,只有输入信号是低频小信号时才成立,否则会造成很大的误差甚至是错误。在分析一些比较复杂的问题时,要学会站在更高的层次看待问题,要学会模块化地分析问题而不局限于其中的每个元件。例如,在运算放大电路分析中,在掌握基本模块如反相比例运放、同相比例运放等的前提下,对一些较为复杂的电路,可利用叠加原理看成是这些基本模块的叠加,从而简化问题的分析。

    (2)对一些工程思想有了初步的认识。俗话说:人无完人。当然作为每个具体的电路,在具有优点的同时肯定具有缺点的。我们分析问题的时候,不能一味地钻牛角尖,幻想找到一个能够十全十美解决问题的方法。很多时候,我们可以根据实际的要求,作一些合理的近似。先主要考虑最主要因素的影响,而忽略一些次要因素的影响,然后再在主要因素主导的方向下,结合实际的要求考虑其他次要因素。这样做往往能很大程度上简化问题,但又不会产生很大的误差。最后,自己更加深刻体会到了守时的重要性。

    4、个人努力及方向

    加强自身基本功的训练,课堂上做到精讲精练,注重对学生能力的培养,知识上做到课课清。对差生多些关心,多点爱心,多一些耐心,使他们在各方面有更大进步。利用各种方法,训练学生提高、集中注意力。在教学上下功夫,努力使学生的成绩在原有的基础上有更大的进步。虚心请教其他老师,在教学上,有疑必问。在各个章节的学习上都积极征求其他老师的意见,学习他们的方法,同时,多听老师的课,做到边听边讲,学习别人的优点,克服自己的不足,并常常邀请其他老师来听课,征求他们的意见,改进工作。我是一个对集体充满了热情的人,勤勤恳恳、脚踏实地是我的工作作风,助人为乐是我的快乐之本,只要是对学校对大家有好处的事情我都会不计较个人得失,把它完成好。我用我的心去教诲我的学生,我用我的情去培育我的学生,我无愧于我心,我无悔于我的事业。让我把一生矢志教育的心愿化为热爱学生的一团火,将自己最珍贵的爱奉献给孩子们,相信今日含苞欲放的花蕾,明日一定能盛开绚丽的花朵。

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识