ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:172.30KB ,
资源ID:18940959      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18940959.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机设计报告基于51单片机的简易计算器设计Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机设计报告基于51单片机的简易计算器设计Word格式.docx

1、25 MCS-51单片机引脚说明 1026 中断系统 10第三章设计思路与步骤 1231 系统框图 1232 硬件电路设计 1333 程序设计 1334 软件仿真 13第四章电路焊接与试验 14结论 14参考文献 14附录 15附录一 15附录二 15前言课题简介单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。本系统就是充分利用了MCS-51芯片的I/O引脚。系统采用MSC-51系列单片机Intel8051为中心器件来设计

2、计算器控制器,实现了能根据实际输入值显示并存储,计算程序则是参照教材。至于位数和功能,如果有需要可以设计扩充原系统来实现。设计目的通过本次课程设计,运用数字电子技术基础、单片微型计算机原理及应用所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。设计任务在本次工程实践中,主要完成如下方面的设计任务:1)简要综述单片机技术发展的国内外现状及数码管动态显示和矩阵键盘基本原理;2)掌握MCS-51系列某种

3、产品的最小电路及外围扩展电路的设计方法;3)了解单片机数据转换功能及工作过程;4)完成主要功能模块的硬件电路设计及必要的参数确定;5)用Protues软件完成原理电路的绘制并实现与Keil uVision4软件的连接仿真;6)完成系统实物设计。第一章计算器系统简介11 单片机发展现状单片机的发展趋势:低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1) 低功耗CMOS化MCS-51系列的805

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

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

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

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

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

9、S-51系列单片机虽已有10多种产品,但可分为两大系列:MCS-51子系列与MCS-52子系列。MCS-51子系列中主要有8031、8051、8751三种类型。而MCS-52子系列也有3种类型8032、8052、8752。各子系列配置见表2-1所示。表2-1 MCS-51系列单片机配置一览表系列内存储器(字节)定时器/计数器并行I/O串行中断源制造工艺无ROM片内EPROMRAMMCS-51子系列803180514K8751128216位48位15HMOS80C3180C5187C513CHMOSMCS-52803280528K8752256680C23280C25287C2527MCS-51

10、系列单片机的内部结构框图如图2-1所示。MCS-52系列单片机的内部结构包含一个8位中央处理器CPU、128个字节(MCS-52子系列为256字节)的片内数据存储器RAM、4KB(MCS-52子系列为8KB)的片内程序只读存储器ROM、18个(MCS-52子系列为21个)特殊功能寄存器SFR、4个8位并行输入输出I/O接口、一个串行I/O接口、2个(MCS-52子系列为3个)16位定时器/计数器和1个具有5个(MSC-52子系列为6个或7个)中断源,可编程为2个优先级的中断系统八大部分,现在我们就主要部分加以说明:图2-1 MCS-51系列单片机内部结构图21中央处理器(CPU)中央处理器(C

11、PU)是整个单片机的核心部件,它决定了单片机的主要功能特性。它由运算部件和控制部件两大部分组成。1) 运算部件运算部件是以算术逻辑单元ALU为核心,加上累加器A、寄存器B、暂存器TMP1和TMP2、程序状态存储器PSW及专门用于位操作的布尔处理机组成的(见图1-1),它能实现数据的算是逻辑运算、位变量处理和数据传送操作。2) 控制部件控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。它以主振频率为基准发出CPU的时序,对指令进行编译,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作,并对外发出

12、地址锁存ALE、外部程序存储器选通以及通过P3.6和P3.7发出数据存储器读、写等控制信号,并且接受处理外接的复位RST和外部程序存储器访问控制信号。22内部数据存储器(RAM)MCS-51系列单片机的内部数据存储器由读写存储器RAM组成,用于存储数据。它由RAM块和特殊功能寄存器(SFR)块组成。对于MCS-51子系列,RAM块有128个字节,其编址为00H7FH;SFR块占128个字节,其编址为80HFFH,两者连续但不重叠。对于MCS-52子系列,RAM块有256个字节,编址为00HFFH;SFR块仍占128个字节,编制为80HFFH。后者比前者多128个字节的编址是重叠的,由于访问内部

13、数据存储器各部分所用指令不同,并不会引起混乱。23 程序存储器(ROM)计算机的工作是按照事先编制好的程序命令一条条循序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,它由只读存储器ROM或EPROM组成。计算机为了有序的工作设置了一个专用寄存器程序计数器PC,用以存放将要执行的指令系统。每取出指令的1个字节后,其内容自行加1,指向下一字节地址,依次使计算机从程序存储器取指令执行,完成某种程序操作。由于MCS-51单片机的程序计数器为16位,因此,可寻址的地址空间为64KB。与此相对应得程序存储器编址从0000H开始,最大可至FFFFH。24 定时/计数器在实际的控制系统中常要求有外

14、部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。比如,在单片机控制的电力系统中,控制的对象为电动机,为了实现闭环控制,就需要定时地对转速进行采样。若采用光电脉冲发生器作为检测元件,则先应对每个采样周期中光电脉冲发生器发出的脉冲进行计数,然后再通过实时计算求的对应的转速。对于定时/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都有以下特点:1) 定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。2) 定时/计数器的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数,计数的最大值也就限制了定时的最大值。3) 可以按照规定的定时或

