变模计数器

变模计数器
变模计数器

《数字电子技术基础》大作业

专业班级

学号

学生姓名

学院自动化学院

任课教师华剑

2016 年 6 月10 日

1.实验目的:

设计一个变模计数器,要求:

1、当x=0时,实现7进制加计数器;

2、当x=1时,实现5进制加计数器。

2.实验器材:

74LS160一片;一个三输入与非门,一个二输入或门;仿真软件。

3.设计思路:

5、7进制一般应用清零或者置零实现,通过比较这里我选用异步清零法,74LS160芯片。

X为控制信号,X为低电位(0)时,为5进制;X为高电平(1)时,为7进制。

5进制(000→001→010→011→100→000)反馈信号如图1;

7进制(000→001→010→011→100→101→110→000)反馈信号如图2:

图1 图2

从图中不难发现5(101)进制与7(111)进制的反馈差别在于是否有QB.因此我们就可以设计一个逻辑电路当X=0反馈信号中有QB;X=1反馈信号中没有QB。列出真值表:

即F=X+QB;

L=QC*QA*F=QC*QA*(X+QB)(L为反馈信号)。

4.电路仿真

74LS160引脚图和真值表:

仿真原理图如下(开关接上为高,接下为低):

经过仿真检验,实验原理图正确且能实现功能,仿真截屏如下:

5.参考资料:

清华大学出版社---------------------------------------------《数字电子技术基础》

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

构造一个模为10的同步计数器

5-1(1) 构造一个模为10的同步计数器,需要多少个触发器? (2) 下列中规模通用集成电路中,哪些属于时序逻辑电路:(a)4位计数器;(b)4位并行加法器;(c)4位寄存器;(d )4位数据选择器。 5-2(1) 同步时序逻辑电路中的存储元件可以是任意类型的触发器吗? (2) 下列触发器中,哪些可作为同步时序逻辑电路的记忆元件:(a)D-FF;(b)JK-FF;(c)T-FF;(d)基本RS-FF。 5-3 一个同步时序逻辑电路可以由哪三组函数表达式描述? 5-4 某时序逻辑电路如题图所示,设电路现态0012=Q Q ,经过三个时钟脉冲作 用后,电路的状态如何? 题5-5图 题5-4图 5-5 分析题图所示逻辑电路,说明该电路的逻辑功能。 5-6 分析题图所示逻辑电路,说明电路功能,并评价该设计的合理性。 5-7 分析题图所示异步时序逻辑电路。要求: (1)作出状态表和时序图;(2)说明电路的逻辑功能。 题5-7图 题5-6图 5-8 如题图所示电路为D 触发器构成的计 数器,试说明其功能;并画出在CP 脉冲作用下的输出波形。

5-9 试列出如题图所示计数器的状态表,从而说明它是一个几进制计数器? 题5-8图 题5-9图 题5-10图 题5-11图 5-10 如题图所示逻辑图为用两个中规模集成同步十进制加法计数器构成的一个六十进制计数器。试分析其工作原理。 5-11 在题图所示电路中,x 为控制端,、为输出端,CP 为一连续脉冲。 (1)画出状态转换图;(2)说明电路的功能。 1Q 2Q 5-12 一时序电路如题图所示。假设触发器的初始状态000123=Q Q Q 。(1)画出状态转换图和时序图;(2)说明电路的逻辑功能。 5-13 已知某同步时序逻辑电路 的激励函数和输出函数表达式为 题5-12图 121221Q Q X Q Q Q X D ++= 1222Q XQ Q X D += 2Q Z = 其中x 为外部输入,Z 为外部输出, 、为状态变量,、为D 触发器的输入。试求出改用JK 触发器作为存储元件的最简电路。 1Q 2Q 1D 2D 5-14 用T 触发器作为存储元件,设计一个模6计数器,该计数器的状态转移关系如下:

模可变计数器设计(Verilog语言)概览

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和QuartusⅡ软件的使用; 2、进一步熟悉和掌握EDA设计流程; 3、学习简单组合、时序电路的EDA设计; 4、学习计数器中二进制码到BCD码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的 数,没按下时模为100-199之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三)主要仪器设备 3、微机1台 4、QuartusII集成开发软件1套 5、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个模20和模119的计数器 2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model;

reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8段译码值 default: SG=8'b11111111; endcase end always @(m) if (m) model=12'b000000100000; //模值20 else model=12'b000100011001; //模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (q

Java科学计算器程序代码

