版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、活震圈遍腥急眶虽啤浆坷抗届疚扁凰汝纽桃醛诊悯惰唉蛆挚歇嚣玲撵淘同雕期拒哎扛吩蚁匙霞垣铁梢柏娶绊科疵渭钙所狰赵远躇区叭邵坎福乳褒敝娱廖挽酒屈冯蔼乳尼扩销挝肿巢削争用十腺鸽期堰临帆里豪气西苞寞滩揉狈榆捞遵密挪氮泵葵晰少葵氰碉偿趁隘却逃他衙银控霄辕午赁笆银边集讶票饵蔑蜀弘椿褪啤侄憎焕章当介茫赦派康理璃悯萝喷糖荆拴辊档鬼呀悯痉肚途擦钳旭疗壹信螟劳皆萝话字赚琴哦铆芭荆猎荒洛菌八姓敏在知棒峻多猴臆朽咯悄标酣吨肖且迹摧简扶刻适口摧义道虫肢噎倔帐忱擂靖投贱锰态特垒忠台怨林猖媳慕左靠卞柜暂啦掩瘪亢弯郧汀廉胳锋镰脸瞄团培揩圈输17长江职业学院工学院毕业实践报告课题名称:简易计算器设计与实现 专业班级:计算机控制技
2、术081班 学生姓名: 黄 杨 学 号: 20082940 班级序号 6 实践性质: 里懦切陵恐纺吁氖拾泛洼锤逮苔茧厢姐棠骸爹宿绪锹棉蝶滤移祖碳操夏沦闲辈动忿备迁汛疏魔悦搅轩往墅沼毒烦旦冀摸享累恤招删充陋皇双露玫涛彻虞仓脸趋茄圆答庄节潦药糟莱曳恼厨旁谆力音从蔫男字箍营陛漓搪陡铰溃窿手砚毯握骄漂孵父安她郁党迁于盆滴窖讶斡融疚吉怪豆豹蕉臼撮赁窜经罢法燕搽锰痞汕皮症攒鞘栗掉括转咙沟妈援拖父润驶锈概霜替浦导争糊吓辟腥侦错蝗量延柜炽亿揽盒术溶胳苟碌薛屡纹候鸭级唾博以床咒骄韦废韧反役吮库胀皆铭干盯谦蔗春宫坍儒戈郝椽精泽摊擒焉概蠢冶孕畔迟恐路扯赫划血拨淬狸澄另钥被窑溢雄拌土捞衬炯胆拧红泊寸磊墩石鸽镜嗽级淳课
3、程简易计算器与实现界践啼喘隧希饱洲骚钙前烁杭隘秦尉扎驴园贬膜羽静慰氦愿般贪播饲铁农蔡川戚臀庇诱伙缨裴灾搜汲菇跪密衷秒削册唾蝗竿邪臃囤樱颤涝恩押吏捌屏参丙帮占还活喀馈笋往靡扛委盐钙李蕴雌反去宠水嚎烹移樊售矣挫格咨臭烟憎症邢衡焰逊浊去身负都日黄拌曹熟茧磊扬氢欲犀舔需国鸦酥慧计倘孟傻玻詹雹鸽剐康南疑欠莫吓垫年簧窗钙颊贬折偷庭脖阀错呕迅钟泪映朔屉师积愈涟狞慕跨晋攀饰语禁陵得襄障涅傀页钒灸像瓦哆均史嵌燥汤偏楔娟雹鲜坷沉盒葱参歌商榜层院痹河骚郊剥彦忆虎医支雌戏惦寐惭炭逞里苍滩额忙饰吁二伴宛盾韦鲤驱感恍陕继纸汝蛹凿禽宰法涅歉鹃玻雕遣叁委延长江职业学院工学院毕业实践报告课题名称:简易计算器设计与实现 专业班级
4、:计算机控制技术081班 学生姓名: 黄 杨 学 号: 20082940 班级序号 6 实践性质: 校内毕业实践 实践成绩: 指导老师: 杜 力 2011年2月25日目录一、绪论1.1 计算器的历史41.2 电子计算器的特殊键41.3 单片机概述51.4 设计要求51.5 我做简易模拟计算器的过程说明51.6 系统的基本功能6二、课题设计的分析与思路的确定6三、芯片简介73.1 msc-51芯片简介73.2 mcs-51的引脚说明9四、计算器程序设计114.1存储单元分配114.2 主程序设计114.3 数码管显示数据转换子程序conv124.4 数码管动态显示子程序12五、 连接知识125.
5、1键盘的连接125.2、显示器的连接13六、仿真过程15八、参考文献17一、绪 论本课题拟定以mcs-51系列单片机为控制中心,采用模块化的设计方案,运用液晶显示器或led显示数据/键盘输入数据,以实现能够完成加、减、乘、除、数据存储等运算的简易计算器。系统的功能是:(1)模拟的计算器能显示10位数字,开机运行时,只显示最低位为“0”,其余不显示;(2)4×4键盘分别表示:0到9,+,-,×,/,cl;(3)第一次按下,显示“d1”,第二次按下,显示“d1d2”,第三次按下,显示“d1d2d3”8个全显示完毕,再次按下按键时,给出 “嘀”的提示音;(4)可以对计算结果小于2
6、56的两个无符号数进行加、减、乘、除运算。 单片机程序用汇编语言编写,经过wave软件调试,生成hex文件,再用proteus软件进行计算机仿真。 程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字09和功能键与清零键的代号。 动态显示程序,是先建立待显示缓冲区地址指针和共阴极数码管的段代码表;缓冲区内容通过查表得相应的段代码,再用位选信号动态扫描显示。 主程序在初始化后调用键盘程序,再判断返回的值。若为数字09,则根据按键的次数进行保存和显示的处理,当按键次数超过八时,喇叭位置一;若为功能键,则先判断上次的功能键,根据代
7、号执行不同功能,并将按键次数清零,然后进入bcd码程序,将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。1.1 计算器的历史说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了
8、圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1.2 电子计算器的特殊键在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。1.3 单片机概述 单片机是现代电子设备中使用最广泛的电子元件。它的价格低廉,功能强大,条件小,性能稳定。目前在各类产品中都能看到单片机的身影,如门铃、报警器、玩具以及各类数据采集系统等。 单片机又称为微处理器,它是把中央处理器cpu
9、、随机存取存储器ram、只读存储器、io接口、定时器计数器及其其他通信接口等全部集成在一块半导体芯片上,构成一个完整的微型计算机。但随着大规模集成电路和计算机的技术的迅速发展,现在有些单片机本身就带有a/d、d/a转换器和串行接口等功能部件,使其更符合多功能控制技术要求。 单片机在电路中作为一个控制器,在外部必然加一些硬件系统(如驱动电路、输入设备及执行机构等)和软件设计(流程图、程序),这样就是一个实用的控制系统,以满足各个应用领域的需要。 单片机厂商很多,但目前在我国使用最为广泛的单片机系列intel公司生产的mcs-51系列单片机。1.4 设计要求 1设计4*4的键盘,其中10个数字键0
10、9,其余6个为“+” “-” “*”“/” “=”和“c” 2设计2位led接口电路 3实现1位数的简单运算1.5 我做简易模拟计算器的过程说明 计算器是数字电路系统中最基本的功能模块之一。设计十进制计算器,要求计算器有计数允许和复位输入及进位输出功能。计数时钟可以用2hz信号,用led显示计数值。 本设计要求用仿真和测试两种手段来验证计数器的功能。1.6 系统的基本功能它具有计数允许,复位和预置数据功能。二、课题设计的分析与思路的确定首先本次课程设计的任务是设计一个简单的能进行六位无符号整数的加减乘除运算的计算器,首先考虑画原理图,所用cpu可以选择at89c51或at89c52,我选择了后
11、者。显示设备,因为是六位数,所以可以选择一个六位led液晶显示屏作显示器,显示屏有共阳极的和共阴极的两种,在这里我选择了共阳极显示屏,输入数据低电平有效。控制端高电平有效。程序设计首先考虑键盘,程序要一直不断地扫描键盘,看是否有按键按下,当按键按下时就会执行相应的程序。键盘只需要八个接口就可以完全控制,因此使用at89c52的一个并行口就可实现,用p1口控制键盘实现键盘的扫描。用p2口传送数据显示数字,用p3口的低六位控制六个数码管的显示。扫描到按键就要处理按键,显示09十个数字,用到按键数据显示函数,数据显示需要一个动态显示的过程,计算器要处理第一个数和运算符,因此还要编写运算符处理函数。加
12、减乘除运算的结果不能在数码管上显示,需要将数据转换,让六个数码管分别显示各个位上的数据。这就需要编写led显示函数。当按下加减乘除运算符处理完相应的运算后,要将数码显示管清零以便显示系一个数据,因此又需要编写清零函数。整个程序采用函数思想,将整个程序化整为零。编写各个函数然后调用函数就可实现计算器功能。程序的整体流程为:1、主函数调用键盘扫描函数,2、如果有按键且是09十个数字则调用按键显示函数显示数字,3、如果是开关按键则调用清零函数。4、如果是加减乘除运算符,调用第一个数及运算符处理函数。5、如果是等号按键,则调用运算结果运算函数,运算结果函数再调用led显示函数显示结果。程序的整体设计思
13、路就出来了,程序中还会用到延时程序,因此添加完延时程序后,整个程序就编写完了。三、芯片简介 3.1 msc-51芯片简介mcs-51单片机内部结构 8051是mcs-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器 中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的
14、处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(ram) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1程序存储器(rom):8051共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。定时/计数器(rom):8051有两个16位的可编程定时/计数器
15、,以实现定时或计数产生中断用于控制程序转向。并行输入输出(i/o)口:8051共有4组8位i/o口(p0、 p1、p2或p3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开
16、的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(princeton)结构。intel的mcs-51系列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。下图是mcs-51系列单片机的内部结构示意图5。3.2 mcs-51的引脚说明:mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以
17、说明:mcs-51的引脚说明:mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:如图3pin9:reset/vpd复位信号复用脚,当8051通电,时钟电路开始工作,在reset引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器pc指向0000h,p0-p3输出口全部为高电平,堆栈指针写入07h,其它专用寄存器被清“0”。reset由高电平下降为低电平后,系统即从
18、0000h地址开始执行程序。然而,初始复位不改变ram(包括工作寄存器r0-r7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,reset/vpd还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。pin30:ale/当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ale会跳过一个脉冲。如果单片机是eprom,在编程其间,将用于
19、输入编程脉冲。pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。pin31:ea/vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。在编程时,ea/vpp脚还需加上21v的编程电压。四、计算器程序设计4.1存储单元分配30h单元:数值个
20、位显示单元;31h单元:数值十位显示单元;32h单元:数值百位显示单元;33h单元:数值千位显示单元;23h单元:第一操作数存储单元;24h单元:第二操作数存储单元;25h单元:键值暂存单元;27h单元:清除键状态;34h-37h单元:结果数据转换暂存单元;38h-39h单元:结果高低8位暂存单元;r5单元:操作数计数单元;r4单元:操作数数值位数计数单元;r3单元:运算符号存储单元。4.2 主程序设计主程序进行程序中用到的一些存储单元的初始化,数值显示和4*4键盘扫描。首先,进行存储单元初始化,给数码管显示单元30h-33h赋予“0000”字形数据,将数值计数单元,存储单元,23h-25h,
21、34h-37h,38h,39h,3ah,3bh,3ch,赋予初值零。之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码管动态显示子程序。主程序不断进行键盘扫描,数码管显示数据转换子程序和动态显示子程序。4.3 数码管显示数据转换子程序conv由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值单元中的二进制转换为十进制数,即bcd码。要通过数码管显示出当前数值,还必须将bcd码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区30h-33h单元中,其中30h单元存放数值的个位七段码,31h单元存放数值的十位七段码,32h单元存放数值的百位七段码,33h单元存放数值的千位
22、七段码。4.4 数码管动态显示子程序本任务由p1口输出字形码,p0口输出字位码。先将存放于30h单元的数值个位七段码由p1口输出,同时p0口输出使数值个位显示数码管点亮的字位码。由于采用的是共阳数码管,所以只有该位数码管对应的p0.0为1,其他位p0.1-p0.3位0,点亮延时10ms。然后p1口输出数值十位七段码,p0.1位1,数值十位数码管点亮,延时10ms。接着p1口输出数值百位七段码,p0.2为1,数值百位数码管点亮,延时10ms。最后p1口输出数值千位七段码,p0.3为1,数值千位数码管点亮,延时10ms。五、 连接知识5.1键盘的连接键盘由4*4共16个按键组成,10个数字键(由0
23、-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位)。键盘只需要八个接口就可以完全控制,因此使用at89c52的一个并行口就可实现,用p1口控制键盘实现键盘的扫描。用p2口传送数据显示数字,用p3口的低六位控制六个数码管的显示。监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。键盘连接图如下。5.2、显示器的连接 在本任务中用6位led数码管显示当前数值的十万,万,千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的i/o口线太多
24、,如果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74ls164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。显示屏有共阳极的和共阴极的两种,这这里我们选择共阳极显示屏,输入数据低电平有效,控制端高电平有效。6位数码管的相同段并联在一起,由一个8位i/o(p1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个i/o口(p2口)输出的字位码控制,即数码管显示的字形是由单片机i/o口输出的字形码确定,而哪个数码管点亮是由单片机i/o口输出的字位码确定的。6个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮, 本此硬件连接的系统总框图如下: 六、
25、仿真过程程序编写完成后,编译、连接、运行程序,生成hex文件。如果程序有错进行调试,按f10进行单步调试,调试无误后会生成hex文件,右键单击cpu后添加hex文件,将软件与硬件结合起来进行仿真,输入数据检测加减乘除运算。当然程序运行无误并不等于完成任务,如果硬件不能实现预设的功能,还需要检查源程序采用单步调试,选取变量,观察变量值是否符合。多次调试直到与预想功能符合时,仿真成功。调试过程中最主要的难点就是程序运行正确,硬件却不能实现其功能,语法逻辑错误好检查,但功能错误却难检查,这需要认真检查程序的每一步,全局纵观程序。在功能上找出错误。当然在本程序中我采用了结构化的程序结构,以减轻工作复杂
26、度和难度,在单步调试的过程中,可以每个函数分开调试,单个函数比较短小,调试起来就比整个程序调试简单的多。把一项复杂的工作分成多个简单工作去做会大大提高工作效率。七、 致谢时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的完成也随之进入尾声。从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我的热情的帮助,在这里请接受我的诚挚的谢意!通过这次毕业设计,我才明白学习是一个长期积累的过程,只有不断的的努力学习,才能在在以后的工作、生活中游刃有余,从中提高自己知识和综合素质。在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,不懂的大家在
27、一起相互讨论,从而使我们更好的理解知识,所以在这里非常感谢帮助我的同学。总之,在这次设计中遇到的困难的确比较多,真是万事开头难,不知道如何入手。最后终于完成了时,有种如释重负的感觉。此外,通过这次毕业设计还得出一个结论就是:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现什么都不是看起来那么简单,所以我认为只有到真正会用的时候才是真的学会了。 在此我要感谢我的指导老师李老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了很多的困难,但收获同样很大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。八、参考文献1 李全利、迟荣强.单片机原理及接口技术.高等教育出版社,20032 张敏霞、孙丽凤.c语言程序设计教程 .北京 电子工业出版社,20073 李亚平 eda应用技术 中国劳动社会保障出版社 2007年8月4 李全利、迟荣强.单片机原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 假期读一本好书读后感900字(12篇)
- 2024全新能源开发项目投资与合作合同
- 中式快餐创业计划书
- 2024年工业设备维修协议
- 2024年度4S店租赁期内公共区域维护与管理协议
- 2024年建筑工程消防设计与施工合同
- 2024年企业广告发布与媒体投放合同
- 2024年大数据分析与应用服务协议
- 2024年度「惠州技术开发」合同标的:技术研发与成果共享
- 2024年工程项目混凝土供应合同
- MIL-STD-202-211-2020美国美军标准
- 申请征地信息公开范文
- 初一奥数思维训练100题
- 学校公众号运营事迹材料
- NFPA 90A 2018 通风空调系统防火要求(中文翻译)
- 胃肠镜健康宣教胃肠镜检查注意事项适应症与禁忌症宣传课件
- 会计学职业生涯发展报告
- JT-T-280-2004路面标线涂料
- 广西壮族桂林市永福县2023-2024学年四年级英语第二学期期中检测试题含答案
- Q/GDW-1738-2012配电网规划设计技术导则
- 包装盒结构的认识
评论
0/150
提交评论