计算器模拟系统设计毕业设计Word文件下载.docx

上传人:b****2 文档编号:3709332 上传时间:2023-05-02 格式:DOCX 页数:28 大小:320.06KB
下载 相关 举报
计算器模拟系统设计毕业设计Word文件下载.docx_第1页
第1页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第2页
第2页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第3页
第3页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第4页
第4页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第5页
第5页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第6页
第6页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第7页
第7页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第8页
第8页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第9页
第9页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第10页
第10页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第11页
第11页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第12页
第12页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第13页
第13页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第14页
第14页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第15页
第15页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第16页
第16页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第17页
第17页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第18页
第18页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第19页
第19页 / 共28页
计算器模拟系统设计毕业设计Word文件下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算器模拟系统设计毕业设计Word文件下载.docx

《计算器模拟系统设计毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算器模拟系统设计毕业设计Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。

计算器模拟系统设计毕业设计Word文件下载.docx

3.3其他电路设计7

3.3.1复位、时钟电路设计7

3.3.2多位数码管电路显示的驱动电路8

4软件设计9

4.1主程序的设计9

4.2显示、读键模块的设计10

4.3其他内容说明11

4.3.1定时查键的程序设计11

4.3.2软件的可靠性设计12

4.4源程序代码(见附录)12

5调试与仿真12

5.1KeilC51单片机软件开发系统12

5.2proteus的操作12

5.2.1硬件电路图的接法操作12

5.2.2单片机系统PROTEUS设计与仿真过程13

6结束语13

附录:

计算器程序代码15

参考文献:

23

 

前言

近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。

与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。

影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。

其中系统的抗干扰性能是系统可靠性的重要指标。

本设计采用AT89C51芯片,实现了利用单片机进行了一个简单计算器设计。

允许对输入数据进行加减乘除运算及LED显示。

如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。

另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件显示,如LED显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。

设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。

简易计算器的原理与设计是单片机课程设计课题中的一个。

在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。

单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,时学习查阅资料、参考资料的方

1设计任务和要求

1.1设计要求

本次课程设计,我选择的课题是单片机数字计算器硬软件设计,设计任务为:

◊扩展4*4键盘,其中10个数字,5个功能键,1个清零;

◊使用五位数码管接口电路;

◊完成十进制的四则运算(加、减、乘、除);

◊实现低于三位小于255数字的连续运算;

◊使用keil软件编写程序;

◊最后用ptoteus仿真;

1.2设计方案的确定

按照设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于实验箱的硬件电路已经固定,故选择串行静态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行静态显示显示运算结果。

主程序进行初始化,采用定时器0进行查键,每次按键后调用显示子程序。

2单片机简要原理

2.1AT89c51介绍

图2.1-1AT89C51管脚图

芯片AT89C51的外形结构和引脚图如2—1所示。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要特性:

◊8051CPU与MCS-51兼容

◊4K字节可编程FLASH存储器(寿命:

1000写/擦循环)

◊全静态工作:

0Hz-24KHz

◊三级程序存储器保密锁定

◊128*8位内部RAM

◊32条可编程I/O线

◊两个16位定时器/计数器

◊5个中断源

◊可编程串行通道

◊低功耗的闲置和掉电模式

◊片内振荡器和时钟电路

管脚说明

◊VCC:

供电电压(图中未画出)

◊GND:

接地。

◊P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

◊P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

◊P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

◊P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

管脚备选功能

◊P3.0RXD(串行输入口)

◊P3.1TXD(串行输出口)

◊P3.2/INT0(外部中断0)

◊P3.3/INT1(外部中断1)

◊P3.4T0(记时器0外部输入)

◊P3.5T1(记时器1外部输入)

◊P3.6/WR(外部数据存储器写选通)

◊P3.7/RD(外部数据存储器读选通)

◊P3口同时为闪烁编程和编程校验接收一些控制信号。

◊RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

◊ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令时才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

◊/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

◊/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

◊XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

◊XTAL2:

来自反向振荡器的输出引脚。

2.2芯片74LS164介绍

74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,下面结束一下这个元件的基本知识。