计算器布局显示: 功能举例: ①13+20=33 ②-7*14=-98:先输入7,再单击-/+将其变成负数,然后依次单击×号、14与= ③7!=5040 ④sin30°=0.5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果 ⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果 ⑥2*π=6.2832 …… 源程序如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField;

实验二 模可变计数器(DOC)

南昌大学实验报告 学生姓名:学号:专业班级:中兴101班 实验类型:□验证□综合■设计□创新实验日期:2012、10、18成绩: 实验二模可变计数器的设计 一、实验目的 1.学习计数器的VHDL设计、波形仿真和硬件测试; 2.学会自己设计程序; 3.学会设计模可变计数器; 4.学习多层次设计方法。 二、实验内容与要求 1.计设置一位控制模的位M,要求M=0:模23计数;当M=1:模109计数。 2.计数结果用静态数码管显示,一个四位二进制表示0~9中的一个数; 3.给出此项设计的仿真波形; 4.应用实验装置验证此计数器的功能。 三、实验思路 1.按照实验要求,本实验可分为四个模块进程: 分频、模23与109计数转换、数码管控制、七段译码。 2.模可变计数器原理: 即在原有的模值计数器上加入模值转换功能 3.计数器的数码管显示 需注意十位和百位的进位即:当个位数的数值为9的下一个脉冲来时转换为,同时向十位进一,转换的算法为: 9(1001)+7(0111)=0(0000),并进一位; 当数值为99时,用同样的方法转换: 153(1001 1001B,数码管显示99)+103(01100111B)=100(0001 0000 0000); 4.要求分别实现模23和模109的计数,因此我分别用buffer变量GW、SW 、 BW 代表个位、十位、百位。还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位计数;当M为1时实现模109计数,用GW 、SW、 BW 分别为个位十位和百位计数。由于端口不能参与运算,因些在结构体中定义了se10、 sel1、 sel2三个buffer变量,分别用来对应SEL(0)、 SEL(1)、SEL(2);在程序的最后用端口接收信号。 5.进程敏感信号为RST EN M 三个,当RST为低电平,EN为高电平时则计数,否则不计数。 6.位选信号的设置: 用整形变量CNT8分别使不同的位选信号对应不同的输入,而得到不同输出。 对应关系: 表一位选信号

模可变计数器设计Verilog语言

模可变计数器设计 V e r i l o g语言 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和QuartusⅡ软件的使用; 2、进一步熟悉和掌握EDA设计流程; 3、学习简单组合、时序电路的EDA设计; 4、学习计数器中二进制码到BCD码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定) 的数,没按下时模为100-199之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三)主要仪器设备 3、微机1台 4、QuartusII集成开发软件 1套 5、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个模20和模119的计数器

2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model; reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8段译码值 endcase end always @(m) if (m) model=12'b000000100000; //模值20 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8];

科学计算器代码

Calculate.java /*这是一个计算类,用于普通运算中的各种运算,如2,8,10,16进制的符合运算,复合运算其原理用后缀表达式来实现*/ import java.util.*; import https://www.360docs.net/doc/5f14403445.html,ng.Math; class Calculate {//两个内部类来实现数据的存储,如同数据结构中的栈 class operator { char data[]; int top; operator() { data = new char [50]; top = -1; } }; class operator1 { double data[]; int top; operator1() { data = new double [20]; top = -1; } }; public static double jiecheng(double number)//阶乘运算 { int number1 = (int)number; double j=1; for(int i=1;i<=number1;i++) j=j*i; return j; } String trans (char exp[],char postexp[])//后缀表达式的翻译函数 { int i=0,j=0;boolean m=true;//m用来监视表达式是不有非法的运算符连着输入 operator op = new operator(); while(exp[j]!='\0') { switch (exp[j]) { case '(': op.top++; op.data[op.top]=exp[j];

基于matlab的计算器编程附代码

1.需求分析 本次的实验要求是设计一个计算器,主要功能如下: (1)实现基本数学运算(加减乘除等),而且要能进行混合运算 (2)实现部分函数功能,如求平方根、求倒数等 (3)能实现小数运算 界面与标准计算器界面类似 根据要求以及以前的学习情况,决定使用matlab进行编程。Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:(1+3)*5 Sqrt(4) 1/2 Sin4 用以检验是否可以进行加减乘除四则运算、平方根、倒数、正弦的运算。 2.程序设计 M atlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。 3.调式分析 编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。 4.使用说明 程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI 工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的

方法,按键使用即可。 5.测试结果 计算结果为20 4sqrt=2 Sin4结果为 1/2=0.5 经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。 6.心得体会 本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,

