当前位置:文档之家› 西工大数电实验报告——计数器及其应用

西工大数电实验报告——计数器及其应用

西工大数电实验报告——计数器及其应用
西工大数电实验报告——计数器及其应用

计数器及其应用

班级:03051001班 学号: 姓名: 同组成员:

一、 实验目的

1. 熟悉常用中规模计数器的逻辑功能。

2. 掌握二进制计数器和十进制计数器的工作原理和使用方法。

3. 运用集成计数器构成1/N 分频器。

二、 实验设备

数字电路试验箱、函数信号发生器、数字双踪示波器、74LS90

三、 实验原理

计数是一种最简单基本运算,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。计数器按计数进制有:二进制计数器,十进制计数器和任意进制计数器;按计数单元中触发器所接收计数脉冲和翻转顺序分有:异步计数器,同步计数器;按计数功能分有:加法计数器,减法计数器,可逆(双向)计数器等。

目前,TTL 和CMOS 电路中计数器的种类很多,大多数都具有清零和预置功能,使用者根据器件手册就能正确地运用这些器件。实验中用到异步清零二-五-十进制异步计数器74LS90。

74LS90是一块二-五-十进制异步计数器,外形为双列直插,引脚排列如图(1)所示,逻辑符号如图(2)所示,图中的NC 表示此脚为空脚,不接线,它由四个主从JK 触发器和一些附加门电路组成,其中一个触发器构成一位二进制计数器;另三个触发器构成异步五进制计数器。在74LS90计数器电路中,设有专用置“0”端

)

1(0R 、

)

2(0R 和置“9”端

)

1(9S 、

)

2(9S 。其中

)

1(0R 、

)

2(0R 为两个异步清零端,

)

1(9S 、

)

2(9S 为两个异步置9端,CP1、CP2为两个

时钟输入端,Q0~Q3为计数输出端,74LS90的功能表见表(1),由此可知:当R1=R2=S1=S2=0时,时钟从CP1引入,Q0输出为二进制;时钟从CP2引入,Q3输出为五进制;时钟从CP1引入,而Q0接CP2 ,即二进制的输出

与五进制的输入相连,则Q3Q2Q1Q0输出为十进制(8421BCD码);时钟从CP2引入,而Q3接CP1 ,即五进制的输出与二进制的输入相连,则Q0Q1Q2Q3输出为十进制(5421BCD码)。

图(1)

图(2)

表(1)

四、实验内容

1.用74LS90实现十进制;

2.用74LS90实现六进制;

3.用74LS90实现0-2-4-6-8-1-3-5-7-9循环显示。

五、实验结果

1.用74LS90实现十进制, 电路图如下:

真值表如下:

2.用74LS90实现六进制, 采用异步置0法,电路图如下:

真值表如下:

3.用74LS90实现0-2-4-6-8-1-3-5-7-9循环显示,设计步骤如下:

a)列真值表,得如下图所示逻辑关系:

分析知,只要将5421BCD输出的0Q移到末端即可实现所需序列

故将CP1接3Q,CP2接输入方波信号

b)则电路图如下:

六、实验收获

本次实验,通过对计数器工作过程的探索,基本上了解了计数器的工作原理,以及74LS90的数字特点,让我更进一步掌握了如何做好数字电路实验,也让我认识到自身理论知识的不足和实践能力的差距,以及对理论结合实践的科学方法有了更深刻理解。

编程实验报告---科学计算器设计与实现

《可视化程序编程环境》 实验报告 项目名称科学计算器设计与实现 学院计算机学院 专业班级计算机科学与技术0804 2010年1月9 日

