二位计数器实验报告

时间:2024.3.31

二位计数器实验报告

王林 2013141444014

一、实验目的:

1.设计一个二位的计数器;

2.熟悉QuartusII软件的功能及环境。

二、详细设计:

设计步骤如下:

1.设计一个任意进制二位的计数器,包含有时钟信号clk,实现计数功能;在本实验设计了一种二位二十四进制的计数器,当个位计数到9时,十位加一,当十位达到2,个位达到3时,将执行清零,从而达到二十四进制计数的功能。

2.编译、查找错误并仿真,并下载到板子上验证结果。

三、源程序代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity qua1 is --定义实体,它说明输入/输出端口

port(clk:in std_logic; --计数时钟

q:out std_logic_vector(7 downto 0); --计数输出

c:out std_logic);

end qua1;

architecture a of qua1 is --定义结构体,它说明具体的功能

signal qa:std_logic_vector(3 downto 0);

signal qb:std_logic_vector(3 downto 0);

signal cy:std_logic; --申明变量

begin

process(clk)

begin

if clk'event and clk='1' then --异步清零

if (qa=9) or (qa=3 and qb=2) then --当代表个位的qa=9或者qa=3且qb=2时qa清零

qa<="0000";

cy<='0';

elsif qa=8 then --qa=8时qa加一,cy=1

qa<=qa+1;

cy<='1';

else --其他情况qa++,cy=0

qa<=qa+1;

cy<='0';

end if;

end if;

end process; --结束

process(clk,cy)

begin

if clk'event and clk='1' then—异步清零

if (qa=3 and qb=2) then ?qa=3且qb=2时qb清零c=1

qb<="0000";

c<='1';

elsif cy='1' then --cy=1时qb进一位

qb<=qb+1;

c<='0';

else ?其他情况c=0

c<='0';

end if;

end if;

end process;

q(7 downto 4)<=qb; --输出

q(3 downto 0)<=qa;

end a;

四、仿真结果:

五、实验感想:

通过这次实验,让我熟悉了VHDL语言的应用,在做计数器的过程中出现了很多问题和困难,在和同学交流和查阅了相关资料后解决了这个问题,在这个过程中也提高了自己。


第二篇:c#计算器编写实验报告



课 程 设 计

设计题目:C#环境下的ACCESS表格查询

学生姓名:李伟

号:20095378

专业班级电子商务09-1班

指导教师惠刚

20## 年 10 月 13 日

数据库查询

一、实验目的

通过点击面板上的特定按钮,弹出提示框显示出access表格中相对应按钮的内容。

二、程序编制流程

1.新建解决方案—windows应用程序—将其命名为sjk2,如图所示:

2.程序中使用了标签、按钮控件,以及按钮的Click事件,在此过程中使用语句解释如下:

privatevoidInitializeComponent()

{

x=newSystem.Windows.Forms.Button();语句用于初始化按钮

x=newSystem.Windows.Forms.Label();语句用于初始化标签

x.Location=newSystem.Drawing.Point(a,b);语句用于定义控件位置

x.Size=newSize(a,b);语句用于定义控件大小

x.Text="a";语句用于定义控件的文本内容

this.Controls.Add(x);语句用于将控件加入到面板当中

x.Click+=newSystem.EventHandler(x_Click);语句用于按钮Click事件的声明

this.Text = "Access表格查询";语句用于面板栏文本内容

}

privateSystem.Windows.Forms.Button x;语句用于声明button控件

privateSystem.Windows.Forms.Label x;语句用于声明标签控件

privatevoidbut1_Click(object sender,EventArgs e)

{}用于Click事件的具体内容,{}内添实现内容代码

3.Click事件具体内容:Access表格的链接、显示,过程如下:

该Access表格中有ID、学号、姓名、性别、年级信息;

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";

语句用于连接Access表格的字符串

OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);

语句用于创建OleDbConnection对象

OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

语句用于创建OleDbCommand对象

string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";

myOleDbCommand.CommandText = commandString;

myOleDbConnection.Open();

用Connection对象的open()方法打开Access表格

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

创建OleDbDataReader对象并执行ExecuteReader()方法

myOleDbDataReader.Read();

读取每行记录

MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "

+ myOleDbDataReader["学号"]+"[姓名] = "

