学士单片机简易计算器报告_第1页
学士单片机简易计算器报告_第2页
学士单片机简易计算器报告_第3页
学士单片机简易计算器报告_第4页
学士单片机简易计算器报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的简易计算器设计摘要:近年来随着科技技的飞速发展展,单片机的的应用正在不不断深入,同同时带动传统统控制检测技技术日益更新新。在实时检检测和自动控控制的单片机机应用系统中中,单片机往往往作为一个个核心部件来来使用,仅单单片机方面知知识是不够的的,还应根据据具体硬件结结构软硬件结合,加加以完善。本任务是个简易易的两位数的的四则运算,程程序都是根据据教材内和网网络中的程序序参考编写而而成,在功能能上还并不完完善,限制也也较多。本任任务重在设计计构思与团队队合作,使得得我们用专业业知识、专业业技能分析和和解决问题全全面系统的锻锻炼。关键词:单片机计算算器范围加减乘除1引言1.11计算器的历历史说起计算器器,值得我们们骄傲的是,最最早的计算工工具诞生在中中国。中国古古代最早采用用的一种计算算工具叫筹策策,又被叫做做算筹。这种种算筹多用竹竹子制成,也也有用木头,兽兽骨充当材料料的。约二百百七十枚一束束,放在布袋袋里可随身携携带。直到今今天仍在使用用的珠算盘,是是中国古代计计算工具领域域中的另一项项发明,明代代时的珠算盘盘已经与现代代的珠算盘几几乎相同。17世纪初,西西方国家的计计算工具有了了较大的发展展,英国数学学家纳皮尔发发明的"纳皮尔算筹",英国牧师师奥却德发明明了圆柱型对对数计算尺,这这种计算尺不不仅能做加减减乘除、乘方方、开方运算算,甚至可以以计算三角函函数,指数函函数和对数函函数,这些计计算工具不仅仅带动了计算算器的发展,也也为现代计算算器发展奠定定了良好的基基础,成为现现代社会应用用广泛的计算算工具。1.2电子计算器器的特殊键在使用电子计算算器进行四则则运算的时候候,一般要用用到数字键,四四则运算键和和清除数据键键。除了这些些按键,还有有一些特殊键键,可以使计计算更加简便便迅速。2单片机概述述单片机机微型计算机机是微型计算算机的一个重重要分支,也也是颇具生命命力的机种。单单片机微型计计算机简称单单片机,特别别适用于控制制领域,故又又称为微控制制器。通常,单单片机由单块块集成电路芯芯片构成,内内部包含有计计算机的基本本功能部件::中央处理器器、存储器和和I/O接口电路等等。因此,单单片机只需要要和适当的软软件及外部设设备相结合,便便可成为一个个单片机控制制系统。单片机机经过1、2、3、3代的发展,目目前单片机正正朝着高性能能和多品种方方向发展,它它们的CPU功能在增强强,内部资源源在增多,引引角的多功能能化,以及低低电压底功耗耗。3芯片简介3.1MSCC-51芯片简介MCS-51单单片机内部结结构8051是MCCS-51系列单片机机的典型产品品,我们以这这一代表性的的机型进行系系统的讲解。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器::