一、设计任务与要求 使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在 VisualC++6环境下进行可视化程序设计技术。通过实践具体的项目,为他们进一步开展相关领域的学习和科研打下良好的基础。 二、需求分析 1. 功能需求(功能划分、功能描述) 1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算 2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行 3、以角度、弧度两种方式实现上述部分函数 4、具备历史计算的记忆功能 5、对不正确的表达式能指出其错误原因 2. 运行需求(用户界面、人机接口、故障处理) 根据计算器要实现的相应功能来布局,分为基本功能区,特殊函数区,进制转换区,度数转换区和输出显示区五大基本模块。 三、实验方案 1、总体设计框图 2

3.基本功能区的设计 在这个模块中主要把0到F各个按键按下去后在输出显示区上显示出来列举一例: void Caysf55Dlg::OnBnClickedButton3() {if(zuizong=="0") m_str=""; m_str+="1"; UpdateData(0); if(zuizong=="0") zuizong=""; zuizong+="1";// TODO: 在此添加控件通知处理程序代码 } 接下来从输出显示区获得字符串,通过运算符的相应按键处理:列举加法: void Caysf55Dlg::OnBnClickedButton19()/*加法运算*/ {double zan; if(m_str=="") MessageBox(L"没有运算数"); else if(y==1||M==1) MessageBox(L"只能输入数值"); else if(m_str.GetAt (m_str.GetLength()-1)=='+'||m_str.GetAt (m_str.GetLength()-1)=='-'||m_str.GetAt (m_str.GetLength()-1)=='*'||m_str.GetAt (m_str.GetLength()-1)=='/')

数电实验报告 计数器

实验报告 实验七计数器原理测试及其设计 2.7.1 实验目的 1.掌握中规模集成计数器74LS160、74LS161、74LS163的逻辑功能及使用方法。 2.掌握同步清零与异步清零的区别及74LS160计数器的级联方法。 3.学习用中规模集成计数器设计任意进制计数器。 2.7.2 实验仪器设备与主要器件 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS160,74LS161和74LS163。 2.7.3 实验原理 计数器的功能是记录输入脉冲的个数。他所能记忆的最大脉冲个数称为该计数器的模。计数器不仅能统计输入脉冲的个数,还可以用作分频、定时、产生节拍脉冲等。根据进位方式,可分为同步和异步两类。根据进制,可分为二进制、十进制和任意进制等。根据逻辑功能,可分为加法计数器、减法计数器和可逆计数器等。根据电路集成度,可分为小规模集成计数器和中规模集成计数器。 2.7.4 实验内容 1.分别用74LS161和74LS163设计模13计数器,采用清零法实现,并用数码管显示实验结果。 设计思路:74LS161是十六进制计数器,所以我在它计数到13(1101)清零就行了,再利用二进制数与BCD码对应关系,即利用74LS283的逻辑功能使数码管显示实验结果。计数时电路状态转换关系: 0000→0001→0010→0011→0100→0101→0110→0111→1000→1001→1010→1011→1100→0000

设计思路:74LS163接法与74LS161基本一样,只是163的清零信号是12不是13,如图: 2.设计一个用3位数码管指示的六十进制计数器,并用三只开关控制计数器的数据保持、计数及清零功能。 设计思路:用Cr=0控制计数器清零,用EP*ET=0控制计数器数据保持,用高低电平和CP脉冲进行与运算控制计数器计数功能。U1的清零信号是在计数到6时,U1清零的同时U3开始计数,这样就能实现用3位数码管指示的六十进制计数器。如图:

c计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件 的响应函数代码。

(3)程序清单: 添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append; //判断后面是否添加数字 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0;

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

计算机科学与技术第次实验报告.docx

哈尔滨工程大学 《程序设计基础》实验报告 基础实践一 姓名:班级: 学号: 实验时间 :2018年5月10日成绩 哈尔滨工程大学计算机基础课程教学中心 实验题目 1:输入两个整数数组,每个数组有五个整数,将两者和并 并排列输出。 设计思想: 定义三个数组 , 将两组数据存储到第三个数组中 , 再用冒泡排序对其由大到小排序并输出。 实验代码及注释: #include #include #define N 10//宏定义

int main() { int a[5],b[5],c[N];//第一组数据,第二组,合并数组int i,j,t;//循环变量,中间变量 printf("输入第一组数据 :\n");//输入数据 for(i=0;i<5;i++) scanf("%d",&a[i]); printf("输入第二组数据 :\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); for(i=0;i<5;i++) { c[i]=a[i];//两组数据合并 c[i+5]=b[i]; } for(i=0;i

for(j=0;j

数电实验报告

数字逻辑与数字电路实验报告 实验名称简易迷宫游戏

一、设计课题的任务要求 题目:简易迷宫游戏 设计并实现一个简易迷宫游戏机。 【基本要求】: 1、用8×8 点阵进行游戏显示。 2、迷宫游戏如图1 所示,采用双色点阵显示,其中红色LED 为迷宫墙壁,绿色LED表示人物。通过BTN0~BTN3 四个按键控制迷宫中的人物进行上下左右移动,使人物从起始点出发,走到迷宫的出口,游戏结束。 3、普通计时模式:通过按键BTN7 启动游戏,必须在30 秒内找到出口,否则游戏失败。用两个数码管进行倒计时显示。游戏胜利或者失败均要在8×8 点阵上有相应的画面出现。 4、迷宫中的人物在行走过程中,如果碰到墙壁,保持原地不动。 【提高要求】: 1、多种迷宫地图可以选择。 2、在计时的基础上增加计步的功能,每按一次控制按键步数加1,碰壁不计算步数,计步结果用数码管显示。 3、为游戏增加提示音乐,在不同时间段采用不同频率的信号控制蜂鸣器发声报警。 4、增加其他游戏模式。 5、自拟其它功能。 二、系统设计(包括设计思路、总体框图、分块设计) 设计思路: 依据题目要求,在实验中需要使用到8*8双色点阵输出迷宫图案,使用数码管输出计步步数和倒计时时间,使用蜂鸣器发出警报。由于实验要求需要使用到大量的按键输入。所以需要在输入输出模块中需要按键消抖模块。实验的输出模块共有点阵输出模块,数码管输出模块,蜂鸣器输出模块,在数码管和点阵输出中需要使用到扫描输出的概念。在游戏进行中需要实时判断并且记录人的位置,需要进行记时,计步,所以在整个系统中需要使用状态机进行当前状态转换,控制整个程序。所以在核心实现模块中包括行走模块,状态输出模块,计步模块,计时模块。 输入部分:消抖模块 时钟部分:多级分频器 控制部分:倒计时器,计步器,行走模块,状态机

数字电路实验计数器的设计

数字电路与逻辑设计实验报告实验七计数器的设计 :黄文轩 学号:17310031 班级:光电一班

一、实验目的 熟悉J-K触发器的逻辑功能,掌握J-K触发器构成异步计数器和同步计数器。 二、实验器件 1.数字电路实验箱、数字万用表、示波器。 2.虚拟器件: 74LS73,74LS00, 74LS08, 74LS20 三、实验预习 1. 复习时序逻辑电路设计方法 ①根据设计要求获得真值表 ②画出卡诺图或使用其他方式确定状态转换的规律 ③求出各触发器的驱动方程 ④根据已有方程画出电路图。 2. 按实验内容设计逻辑电路画出逻辑图 Ⅰ、16进制异步计数器的设计 异步计数器的设计思路是将上一级触发器的Q输出作为下一级触发器的时钟信号,置所有触发器的J-K为1,这样每次到达时钟下降沿都发生一次计数,每次前一级 触发器从1变化到0都使得后一级触发器反转,即引发进位操作。 画出由J-K触发器组成的异步计数器电路如下图所示:

使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位 触发器的输出,以及时钟信号。: 可以看出电路正常执行16进制计数器的功能。 Ⅱ、16进制同步计数器的设计 较异步计数器而言,同步计数器要求电路的每一位信号的变化都发生在相同的时间点。

因此同步计数器各触发器的时钟脉冲必须是同一个时钟信号,这样进位信息就要放置在J-K 输入端,我们可以把J-K端口接在一起,当时钟下降沿到来时,如果满足进位条件(前几位触发器输出都为1)则使JK为1,发生反转实现进位。 画出由J-K触发器和门电路组成的同步计数器电路如下图所示 使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位触发器的输出,计数器进位输出,以及时钟信号。:

数电实验报告:实验4-计数器及应用161

广东海洋大学学生实验报告书(学生用表) 实验名称 课程名称 课程号 学院(系) 专业 班级 学生姓名 学号 实验地点 实验日期 实验4 计数器及其应用 一、实验目的 1、熟悉中规模集成计数器的逻辑功能及使用方法 2、掌握用74LS161构成计数器的方法 3、熟悉中规模集成计数器应用 二、实验原理 计数器是典型的时序逻辑电路,它是用来累计和记忆输入脉冲的个数.计数是数字系统中很重要的基本操作,集成计数器是最广泛应用的逻辑部件之一。计数器种类较多,按构成计数器中的多触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;根据计数制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等。本实验主要研究中规模十进制计数器74LS161的功能及应用。 1、中规模集成计数器 74LS161 是四位二进制可预置同步计数器,由于它采用4 个主从JK 触发器作为记忆单元,故又称为四位二进制同步计数器,其集成芯片管脚如图1所示: 管脚符号说明:电源正端Vcc ,接+5V ;异步置零(复位)端Rd ;时钟脉冲CP ;预置数控制端 A 、B 、C 、D ;数据输出端 QA 、QB 、QC 、QD ;进位输出端 RCO :使能端EP ,ET ;预置端 LD ; 图1 74LS161 管脚图 GDOU-B-11-112

该计数器由于内部采用了快速进位电路,所以具有较高的计数速度。各触发器翻转是靠时钟脉冲信号的正跳变上升沿来完成的。时钟脉冲每正跳变一次,计数器内各触发器就同时翻转一次,74LS161的功能表如表1所示: 表1 74LS161 逻辑功能表 2、实现任意进制计数器 由于74LS161的计数容量为16,即计16个脉冲,发生一次进位,所以可以用它构成16进制以内的各进制计数器,实现的方法有两种:置零法(复位法)和置数法(置位法)。 (1) 用复位法获得任意进制计数器假定已有N进制计数器,而需要得到一个M进制计数器时,只要M<N,用复位法使计数器计数到M时置“0”,即获得M进制计数器。 (2) 利用预置功能获M进制计数器置位法与置零法不同,它是通过给计数器重复置入某个数值的的跳越N-M个状态,从而获得M进制计数器的,如图所法。置数操作可以在电路的任何一个状态下进行。这种方法适用于有预置功能的计数器电路。图2是上述二种方法的原理示意图。 图2(a) 图2(b) 三、实验内容与步骤 1、测试74LS161的逻辑功能。 2、在熟悉74LS161逻辑功能的基础上,利用74LS161设计9进制计数器。 附图74ls00和74ls20

数电实验二:简易计算器(实验报告)

数电实验2实验报告 1、设计修改方案 (1)加入编码器连接4选一数据选择器,控制进行运算的种类 (2)修改了输出端数据选择器的程序,使得当计算器没有任何输入时,结果显示保持为0,并且利用芯片自身的灭零管脚,让显示结果中,当十位为零时,十 位的零不显示。

2、实验数据及分析 (1)修改后电路图(附后) (2)仿真波形 设置输入2个4位二进制数为0110(十进制6)和0010(十进制2),计算方式控制SW[3:0]设为0111,即模拟除法操作,加入时钟信号。 ①模拟除法波形: 可以看到十位(商)的数码管显示中,1、2、3、4、7段亮,显示为数字3,而个位(余数)显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6除2商3余0。满足计算要求。 ②模拟乘法波形:(SW[3:0]设为1011,其他输入同上)

可以看到个位的数码管显示中,1、4、5、6段亮,显示为C(化为十进制为12),而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6乘2等于0C,即等于12。当改变输入4和2是,显示结果为8,。满足计算要求。 ③模拟加法波形:(SW[3:0]设为1101,其他输入同上) 可以看到个位的数码管显示中,1、2、3、4、5、6、7段全亮,显示为数字8,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6加2等于08,即等于8。满足计算要求。 ④模拟减法波形:(SW[3:0]设为1110,其他输入同上) 可以看到个位的数码管显示中,2、3、6、7段亮,显示为数字3,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6减2等于03,即等于3。满足计算要求。 从上面加减乘除四种功能运算的波形仿真可以看出,本实验设计能够正确完成对输入数字的上述四种运算。满足题目要求。

vb科学计算器实验报告

西安科技大学 可视化编程语言实验报告 题目:科学计算器 班级: 学号: 姓名: 2010年11月

复杂型科学计算器的设计与实现实验目的 1.通过本实验,进一步理解Visual Basic的编程方法。 2.提高运用Visual Basic编程的能力。 3.培养对所学知识的综合运用能力。 实验类型 综合型。 实验内容与步骤 一.界面设计。

Command5Caption= 三.程序代码: Dim num1 As Single, num2 As Single Dim fu As Integer Dim sign As Integer Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 To 9 sign = Index + 20 Case 10 sign = Index + 20 fu = 1 Case 11 To 14 sign = Index + 20 End Select = "" End Sub Private Sub Command2_Click(Index As Integer) Select Case Index Case 0 To 9 = & Index If fu = 0 Then num1 = Val Else num2 = Val

Case 10 = & "-" Case 11 = & "." Case 12 To 18 = "" sign = Index fu = 1 End Select End Sub Private Sub Command3_Click() If =”” then else = Left$, Len - 1) End if End Sub Private Sub Command4_Click() = "" End Sub Private Sub Command5_Click() Dim n As Integer, cf As Single fu = 0: cf = 1 Select Case sign Case 12 = num1 & "+" & num2 = num1 + num2 Case 13 = num1 - num2 Case 14 = num1 * num2 Case 15 = num1 / num2 Case 18 For n = 1 To num2 cf = cf * num1 Next n = cf Case 20 = Sin(num1) Case 21

数电实验实验报告

数字电路实验报告

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

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

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

安卓计算器开发实验报告

嵌入式WebOS应用开发 实验报告 实验名称:使用An droid Developer SDK开发应用程序 专业:_________________________ 姓名:__________________________________ 班级:_______________________________ 学号:______________________________ 一、作品的运行环境及安卓SDK基础操作 SDK An droid Developer 是一款在windows系统上运行的针对 An droid应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。 3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 要在xml 界面中添加排版: xml 代码首末的 格式较为自由可以直接在 界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。 三、 编程以及运行调试 (一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng 32E img'O.png jdE im^il.png] 3E img?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png ..1. uiHiprxg 就可以看见对应的代码, 可直接 在代码中进行修改图片文字的 大小颜色等等。 以下是对应图像图标的代码 图片可以在左侧的选 (二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc 起 ch^tfrorn_bg_ipTW5&d !S'.pflg ~l <+i?,kbnif^M 口 .股 ch?kbojco#f bsckgrourid^na SE chfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq

数电实验报告实验六计数译码显示综合实验整理版.docx

数电实验报告 实验六 计数、译码、显示综合实验 姓名: 学号: 班级: 院系: 指导老师: 2016年

目录 实验目的: (22) 实验器件与仪器: (22) 实验原理: (33) 用同步清零端或置数端置零或置数构成N进制计数器 (33) 用同步清零端或置数端置零或置数构成N进制计数器 (33) 实验内容: (44) 实验过程: (55) 实验总结: (66) 实验: 实验目的: 1.熟悉中规模集成电路计数器的功能及应用。 2.熟悉中规模集成电路译码器的功能及应用。 3.熟悉LED数码管及显示电路的工作原理。 4.学会综合测试的方法。 实验器件与仪器: 1.实验箱、万用表、示波器。

2.74LS160、74LS48、74LS20 实验原理: 对于计数规模小的计数器,我们使用集成触发器来设计计数器,但是如果计数器的模数达到十六以上(如六十进制)时,如果还是用集成触发器来设计的话,电路就比较复杂了。在这种情况下,我们可以用集成计数器来构成任意进制计数器。利用集成计数器的清零端和置数端实现归零,从而构成按自然态序进行计数的N进制计数器的方法。 用同步清零端或置数端置零或置数构成N进制计数器用这种方法的实现步骤如下: 1)写出状态S N-1的二进制代码。 2)求归零逻辑,即求同步清零端或置数控制端信号的逻辑表达式 3)画连线图 用同步清零端或置数端置零或置数构成N进制计数器用这种方法的实现步骤如下: 1)写出状态S N得二进制代码 2)求归零逻辑,即求异步清零端或置数控制端信号的逻辑表达式

