计算器模拟系统设计.doc

上传人:m**** 文档编号:559360534 上传时间:2023-08-13 格式:DOC 页数:25 大小:247.02KB
返回 下载 相关 举报
计算器模拟系统设计.doc_第1页
第1页 / 共25页
计算器模拟系统设计.doc_第2页
第2页 / 共25页
计算器模拟系统设计.doc_第3页
第3页 / 共25页
计算器模拟系统设计.doc_第4页
第4页 / 共25页
计算器模拟系统设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《计算器模拟系统设计.doc》由会员分享,可在线阅读,更多相关《计算器模拟系统设计.doc(25页珍藏版)》请在金锄头文库上搜索。

1、计算器模拟系统设计姓 名: 学 号: 专业班级: 指导老师: 所在学院: 2010年7月5日摘要本设计是利用MCS-51系列单片机完成计算器数字输入、显示以及简单计算的模拟系统设计,该模拟系统可以完成对计算器的数字信息的输入并且显示在相应的LED上,可以进行简单的四则运算。这次做的课程设计先是利用proteus软件将电路路画出来,然后利用c语言进行编写程序,再在keil软件下进行程序的修改和调试,生成可以在proteus软件下能执行的程序,然后又在proteus软件下进行很长时间的调试,其中请教了老师和同学,终于完成了这次课程设计的内容。单片机是一种特殊的计算机,它是在一块半导体芯片上集成了C

2、PU、存储器RAM、ROM以及输入与输出接口电路,这种芯片习惯上被称为单片机(Single Chip Microcomputer)。单片机具有:性能价格比最佳、控制功能强、抗干扰能力强和环境适应能力强等众多优点,使单片机得到广泛推广,目前已成为测量控制应用系统中的优选机种和新电子产平的关键部件。在众多的单片机中,MCS-51系列单片机具有系统结构完整、特殊功能寄存器规范化以及指令系统的控制功能强等特色,使其成为单片机中的主流机型。我做的计算器模拟系统是44键盘,分别表示09、/ 、和清零键CL,能够显示8位的数字,开机远行时,数码管最低位显示为“0”,其余位全部不显示,第一次按下时,显示“D1

3、”;第二次按下时,显示“D1D2”;第三次按下时,显示“D1D2D3”,可以进行加减乘除四则运算。在指导老师的指导下,完成了这次课程设计,基本上符合了课程设计的要求。目录1 概述32 系统总体方案及硬件设计3 2.1 系统框图32.2 总体电路设计43 软件设计5 3.1程序流程图5 3.2键盘程序的设计6 3.3四则运算程序94 Proteus软件仿真9 4.1数据的输入9 4.2加法计算10 4.3乘法仿真115课程设计体会11参考文献11附1:源程序代码12附2:计算器模拟系统电路图251 概述采用单片机设计一个计算器模拟系统,完成计算器数字输入、显示以及简单计算的模拟系统设计,该模拟系

4、统可以完成对计算器的数字信息的输入并且显示在相应的LED上,可以进行简单的加法计算。输入完毕要求有声音提示。具体要求:(1)要求模拟的计算器至少显示8位数字,开机运行时,只有数码管最低位显示为“0”,其余位全部不显示;(2)设计44键盘,分别表示09、/ 、和清零键CL,输入的数字从设计的键盘输入;(3)第一次按下时,显示“D1”;第二次按下时,显示“D1D2”;第三次按下时,显示“D1D2D3”,8个全显示完毕,再按下按键下时,给出“嘀”提示音;(4)可以对计算结果小于256的两个无符号数进行加法运算,并显示计算结果。对于、/、和的运算为提高部分;(5)编写程序,用proteus软件进行仿真

5、。报告中给出操作过程及运行效果图。2 系统总体方案及硬件设计2.1 系统框图电路由下列部分组成:时钟电路、复位电路、LED显示,其中电路以8051 单片机为中心。由于用proteus软件可以不需要时钟电路和复位电路,所以没有画出来。时钟电路复位电路键盘单片机数码显示图1 系统基本框图2.2总体电路设计用8051单片机设计的总体电路图如图2。电路图的设计直接影响到程序的编写,所以电路图的设计是这次课程设计的第一步,而且电路图设计的好坏也将影响到程序编写的难易程度。我所采用的是用P3.0P3.7作为键盘是输入口用,用P1.0P1.7和P2.0P2.7作为是单片机的输出口,而根据8051单片机P2口

6、的结构特点,必须接上拉电阻,所以接了一串口的电阻。因为输入口和输出口都已经够用,所以可以不用P0口。图2总体电路图2.3 键盘设计键盘是由若干个按键组成的开关矩阵,是一种廉价的输入设备。这里用的是44的矩阵式键盘,电路原理图如图3所示,44键盘的8根列线分别与P3.0P3.7口相连。每当有键按下时,所按得键值可以通过四位一体的共阴极LED数码管显示出来。当键盘上没有键闭合时,所有的行线与列线断开,4根列线都呈高电平。当键盘上某一个键闭合时,则该键所对应的列线与行线短接,则列线的电平由行线的电位决定。为了便于说明键盘的扫描方式,把根列线编为Y0、Y1、Y2、Y3,4根行线编为X0、X1、X2、X

7、3,若使行线X0为低电平,其余X1,X2都为高电平,读列线状态。如果Y0,Y1,Y2均为高电平,则X0这一行上没有闭合键;如果读出的列线状态不全为高电平,则为低电平的列线与X0相交处的键处于闭合状态。如果X0这一行上没有闭合键,再使X1为低电平,重复上面的操作。通过自己的设计,画出了键盘如图3。图3键盘图3 软件设计3.1程序流程图:程序流程图是我们在设计程序之前去程序的一个总是设计思路,我们在编写程序之前要认真的想好流程图然后再编写程序,在设计程序时也是要根据流程图的思路仔细编写。开始有无键盘闭合 Y调用显示子程序延迟 N二次调用显示子程序延迟有键闭合否 N Y判断闭合键键号入栈闭合键释放否

8、调用显示子程序延时6ms Y键入键号到A返回图4程序流程图3.2键盘程序的设计矩阵键盘的结构与工作原理:矩阵键盘显然比独立键盘要复杂一些,识别也要复杂一些,图3中列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,列线所接的I/O口则作为输入。当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,通过读入输入线的状态就可得知是否有键按下了。用C语言编写的程序如下:void main(void) TMOD=0x01; TH0=(65536-4000) / 256; TL0=(65536-4000) % 256; TR0=1; ET

9、0=1; EA=1; while(1) P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; if(key=10) ccflag=1; cccc=4; if (key=0) & (key10) keypos+; /按键次数 if(keypos1) if(ccflag!=1) dataa=dataa*10+key; sum=dataa; else datab=datab*10+key; sum=datab; else if(ccflag!=1) dataa=key; sum=dataa; else datab=key; sum=datab; else keypos=8; alarmflag=1; temp=P3; P1_0=P1_0; temp=temp & 0x0f; while(temp!=0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号