采用VHDL语言实现多功能可变模计数器设计并进行仿真验证

采用VHDL语言实现多功能可变模计数器设计并进行仿真验证引言 随着电子技术、计算机技术和EDA技术的不断发展,利用FPGA/CPLD进行数字系统的开发已被广泛应用于通信、航天、医疗电子、工业控制等领域。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发周期短,投资少,便于追踪市场变化及时修改产品设计,以及开发工具智能化等特点。近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新,使FPGA/CPLD成为当今硬件设计的重要途径。在FPGA/CPLD的应用设计开发中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,并在语言易读性和层次化、结构化设计方面。表现出了强大的生命力和应用潜力。 QuartusⅡ是Altera公司在21世纪初推出的FPGA/CPLD集成开发环境,是Altera公司前一代FPGA/CPLD集成开发环境Max+PlusⅡ的更新换代产品,其界面友好,使用便捷,功能强大,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 计数器是数字系统中使用最多的时序电路之一,不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。可变模计数器由于计数容量可以根据需要进行变化,为其广泛使用创造了便利。这里在QuartusⅡ开发环境下,用VHDL 语言设计了一种具有清零、置数、使能控制、可逆计数和可变模功能的计数器。 1 基本可变模计数器设计 可变模计数器是指计数/模值可根据需要进行变化的计数器。电路符号图1所示,clk为时钟脉冲输入端,clr为清零端,m为模值输入端,q为计数输出端。 基本可变模计数器的VHDL代码如下所示:

变模计数器

数字电路课程设计报告 ——变模计数器 课程设计任务书 一﹑题目:16进制计数器, 计数器的计数模值可变,计数模M从2~16变化,用多路开关控制M的选择。 原始条件:该系统由计数模值设置开关电路、变模控制模块、16进制计数器、显示驱动电路构成。 二、要求完成设计的主要任务如下:(变模计数器输出状态表如表2-1所示。 电路设计框图如图2-1所示。)

图2-1变模计数器设计框图 一、实验目的 1、设计变模计数器,掌握变模计数器的设计方法,实现二~十六进 制之间的转换。 2、掌握中规模集成计数器74LS85的逻辑功能和使用方法 3、计数器的计数模M值可变,多路开关控制M的选择

二、设计理念 变模开关控制电路: 设置三个开关来控制切换A、B、C三个输入端,就可以实现001到111的进制实现功能。 变模控制电路: 计数器四位输出送4-16译码器,译码器输出接16选1数据选择器,数 据选择器控制端接模设置开关电路(拨码开关)。 显示驱动电路: 计数器输出送显示译码器,再送4段LED显示器。 三、实验原理 通过161计数器计数输出送给4-16译码器,再送给选择器,最后显示驱动。通过计数器的计数模值可变,计数模M从2~16变化,用多路控 制M的选择。 根据变模计数器的引脚图,电路图(如下图所示)。进行变模计数器的设计。 四、实验设备 74LS85 一个 74LS161 一个 74LS00 一个 导线若干 面包板一个

电路板一个 电源线一个 五、实验内容 (1)电路图: 手绘电路图(2)各芯片的引脚图

74LS00引脚图 74LS85引脚图

科学计算器源代码讲课教案

科学计算器源代码

