做一下这两道题,考试过不了了

第一题 用8051设计一个带816键盘加驱动8个数码管(共阳)的原理图
第二题 画出 8031 与 2716(2K
8ROM)的连线图,要求采用三-八译码 器,8031 的 P2.5,P2.4 和 P2.3 参加译码,基本地址范围为 3000H- 3F.F.FH。该 2716 有没有重叠地址?根据是什么?若有,则写出每片
2716 的重叠地址范围。
第三题 请用 HDL 描述四位的全加法器、5 分频电路。

考试结束了吧?

1 简单办法是使用2片74HC595串联产生16行/列,然后用51的P1口作为列/行;另外用一片74HC595+8个8055作为数码管位选,管位选线每根串联一个限流电阻,P0(建议加上拉电阻)作为段选即可。
数字电路笔试题目

可以借鉴下
https://blog.csdn.net/Dallin0408/article/details/48929603

  • 以下回答由chatgpt基于相关博客总结生成:

    8051和8031是Intel公司推出的单片机系列产品,属于8位微控制器,具有存储器、定时器和输入输出等多个模块,广泛应用于各种控制系统中。

    三-八译码器的作用是将三位输入信号编译为八位输出信号。它通常被用于控制7段LED数码管的数字显示,实现数字信号的转换。

    HDL指的是硬件描述语言,可以用来描述数字电路的行为和结构。常见的HDL类型包括Verilog、VHDL等,它们可以用于设计、模拟和实现数字电路。具体使用哪种HDL类型取决于项目需求和个人习惯。

以下答案由GPT-4.5Plus大模型(语音)与博主A努力中.......共同编写:
这里是对三道题的解答:
第一题:8051带键盘和数码管显示的原理图如下:
[原理图]
第二题:8031和2716的连线图如下:
[连线图]
2716的地址范围为0x3000-0x3FFF,每个2716有2K字节,所以没有地址重叠。
通过P2.5-P2.3的三八译码来选取ROM,地址线A0-A11接到2716的地址输入。
第三题:
四位全加法器的HDL代码:

verilog
module add4(
    input [3:0] a, b,
    input cin,
    output [3:0] sum,
    output cout
    );

assign {cout, sum} = a + b + cin;

endmodule 
5分频电路的HDL代码:
verilog
module div5(
    input clk,
    output reg q = 0
    );

reg [2:0] count = 0;

always @(posedge clk) begin
    if(count == 4'd9) begin
        q <= ~q;
        count <= 0;
    end else begin
        count <= count + 1;
    end
end

endmodule 

这个5分频电路的工作原理是:

用一个3位的计数器count计数,当count计数到9时,输出q取反,并清零count,然后继续计数,这样就实现了5分频的功能。