3)画连线图 在集成计数器中,清零、置数均采用同步方法的有74LS163;均采用异步方法的有74LS193、74LS197、74LS192;清零采用异步方法、置数采用同步方法的有74LS161、74LS160;有的只具备异步清零功能,如CC4520、74LS190、74LS191;74LS90则具有异步清零和异步置9功能。 实验内容: 1.用集成计数器74LS160分别组成8421码十进制和六进制计数器, 然后连接成一个60进制计数器(6进制为高位,10进制位低位)。 使用实验箱上的LED译码显示电路显示(注意高低位顺序及最高位的处理)。用函数发生器的低频连续脉冲(调节频率为1-2Hz)作为计数器的计数脉冲。通过数码管观察计数、译码、显示电路的功能是否正确。 2.设计一个时间计数器,具有分钟和秒计时功能的计数器。

c计算器实验报告

c计算器实验报告集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、 乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和 单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在中添加头文件,然后添加public成员。 7)打开文件,在构造函数中,进行成员初始化和完善各控件的 响应函数代码。 (3)程序清单: 添加的public成员: double tempvalue; 法 2.减法 3.乘法 4.除法

int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = ; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; } ●各控件响应函数代码: void CCalculatorDlg::OnButton1() //按钮“1” { // TODO: Add your control notification handler code here if(append==1)result=0;

