

已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要01 总体任务11.1设计目的11.2设计内容和要求11.3 设计思路12 设计原理分析22.1 计算器的工作原理22.1.1计算器的工作流程22.1.2编程实现控制22.1.3 功能拓展22.2 单片机计算器的基本构成及原理23硬件电路的设计43.1系统硬件总电路构成及原理43.2硬件电路的部分组成元器件的简介43.2.1at89c51单片机43.2.2 八段led数码管43.2.3 矩阵键盘63.3 元器件清单73.4 电路原理图74 系统程序的简单设计84.1 程序方框图84.2 计算器程序85 系统的仿真调试156 课程设计总结16参考文献17摘要 本文论述了单片机4位数加法计算器的设计,从对设计任务的分析到画电原理图到编程和最后的仿真调试,都进行了一个简单的描述。在设计过程中,采用keil软件编写源程序,用protues 7 professional的isis 7 professional软件画电原理图并且仿真,通过对编程时的编译和对仿真结果现象的观察,不断地对源程序以及电原理图的修改,最后成功设计出了一个能够进行4位数加法运算的计算器。该计算器通过44的矩阵键盘输入数字及运算符,若运算结果超过4位十进制数,则显示为e;另外,也能进行减法、乘法以及除法的运算,在进行减法运算时,若运算结果小于零,则显示其绝对值;进行除法运算时,若除数等于零,则显示e。关键词:计算器;单片机;数码管;矩阵键盘1 总体任务1.1设计目的 1.通过单片机课程设计,熟练掌握c语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。 2.通过4位数加法计算器的设计,掌握c语言编程的基本语法,和简单程序的编写,最终提高我们的逻辑抽象能力。1.2设计内容和要求 内容:设计一个4位数加法计算器要求:该计算器通过44的矩阵键盘输入数字和运算符,能进行4位十进制以内的正数的加、减、乘、除的运算,如果运算结果超过4位十进制数,4位数码管全部显示为e。1.3 设计思路 1.先熟悉实验原理,了解计算器的工作过程及其显示,了解计算器电原理图的组成元器件。2.了解各元器件的工作原理。3.在keil软件里编写程序,用protues 7 professional的isis 7 professional软件绘制电原理图,并进行仿真,通过对仿真现象的观察,修改原理图或程序,直到满足设计要求为止。2 设计原理分析2.1 计算器的工作原理2.1.1 计算器的工作流程 计算器是对键盘输入的数字及运算符等信号进行分析和处理,最后通过数码管显示出结果的计算工具。当然,在输入数字的同时,数码管也是会显示出输入的数字的,其整个工作流程图如图2.1所示。外界输入数字或运算符 微处理器处理并运算 显示器显示结果 图2.1 计算器的工作流程图2.1.2 编程实现控制 通过编写程序,实现对输入信号的识别、输入数字的显示以及运算结果的显示。2.1.3 功能拓展 在进行减法运算时,若运算结果小于0,数码管显示其绝对值;在进行除法运算时,若除数等于0,数码管显示eeee。2.2 单片机计算器的基本构成及原理 at89c51是一种带4k字节闪存可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。它能进行简单的运算,通过编写程序,可以让它完成对输入信号的识别、处理以及显示等功能。它完全能满足4位加法计算器的要求,能够完成对键盘输入信号的识别、处理等功能。 据此,本设计系统以单片机位核心,连接成最小系统,由键盘输入模块和4位数码管输出模块等组成,系统放入总体方框图如图2.2所示。 键盘输入最小系统外围接口电路 单片机 数码管显示 图2.2系统的总体方框图 键盘作为整个系统的输入端口,单片机是整个系统的核心,兼有识别信号和处理等功能,而数码管是整个系统的输出部分,用于显示输入的数字和运算后的结果。3硬件电路的设计3.1系统硬件总电路构成及原理 实现本设计要求的具体功能,可以选用at89c51单片机及外围器件构成最小控制系统,44的矩阵键盘和4位共阳极的数码管组成。其中44的矩阵键盘是用来输入信号的,而4位共阳极的数码管是用来显示输入的数字及运算结果的。3.2硬件电路的部分组成元器件的简介3.2.1at89c51单片机 at89c51单片机是80c51类型中的一种,其基本型包含cpu系统、存储器系统和i/o口及其他功能单元。单片机的最小控制系统如图3.1所示。图3.1 单片机及其最小控制系统3.2.2 八段led数码管led显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。led数码管的结构简单,分为七段和八段两种形式,也有共阳极和共阴极之分。以八段共阳管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示sp,即点),每个发光二极管的阳极连在一起。这样,一个led数码管就有i根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。为方便起见,本文主要讨论共阳极八段led数码显示管,其他类形的显示管与其类似。图3.2即为八段数码管,下面的引脚从左至右一次为a,b,c,d,e,f,g,dp和位选引脚。图3.2 led数码管 数码管的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如a,b,c,d,e,f,g全亮是显示为8,其中共阳极连接的数码管的驱动代码如表3.1所示。表3.1 共阳极数码管驱动代码显示数值dp g f e d c b a驱动代码(16进制)01 1 0 0 0 0 0 0 c011 1 1 1 1 0 0 1f921 0 1 0 0 0 1 0a431 0 1 0 0 0 0 b041 0 0 1 1 0 0 19951 0 0 1 0 0 1 09261 0 0 0 0 0 1 0 8271 1 1 1 1 0 0 0 f881 0 0 0 0 0 0 08091 0 0 1 0 0 0 0 90 4位八段数码显示管是由4个数码管组成,如图3.3所示,其左侧的a,b,c,d,e,f,g,dp为数码管的驱动引脚,右侧的1,2,3,4为数码管的位选引脚。图3.3 4位数码显示管 4位数码管显示计算数据的过程:如输入数字4136,当从键盘上输入4时,4位数码管第4位显示4,其他三位不亮;再次输入1时,数码管第3位显示4,同时第4位显示1,其他两位不亮;再次输入3时,数码管第2位显示4,同时第3位显示1,第2位显示3,第一位不亮;再次输入6时,数码管第1位显示4,同时第2位显示1,第3位显示3,第4位显示6。3.2.3 矩阵键盘 矩阵键盘是由16个按钮组成的, 16个按钮按4行4列的顺序排列构成44的矩阵键盘,如图3.4所示,图3.4所示的键盘是protues 7 professional的isis 7 professional软件中的一个元器件,其原理就是16个按钮按4行4列排列构成的。图3.4 矩阵键盘 在4位计算器的设计中,单片机识别矩阵键盘是通过按列扫描的方式进行的。其具体过程如下:对所有的列加以高电平,对第一行(a行)加以低电平,扫描列的电平变化,如列有高电平变为低电平,则能确定按下的键是哪一个;如第一列没有电平变化,依次对第二行(b行)、第三行(c行)和第四行(d行)加以低电平,分别对列进行扫描,看列的电平变化,来确定按下的键。3.3 元器件清单 4位加法计算器的硬件电路图主要由表3.2所示的元器件组成 表3.2元器件列表器件说明at89c51单片机核心器件晶体51单片机工作的振荡源电阻对电流大小进行限制电容51单片机复位和振荡源工作的辅助器件矩阵键盘用于输入数字和运算符4位8段数码管用于显示输入的数字及运算结果3.4 电路原理图图3.5 系统电路原理图4 系统程序的简单设计4.1 程序方框图开始初始化显示0取第一个数取运算符取第二个数取等于号计算并显示结果结束图4.1 计算器程序流程图4.2 计算器程序#include sbit p3_0=p30;sbit p3_1=p31;sbit p3_2=p32;sbit p3_3=p33;unsigned char sz12,xs14,xs24,xs34,xs44,sj;int i,cs,bb,t1,t2,fh,s1,s2,k;void chushihua() /*初始化程序*/bb=1;xs10=10;xs11=10;xs12=10;xs13=10;xs20=10;xs21=10;xs22=10;xs23=10;xs30=11;xs31=11;xs32=11;xs33=11;xs40=0;xs41=10;xs42=10;xs43=10;t1=0;t2=0;s1=s2=0;fh=0;cs=1;void xianshi(unsigned char xs4) /*显示程序*/int i,j;unsigned char zy;zy=0xf1;for (i=0;i1);for (j=0;j100;j+);return;unsigned char saomiao() /*键盘扫描程序*/int i;unsigned char pp;for(i=0;i1000;i+);p0=0xfe;p3=0x0f;pp=p3;if (p3_0=0) p3=0x0f;pp=p3;while (p3_0=0);for (i=0;i1000;i+);return 7;if (p3_1=0) p3=0x0f;pp=p3;while (p3_1=0);for (i=0;i1000;i+);return 8;if (p3_2=0) p3=0x0f;pp=p3;while (p3_2=0);for (i=0;i1000;i+);return 9;if (p3_3=0) p3=0x0f;pp=p3;while (p3_3=0);for (i=0;i1000;i+);return 11;p0=0xfd;p3=0x0f;pp=p3;if (p3_0=0) p3=0x0f;pp=p3;while (p3_0=0);for (i=0;i1000;i+);return 4;if (p3_1=0) p3=0x0f;pp=p3;while (p3_1=0);for (i=0;i1000;i+);return 5;if (p3_2=0) p3=0x0f;pp=p3;while (p3_2=0);for (i=0;i1000;i+);return 6;if (p3_3=0) p3=0x0f;pp=p3;while (p3_3=0);for (i=0;i1000;i+);return 12;p0=0xfb;p3=0x0f;pp=p3;if (p3_0=0) p3=0x0f;pp=p3;while (p3_0=0);for (i=0;i1000;i+);return 1;if (p3_1=0) p3=0x0f;pp=p3;while (p3_1=0);for (i=0;i1000;i+);return 2;if (p3_2=0) p3=0x0f;pp=p3;while (p3_2=0);for (i=0;i1000;i+);return 3;if (p3_3=0) p3=0x0f;pp=p3;while (p3_3=0);for (i=0;i1000;i+);return 13;p0=0xf7;p3=0x0f;pp=p3;if (p3_0=0) p3=0x0f;pp=p3;while (p3_0=0);for (i=0;i1000;i+);return 16;if (p3_1=0) p3=0x0f;pp=p3;while (p3_1=0);for (i=0;i1000;i+);return 0;if (p3_2=0) p3=0x0f;pp=p3;while (p3_2=0);for (i=0;i1000;i+);return 15;if (p3_3=0) p3=0x0f;pp=p3;while (p3_3=0);for (i=0;i=0 & x0;i-)xs1i=xs1i-1;xs10=x;s1+;t1=t1*10+x;if (bb=2)if (s2=4) cs=0;return ;elsefor (i=3;i0;i-)xs2i=xs2i-1;xs20=x;s2+;t2=t2*10+x;if (x10)if (bb=1) fh=x;bb=2;return;if (bb=2) if(fh=11&t2=0)t1=10000;if (fh=11) t1=t1/t2;if (fh=12) t1=t1*t2;if (fh=13) t1=t1-t2;if (fh=14) t1=t1+t2;if(t1=10000) cs=0;k=1;return;else if (t1=0 & t1=10 & t1=100 & t1=1000 & t110000) xs10=t1%10;xs11=t1%100/10;xs12=(t1-(t1/1000)*1000)/100;xs13=t1/1000;bb=2;s2=0;t2=0;xs20=10;xs21=10;xs22=10;xs23=10;fh=x;void main() /*主程序*/ sz0=0xc0;sz1=0xf9;sz2=0xa4;sz3=0xb0;sz4=0x99;sz5=0x92;sz6=0x82;sz7=0xf8;sz8=0x80;sz9=0x90;sz10=0xff;sz11=0x86; cs=0;k=2;for (;)if (cs=0) chushihua();if (cs=1) sj=saomiao();if (cs=1 & sj!=10) chuli(sj);if (cs=1 &(bb=1 | bb=2 & s2=0) xianshi(xs1);if (cs=1 &(bb=2 & s2!=0) xianshi(xs2);if(k=1)xianshi(xs3);if(cs=1&k=2)xianshi(xs4);5 系统的仿真调试进行110+600+9500的加法运算时,在进行前一部分的加法,即110+600是的结果显示如图5.1所示。在其结果上再加上9500时,结果超出了计算器的范围,计算器显示错误,数码管的显示如图5.2所示。图5.1 110+600的结果显示图图5.2 超出计算范围显示错误6 课程设计总结经过两周的努力,4位加法计算器终于设计成功,达到了要求的目标。这两周的课程设计,我过的忙碌且充实着,从上课后对单片机的懵懵懂懂,到现在熟练运用,我都觉得受益颇多。同学们在这为期两个星期的单片机课程设计中,都辛勤的努力着,都在自己的设计课题上都有着一个又一个的进步,大家的脸上都流露出兴奋的喜悦。在这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁动车组维修保养规范及流程
- 《光的折射与反射现象:小学自然常识实验教案》
- 音响考试试题及答案
- 六一入队活动方案
- 六一寻宝活动方案
- 六一患儿活动方案
- 六一果冻活动方案
- 六一活动具体活动方案
- 六一活动方案
- 六一活动跆拳道活动方案
- 【中考真题】2023年浙江嘉兴中考历史与社会.道德与法治试题及答案
- GB/T 42599-2023风能发电系统电气仿真模型验证
- 《电子技术基础》期末考试复习题库(含答案)
- TD-T 1070.1-2022 矿山生态修复技术规范 第1部分:通则
- 平压平模切机安全操作规程、风险告知卡、应急处置
- 红楼梦思辨读写导学全案
- GB/T 17626.4-2018电磁兼容试验和测量技术电快速瞬变脉冲群抗扰度试验
- 活性炭改性及吸附条件研究性实验
- PPT用中国地图(可编辑)
- 小学体育教研活动记录(有内容)
- 《戏剧鉴赏》专题教学课件
评论
0/150
提交评论