+ myOleDbDataReader["姓名"]+"[性别]="

+myOleDbDataReader["性别"] +"[年级] = "

+ myOleDbDataReader["年级"]);

将列属性值输出在对话框中

myOleDbDataReader.Close();

关闭myOleDbDataReader对象

myOleDbConnection.Close();

关闭数据库链接

三、实验结果

查询20090001学生信息,点击20090001按钮;

查询20090002学生信息,点击20090002按钮;

四、实验体会

实验中遇到了很多问题,也是请教了很多同学才得到解决,首先就是数据库访问这块儿,编程序是发现与Access2007不兼容。而对于string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";现在才知道DataSource就是Access表格所在路径。

"Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";当初编写这行SQL语句时,我会在Where 学号=2009001的20009001上加个' ',也是因为看到书上有这么个程序,但是在编译时就会提示编译程序发生了无法处理的异常,找了半天才知道是这个问题。

在using那里一开始usingSystem.Data.OleDb;也没有添加,出现了问题。

还有个问题现在也没解决,就是编写面板那里,有一次调整按钮位置、大小、文本不论怎么改,倒可以显示,但都是一开始的那个样子,改了没用,只能重新新建了一个应用程序复制进去就好了。

虽然用的是MessageBox.Show()来做的显示,但是还是觉得数据库访问查询并输出还是用一个文本框获取用户输入信息并根据此来查询并用文本框来显示的方式更好,但文本框控件的事件的使用不是很熟悉,就没有使用了,因此感觉编程一定得多编写,涉猎面还要广,常用的一定得熟练,对于我来讲真的要多多练习。

五、程序代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Drawing;

usingSystem.Windows.Forms;

usingSystem.Data.OleDb;

namespacesjk2

{

partial class MainForm

{

privateSystem.ComponentModel.IContainer components =null;

protectedoverride voidDispose(booldisposing)

{

if(disposing) {

if(components !=null) {

components.Dispose();

}

}

base.Dispose(disposing);

}

privatevoidInitializeComponent()

{

but1=newSystem.Windows.Forms.Button();

but2=newSystem.Windows.Forms.Button();

but3=newSystem.Windows.Forms.Button();

ts=newSystem.Windows.Forms.Label();

but1.Location=newSystem.Drawing.Point(29,58);

but2.Location=newSystem.Drawing.Point(29,100);

but3.Location=newSystem.Drawing.Point(29,142);

ts.Location=newPoint(27,21);

but1.Size=newSize(75,23);

but2.Size=newSize(75,23);

but3.Size=newSize(75,23);

ts.Size=newSize(170,120);

but1.Text="20090001";

but2.Text="20090002";

but3.Text="20090003";

ts.Text="请选择您要查询的学生学号:";

this.Controls.Add(but1);

this.Controls.Add(but2);

this.Controls.Add(but3);

Controls.Add(ts);

but1.Click+=newSystem.EventHandler(but1_Click);

but2.Click+=newEventHandler(but2_Click);

but3.Click+=newEventHandler(but3_Click);

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

this.Text = "Access表格查询";

this.Name = "MainForm";

}

privateSystem.Windows.Forms.Button but1;

privateSystem.Windows.Forms.Button but2;

privateSystem.Windows.Forms.Button but3;

privateSystem.Windows.Forms.Label ts;

privatevoidbut1_Click(object sender,EventArgs e)

{

String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";

OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);

OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090001";

myOleDbCommand.CommandText = commandString;

myOleDbConnection.Open();

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

myOleDbDataReader.Read();

MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "

+ myOleDbDataReader["学号"]+"[姓名] = "

+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]

+

"[年级] = "

+ myOleDbDataReader["年级"]);

myOleDbDataReader.Close();

myOleDbConnection.Close();

}

privatevoidbut2_Click(object sender,EventArgs e)

{

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";

OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);

OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090002";

myOleDbCommand.CommandText = commandString;

myOleDbConnection.Open();

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

myOleDbDataReader.Read();

MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "

+ myOleDbDataReader["学号"]+"[姓名] = "

+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]

+

"[年级] = "

+ myOleDbDataReader["年级"]);

myOleDbDataReader.Close();

myOleDbConnection.Close();

}

privatevoidbut3_Click(object sender,EventArgs e)