中央处处理器(CPU)是整个单片片机的核心部部件,是8位数据宽度度的处理器,能能处理8位二进制数数据或代码,CPU负责控制、指指挥和调度整整个单元系统统协调的工作作,完成运算算和控制输入入输出功能等等操作。·数据存储器((RAM)

80551内部有128个8位用户数据据存储单元和和128个专用寄存存器单元,它它们是统一编编址的,专用用寄存器只能能用于存放控控制指令数据据,用户只能能访问,而不不能用于存放放用户数据,所所以,用户能能使用的RAM只有128个,可存放放读写的数据据,运算的中中间结果或用用户定义的字字型表。图1·程序存储器((ROM):8051共有44096个8位掩膜ROM,用于存放放用户程序,原原始数据或表表格。·定时/计数器器(ROM):8051有两个个16位的可编程程定时/计数器,以以实现定时或或计数产生中中断用于控制制程序转向。·并行输入输出出(I/O)口:8051共有44组8位I/O口(P0、P1、P2或P3),用于对外外部数据的传传输。·全双工串行口口:8051内置一一个全双工串串行通信口,用用于与其它设设备间的串行行数据传送,该该串行口既可可以用作异步步通信收发器器,也可以当当同步移位器器使用。·中断系统:8051具备较较完善的中断断功能,有两两个外中断、两两个定时/计数器中断断和一个串行行中断,可满满足不同的控控制要求,并并具有2级的优先级级别选择。·时钟电路:8051内置最最高频率达12MHz的时钟电路路,用于产生生整个单片机机运行的脉冲冲时序,但8051单片机需外外置振荡电容容。单片机的结构有有两种类型,一一种是程序存存储器和数据据存储器分开开的形式,即即哈佛(Harvvard)结构,另一一种是采用通通用计算机广广泛使用的程程序存储器与与数据存储器器合二为一的的结构,即普普林斯顿(Prinncetonn)结构。INTEL的MCS-551系列单片机机采用的是哈哈佛结构的形形式,而后续续产品16位的MCS-996系列单片机机则采用普林林斯顿结构。下图是MCS--51系列单片机机的内部结构构示意图2。图2MCS-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/O口,中断口口线与P3口线复用。现现在我们对这这些引脚的功功能加以说明明:如图3图3Pin9:REESET/VVpd复位信号号复用脚,当当8051通电,时钟钟电路开始工工作,在RESET引脚上出现24个时钟周期期以上的高电电平,系统即即初始复位。初初始化后,程程序计数器PC指向0000H,P0-P3输出口全部部为高电平,堆堆栈指针写入07H,其它专用用寄存器被清清“0”。RESET由高电平下下降为低电平平后,系统即即从0000H地址开始执执行程序。然然而,初始复复位不改变RAM(包括工作作寄存器R0-R7)的状态,8051的初始态。8051的复位位方式可以是是自动复位,也也可以是手动动复位,见下下图4。此外,RESETT/Vpd还是一复复用脚,Vcc掉电其间间,此脚可接接上备用电源源,以保证单单片机内部RAM的数据不丢丢失。图4·Pin30::ALE/当当访问外部程程序器时,ALE(地址锁存)的输出用于于锁存地址的的低位字节。而而访问内部程程序存储器时时,ALE端将有一个1/6时钟频率的的正脉冲信号号,这个信号号可以用于识识别单片机是是否工作,也也可以当作一一个时钟向外外输出。更有有一个特点,当当访问外部程程序存储器,ALE会跳过一个个脉冲。如果单片机是EEPROM,在编程其其间,将用于于输入编程脉脉冲。·Pin29::当访问外部部程序存储器器时,此脚输输出负脉冲选选通信号,PC的16位地址数据据将出现在P0和P2口上,外部部程序存储器器则把指令数数据放到P0口上,由CPU读入并执行行。·Pin31::EA/Vppp程序存储储器的内外部部选通线,8051和8751单片机,内内置有4kB的程序存储储器,当EA为高电平并并且程序地址址小于4kB时,读取内内部程序存储储器指令数据据,而超过4kB地址则读取取外部指令数数据。如EA为低电平,则则不管地址大大小,一律读读取外部程序序存储器指令令。显然,对对内部无程序序存储器的8031,,EA端必须接地地。在编程时,EAA/Vpp脚还需加加上21V的编程电压压。4相关知知识4.11数码管显示示在本任务中用44位数码管显显示当前数值值的千,百,十十,个,由于于数码管个数数多,如采用用静态显示方方式,则占用用单片机的II/O口线太太多,如果用用定时器/计数器的串串行移位寄存存器工作方式式及外接串入入并出移位寄寄存器74LLS164的的方式,则电电路复杂。所所以,在数码码管个数较多多时,常采用用动态显示方方式。如图1-1所示示为单片机应应用系统中的的一种数码管管动态显示电电路图,4位数码管的的相同段并联联在一起,由由一个8位I/O(P1口)输出出字形码控制制显示某一字字形,每个数数码管的公共共端由另外一一个I/O口(P0口)输出的字位位码控制,即即数码管显示示的字形是由由单片机I//O口输出的的字形码确定定,而哪个数数码管点亮是是由单片机II/O口输出出的字位码确确定的。4个数码管分分时轮流循环环点亮,在同同一时刻只有有1个数码管点点亮,但由于于数码管具有有余辉特性及及人眼具有视视觉暂留特性性,所以适当当地选取循环环扫描频率,看看上去所有数数码管是同时时点亮的,察察觉不出闪烁烁现象。动态态显示方式所所接数码管不不能太多,否否则会因每个个数码管所分分配的实际导导通时间太少少,使得数码码管的亮度不不足。在本任任务中,为了了简便,字形形码和字位码码都没由加驱驱动电路,在在实际应用中中应加驱动电电路。数码管管有共阴极和和共阳极两种种,对于共阳阳数码管,字字形驱动输出出0有效,字位位驱动输出11有效;而对对于共阴数码码管则相反,即即:字形驱动动输出1有效,字位位驱动输出00有效。4.22矩阵按键键盘是单片机系系统中最常用用的人机对话话输入设备,用用户通过键盘盘向单片机输输入数据或指指令。键盘控控制程序需完完成的任务有有:监测是否否有键按下,有有键按下时,在在无硬件去抖抖的动电路时时,应用软件件延时方法消消除按键抖动动影响;当有有多个键同时时按下时,只只处理一个按按键,不管一一次按键持续续多长时间,仅仅执行一次按按键功能程序序。矩阵按键扫描程程序是一种节节省IO口的方法,按键数目越越多节省IO口就越可观观,思路:先先判断某一列列(行)是否否有按键按下下,再判断该该行(列)是是那一只键按按下。但是,在在程序的写法法上,采用了了最简单的方方法,使得程程序效率最高高。本程序中中,如果检测测到某键按下下了,就不再再检测其它的的按键,这完完全能满足绝绝大多数需要要,又能节省省大量的CPU时间。本键盘扫描程序序的优点在于于:不用专门门的按键延时时程序,提高高了CPU效率,也不不用中断来扫扫描键盘,节节省了硬件资资源。另外,本本键盘扫描程程序,每次扫扫描占用CPU时最短,不不论有键按下下或者无键按按下都可以在在很短的时间间完成一次扫扫描。本键盘扫描子程程序名叫key,每次要扫扫描时用lcallkey调用即可。5计算器硬硬件电路设计计8051单片机机的P2口作键盘盘口,其中为为键盘扫描输输出线,为键键盘扫描输入入线。键盘由由4*4共16个按键组组成,10个数字键键(由0-99组成)5个运算符号号(加减乘除除等于)组成成,1个清除键(作作用相当于整整体复位)。4个数码管用于显示当前数值的千,百,十,个,采用动态显示方式,P1口接4个数码管的七段,P0口分别接4个数码管的公共端,P1口输出数码管的字形码,P0口输出数码管的字位码。6计算器程程序设计6.11存储单元分分配30H单元:数数值个位显示示单元;311H单元:数数值十位显示示单元;322H单元:数数值百位显示示单元;333H单元:数数值千位显示示单元;233H单元:第第一操作数存存储单元;224H单元::第二操作数数存储单元;;25H单元::键值暂存单单元;27HH单元:清除除键状态;334H-377H单元:结结果数据转换换暂存单元;;38H-339H单元::结果高低88位暂存单元元;R5单元:操操作数计数单单元;R4单元:操操作数数值位位数计数单元元;R3单元:运运算符号存储储单元。6.2主程序序设计主程序进行程序序中用到的一一些存储单元元的初始化,数数值显示和44*4键盘扫扫描。首先,进进行存储单元元初始化,给给数码管显示示单元30HH-33H赋赋予“0000”字形数据,将将数值计数单单元,存储单单元,23HH-25H,,34H-337H,388H,39HH,3AH,,3BH,33CH,赋予予初值零。之之后,调用键键盘扫描子程程序,和数码码管显示数据据转换程序,数数码管动态显显示子程序。主主程序不断进进行键盘扫描描,数码管显显示数据转换换子程序和动动态显示子程程序。6.3数码管管显示数据转转换子程序CCONV由于数值单元存存放的是二进进制数,而用用户熟悉的是是十进制数,所所以应将数值值单元中的二二进制转换为为十进制数,即即BCD码。要要通过数码管管显示出当前前数值,还必必须将BCDD码进一步转转换为七段码码,转换的最最终结果数据据存放于显示示缓冲区300H-33HH单元中,其其中30H单元存存放数值的个个位七段码,31H单元存放数值的十位七段码,32H单元存放数值的百位七段码,33H单元存放数值的千位七段码。6.4数码管管动态显示子子程序本任务由P1口口输出字形码码,P0口输出字字位码。先将将存放于300H单元的数数值个位七段段码由P1口输出,同同时P0口输出使使数值个位显显示数码管点点亮的字位码码。由于采用用的是共阳数数码管,所以以只有该位数数码管对应的的P0.0为1,其他位位位0,点亮延时时10MS。然然后P1口输出数数值十位七段段码,P0..1位1,数值十位位数码管点亮亮,延时100MS。接着着P1口输出数数值百位七段段码,P0..2为1,数值百位位数码管点亮亮,延时100MS。最后后P1口输出数数值千位七段段码,P0..3为1,数值千位位数码管点亮亮,延时100MS。7系统硬件件设计选用设备80551单片机一一片选用设备备:8051弹片机一一片,4*44键盘一个,44位共阳极的的七段数码管管一个,连线线若干。7.11系统总框图图如下:7.2计计算器硬件线线路图图1-17.3系统工工作原理(1)首先赋予予显示缓冲初初始值‘00000’,并把数据据存储单元清清零。(2)主程序调调用键盘扫描描子程序,判判断键值,是是数字第一次次直接赋予223H单元,如如是第二次输输入数字,则则把第一次值值乘十后与第第二次值相加加,结果存储储到23H单元,并并R4计数2次,表示已已输入两位,扫扫描键值时就就不在赋值和和显示。等待待运算符号的的按下,按下下等于号就直直接与零计算算并显示,如如加减乘除就就R5加一并把把R4清零,表表示可以输入入下一操作数数,与第一次次相同,并等等待等于键按按下。清零键键则不管在任任何情况下都都清零,相当当与软复位。(3)在扫描完完键盘后,调调用数据显示示转换子程序序,并选择,由由于本任务是是两位四则运运算,只有乘乘法中结果会会超出FFHH的范围,在在此就是选择择处理方式,超超出范围则跳跳过数据显示示转换子程序序,未超出则则调用数据显显示转换子程程序,两种选选择都是要把把值转换为七七段码。(4)调用数码码管动态显示示子程序,显显示数值,重重新循环。8程序源代码码;显示缓冲区首首地址定义DISPBUFFEQU30H;主程序的入口口地址ORG00000H ;4个数码管显显示“0000”字形数据START:MMOVDIISPBUFF,#0C00HMOVDISSPBUF++1,#0CC0HMOVDISSPBUF++2,#0CC0HMOVDISSPBUF++3,#0CC0HMOV37HH,#00HH;数值初始始化MOV27HH,#00HHMOV26HH,#00HHMOV25HH,#00HHMOV24HH,#00HHMOV23HH,#00HHMOVR3,,#00HMOVR5,,#00HMOVR4,,#00H;调用键盘扫描描子程序LOOP:LCALLLKEYMOVR6,,27HCJNER66,#00HH,STARRT;清除键键判断MOVR6,,26H;显示数据转换换子程序选择择CJNER66,#00HH,FA;调用数码管显显示数据转换换子程序LCALLCCONV;调用数码管动动态显示子程程序FA:LCALLLDISSPSCANNSJMPLOOOPKEY:MOVVP2,##0FH;键盘扫描子子程序MOVA,PP2ANLA,##0FHCJNEA,,#0FH,,K10RETK10:JBP2.0,,K20K11:MOVVP2,##0EFHJBP2.00,K12CJNER55,#00HH,L1MOVR4,,#00HINCR5MOVR3,,#1HL1:LJMPPCENDDK12:MOOVP2,,#0DFHHJBP2.00,K13CJNER55,#00HH,L2MOVR4,,#00HINCR5MOVR3,,#2HL2:LJMPPCENDDK13:MOOVP2,,#0BFHHJBP2.00,K14CJNER55,#00HH,L3MOVR4,,#00HINCR5MOVR3,,##3HL3:LJMPPCENDDK14:MOOVVP2,,##7FHJBP2.00,,KILCJNER55,,#00HH,,L4MOVR4,,##00HINCR5MOVR3,,##4HKIL:LJMMPPKENNDDL4:LJMPPCENDDK20:JBPP2.1,,KK30K21:MOVVP2,##00EFHJBP2.11,,K22LJMPDYYUUK22:MOVVP2,##00DFHJBP2.11,,K23MOV25HH,,#3HLJMPOPPRRK23:MOVVP2,##00BFHJBP2.11,,K24MOV25HH,,#6HLJMPOPPRRK24:MOVVP2,##77FHJBP2.11,,cctvvMOV25HH,,#9HLJMPOPPRRcctv:ljjmmpkeenndK30:JBPP2.2,,KK40K31:MOOVVP2,,##0EFHHJBP2.22,,K32MOV25HH,,#0HLJMPOPPRRK32:MOVVP2,##00DFHJBP2.22,,K33MOV25HH,,#2HLJMPOPPRRK33:MOVVP2,##00BFHJBP2.22,,K34MOV25HH,,#5HLJMPOPPRRK34:MOVVP2,##77FHJBP2.22,,KENDDMOV25HH,,#8HLJMPOPPRRK40:JBPP2.3,,KKENDK41:MOOVVP2,,##0EFHHJBP2.33,,K42INC27HHLJMPKEENNDK42:MOVVP2,##00DFHJBP2.33,,K43MOV25HH,,#1HLJMPOPPRRK43:MOVVP2,##00BFHJBP2.33,,K44MOV25HH,,#4HLJMPOPPRRK44:MOVVP2,##77FHJBP2.33,,KENDDMOV25HH,,#7HLJMPOPPRROPR:;;键键值存储INCR4CJNER55,,#00HH,,CHANNGGCJNER44,,#2H,,KKBKZHI:MOVA,2200HMOVB,##00AHMULABMOV20HH,,25HADDA,2200HCJNER55,,#00HH,,CZHMOV23HH,,ALJMPKEENNDCZH:MOV24HH,,ALJMPKEENNDKEND:MOOVVP2,,##0FHMOVA,PP22ANLA,##00FHCJNEA,,##0FH,,KKENDRETCHANG:CJNER44,,#2H,,HHONGAJMPZHHIIHONG:JNNCCCENNDDINCR5MOV20HH,,25HMOV24HH,,25HLJMPCEENNDKBK:JNCCCENDDMOV20HH,,25HMOV23HH,,25HLJMPCEENNDDYU:;结果果计计算MOVR5,,##00HMOVR4,,##00HMOV25HH,,#00HHCJNER33,,#1H,,SSMOVA,2233HADDA,2244HMOV23HH,,ASJMPCEENNDS:CJNERR3,#22HH,S1CLRCMOVA,2233HCJNEA,,##00H,,JJIANFFAAMOV23HH,,#0EHHSJMPCEENNDJIANFA::SSUBBAA,24HHMOV23HH,,ASJMPCEENNDS1:CJNEER3,##33H,S22MOVA,2233HMOVB,2244HMOVA,2233HMULABMOVR6,,BBCJNER66,,#00HH,,CHENNGGMOV23HH,,ASJMPCEENNDS2:CJNEER3,##44,CENNDDMOVA,2244HCJNEA,,##00H,,ZZYMOVA,##000HSJMPCEENNDZY:MOVAA,23HHMOVB,2244HDIVABMOV23HH,,ACEND:MOOVVP2,,##0FHMOVA,PP22ANLA,##00FHCJNEA,,##0FH,,CCENDRETCHENG:MMOOVR33,,BMOVB,##664HDIVABMOV36HH,,AMOVA,BBMOVB,##00AHDIVABMOV35HH,,AMOV34HH,,BMOVDPTTRR,#TAABBLEXIAN:MOVA,3344HADDA,##66HMOVB,##00AHDIVABMOV25HH,,AMOV34HH,,BMOVA,BBMOVCA,,@@A+DPPTTRMOVDISSPPBUF,,AAMOVA,3355HADDA,##55HADDA,2255HMOVB,##00AHDIVABMOV25HH,,AMOV35HH,,BMOVA,BBMOVCA,,@@A+DPPTTRMOVDISSPPBUF++11,AMOVA,3366HADDA,##22HADDA,2255HMOVB,##00AHDIVABADDA,3377HMOV37HH,,AMOVCA,,@@A+DPPTTRMOVDISSPPBUF++33,AMOV36HH,,BMOVA,BBMOVCA,,@@A+DPPTTRMOVDISSPPBUF++22,ADJNZR66,,XIANNMOV266HH,#1HHAJMPCEENNDCONV:;;数码管显示示数据转换换子子程序CJNER55,,#02HH,,BEIMOVA,2244HAJMPJIINNGBEI:MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论