北邮-数电实验报告

北邮-数电实验报告

数字电路实验报告 学院:信息与通信工程 专业:信息工程 班级:2013211125 学号:2013210681 姓名:袁普

②:仿真波形图以及分析 波形图: 波形分析:通过分析ab ci三个输入在8中不同组合下的输出,发现与全加器的真值表吻合,说明实现了全加器的逻辑功能。同时看见波形中出现了毛刺(冒险),这也与事实一致。 ③:故障及问题分析 第一次在做全加器的时候发现找不到已经生成的半加器模块,后来发现是因为在建立工程时这两个项目没有建在同一个文件夹里,在调用的时候就找不到。后来我将全加器工程建在同一个文件夹里解决了此问题。

实验二:用VHDL设计和实现组合逻辑电路 一:实验要求 ①:用VHDL设计一个8421码转换为格雷码的代码转换器,仿真验证其功能。 ②:用VHDL设计一个4位二进制奇校验器,要求在为奇数个1时输出为1,偶数个1时输出为0,仿真验证其功能。 ③:用VHDL设计一个数码管译码器,仿真验证其功能,下载到实验板测试,要求用拨码开关设定输入信号,数码管显示输出信号,并且只使一个数码管有显示,其余为熄灭状态。 二:故障及问题分析 在刚开始实现让一个数码管显示的时候,我本来准备再设置6个输入和输出,通过实验板上的拨码来输入信息分别控制不同的数码管的的开闭状态,但是后来发现这样效率很低而且实验板上的拨码开关数量根本不够。在老师的提醒下,我最终在VHDL里直接增加了一个向量输出”011111”来直接控制cat0~5六个管脚,从而达到了实验的要求。

