历史上的今天
返回首页

历史上的今天

今天是:2024年10月13日(星期日)

正在发生

2021年10月13日 | 基于51单片机的简易计算器设计

2021-10-13 来源:eefocus

一.硬件方案

本设计是以51单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘,可以进行加、减、乘、除4位带符号数字运算,并在LCD1602上显示操作过程。


主要由51单片机+最小系统+LCD1602液晶显示模块+4*4矩阵按键电路;如图:

二.设计功能

(1)本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用)单片机。

(2)矩阵按键输入、LCD1602液晶显示,构成一套可以运算两个数之间的加减乘除的设计。

(3)最大运算是:9999*9999,可以运算负数;


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

四.软件设计

(1)程序流程图

(2)主程序源码


void main()

{

uchar   key=0xff;               //键值初始化

uchar   n=0; //第1个数可以按1-4次

uchar   m=5; //第2个数可以按1-4次

uchar   x=0; 

data_a=0;                       //前一个数

data_b=0;                       //后一个数

data_c=0;                       //结果 

init_lcd();  //1602液晶初始化

display_a();

    while(1)

  {

  key=keycheckdown(); /*动态扫描键盘,返回按键对应值,赋给j        key=0到f */

if(0xff!=key) /*若返回值有效,进入内部处理程序*/

  if(key<10)

  {

        if(n<4){data_a=data_a*10+key;m=5;display_a();}n++;  //首先输入第一个数

    if(m<4){data_b=data_b*10+key;n=5;display_b();}m++;  //必须按了+-*/才能输入第二个数

  }

          else

          { switch(key) /*功能键选择*/

{

case 0xa:n=5;m=0;x=1;W_lcd(5,0,'+');break; //加  /* + S=1 */ /* 数值转换函数 */

case 0xb:n=5;m=0;x=2;W_lcd(5,0,'-');break;   /* - S=2 *///减

case 0xc:n=5;m=0;x=3;W_lcd(5,0,'*');break;   /* * S=3 *///乘

case 0xd:n=5;m=0;x=4;W_lcd(5,0,'/');break;   /* / S=4 *///除

case 0xe:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break;   /* = */

case 0xf:n=0;x=0;m=5; data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break; /*     C*/

}     

  }

do{P1=0xf0;}while(P1!=0xf0); /*等待按键松开*/

  }//(0xff!=key)   

  }//while

}//main

推荐阅读

史海拾趣

Amecon Magnetics公司的发展小趣事

Amecon Magnetics公司成立于XXXX年,初始阶段主要专注于磁性材料的研发与生产。在创立初期,公司面临着资金短缺、技术挑战以及市场竞争激烈等多重困难。然而,创始人凭借对磁性材料领域的深刻理解和坚定信念,带领团队不断突破技术难题,逐步开发出具有竞争力的产品。

Computer Conversions Corp公司的发展小趣事

Computer Conversions Corp非常重视人才的培养和团队建设。公司定期组织内部培训和技术交流活动,鼓励员工分享经验和创新想法。同时,公司还建立了完善的激励机制,为员工提供广阔的发展空间。这种以人为本的管理理念,不仅增强了团队的凝聚力和创新力,也为公司的持续发展注入了强大的动力。通过这些举措,Computer Conversions Corp打造出了一支高素质、高效率的技术团队,为公司的长远发展奠定了坚实的基础。

光磊(GL)公司的发展小趣事

面对日益严峻的环境问题,Computer Conversions Corp积极响应环保号召,开始研发更加环保的计算机转换技术。公司不仅优化了生产工艺,减少了生产过程中的能源消耗和废弃物排放,还推出了一系列节能型转换设备,帮助客户在提升计算效率的同时,也降低了能源消耗。这一举措不仅赢得了客户的赞赏,也提升了公司的社会形象。

Crouzet公司的发展小趣事

随着市场竞争的加剧,Crouzet开始注重提供定制化的解决方案,以满足客户不断变化的需求。公司凭借强大的研发能力和丰富的行业经验,能够根据客户的具体需求,提供量身定制的产品和服务。这种以客户需求为导向的经营理念,使得Crouzet在市场上赢得了更多的客户和合作伙伴。

