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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于51单片机简易计算器课程设计报告书.docx

1、基于51单片机简易计算器课程设计报告书 电气与电子信息工程学院单片机课程设计设计题目: 简易电子计算器 专业班级: 12级电信(1)班 学号: 1 姓 名: 峥 指导教师: 章磊 艾青 设计时间:2014/06/032014/06/13设计地点:K2407课程设计任务书 2013 2014 学年 第2学期学生: 峥 专业班级:电子信息工程技术(专)2012(1)班指导教师:艾青、章磊工作部门: 电气学院电信教研室 一、课程设计题目: 单片机课程设计1. 出租车计价器系统设计2. 医院住院病人呼叫器的设计3. 作息时间控制器4. 数字温度计的设计5. 火灾报警器的设计6. 电子密码锁7. 电子计

2、算器8.学生自选二、课程设计容 1. 以单片机为核心器件,构造系统; 2. 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法; 3. 熟悉、掌握单片机汇编语言的软件设计方法; 4. 熟悉、掌握印刷电路板的设计方法; 5. 根据具体设计课题的技术指标和给定条件,能独立而正确地进行方案论证和电路设计,要求概念清楚、方案合理、方确、步骤完整; 6. 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数; 7. 编写设计说明书,参考毕业设计论文格式撰写设计报告(5000字以上)。三、进度安排1时间安排序 号容学时安排(天)1方案论证和总统设计22硬件设计33软件设计34撰写和打印设计报告15设计

3、答辩1合 计10设计指导答辩地点:自控、DSP室2执行要求智能电子产品设计制作共8个选题,每组不超过7人,为避免雷同,在设计中每个同学所采用的方案不能一样。四、基本要求(1)进行方案论证并根据要求确定系统设计方案;(2)绘制系统框图和电气原理草图,程序流程图;(3)对相关电路进行电路参数计算和元器件选择;(4)进行软件汇编并调试;(5)利用Proteus和Keil uVision2对系统进行联调;(6)绘制系统原理总图,列出原器件明细表;(7)画出软件框图,列出程序清单;(8)写出使用说明书;(9)对设计进行全面总结,写出课程设计报告。五、课程设计考核办法与成绩评定根据过程、报告、答辩等确定设

4、计成绩,成绩分优、良、中、与格、不与格五等。评定项目基本涵分值课程设计考勤考勤20分课程设计报告完成课程设计任务、报告规性等情况30分 实物实物制作情况30分答辩回答问题情况20分90100分:优;8089分:良;7079分:中;6069分,与格;60分以下:不与格第1章 方案的选择与概述1. 单片机概述当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在

5、工厂、学校与企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间将单片机技术融会贯通,才能跟上时代的步伐。 它所给人带来的方便也是不可否定的,它在一块芯片集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现

6、代电子产品性能进一步提高,产品更新换代的节奏也越来越快。2.方案的设计1.1 方案一根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。用七段数码管作为显示电路,矩阵键盘作为输入电路。模块图如图1.1所示。 图1.1 方案一模块图1.2 方案二根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。外部主要由4*4矩阵键盘和一个液晶显示屏构成,部由一块AT89C51单片机构成。计算器电路包括四个部分:选用LCD作

7、为显示部分,矩阵键盘作为输入部分,运算模块,单片机控制部分。模块图如图1.2所示。 图1.2 方案二模块图1.3整体设计根据简易计算器的功能和指标要求,本设计系统选用MCS-51系列单片机AT89C51为主控机。通过扩展必要的外围接口电路,实现对简易计算器的设计。计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用七段数码管显示数据和结果。(2)另外键盘包括数字键(09)、符号键(+、-、)、清除键和等号键,故只需要16 个按键即可。(3)执行过程:开机显示零,等待键入数值,当键入数

8、字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在七段数码管上提示错误。线路原理框图如图1.3所示。第2章 单元电路的硬件2电路设计原理2.1键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采

9、用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图2.1所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。图2.1矩阵键盘布局图电路中采用4*4键盘作为输入电路模块的话,电路连线会比较简单,而且这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。但是在硬件电路设计的过程中,实验室没有提供矩阵键盘,所以我们

10、将4*4的矩阵键盘换成了16个独立按键。采用独立按键的方式的话,会占用大量的I/O 口资源,但是在这种情况下,编程会很简单。矩阵键盘部电路图如图2.2所示(见下页)。2.2显示模块本设计采用LCD1602液晶显示屏来显示输出数据。通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。LCD1602管脚图如图2.3所示。图2.2 矩阵键盘部电路图图2.3 LCD1602管脚图2.3运算模块(单片机控制)MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微

11、处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统与特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以与高可靠性!因此我们采用单片机AT89C51作为计算器的主要功能部件,可以很快地实现运算功能。图2.4 AT89C51管脚图管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程

12、序数据存储器,它可以被定义为数据/地址的第八位。在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口的管脚被外部拉低

13、,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 R

14、XD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡

15、器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1