{

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\aa.mdb";

OleDbConnection myOleDbConnection =newOleDbConnection(connectionString);

OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

string commandString = "Select ID,学号,姓名,性别,年级 From 1 Where 学号 = 20090003";

myOleDbCommand.CommandText = commandString;

myOleDbConnection.Open();

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

myOleDbDataReader.Read();

MessageBox.Show("[ID]="+myOleDbDataReader["ID"]+"[学号] = "

+ myOleDbDataReader["学号"]+"[姓名] = "

+ myOleDbDataReader["姓名"]+"[性别]="+myOleDbDataReader["性别"]

+

"[年级] = "

+ myOleDbDataReader["年级"]);

myOleDbDataReader.Close();

myOleDbConnection.Close();

}

}

}

更多相关推荐:
计数器实验报告

实验4计数器及其应用一实验目的1学习用集成触发器构成计数器的方法2掌握中规模集成计数器的使用及功能测试方法二实验原理计数器是一个用以实现计数功能的时序部件它不仅可用来计脉冲数还常用作数字系统的定时分频和执行数字...

实验四、 计数器的设计 电子版实验报告

实验四计数器的设计实验室实验台号日期专业班级姓名学号一实验目的1通过实验了解二进制加法计数器的工作原理2掌握任意进制计数器的设计方法二实验内容一用D触发器设计4位异步二进制加法计数器由D触发器组成计数器触发器具...

数电 计数器实验报告

试验七计数器李*电子信息科学与技术一、试验目的1.掌握中规模集成计数器74LS160,161的逻辑功能及使用方法。2.掌握74LS160计数器的级联方法。3.学习用中规模集成计数器实现任意进制计数器。二、试验器…

实验报告:计数器

四川大学电气信息学院电气工程及其自动化网络专升本实验报告实验课程:电工电子综合实践实验名称:计数器班级:05秋电气工程及其自动化姓名:学号:VH1xxxx2003日期:20xx-x-x一、实验目的1、了解中规模…

计数器实验报告

计数器实验报告一实验内容1静态测试芯片74LS90的逻辑功能2动态测试芯片73LS90的芯片功能画出clk与其中一个输出的波形图3用一块74LS90芯片连接一个模2模5计数器4用两个74LS90级联成一个模24...

十进制计数器实验报告

广东水利电力职业技术学院20xx年4月1日设计一个动态显示十进制计数器一前言本实验将用到七段数码显示译码器译码器是用来驱动各种显示器件从而将用二进制代码表示的数字文字符号翻译成人们习惯的形式直观地显示出来的电路...

秒计数器实验报告

秒计数器实验报告一实验目的1显示60秒计时功能2计时器为60秒递减计时器3根据原理图分析各单元电路的功能4熟悉电路中所用到的各集成块的管脚及功能5进行电路的装接调试直到电路能达到规定的设计要求二实验器材秒计时器...

实验7 集成计数器 (实验报告要求)

集成计数器实验报告要求一实验目的05分1熟悉中规模集成电路计数器的功能及应用2掌握利用中规模集成电路计数器构成任意进制计数器的方法3掌握计数器的典型应用计数器对输入的时钟脉冲进行计数来一个CP脉冲计数器状态变化...

实验报告5_高速计数器

SLCISTampOPSODSales100B12TaskReportTaskReport1Purpose1通过实验了解高速脉冲输出PTO和PWM的原理和使用方法2Equipment实验设备3Processan...

定时器计数器应用实验报告

实验名称定时器计数器应用实验日期见自己实验数据得分同组人不填指导教师姓名一实验目的1掌握51单片机定时器计数器的基本结构工作原理和工作方式2掌握定时器计数器T0T1工作在定时器和计数器两种状态下的编程方法3学习...

数字逻辑实验报告:计数器及其应用

安徽师范大学专业名称实验室实验课程实验名称姓名学号同组人员实验日期软件工程数字逻辑计数器及其应用20xx63

EDA计数器实验报告

EDA计数器实验报告一实验目的1深刻理解VHDL语言元件例化的方法2掌握计数器的设计原理以及设计方法3结合以前学过的数码管扫描知识完成计数器显示学号后三位二实验原理计数器是可以统计时钟脉冲次数的时序器件为了使计...

计数器实验报告(45篇)