Bombardier Inc公司的发展小趣事

随着全球航空市场的不断变化,庞巴迪公司在商用航空领域也取得了显著成就。其生产的CRJ系列区域喷气客机和Q系列涡桨飞机在全球范围内广受欢迎。这些飞机配备了先进的电子设备和系统,提供了更高的安全性和舒适性。庞巴迪还推出了C系列单通道中距客机,该机型以其环保、经济和人性化的设计赢得了市场的广泛认可。

Fuji Electric Co Ltd公司的发展小趣事

进入20世纪中叶,庞巴迪公司在航空领域的业务持续扩大。其生产的PBV-1A水上巡逻机,不仅装备了加拿大空军,还出口到美国海军。这一时期,庞巴迪在航空电子系统的集成和创新上取得了重要突破,提高了飞机的性能和安全性。这些技术进步使得庞巴迪在全球航空领域树立了良好的声誉。

问答坊 | AI 解惑

Broadcom发布支持Blu-ray和HD DVD解码器芯片

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 无线USB硬盘   希捷在CES2006大展公开演示了基于UWB(UltraWideBand)技术的移动硬盘。它可以在3米距离内最大达到480Mbps的传输速率。   最强游戏PC现身   DELL发布了一款最新游戏用PC ...…

查看全部问答>

急问:优龙2410通过usb的ms activesync连接不上pc

   我使用的是优龙2410开发板,usb连接是通过pc上的普通usb口连接到开发板上的方形usb口,可以通过此usb连接下载wince到开发板上,但是启动wince后却怎么也不能将pc和开发板通过ms activesync连接上。驱动已经安装好,设备管理器上显示有 ...…

查看全部问答>

求proteus 7.4版

如题。希望能够下一个。或者高手提供一个在vista下稳定使用的,能够和keil联调的proteus。…

查看全部问答>

操作系统兼容的问题, Windows, Linux, Vxworks.....

如题,众所周知现在的操作系统比较有名的是Windows, Linux, Vxworks, 他们的共性有如下: 1)可以创建线程 2)可以动态加载库文件 3)支持线程间通讯互斥 当然都支持C,C++标准语法,如new等等. 本人不才,请问还有其它操作系统支持以上特性否,请举例 ...…

查看全部问答>

自己编译的SDK问题

初学wince,我使用platform builder定制了个系统(照着一篇文章的介绍一步一步做的),编译SDK的过程很顺利,问题是在装完编译得到的SDK后,进入EVC环境,一选则自定义的SDK,系统就会死机。请问这是什么原因?是我SDK编译的问题还是EVC环境设置问 ...…

查看全部问答>

文献翻译-AM335x 硬件设计指南(未完)

    这些天的业余时间将围绕德州仪器(TI)的Cortex-A8 AM335x系列处理器进行学习,因为这款处理器的相关中文资料还很少,配套的开发板也是近期才推出的,在国内更是稀罕货,所以现在先从外文资料的翻译和学习先开始,翻译水平有限,也请 ...…

查看全部问答>

Sate210-F开发板硬件用户手册

1.Sate210-F 核心板硬件说明... 41.1概述... 41.2电气特性... 71.3引脚描述... 81.4接口描述... 191.4.1 通用数据总线SROM接口... 191.4.2 摄像头接口(CAMIF).. 211.4.3 LCD驱动器接口... 241.4.4 HDMI接口... 281.4.5 USB 2.0 HOST接口... 291.4.6 ...…

查看全部问答>

独立自锁按键 问题

独立自锁按键的程序与非自锁按键的程序一样吗,也需要检测2次吗?…

查看全部问答>

想入手一块二手2440开发板

哪位大侠有限制的2440开发板,要是JZ的最好了,其他的也行,希望价格便宜,联系我QQ496142088…

查看全部问答>

HEX文件内容有点不了解

最近做一些备案工作,有一项是查看软件代码的起始结束地址,从map文件里可以看到,但是知道也可以从hex文件里看 碰到一个问题 :067FF000B0B0B0B0B6AF66 :020000021000EC :0A7FF600FFFFFFFFFFFFFFFFFFFF8B :00000001FF复制代码最后四行是这样的。 ...…

查看全部问答>