实验三:用VHDL设计和实现时序逻辑电路 一:实验要求 ①:用VHDL语言设计实现一个8421十进制计数器,要求有高电平复位功能,仿真验证其功能。 ②:用VHDL语言设计实现一个分频系数为12,输出为占空比50%方波的分频器,有高电平复位功能,仿真验证其功能。 ③:将(1),(2)和数码管译码器三个电路进行连接,仿真验证其功能,并下载到实验板进行测试,要求第三个数码管显示数字。二:报告内容 ①实验三(3)模块端口说明及模块代码 模块一:div12为一个有高电平复位功能的分频系数为12的分屏器,其输出是一个占空比50%的方波。此模块输入连接一个时钟输入,即可在输出端得到一个周期更大的方波输出。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div12 is port( clear,clk:in std_logic; clk_out:out std_logic ); end div12; architecture struct of div12 is signal temp:integer range 0 to 5; signal clktmp:std_logic; begin process(clk,clear) begin if(clear='1') then

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

数电实验 计数器电路

实验5 计数器实验电路 1实验目的 1.1掌握计数器的工作原理及特性 1.2采用触发器及集成计数器构成任意进制计数器 2实验仪器与元器件 2.1实验仪器 数字电路实验箱、数字万用表、示波器 2.2芯片 74LS00/74ls04 74LS48 74LS161 共阴数码管电位器电阻等其它元件若干 3预习要求 3.1 预习计数器相关内容。 3.2 作出预习报告。 4实验原理 计数器是用来实现计数功能的时序部件,它能够计脉冲数,还可以实现定时、分频、产生节拍脉冲和脉冲序列等。计数器的种类很多,按时钟脉冲输入方式的不同,可以分为同步计数器和异步计数器。按进位体制不同,可以分二进制和非二进制计数器。按计数的增减趋势,可分加法或减法计数器等。目前,无论是TTL还是CMOC集成电路,都有品种齐全的中规模集成计数电路。作为使用者可以借助器件手册提供的功能表和工作波形以及引脚分布图,就能正确地使用这些器件。 4.1异步计数器