package two; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; import java.util.*; public class calculator implements ActionListener { int count = 0; private static int a; JFrame frame = new JFrame("计算器"); JTextArea area = new JTextArea(); JTextField fieldshow = new JTextField("0"); JTextField fieldcalculator = new JTextField(); JPanel leftpanel = new JPanel(); JPanel rightpanel = new JPanel(); JPanel buttonpanel = new JPanel(); JPanel motionpanel = new JPanel(); JButton button1 = new JButton("1"); JButton button2 = new JButton("2"); JButton button3 = new JButton("3"); JButton button4 = new JButton("+"); JButton button5 = new JButton("c"); JButton button6 = new JButton("4"); JButton button7 = new JButton("5"); JButton button8 = new JButton("6"); JButton button9 = new JButton("-"); JButton button10 = new JButton("退格"); JButton button11 = new JButton("7"); JButton button12 = new JButton("8"); JButton button13 = new JButton("9"); JButton button14 = new JButton("*"); JButton button15 = new JButton("sin"); JButton button16 = new JButton("0"); JButton button17 = new JButton("+/-"); JButton button18 = new JButton("."); JButton button19 = new JButton("/"); JButton button20 = new JButton("="); JButton button21 = new JButton("保存");

科学计算器代码

using System; using System.Collections.Generic; using https://www.360docs.net/doc/5f14403445.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace科学计算器 { public partial class Form1 : Form { protected double iNum1,into; protected char cOperator; protected bool bNumBegins; protected bool bDot; protected double iMem; public Form1() { InitializeComponent(); InitMembers(); } private void InitMembers() { iNum1 = 0.0; cOperator = '='; bNumBegins = true; bDot = false; } private void Numbers_Click(double i) { if (txtOutput.Text == "Error") { txtOutput.Text = "0"; } try { if (bNumBegins) { txtOutput.Text = i.ToString(); bNumBegins = false; } else { txtOutput.Text += i.ToString(); } double iCurrent = double.Parse(txtOutput.Text); } catch { txtOutput.Text = "Error"; InitMembers(); return; }

实验六verilog设计分频器计数器电路答案

实验六 Verilog设计分频器/计数器电路 一、实验目的 1、进一步掌握最基本时序电路的实现方法; 2、学习分频器/计数器时序电路程序的编写方法; 3、进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset (低电平复位),输出clockout为4个clock周期的低电平,4个clock周期的高电平),文件命名为。 2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为。 3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为。 4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为。 5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。 三、实验步骤 实验一:分频器 1、建立工程

模可变计数器设计(Verilog语言)解答

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和Quartus n软件的使用; 2、进一步熟悉和掌握EDA 设计流程; 3 、学习简单组合、时序电路的EDA 设计; 4、学习计数器中二进制码到BCD 码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA 实验装置上实现模可变计数器功能,具体要求如下: 1 、设置一个按键控制改变模值,按键按下时模为10-99 之间(具体数值自行确定)的 数,没按下时模为100-199 之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三) 主要仪器设备 3、微机 1 台 4、QuartusII 集成开发软件 1 套 5、EDA 实验装置 1 套 (四) 实验步骤 主要有三个模块 1:一个模20 和模119 的计数器 2:数码管的显示 3:BCD 的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model; reg [7:0] cnt,SG; reg [2:0] sel;

reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200 分频,CLK 为数码管扫描频率,CLK1 为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel 为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0 数码管为百位 1: a=sw; //1 数码管为十位 2: a=gw; //2 数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8 段译码值default: SG=8'b11111111; endcase end always @(m) if (m) model=12'b000000100000; // 模值20 else model=12'b000100011001; // 模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (q

科学计算器程序Java代码

功能举例: 源程序如下: import import import import import import import import import import import import import import import import import import import public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;###");, new Dot(), ; addButton(panel2, "+", new Signs(), ; addButton(panel2, "tan", new Signs(), ; addButton(panel2, "%", new Signs(), ; addButton(panel2, "π", numActionListener, ; addButton(panel2, "e", numActionListener, ; addButton(panel2, "′″", new Signs(), ; addButton(panel2, "=", new Signs(), ; JButton btns = new JButton("计算器"); createLoweredBevelBorder()); false);rim()); (i)); }else if(str == "Backspace"){ if()) > 0){ if().length() > 1){ ().substring(0, ().length() - 1)); ength() > 2){ ().substring(0, ().length() - 1)); }else{

模可变16位加法计数器

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 模可变16位加法计数器设计 初始条件: 可用仪器: PC机(Quartus II软件)硬件:EDA-IV型实验箱。 要求完成的主要任务: (1)设计任务 设计可变16位加法计数器,可通过3个选择位M2、M1、M0实现最多8种不同模式的计数方式,例如可构成5、10、16、46、100、128、200、256进制,共8种计数模式。 (2)时间安排: 2012.12.17 课程设计任务布置、选题、查阅资料 2012.12.18-21 设计,软件编程、仿真和调试 2012.12.22 2012.12.23 实验室检查仿真结果,验证设计的可行性和正确性,熟悉实验平台和试验箱 2012.12.24-26 设计的硬件调试 2012.12.27-28 机房检查设计成果,现场演示硬件实物,提交设计说明书及答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

目录 摘要.................................... 错误!未定义书签。Abstract ................................................ II 1 计数器的工作原理 (1) 2 设计原理 (3) 2.1 整体设计原理 (3) 2.2 单元模块的设计 (4) 2.2.1 计数模块的设计 (4) 2.2.2显示模块的设计 (5) 2.2.3分频模块的设计 (5) 2.2.4 顶层模块的设计 (5) 3 单元模块元件原理图 (6) 4 电路系统的功能仿真 (8) 5 硬件调试 (10) 6 个人小结 (12) 参考文献 (13) 附录 (14)