16、时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。第3章 仿真和调试3.1 KEIL uVision与 porteus仿真软件3.1.2Porteus介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为风标电子技术)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机与外围器件。它是目前最好的仿真单片机与外围器件的工具。虽然目前国推广刚起步,但已受到

17、单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 其功

18、能特点:(1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真Keil uVision3是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,与其它的衍生产品。C51

19、已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。系统功能:Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间就能学会使用keil c51来开发您的单片机应用程序 。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3.2 proteus 7.1 介绍Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电

20、路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:(1) 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。(2)具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以与各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和S

21、PICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。3.1.3测试结果截图加法计算 减法计算 图3.1 加法计算结果 图3.2 减法计算结果乘法计算 除法计算图3.3 乘法计算结果 图3.4 除法计算结果 4.心得与体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为电子信息工程专业的学生来说掌握单片机的开发技术是十分重要的。 我的题目是简易计算器,对于我们这些实践中的新手来说

22、,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。经过查找资料,编写程序,加深了对单片机的了解与认识,通过本次试验,最大的收获就是仿真容易,而做实物却会遇到各种各样的困难。在电脑上仿真,只要程序写对,电器元件连接好就会得出结果。而做实物,首先,焊接方面因为技术所限和焊枪的一些硬件上的不足,造成焊出来的效果特别差。其次,各条线路要确保导通,这就要每条都拿万用表来测量,焊接时,也要注意各引脚的位置是否正确,正负极等等,完成之后还不一定会出现结果,还需要再次调试。本次实验,让我收获很多,感老

23、师的答疑,也感同学的帮助,不仅加深了知识方面,更加锻炼了动手能力,相信以后遇到这方面问题不再会不知所措,让我把知识和实践结合到一起,通过这次实践,我了解自己的不足,汇编语言掌握的不够,焊接方法的不足,使我更加了解以后该在哪个方面补充的自己的不足,总体来说本次课程设计是成功的,使我了解到更多课本上没有的知识,最后再次感所有帮助过我的老师和同学们。附录附录1:源程序代码#include /头文件#define uint unsigned int / #define uchar unsigned charsbit lcden=P23; /定义引脚sbit rs=P24;sbit rw=P20;sbi

24、t busy=P07;char i,j,temp,num,num_1;long a,b,c; /a,第一个数 b,第二个数 c,得数float a_c,b_c;uchar flag,fuhao;/flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table=7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30;void delay(uchar z) / 延迟函

25、数uchar y;for(z;z0;z-) for(y=0;y110;y+);void check() / 判断忙或空闲do P0=0xFF; rs=0; /指令 rw=1; /读 lcden=0; /禁止读写 delay(1); /等待,液晶显示器处理数据 lcden=1; /允许读写 while(busy=1); /判断是否为空闲,1为忙,0为空闲void write_(uchar ) / 写指令函数P0=; /com指令付给P0口rs=0;rw=0;lcden=0;check();lcden=1;void write_date(uchar date) / 写数据函数 P0=date;rs

26、=1;rw=0;lcden=0;check();lcden=1;void init() /初始化 num=-1;lcden=1; /使能信号为高电平write_(0x38); /8位,2行write_(0x0c); /显示开,光标关,不闪烁*/write_(0x06); /增量方式不移位 显竟獗暌贫 柚?write_(0x80); /检测忙信号write_(0x01); /显示开,光标关,不闪烁num_1=0;i=0;j=0;a=0; /第一个参与运算的数b=0; /第二个参与运算的数c=0;flag=0; /flag表示是否有符号键按下, fuhao=0; / fuhao表征按下的是哪个符号

27、void keyscan() / 键盘扫描程序P3=0xfe;if(P3!=0xfe) delay(20); 延迟20ms if(P3!=0xfe) temp=P3&0xf0; switch(temp) case 0xe0:num=0; break; case 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; while(P3!=0xfe); if(num=0|num=1|num=2)/如果按下的是7,8或9 if(j!=0) write_(0x01); j=0; if(flag=0)/没有按过符号键 a=a*

28、10+tablenum; else/如果按过符号键 b=b*10+tablenum; else/如果按下的是/ flag=1; fuhao=4;/4表示除号已按 i=table1num; write_date(0x30+i);P3=0xfd;if(P3!=0xfd) delay(5); if(P3!=0xfd) temp=P3&0xf0; switch(temp) case 0xe0:num=4; break; case 0xd0:num=5; break; case 0xb0:num=6; break; case 0x70:num=7; break; while(P3!=0xfd); if(num=4|num=5|num=6&num!=7)/如果按下的是4,5或6 if(j!=0) write_(0x01); j=0; if(flag=0)/没有按过符号键 a=a*10+tablenum; else/如果按过符号键 b=b*10+tablenum; else/如果按下的是/ flag=1; fuhao=3;/3表示乘号已按 i=table1num; write_date(0x30+i);P3=0xfb;if(P3!=0xfb) d

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

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