




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程设计报告 题题 目目 计算器课程设计计算器课程设计 课课 程程 名名 称称 单片机原理及接口技术单片机原理及接口技术 院院 部部 名名 称称 专专 业业 班班 级级 学学 生生 姓姓 名名 学学 号号 地地 点点 学学 时时 指指 导导 教教 师师 目目 录录 1 摘要 .2 第一章 绪论 .3 1.1 课题简介.3 1.2 设计目的.3 1.3 设计任务.3 第二章 课题背景 .5 2.1 单片机发展现状.5 2.2 计算器发展现状.5 2.3 单片机简介.5 2.4 矩阵键盘.7 2.5 计算器设计思路.7 第三章 硬件系统设计 .9 3.1 键盘接口电路.9 3.2 LED 显示模块.10 3.3 运算模块.11 第四章 软件设计 .12 4.1 C 语言的特点12 4.2 键盘扫描程序设计.12 4.3 算术运算程序设计.13 4.4 显示程序设计.14 第五章 系统调试与存在的问题 .15 5.1 软件调试.15 5.2 硬件调试.15 总 结 .16 参考文献 .17 附录一 C 语言源程序.18 主函数:.18 键盘扫描函数:.21 数码管输出函数:.25 附录二 PROTEL 仿真电路 .27 附录三 PROTEUS 仿真电路.28 2 摘要摘要 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后 必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机设计计算器。该 设计系统是以 AT89C51 单片机为核心,外接矩阵键盘,通过键盘扫描输入数据,经过单片 机执行处理,再由 LED 数码管作为显示输出,软件程序用 C 语言编写,具有较好的移植性。 实验报告详细介绍了整个计算器系统的硬件组成结构,工作原理以及软件程序设计。计算 其具有简单的整数加减乘除功能。 整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断 按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入 LED 显 示器动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模 块二,数据转换成显示器显示;功能模块三,显示器动态显示。 关键字关键字:计算器 AT89C51 C 语言 3 第一章第一章 绪论绪论 1.1 课题简介课题简介 当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生 活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不 能胜任的,而且比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。 计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器软件和开发过程中 的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。 在工业生产中。单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 本系统就是充分利用了 8051 芯片的 I/O 引脚。系统以采用 MCS-51 系列单片机 Intel8051 为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储的功能, 计算程序则是参照教材。至于位数和功能,如果有需要可以通过设计扩充原系统来实现 。 1.2 设计目的设计目的 通过本次课题设计,应用单片机应用基础 、 计算机应用基础等所学相关知识及 查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用 所学知识和设计的能力的目的。 通过本次设计的训练,可以使我在基本思路和基本方法上对基于 MCS-51 单片机的嵌入 式系统设计有一个比较感性的认识,并具备一定程度的设计能力。 1.3 设计任务设计任务 在本次课程设计中,主要完成如下方面的设计任务: (1)简要阐述单片机技术发展的国内外现状及 LED 动态显示和矩阵键盘基本原理; (2)掌握 AT89C51 的最小电路及外围扩展电路的设计方法; (3)了解单片机数据转换功能及工作过程; (4)完成主要功能模块的硬件电路设计及必要的参数确定; 4 (5)自学 Protel、Proteus 等在课程设计中要用到的软件。 5 第二章第二章 课题背景课题背景 目前,51 系列单片机在我国的各行各业得到了广泛应用,各大专业院校、职业培训学 校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须 通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。 2.1 单片机发展现状单片机发展现状 单片机的发展趋势:低功耗 CMOS 化;微型单片化;主流与多品种共存;单片机从 8 位、 16 位到 32 位,数不胜数,应有尽有,有与主流 C51 系列兼容的,也有不兼容的,但它们 各具特色,互成互补,为单片机的应用提供广阔的天地。 2.2 计算器发展现状计算器发展现状 计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备 及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实 现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微 处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序 和数据。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸, 一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器和液晶显示器 等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或 电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用 CMOS 工艺制作的大规模集成电路(见互补金属 -氧化物-半导体集成电路),并在内部 装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和 磁卡机等。 2.3 单片机简介单片机简介 8051 是 MCS-51 系列单片机的典型产品,以这一代表性的机型进行系统的讲解。8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、 串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,其内部结 构如图 2.1 所示,现在分别加以说明: 6 图 2.1 8051 内部结构图 中央处理器中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二 进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制 输入输出功能等操作。 数据存储器数据存储器(RAM)(RAM): 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址 的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据, 所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的 字型表。 程序存储器程序存储器(ROM)(ROM): 8051 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。 定时定时/ /计数器:计数器: 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断,用于控制程序 转向。 并行输入输出并行输入输出(I/O)(I/O)口:口: 8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 和 P3),用于对外部数据的传输。 全双工串行口:全双工串行口: 8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可 以用作异步通信收发器,也可以当同步移位器使用。 中断系统:中断系统: 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断, 可满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路:时钟电路: 7 8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8051 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard) 结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即 普林斯顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后 续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。 2.4 矩阵键盘矩阵键盘 键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或 指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动 电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键, 不管一次按键持续多长时间,仅执行一次按键功能程序。 矩阵按键扫描程序是一种节省 I/O 口的方法,按键数目越多节省 I/O 口就越可观,思路:先 判断某一列(行)是否有按键按下,再判断该行(列)是哪一只键按下。但是,在程序的 写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了, 就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的 CPU 时间。 2.5 计算器设计思路计算器设计思路 根据功能和指示要求,本系统选用以 MCS-51 单片机为主控机。通过扩展必要的外围接 口电路,实现对计算器的设计。 具体设计如下: (1)由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果, 采用 LCD 显示数据和结果。 (2) 另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等号键,故只需 要 16 个按键即可,设计中采用集成的计算机键盘。 (3) LED 开始显示零,等待输入数值,当输入第一个数字,LED 显示输入值,当输入 +、-、*、/运算符后,LED 显示 0,输入第二个数字,LED 显示第二个输入数字,按“=” 就会在 LED 上显示运算结果。 (4)由于只进行整数运算,当计算 94 结果只显示整数部分,即结果只显示 2。 8 (5)计算最大数字为 255,当输入 256 时,将显示 0。 9 第三章第三章 硬件系统设计硬件系统设计 硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接 口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片, 在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外 部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以 AT89S51 单片机为主控单元。显示部分:采用 LCD 静态显示。按键部分,采用 4*4 键盘。 硬件电路 原理图如图 3-1 所示: 图 3-1 硬件电路原理图 3.1 键盘接口电路键盘接口电路 计算机输入数字和其他功能按键时要用到很多按键,在这种情况下,编程会很简单, 但是会占用大量的 I/O 口资源,因此在很多情况下都不采用这样的方式,而是采用矩阵键 盘的方式。矩阵键盘采用四条 I/O 线作为行线,四条 I/O 线作为列线组成键盘,在行线和 列线的每个交叉点上设置一个按键。这样键盘上按键的数量就为 4*4 个。这样行列式键盘 结构能有效的提高单片机系统中 I/O 口的利用率。 10 计算器的键盘布局:一般有 16 个键组成,在单片机中正好有一个 P 端口实现 16 个按 键功能,这种形式在单片机系统中最常用。 3.2 LED 显示模块显示模块 发光二极管 LED 是单片机应用中简单而常用的输出设备,其在系统中的主要作用是显 示单片机的输出数据、状态等。因而作为典型的外围设备,LED 显示单元是反映系统输出 和操作输入的有效器件。LED 具备数字接口可以方便的和系统连接。 3.3 运算模块运算模块 MCS-51 单片机是在一块芯片中集成了 CPU、RAM、ROM、定时器/计数器和多功能 I/O 等 计算机所需要的基本功能部件。如果按功能划分,它由以下功能部件组成,即微处理器 (CPU),数据存储器(RAM),程序存储器(ROM/EPROM) ,并行 I/O 口,串行口,定时器/计数 11 器,中断系统及特殊功能寄存器(SFR) 。单片机是靠程序运行的,并且可以修改。通过不 同的程序实现不同的功能,尤其是特殊的一些功能,通过使用单片机编写的程序可以实现 高智能、高效率以及高可靠性,因此采用单片机作为计算器的主要功能部件,可以很快的 实现运算功能。 12 第四章第四章 软件设计软件设计 4.1 C 语言的特点语言的特点 本设计是硬件电路和软件编程相结合的设计方案,选择的编程语言是 C 语言。C 语言 语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结 构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。 4.2 键盘扫描程序设计键盘扫描程序设计 键扫程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有 键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭 合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键, 则返回继续释放。其流程图如图所示。 13 4.3 算术运算程序设计算术运算程序设计 首先初始化参数,送 LED 低位显示“0” ,高位不显示。然后扫描键盘看是否有键盘输入, 若有,读取键码。判断键码是数字键、清零键还是功能键(+ - * =) ) ,是数值键则送 LED 显示并保存数值,是清零键则做清零处理,是功能键就判断是“=”还是运算键,若是 “=”则计算出最后结果并送 LED 显示,若是运算键则保存相对运算程序的首地址。运算程 序框图如图所示: 14 4.4 显示程序设计显示程序设计 LED 开始显示零,等待输入数值,当输入第一个数字,LED 显示输入值,当输入+、- 、*、/运算符后,LED 显示 0,输入第二个数字,LED 显示第二个输入数字,按“=” 就会 在 LED 上显示运算结果。 15 第五章第五章 系统调试与存在的问题系统调试与存在的问题 5.1 软件调试软件调试 软件调试一般分为以下四个阶段: (1)编写程序并检查; (2)编写源程序; (3)进行编译生成可执行程序。 在本次调试中出现的问题有: (1)在程序中有的函数名未定义; (2)在抄录程序时,少录入一些字符,如:“;” 、 “” 、 “-”等符号,而出现错误; (3)有一些函数名录入时少写一个字母或顺序颠倒; (4)没有注意函数名的调用及定义; (5)芯片引脚定义出错而导致没有实验现象。 在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够 很好的达到既定的设计效果。 5.2 硬件调试硬件调试 在 AT89C51 中载入编写好的程序,运行电路,观察是否执行命令,运算结果是否正确。如 果不正确,检查电路、修改程序,反复磨合,最终得到理想结果。 16 总总 结结 我的题目是简易计算器的设计,对于我们这些实践中的新手来说,这是一次考验。怎 样才能找到课堂所学与实际应用的最佳结合点,怎样让自己的业余更接近专业,怎样让自己 的计划更具有序性,而不会忙无一用,这都是我们所要考虑和努力的。这次课程设计我学 到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行 过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多 在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通 过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之 处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,对 C 语言掌握得不够好 等。在这里真诚地对所有关心我、帮助我、鼓励我的老师和同学们。 17 参考文献参考文献 1徐爱钧.智能化测量控制仪表原理与设计(第二版) 北京航天航空大学出版社,2004.9 2孙育才等.MCS-51 系列单片微型计算机及其应用(第 4 版) 东南大学出版社,2004.3 3李萍等.智能仪器实验指导书大连交通大学,2007.9 4单片机应用技术(C 语言).中国劳动社会保障出版社,2006.6 5武庆生,仇梅等著.单片机原理与应用.电子科技大学出版,1998.12 6朱定华著.单片机原理与接口技术.电子工业出版社,2001.4 7王宜怀,刘晓升等著.嵌 入式应用技术基础教程.北京清华大学出版社,2005.7 8王威著.HCS12 微控制器原理及应用.北京航空航天大学出版社,2007.10 9龚运新著.单片机 C 语言开发技术.北京清华大学出版社,2006.10 10周立功.单片机实验与实践.北京航空航天大学出版社,2004.3 18 附录一附录一 C C 语言源程序语言源程序 主函数:主函数: #include #include #include“key.h“ #include“display.h“ unsigned char tempdata6=11,11,11,11,11,11,temp6; bit firstflag; void main(void) unsigned char keynum,i,sign,a,b; while(1) keynum=KeyPro(); if(keynum!=0xff) if(keynum=+)|(keynum=- )|(keynum=*)|(keynum=/)|(keynum=)|(keynum=c) i=0; if(firstflag=0) firstflag=1; for(i=0;i0;t-) for(j=19;j0;j-) ; unsigned char KeyScan(void) /键盘扫描函数,使用行列逐级扫描法 unsigned char Val; KeyPort=0xf0;/高四位置高,低四位拉低 if(KeyPort!=0xf0)/表示有按键按下 delay50us(200); /去抖 if(KeyPort!=0xf0) /表示有按键按下 KeyPort=0xfe; /检测第一行 if(KeyPort!=0xfe) Val=KeyPort Val+=0x0e; while(KeyPort!=0xfe); delay50us(200); /去抖 while(KeyPort!=0xfe); return Val; KeyPort=0xfd; /检测第二行 if(KeyPort!=0xfd) Val=KeyPort Val+=0x0d; 23 while(KeyPort!=0xfd); delay50us(200); /去抖 while(KeyPort!=0xfd); return Val; KeyPort=0xfb; /检测第三行 if(KeyPort!=0xfb) Val=KeyPort Val+=0x0b; while(KeyPort!=0xfb); delay50us(200); /去抖 while(KeyPort!=0xfb); return Val; KeyPort=0xf7; /检测第四行 if(KeyPort!=0xf7) Val=KeyPort Val+=0x07; while(KeyPort!=0xf7); delay50us(200); /去抖 while(KeyPort!=0xf7); return Val; return 0xff; 24 unsigned char KeyPro(void) switch(KeyScan() case 0xbe:return 9;break;/4 9 case 0xbd:return 6;break;/5 6 case 0xbb:return 3;break;/6 3 case 0xde:return 8;break;/8 8 case 0xdd:return 5;break;/9 5 case 0xdb:return 2;break;/a 2 case 0xd7:return 0;break;/b 0 case 0xee:return 7;break;/c 7 case 0xed:return 4;break;/d 4 case 0xeb:return 1;break;/e 1 case 0xe7:return c;break;/f c case 0x7e:return /;break;/0 按下相应的键显示相对应的码值 / case 0x7d:return *;break;/1 x case 0x7b:return -;break;/2 - case 0x77:return +;break;/3 + case 0xb7:return =;break;/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人货车租赁合同
- 肾病内科学诊疗进展与临床实践
- 2025年事业单位工勤技能-湖南-湖南地图绘制员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北热力运行工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北无损探伤工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北仓库管理员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-海南-海南机械热加工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-海南-海南保育员二级(技师)历年参考题库含答案解析
- 2025-2030中国箱包面料市场运作模式及营销发展趋势预测报告
- 2025年绿色消费理念传播与消费者行为引导的绿色消费市场竞争力分析
- 2024年中考物理压轴题专项训练:电磁继电器核心综合练(原卷版)
- 矿山事故应急报告制度
- 2024-2025学年山东省淄博市桓台县四年级上学期数学期中考试试题
- DB1402T36-2024农村居家养老服务规范
- 中国发电企业碳中和数字转型白皮书-埃森哲
- ISO27001信息安全管理体系培训资料
- 《绝对值》教学课件
- Unit 6 Work quietly!(教学设计)2023-2024学年人教PEP版英语五年级下册
- 高考英语考纲词汇3500词(珍藏版)
- 制造业智能化生产线改造方案提升生产效率
- 人教版五年级上册美术全册教学设计
评论
0/150
提交评论