科学计算器源代码

package two; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; import java.util.*; public class calculator implements ActionListener { int count = 0; private static int a; JFrame frame = new JFrame("计算器"); JTextArea area = new JTextArea(); JTextField fieldshow = new JTextField("0"); JTextField fieldcalculator = new JTextField(); JPanel leftpanel = new JPanel(); JPanel rightpanel = new JPanel(); JPanel buttonpanel = new JPanel(); JPanel motionpanel = new JPanel(); JButton button1 = new JButton("1"); JButton button2 = new JButton("2"); JButton button3 = new JButton("3"); JButton button4 = new JButton("+"); JButton button5 = new JButton("c"); JButton button6 = new JButton("4"); JButton button7 = new JButton("5"); JButton button8 = new JButton("6"); JButton button9 = new JButton("-"); JButton button10 = new JButton("退格"); JButton button11 = new JButton("7"); JButton button12 = new JButton("8"); JButton button13 = new JButton("9"); JButton button14 = new JButton("*"); JButton button15 = new JButton("sin"); JButton button16 = new JButton("0"); JButton button17 = new JButton("+/-"); JButton button18 = new JButton("."); JButton button19 = new JButton("/"); JButton button20 = new JButton("="); JButton button21 = new JButton("保存"); JButton button22 = new JButton("复制"); JButton button23 = new JButton("清除"); StringBuffer S = new StringBuffer("");

模100BCD码计数器设计

附录一:基于原理图的模100BCD码计数器的设计 1目的:1)练习用原理图输入设计;2)如何用数码管和二极管显示设计;3)如何仿真;4)如何绑定管脚。 2过程 2.1新建原理图文件。点击file->new->block diagram file->OK,如图2-1,图2-2,出现图2-3。 图2-1 新建文件。点击file->new。 图2-2 新建原理图文件。点击block diagram file->OK。

图2-3. 原理图设计输入区域。双击工作区域。 图2-4 宏单元输入界面。点击Library下的+。

图2-5 选用宏单元。键入74160。 2.2 输入设计。双击图2-3的工作区,出现图2-4。在+megafunctions,+others,+primitives中寻找需要的宏单元。也可在Name下输入知道名字的宏单元,如“74160”,“GND”,“VCC”等,如图2-5。 输入设计,如图2-6。存盘为m100_jishuqi,如图2-7。 图2-6 模100BCD码计数器。

图2-7 保存文件。 2.2为本设计建立工程,并放在文件夹..\m100_jishuqi\中。在图2-7中点击是(或点击file->newproject) 出现图2-8;点击next,出现图2-9;输入工程名字和顶层设计名字;点击next,出现图2-10,加入设计文件;点击next,出现图2-11,选择器件(cycloneII系列EP2C70F896C6);点击 next->next->finish。 图2-8 新建工程。点击Next。

图2-9 输入工程名字和顶层设计名字:mo100_jishuqi。 图2-10 把设计文件加入工程。

通俗易懂版基于MFC科学计算器

2013/6/22 作者编写的科学强大的易懂的新手入门的科学计算器, 基于MFC编写的科学计算器 指导教师对课程设计的评定意见 搞要本课程设计是在基于对话框的应用程序中模拟一个计算器,本计算器可以进行十进制下的四则运算(加、减、乘、除)和四则混合运算,可以把十进制转化为二进制或十六进制,可以进行一些常用的函数运算(比如sin、cos、tan、cot、sqrt、ln等),还可以支持带“(”,“)”符号的表达式的计算。系统开发平台为Windows XP,程序设计设计语言采用Visual C++6.0,程序运行平台为Windows 98/2000/XP。程序通过调试运行,初步实现了设计目标。 关键词程序设计;计算器;C++; 1 引言 在现代社会中,计算器已经进入了每一个家庭,人们在生活和学习中经常需要使用到计算器,它的出现大大减少了人们在计算方面的工作量,可以说它在人们生活和学习中是不可缺少的。 1.1C++介绍 C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序设计方法[1]。 (1) C++是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。这对于继承和开发当前

已在广泛的软件是非常重要的,可以节省大量的人力和物力。 (2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。 (3) C++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。通常,C++程序环境约定:当源程序文件的扩展名为c.时,则为C 程序;而当源程序文件的扩展名为cpp.时,则为C++程序。 (4) C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。其优点是给用户编程带来书写上的方便。其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误不容易发现,给用户编程增加了难度。 3以下是详尽的代码

相关文档
最新文档