51单片机计算器设计(11页).doc
《51单片机计算器设计(11页).doc》由会员分享,可在线阅读,更多相关《51单片机计算器设计(11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-51单片机计算器设计-第 11 页1引言当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。 它所给人带来的方便
2、也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。本设计是由单片机实现的模拟计算器,它不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-256的数字四则运算。本设计是用单片机AT89C51来控制,采用共阳极数码显示
3、,软件部分是由C语言来编写的。设计任务利用键盘和数码管设计一个简单的数学计算器,可以完成简单的如加,减,乘,除的四则运算,并将运算结果在数码管上显示出来。2方案论证与设计根据功能和指标要求,本系统选用MCS 51 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计考虑如下:由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高,故我们采用可以进行四位数字的运算,选用8 个LED 数码管显示数据和结果。另外键盘包括数字键(09)、符号键(+、-、)、清除键和等号键,故只需要16 个按键即可。系统模块图:2.1 输入模块:键盘扫描计算器输入数字和其他功能按键要
4、用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图2 所示:一般有16 个键组成,在单片机中正好可以用一个P 口实现16 个按键功能,这种形式在单片机系统中也最常用。由图 3 矩阵键盘内部电路图可以知道,当无按键闭合时,P10P13 与P14P17 之
5、间开路。当有键闭合时,与闭合键相连的两条I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线P14P17 为输入状态,从行线P10P13 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P14P17 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。2.2 运算模块:单片机控制AT89C51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等
6、一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。35单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。2.3 显示模块:LED 显示发光二极管LED 是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等
7、。因而作为典型的外围器件,LED 显示单元是反映系统输出和操作输入的有效器件。LED 具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用。24通常的数码显示器是由7 段条形的LED 组成(如图4 所示),点亮适当的字段,就可显示出不同的数字。我们采用8 段数码管,其中位于显示器右下角的LED 作小数点用。LED 显示器有两种不同的形式:共阴极和共阳极。本次设计采用共阴极接法(如图5所示)。3、硬件原理 3.1 硬件连接 图3-1所示是简易计算器电路原理图。P3口用于键盘输入,接4X4键值与键盘对应表如图表
8、所示,P0口和P2口用于显示,P2口用于显示数位值高位,P0用于显示数位值的低位。 键值 0 1 2 3 4 5 6 7 8 9 + - x / = ON/C 功能 0 1 2 3 4 5 6 7 8 9 + - x / = 清零4、软件设计在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序
9、和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。功能流程图如下:程序流程图程序:#includeat89x52.h /头文件/-预定义模块-/*预定义数组*/字形码 0 1 2 3 4 5 6 7const unsigned char KEY_NUMBER=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07/ 8 9 + - * / = CE,0x7f,0x6f,0xF0,0xC0,0xF6,0xD2,0x89,0xB9;/扫描键码 0 1 2 3 4 5 6 7const unsig
10、ned char KEY_VALUE=0x7e,0xbe,0xde,0xee,0x7d,0xbd,0xdd,0xed/ 8 9 A B C D E F,0x7b,0xbb,0xdb,0xeb,0x77,0xb7,0xd7,0xe7;/数码管各显示位: 0位 1位 2位 3位 4位const unsigned char DISPLAY_BIT5=0xFE,0xFD,0xFB,0xF7,0xEF;/十进制转换权值const int bcd_right5=1,10,100,1000,10000;unsigned char buffer_number5; /输入数据缓冲区unsigned char b
11、uffer_dis5; /计算结果显示缓冲区unsigned long int buffer_opera5; /输入数据十进制转换缓冲区/*预定义变量*/unsigned char const NULL=0xFF;unsigned char opera=0x00; /输入数据转换指针unsigned char count=0x00; /键盘输入指针unsigned char enter_number=0x01; /输入数据显示和计算结果显示开关unsigned char ptr_i=0x00; /运算结果转换指针unsigned char buffer_control; /控制键缓冲区unsi
12、gned char key_bcd; /按键的十进制值unsigned char scan_key; /当前扫描到的键值unsigned char temp_c; /临时变量unsigned char ptr_c; /十进制转化指针unsigned char account; /四则运算标志unsigned long int result=0x00; /当前计算结果unsigned long int rlt; /前一个输入的数的十进制值unsigned long int sec_rlt; /后一个输入的数的十进制值unsigned long int c_n; /当前转换的运算结果名称: 初始化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 计算器 设计 11
限制150内