15、计数值,在定时时间到或者计数终止时,发出终端请求,以便实现定时控制。MCS-51单片机内带有两个16位定时/计数器T0和T1,两者均可作为定时器或计数器使用。25 MCS-51单片机引脚说明MCS-51系列单片机芯片均为40个引脚,HMOS工艺制造的芯片采用双列直插(DIP)方式封装,其引脚示意及功能分类如图2-2所示。CMOS工艺制造的低功耗芯片也有采用方形封装的,但为44个引脚,其中4个引脚是不使用的。图2-2 MCS-51系列单片机引脚及总线结构(a) 管脚图;(b)引脚功能分类MCS-51系列单片机的40个引脚中有2个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其他电源复用的引

16、脚,以及32条输入输出I/O引脚。26 中断系统MCS-51系列单片机的中断系统属于8位单片机中功能较强的1种中断系统,它可以提供5个中断源,每个中断源有两个优先级别可供选择,可实现两级中断服务程序嵌套。此外,所有中断均可有软件设定为允许中断或禁止中断,也就是说,用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以中断指令使CPU接受中断请求。MCS-51单片机的中断系统结构示意图如图2-3所示。图2-3 MCS-51单片机的中断系统结构示意图第三章设计思路与步骤31 系统框图1)系统模块图2) 系统运算流程图32 硬件电路设计AT89C52单片机一片,74HC573两片,45键盘一个,

17、8位共阴极的七段数码管一个,连线和电阻和开关若干。AT89C52单片机的P1.0P1.4为键盘扫描输出线,P2.0P2.2和P2.4为键盘扫描输入线。74HC573用于对单片机进行拓展。键盘由45共20个按键组成,10个数字键(由0-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位),1个小数点,1个开方运算,1个求倒数运算和一个负号(正号)。数码管采用动态显示方式,通过74HC573接到单片机的P0口。电路设计图见附录。33程序设计见附录。34软件仿真使用Keil uVision4与Protues连接仿真:例如:2+5=7其他验证不再一一列举。第四章电路焊接与试验(略

18、)结论课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。设计达到了预期的效果,但是由于单片机中只有单精度数据,以至于计算数据出现了六位数据以上时,后面的数据就会默认零,如果不默认为零,出现的就是乱码。回顾起此次课程设计,从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的

19、,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次课程设计使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我们在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。参考文献1 张毅坤、陈善久、裘雪红.单片微型计算机原理及应用.西安电子科技大学出版社. 1998.2 阎石.数字电子技术基础(第五版).高等教育出版社.2005.3 童诗白、华成英.模拟电子技术基础(第四版

20、).高等教育出版社.2006.附录附录一电路设计图:附录二程序清单:#includestdlib.hmath.h#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code led8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar xx8;sbitdula=P26;sbitwela=P27;voiddisplaypro(double h) uchar po

21、int=8,m; bit symbol; chari; doubleproh; symbol=0; if(h=0&h=0;i-) m=proh/pow(10,i); xx7-i=tablem; proh=proh-(m*pow(10,i); if(proh=1)/由于keil 中单精度和双精度是一样的,只能表示六位数,如不把后面两位清零,将会出现乱码。 xx6=0x3f; xx7=0x3f; else xxpoint-1+=128;/显示小数点 else /超过八位数时,计算器报错显示E for(i=6; xxi=0x00; xx7=0x79; while(xx7=0x3f)/去除0.0000

22、000 显示的问题,即把0.0000000 显示成0.0; xxi=xxi-1; xx0=0x00; if(symbol=1)/若为负数时,将数组中的数据后移 if(xxi=0x00) xxi=0x40; break; void delay(unsigned char x) unsigned char i,j; for(i=0;ix;i+) for(j=0;jj+);unsigned char keyscan()/key 为按键返回值 uchartemp,row=0,col=0,key; uint add; P2&=0xe8; P1|=0x1f; temp=P1; temp|=0xe0; if

23、(temp!=0xff) delay(15); temp=P1; temp|=0xe0; if(temp! row=P1; P2|=0x17; P1&=0xe0; col=P2; col|=0xe8; add=row*256+col; switch(add) case 0xfefe: key=0;break; case 0xfdfe: key=1; case 0xfbfe: key=2; case 0xf7fe: key=3; case 0xeffe: key=10; case 0xfefd: key=4; case 0xfdfd: key=5; case 0xfbfd: key=6; cas

24、e 0xf7fd: key=7; case 0xeffd: key=11; case 0xfefb: key=8; case 0xfdfb: key=9; case 0xfbfb: key=15; case 0xf7fb: key=14; case 0xeffb: key=12; case 0xfeef: key=16; case 0xfdef: key=17; case 0xfbef: key=18; case 0xf7ef: key=19; case 0xefef: key=13; default: key=20; return key; else return 20; else retu

25、rn 20;void main() uchar k,i,hand,h2; bitxsd=0; char data e; double data temp,h1=0,h3=0,h4=0; displaypro(0); while(1) k=keyscan(); if(k=20) hand=0; for(i=0;8; wela=1; P0=ledi; wela=0; P0=0xff; dula=1; P0=xxi; dula=0; delay(20); switch(k) case 20: case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1