74LS164外部结构和引脚如图2—2所示:

图2.2-174LS164引脚图

◊串行输入带锁存

◊时钟输入,串行输入带缓冲

◊异步清除

◊最高时钟频率可高达36Mhz

◊功耗:

10mW/bit

◊74系列工作温度:

0Cto70C

◊Vcc最高电压:

7V

◊输入最高电压:

◊最大输出驱动能力:

高电平:

-0.4mA;

低电平:

8mA

引脚功能:

◊在单片机系统中,如果并行口的IO资源不够,而串行口又没有其他的作用,那么我们可以用74LS164来扩展并行IO口,节约单片机资源。

74LS164是一个串行输入并行输出的移位寄存器。

并带有清除端。

◊其中,Q0—Q7并行输出端;

A,B串行输入端;

MR清除端,为0时,输出清零。

CP时钟输入端。

3硬件设计

3.1键盘电路的设计

键盘可分为两类:

编码键盘和非编码键盘。

编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。

通用计算机使用的标准键盘就是编码键盘。

在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。

当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。

但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路通常采用非编码键盘。

非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。

本课题需要的是16个按键,故选择用非编码键盘,为了减少所占用的端口,由P1口采用4*4矩阵式键盘。

具体电路连接如图3.1-1所示。

图3.1-14*4键盘输入

3.2显示电路的设计

当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法。

数码管显示有静态显示和动态显示两种方法。

为了减少端口的使用,故选择静态显示,并采用共阴极接法电路。

LED数码管显示块是由发光二极管显示字段的显示器件。

在单片机应用中通常使用七段LED。

这种显示块有共阴极和共阳极两种。

3.3其他电路设计

3.3.1复位、时钟电路设计

当使用内部振荡电路时,XTAL1.XTAL2引脚外接石英晶体和微调电容,如图所示,图中C2.C3大小一般为30PF。

还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。

如何进行复位呢?

只用在单片机的RST引脚上保持两个。

图3.3.1-1时钟电路图3.3.1-2复位电路

机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。

当主电源Vcc发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。

3.3.2多位数码管电路显示的驱动电路

单片机应用中只有一位的的数字显示是不常见的,即要同时驱动多个数码管显示,就必须要同时让多个数码管加上各自不同的选片段,这个属于静态显示。

所谓静态显示,就是每一个显示器,都要占用单独的具有封锁功能的I/O接口用于笔画字段形代码,单片机只要把显示的字形代码发送到接口电路,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提高单独锁存的I/O接口电路很多,这里以常用的串并转化电路74LS164为例介绍一种常用静态显示电路。

图3.3.2-1五位数码管静态显示框图及接法

5片74LS164首尾相串,而时钟端接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到第一个74LS164中了,当第二个8个脉冲到来时,这个数据就进入了第二个片74LS164,新的数据则进入了第一个74LS164。

这样,当第五个脉冲完成后,首次送出的数据被送入到最左面的74LS164中,其他数据依次出现在第一、第二、第三、第四片74LS164中。

入口:

把要显示的数分别放在显示缓冲区60H-64H共五个单元中,并且分别对应五个数码管LED1-LED4。

出口:

蒋预置在显示缓冲区中的五个数组成相应的现实字形码,然后输出到显示器中显示。

图3.3.2-2计算器设计图

4软件设计

在软件规划要求下,简易计算器的程序主要包括以下功能模块:

主模块,为系统初始化。

显示与读键模块,分显示子程序,判键程序段、运算操作子程序等部分;

4.1主程序的设计

图4.1-1主程序流程图

主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如图4—1所示。

数字送显示缓冲程序设计:

简易计算器所显示的数值最大位三位。

要显示数值,先判断数值大小和位数,如果是超过三位或大于255,将不显示数字。

可重新输入数字,再次计算。

运算程序的设计:

首先初始化参数,送LED低位显示“0”,高位不显示。

然后扫描键盘看是否有键输入,若有,读取键码判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。

4.2显示、读键模块的设计

LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。

简易计算器用到的数字0~9的共阴极字形代码如下表:

表4.2-1共阴极字形代码表

显示字

g

f

e

d

c

b

a

段码

1

3fh

06h

2

5bh

3

4fh

4

66h

5

6dh

6

7dh

7

07h

8

7fh

9

6fh

为了实现键盘的输入功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。

为了得到被按键的键码,使用行扫描法识别按键。

4.3其他内容说明

4.3.1定时查键的程序设计

进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。

如果不是则退出中断程序。

读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。

第一次所有行线均输出低电平,从所有读入键盘信息(列信息);

第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。

将两次读键信息进行组合就可以得到按键的特征编码,然后通过查表得到按键的顺序编码。

将各特征编码按希望的顺序排成一张表,然后用当前读得的特征码来查表。

当表中有该特征码时,它的位置就是对应的顺序编码;

当表中没有该特征码时,说明这是一个没有定义的键码,与没有按键(0FFH)同等看待。

数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。

首先对数字键的程序段进行相应的设计,如果运算键(+、-,*,/)响应标志不为一,则将输入的数字送入第一个操作数缓存区,并且清空所有响应位。

否则送入第二个操作数缓存区。

其次对功能键的程序段进行相应的设计。

如果功能键(+、-,*,/)第一次被按下,则置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备,如果是第二次按下则先调用运算操作子程序,执行上次按下的运算键的运算,置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操作数的缓存区,为输入操作数做准备。

如果是’C’键按下,则先判断运算键响应位是否为一,如果不为一,则清空第一个操作数,否则清空第二个操作数。

如果是’=’键按下,则调用运算操作子程序。

4.3.2软件的可靠性设计

提高本仪器的可靠性措施主要有:

◊ 

为防止程序跑飞,软件中设置了软件陷阱

为防止键盘抖动造成按键错误,采取了软件防

为了保证结果的正确性,结果溢出时显示错误代码0

4.4源程序代码(见附录)

5调试与仿真

下面用Keil与porteus仿真软件介绍数字计算器的仿真与调试。

5.1KeilC51单片机软件开发系统

采用KEIL开发的89c51单片机应用程序步骤:

◊在keil集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL公司下的AT89C51)

◊用keil的文本编辑器编写源文件,可以是汇编文件(.ASM),并将该文件添加到项目中去。

一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。

◊通过keil的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。

◊对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。

◊对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。

5.2proteus的操作

5.2.1硬件电路图的接法操作

◊放置选择(删除)元器件

◊移动元器件

◊缩放视图

◊连接导线

◊仿真,调试

5.2.2单片机系统PROTEUS设计与仿真过程

Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。

全部过程都是在计算机上通过Proteus来完成的。

其过程一般也可分为三步:

◊在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。

简称Proteus电路设计。

◊在Keil平台上进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*.hex)。

简称Proteus源程序设计和生成目标代码文件。

◊在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。

它在相当程度上反映了实际单片机系统的运行情况。

简称Proteus仿真。

6结束语

基于单片机的设计至今为止已经进入了令人鼓舞的阶段,在进行了两周时间的摸索与设计,使我不仅仅对于单片机软件与硬件的常用设计与功能有所认识,还使我对于一项设计研究的制作过程所需要的详细步骤和具体实现方法有了进一步的掌握。

由于我们的初步尝试,当中的缺点是无可非议地存在着。

当然在这次宝贵的设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,但是,仅仅是完成了作品还是不可以自我满足的,我们要认真的思考设计过程中遇到的问题,多查资料,将理论与实际相结合思考,并在以后的学习中更要加倍注意犯过的错误。

总之,这次设计从软件编写调试到软硬件联机调试,发现了自己的许多不足,在以后的学习中,我将一定回注意。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为自动化专业的学生来说掌握单片机的开发技术是十分重要的。

我的题目是计算器模拟系统的设计,对于我们这些工科学生来说,这是一次考验。

怎么才能找到课堂所学与实际应用的最佳结合点?

怎样让自己的业余更接近专业?

怎样让自己的计划更具有序性,而不会忙无一用?

这都是我们所要考虑和努力的。

这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。

不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2