欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于51单片机的简易计算器论文设计说明.docx

    • 资源ID:10383122       资源大小:188.93KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的简易计算器论文设计说明.docx

    1、基于51单片机的简易计算器论文设计说明电子设计结课论文题 目: 系 别: 专 业: 学生: 学 号: 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发年 月 日基于51单片机的简易计算器摘要:工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以智能化测量控制仪表原理与设计、MCS-51系列单片微型计算机及其应用课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现两位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的容

    2、:1)基于单片机简易计算器的基本功能,同时对矩阵键盘及1602显示原理进行了简单的阐述;2)介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;3)对系统各功能模块的软、硬件实现进行了详细的设计说明。关键词:MCS-51 8051单片机;计算器;加减乘除 第一章 绪论1.1课题简介单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。本系统就是充分利用了8051芯片的I/O引脚

    3、。系统统采用MSC-51系列单片机Intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储,计算程序则是参照教材。至于位数和功能,如果有需要可以设计扩充原系统来实现 。1.2设计目的通过本次工程实践,运用智能化测量控制仪表原理与设计、MCS-51系列单片微型计算机及其应用所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。1.3设计任务在本次工程实践中,主要完成如下方面的设计

    4、任务:1)简要综述单片机技术发展的国外现状及数码管动态显示和矩阵键盘基本原理;2)掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;3)了解单片机数据转换功能及工作过程;4)完成主要功能模块的硬件电路设计及必要的参数确定;5)用protues软件完成原理电路的绘制;6)完成系统设计说明书。1.4 章节安排说明整个设计总共分为四个章节,第一章是前言部分,主要介绍了设计基于单片机简易计算器的意义、目的及主要容;第二章简要介绍了单片机发展的国外现状及键盘扫描,数据转换,和动态显示原理进行了简要的说明。第三章是器件简介,这一部分主要介绍了系统的所用主要器件的选择。第四章是

    5、系统详细设计阶段,分为硬件设计和程序设计。按照程序设计的各部分实现的功能不同,将整个软件系统分成了三个块,并对每一个功能块所采用的元器件进行了详细介绍。此外还编写了主要功能模块的基本程序,详尽阐述了各模块的工作过程。还有总流程图,源代码,硬器件铺线图。第二章 计算器系统简介2.1 单片机发展现状单片机的发展趋势:低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1)低功耗CMOS化 MCS-51

    6、系列的8051推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。 2)微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(

    7、ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片成的系统正朝微型化方向发展。 3)主流与多品种共存 现在虽然单片机的品种繁多,各具特

    8、色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.2 计算器系统现状计算器一般由运算器、控制器、存储器、键盘、显示器

    9、、电源和一些可选外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS工艺制作的大规模集成电路(见互补金属-氧化

    10、物-半导体集成电路),并在部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。2.3 简易计算器系统简介本计算器是以MCS-51系列8051单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码管动态显示。第三章 主要器件简介3

    11、.1 MCS-51系列单片机简介 8051是MCS-51系列单片机的典型产品,以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,

    12、专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 图3-1 8051部结构图程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步

    13、通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普

    14、林斯顿结构。下图是MCS-51系列单片机的部结构示意图3-2。 图3-2 MCS-51结构图MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/

    15、O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3-3 图3-3双列直插式封装引脚图Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位。此外,RESET/Vpd还是一复用

    16、脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机部RAM的数据不丢失。见下图3-4为两种复位方式和两种时钟方式: 图3-4复位方式图与时钟方式图Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器

    17、则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的外部选通线,8051和8751单片机,置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。3.2 其它器件简介3.2.1 1602显示1602液晶模块部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符

    18、都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机程序中还可以用字符型常量或变量赋值,如A。3.2.2矩阵按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省I

    19、O口的方法,按键数目越多节省IO口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。第四章 计算器系统设计4.1 计算器硬件电路设计8051单片机一片,4*4键盘一个,1602 lcd一个,连

    20、线和电阻和开关若干。8051单片机的P3口作键盘口,P0为1602接口。4.2计算器程序设计#include#define uchar unsigned char#define uint unsigned intuchar j;/在键盘检测函数中使用,判断是否有按键按下 ,有则加1sbit d=P26;/点按键判断void delay(uchar z)/延时函数 uchar x,y; for(x=z;x0;x-) for(y=110;y0;y-); uchar code A=0,1,2,3,4,5,6,7,8,9,+,-,*,/,=, ,.;/lcd调用显示数组uchar keyscan()

    21、/键盘检测 uchar temp,key; j=0; if(d=0) delay(100); if(d=0) key=16; while(d=0); j+; P3=0xfe; temp=P3; if(temp!=0xfe) delay(100); temp=P3; if(temp!=0xfe) j+; switch(temp) case 0x7e:key=3;break; case 0xbe:key=2;break; case 0xde:key=1;break; case 0xee:key=0;break; while(P3!=0xfe); P3=0xfd; temp=P3; if(temp!

    22、=0xfd) delay(100); temp=P3; if(temp!=0xfd) j+; switch(temp) case 0x7d:key=7;break; case 0xbd:key=6;break; case 0xdd:key=5;break; case 0xed:key=4;break; while(P3!=0xfd) ; P3=0xfb; temp=P3; if(temp!=0xfb) delay(100); temp=P3; if(temp!=0xfb) j+; switch(temp) case 0x7b:key=11;break; case 0xbb:key=10;bre

    23、ak; case 0xdb:key=9;break; case 0xeb:key=8;break; while(P3!=0xfb) ; P3=0xf7; temp=P3; if(temp!=0xf7) delay(100); temp=P3; if(temp!=0xf7) j+; switch(temp) case 0x77:key=15;break; case 0xb7:key=14;break; case 0xd7:key=13;break; case 0xe7:key=12;break; while(P3!=0xf7) ; return(key);sbit rs=P10;/定义lcd引脚

    24、sbit rw=P11;sbit en=P25;void wc(uchar a)/lcd写指令函数 delay(5); rs=0;/写指令 rw=0;/写 P0=a;en=0; delay(10); en=1; void wd(uchar a)/lcd写数据函数 delay(5); rs=1;/写数据 rw=0;/写 P0=a; en=0; delay(5); en=1; unsigned long sum1,sum2; /sum1为第一个数,sum2为第二个数/uchar g1,s1;/小数位 float sum_1,sum_2,xs1,xs2;/把按下的小数记为xsvoid main()

    25、uchar i,k,ji,dian,xsw1,xsw2,ts; /i统计数字按下次数,k为判断是否按下运算符并判断是什么运算, /ji为按下总次数,显示地址用dain为记是否按下点 /xsw为输入的小数位的多少的标注 d=1; delay(15); wc(0x38); delay(15); wc(0x38); delay(15); wc(0x38); wc(0x0c); wc(0x06); wc(0x01); wc(0x80+0x0f); wd(0x30);/初始位为0 wc(0x80+0x0f); while(1) keyscan(); if(j0)/当有按键按下,keyscan()函数使j

    26、+,才写入数据 if(keyscan()=15)/如果输入为归零 k=0;sum1=0;sum2=0;ji=0;sum_1=0;sum_2=0;xsw1=0;xsw2=0;xs1=0,xs2=0;ts=0;dian=0; wc(0x06);wc(0x01);wc(0x80+0x0f);wd(0x30);wc(0x80+0x0f);/归零 else if(9keyscan()&keyscan()14)/如果输入为运算符 dian=0; switch(keyscan() case 10:wd(Akeyscan();k=1;break; case 11:wd(Akeyscan();k=2;break

    27、; case 12:wd(Akeyscan();k=3;break; case 13:wd(Akeyscan();k=4;break; else if(0=keyscan()|keyscan()=16)/如果按下为数字或小数点 ji+;/lcd显示用到,标记地址 if(k0)/判断是否按下运算符,如果按下,把后面的数交给sum2 if(keyscan()=16) /如果按下为小数点 wd(A16);/显示点 dian+; /表示已经按下点 /sum=0; else if(dian0) wd(Akeyscan(); xsw2+;/按下多少位小数 xs2=xs2*10+keyscan(); els

    28、e wd(Akeyscan(); /sum2=a(keyscan(); sum2=sum2*10+keyscan(); else if(keyscan()=16) /如果按下为小数点 wd(A16);/显示点 dian+; /表示已经按下点 else if(dian0) wd(Akeyscan(); xsw1+;/按下多少位小数 xs1=xs1*10+keyscan(); else wd(Akeyscan(); /sum1=a(keyscan(); sum1=sum1*10+keyscan(); wc(0x07); /写指令,写一个屏幕右移。 else if(keyscan()=14&k0) /如果按=,且之前有运算符输入,显示结果 if(xsw10) switch(xsw1) case 1:sum_1=sum1+xs1/10;break; case 2:sum_1=sum1+xs1/100;break; case 3:sum_1=sum1+xs1/1000;brea


    注意事项

    本文(基于51单片机的简易计算器论文设计说明.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开