异步计数器是指计数脉冲不是直接加到所有触发器的时钟脉冲端。这样, 当一个计数脉冲作用后,计数器中某些触发器的状态发生变化,而其它触发器保持原来状态,即计数器中各触发器状态的更新与输入时钟脉冲异步。 在设计模为整数N 的异步计数器时,如果K N 2=,则为二进制计数器,例 如设计一个4位二进制计数器,1624==N ,K=4,用4个触发器级联即可。如果N 不等于2的整次幂,则是非二进制计数器,这时,可将N 写N=1*2N K 其中1N 为奇数,这样由模为K 2和模为1N 的两个计算器级联而成,其中模为1N 的计数器通常用反馈的方法构成.例如设计一个异步十进制计数器,可令 K 2=12,1N =5,就是用一个模2计数器和一个模5计数器级联.图7.1所示集成 接在各位触发器的时钟脉冲输入端,当计数脉冲来到时,应该翻转的触发器在同一时刻翻转。因此,同步计数器的工作速度比异步计数器快。同步计数器的设计可按“状态表+卡诺图+写出各触发器控制输入端的逻辑方程”,进行,然后画出逻辑电路。也可以根据状态表中各触发器输出的变化规律,直接写出各触发器控制输入端的逻辑方程,最后画出逻辑电路图。例如设计一个同步十进制加法计数器,其状态转换表如表7.1所示。采用双JK 触发器74LS76,通过分析状态转换表,可得到各触发器控制输入端的逻辑方程如下。

