




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 AT89C51 单片机简易计算器的设计一、设计目的二、总体设计及功能介绍三、硬件设计四、软件设计五、设计总结参考文献:一、设计目的单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核 心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽 车、工业等。本设计是基于51系列单片机来进行的简单数字计算器设计,可 以完成计算器的键盘输入,进行加、减、乘、除六位无符号数范围内的基本 加减运算,并在LEDt显示相应的结果。软件方面使用C语言编程,并用PROTUES 仿真,通过硬件实现功能。二、总体设计及功能介绍根据功能和指标要求,本系统选用 MCS-5系列单片机为主控机,
2、实现对计算器的设计。具体设计及功能如下:(1) 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果。(2) 另外键盘包括数字键(09)、符号键(+、-、x、+)、清除键 和等号键,故只需要16个按键即可,设计中采用集成的计算键盘。(3) 执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并 等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。三、硬件设计本设计选用AT89C51单片机为主控单元。显示部分:采用 LED动态显示。按 键部分:采用
3、4*4集成计算键盘;总电路图:实物图:四、软件设计现实生活中人们熟知的计算器,其功能主要如下:1、键盘输入;2、数值显示;3、加、减、乘、除四则运算;针对上述功能,计算器软件程序要完成以下程序的设计:1、键盘输入检测程序2、LED显示程序3、算术运算程序1、程序流程图2、程序清单/* 实验名称 :六位无符号数加减法简易计算器* 连接方式 : P0 口 - 段选* 138 译码器的 A、 B、 C-P2.2 、 P2.3、 P2.4*P1 口-矩阵键盘*键盘 : 7 89+*4 5 6 -*1 2 3*CLR 0 =*/ #include/ 宏定义类型#define uchar unsigned
4、 char#define uint unsigned int/- 定义使用的 IO 口-/#define DUAN P0#define KEY P1sbit WEIA = P2A2;sbit WEIB =卩2八3;sbit WEIC = P2A4;/ 段码表uchar codeDUANMA10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0-9/ 显示的八位数据uchar xianshi8 = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/ 第一个数据,第二个数据,得到的数据,符号long num4
5、= 0, 0, 0, 0;/* 函数名称: Delay* 作用:毫秒延时* 参数:延时毫秒*/ void Delay(uint x)uint i,j;for(i=x;i0;i-) for(j=110;j0;j-);/* 函数名称: Kbscan* 作 用:矩阵键盘扫描* 返回值 :按键行列数对应的十六进制数据 */uchar Kbscan( void )uchar sccode,recode;KEY = 0xf0;Delay(1);if(KEY != 0xf0)Delay(2);if(KEY != 0xf0)sccode = KEY & 0xf0;KEY = 0x0f;Delay(1);rec
6、ode = (KEY & 0x0f) | sccode;KEY = 0x0f;Delay(1);while(KEY != 0x0f);return recode;return 0;/* 函数名称: Keyval* 作 用:键值解码* 返回值 :按键对应功能值*10表示+, 11表示-,12表示* , 13表示/ , 14表示CLR 15表示=*/uchar Keyval( void )uchar key;uchar keyval = 16;/ 无按键 key = Kbscan();switch(key)case 0xee:keyval=7;break;case 0xde:keyval=8;br
7、eak;case 0xbe:keyval=9;break;case 0x7e:keyval=10;break;/ +case 0xed:keyval=4;break;case 0xdd:keyval=5;break;case 0xbd:keyval=6;break;case 0x7d:keyval=11;break;/ -case 0xeb:keyval=1;break;case 0xdb:keyval=2;break;case 0xbb:keyval=3;break;case 0x7b:keyval=12;break;/ *case 0xe7:keyval=14;break;/ CLR ca
8、se 0xd7:keyval=0;break;case 0xb7:keyval=15;break;/ =case 0x77:keyval=13;break;/ / default:break;return keyval;/* 函数名称: Ewu* 作 用:计算功能实现void Ewu( void )uchar getkey,i;getkey = Keyval();if(getkey 10)/按下的是数字if(num3 = 0)/ 没有符号,表示输入第一个数if(num0 100000)/ 五位数时还可以再输入一位 num0=num0*10+getkey;if(num3 != 0)/有符号,输入
9、第二个数if(num1 9 & getkey 16)/特殊按键按下if(getkey = 10)/ +num3 = 1;for(i=0;i8;i+)xianshii = 0x00;if(getkey = 11)/ -num3 = 2;for(i=0;i8;i+)xianshii = 0x00;if(getkey = 12)/ *num3 = 3;for(i=0;i8;i+)xianshii = 0x00;if(getkey = 13)/ /num3 = 4;for(i=0;i8;i+)xianshii = 0x00;if(getkey = 14)/ CLR for(i=0;i4;i+)numi
10、=0;/ 清除数据for(i=0;i 0)for(i=8;i0;i-)if(DIS 0)xianshii-1 = DUANMA(uchar)(DIS%10);DIS = DIS / 10;xianshi0 = 0x00;if(DIS 0;i-)if(DIS 0)xianshii-1 = DUANMA(uchar)(DIS%10); DIS = DIS / 10;xianshi0 = 0x40;/显示负号for(i=0;i8;i+)switch(i)case 0:WEIA =0;WEIB =0; WEIC =0;break;case 1:WEIA =1;WEIB =0; WEIC =0;brea
11、k;case 2:WEIA =0;WEIB =1; WEIC =0;break;case 3:WEIA =1;WEIB =1; WEIC =0;break;case 4:WEIA =0;WEIB =0; WEIC =1;break;case 5:WEIA =1;WEIB =0; WEIC =1;break;case 6:WEIA =0;WEIB =1; WEIC =1;break;case 7:WEIA =1;WEIB =1; WEIC =1;break;/ 发送段码DUAN = xianshii;Delay(1);DUAN = 0x00;/ 消隐void main( void )while(
12、1)Ewu();Display();五、设计总结通过课程设计 ,我掌握了计算器的工作原理以及设计方法, 我通过对计算器的几个 模块的深入理解,我掌握了计算器的组成和制作过程,并通过自己的努力,制作出了自 己的计算器,提高了我的动手能力和实践能力,同时我对单片机有了更深入的理解,也 学会了使用单片机的方法,加深了对课本知识的进一步理解。加强了我思考和解决问题 的能力,认识来源于实践, 实践是认识的动力和最终目的, 实践是检验真理的唯一标准!在设计过程中,经常会遇到一些问题,就是心里想老着这样的接法可以行得通,但实 际接上电路,总是实现不了。所以这几天不管是吃饭还是睡觉,脑子里总是想着如何解决 这
13、些问题,功夫不负有心人,我通过认真思考,请教同学,查找资料 , 最后终于熟练掌握 了基本理论知识,而且领悟诸多平时学习难以理解掌握的较难知识,学会了如何思考的思 维方式,找到了设计的灵感。在寻找答案的过程中 , 我学到了很多平时缺少的东西,对于 理论知识学习不够扎实的我深感“书到用时方恨少”!认真思考才能找到出路,当初没有思路,诚如举步维艰,茫茫大地,不见道路。在对 理论知识梳理掌握之后,茅塞顿开,柳暗花明,思路如泉涌,高歌“条条大路通罗马”。 顿悟,没有思考便无出路,雨后才能见彩虹。失败是成功之母。不经历多次调试,是不可能得到完好的程序的。至善至美,是人类 永恒的追求。但是,不从忘却“金无足
14、赤,人无完人”,我们换种思维方式,去恶亦是至善,改错亦为至美。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断 获取。最终的调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。实践课诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门 讲道课,一门思辨课,给了我许多道,给了我很多思,给了我莫大的空间。至于建议,一 言以蔽之,大学教育当如此。 我是一个急性子的人,看到那么复杂知识,我就不想做了,不过为了搞好课程设计,我硬 是耐心完成每一个细节,我坚持一天呆在实验室 10 多个小时,虽然晚上眼睛比较酸痛, 但是我感觉值。这么多天的努力没有白费,我最后很好的完成了任务 ,很有成就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- XJJ 103-2019 生态修复城市修补技术导则
- 安全应急考试题及答案
- 安徽导游资格证笔试题及答案
- qc基础知识考试试题及答案歌尔
- oppo秋招笔试题目及答案
- 传媒广告代签合同全权委托授权书
- 江苏地区离婚财产分配与子女监护权约定合同样本
- 高考专业兴趣测试题及答案
- 慢性扁桃体炎护理诊断
- 2025至2030中国大葱种植行业产业运行态势及投资规划深度研究报告
- 4.3 海-气相互作用课件【知识精研】高二上学期地理鲁教版(2019)选择性必修1
- 苏科版九年级上册数学第一次月考试卷附答案
- 2025年蜀道集团招聘笔试参考题库含答案解析
- 全套55讲-鱼C论坛小甲鱼Python课后题-20211129034856
- 浙江省温州市“摇篮杯”2022-2023学年高一下学期化学竞赛试卷 含解析
- 24年追觅在线测评28题及答案
- 电信明厨亮灶合同范本
- 部编版二年级语文上册《植物妈妈有办法》教学课件2篇21
- 中译版 欧洲规范8 结构抗震设计 第二部分 桥梁
- 《陆上风电场工程概算定额》NBT 31010-2019
- 酒店住宿抵款协议书
评论
0/150
提交评论