计算机科学与技术实验报告

哈尔滨工程大学《程序设计基础》实验报告 基础实践二 姓名:王明班级: 学号: 实验时间: 2017 年 5 月 8 日 哈尔滨工程大学计算机基础课程教学中心 实验五 实验题目1: 输入两个整数数组,每个数组有5个整数,将两者合并并排序输出。 设计思想:定义两个5个元素的数组,一个10个元素的数组,数据类型为整型,通过for循环输入前两个数组的值,并依次存入第三个数组中。另外编写排序函数,在主函数中调用对第三个数组中的元素排序并输出。 实验代码及注释: #include<> #include<>

void f1(int *a, int i, int j) { int m, n, c; int k; m = i; n = j; k = a[(i + j) / 2]; do { while (a[m]k&&n>i) n--; if (m <= n) { c = a[m]; a[m] = a[n]; a[n] = c; m+=1; n-=1; }

} while (m <= n); if (mi) f1(a, i, n); } int main() { int a1[5],a2[5],c[10]; printf("请输入两个数组,每组五个整数:\n"); for(int i=0;i<5;i++) scanf("%d %d",&a1[i],&a2[i]); for(int i=0;i<5;i++) { c[i]=a1[i]; c[i+5]=a2[i]; } f1(c,0,9); printf("排序后为:\n");

24秒篮球倒计时数电实验报告

24秒篮球倒计时数电实验报告

法商学院 《数字电路课程设计》 课程设计报告 专业: 应用电子技术 班级: 应电11301 姓名: 周灵 姓名: 李雄威 指导教师:沈田

课程设计任务书 设计题目:篮球竞赛24秒倒计时器 设计任务与要求: 设计一个篮球竞赛24秒倒计时电路,该电路能实现如下功能: 1)24秒倒计时显示功能; 2)设置外部控制开关,控制计数器的重置“24”、启动和暂停功能; 3)计数器递减至0(即时间到)时,数码管显示“00”,同时发出光电报警信号。 一、电路设计原理 经过对电路功能的分析,整个电路主要由控制电路、秒脉冲信号发生器、计数器、译码器和报警电路五个部分组成。示意图如图1所示。其中计数器和控制电路是系统的主要模块。计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数、暂停/连续计数、译码显示电路的显示与灭灯、定时时间到报警等功能。秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不是太高,故电路可采用555集成电路或由TTL与非组成的多谐振荡器构成。主体电路:24秒倒计时。24秒计数芯片的置数端清零端共用一个开关,比赛开始后,24秒的置数端无效,24秒的倒数计时器开始进行倒计时,逐秒倒计一之到零。选取“00”这个状态,通过组合逻辑电路给出截断信号,让该信号与时钟脉冲在与门中将时钟截断,使计时器在计数到零时停止。

图1-1 24秒计时器系统设计框图 二、单元电路分析 (一)控制电路 控制电路由74LS00芯片和74LS10芯片组成,实现计数器的复位、计数和保持“24”数字显示,以及报警的功能。如图2-1-1为EWB控制电路仿真图。 图2-1-1 EWB控制电路仿真图 (1)开关A:启动按钮、复位按钮 开关A接地时,计数器保持“24”状态不变,处于等待状态; 当开关A闭合时,计数器开始计时,当计数器递减计数到零时,控制电路产生报警信号; 当开关A再次接地时,计数器立即复位到预置数值,即“24”。 (2)开关B:归零按钮 当开关B接高电平时,不管计数器显示任何数值,计数器立即归零,即“00”。(3)开关C:暂停按钮 当暂停/连续开关(开关C)暂停时,计数器暂停计数,显示器保持不变; 当暂停/连续开关(开关C)处于连续时,计数器继续倒计时计数。 (二)秒脉冲发生器 为了给计数器74LS192提供一个时序脉冲信号,使其进行减计数,本设计采用555构成的多谐振荡电路(即脉冲产生电路),其基本电路如图2-2-2。

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