计算器1602设计

上传人:ni****g 文档编号:508892325 上传时间:2024-01-15 格式:DOC 页数:31 大小:665.50KB
返回 下载 相关 举报
计算器1602设计_第1页
第1页 / 共31页
计算器1602设计_第2页
第2页 / 共31页
计算器1602设计_第3页
第3页 / 共31页
计算器1602设计_第4页
第4页 / 共31页
计算器1602设计_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

1、89C51单片机和1602做的简易计算器(软件设计部分)2009-05-15 16:19经过几天的整理,现在把它放这里与大家一起分享!第 3章 项目实现:简易计算器的设计3.1 硬件连接图3-1所示为简易计算器的电路原理图。P3 口用于键盘输入,接4*4矩阵键盘, 键值与键盘的对应表如表-所示,p0 口和p2 口用于显示,p2 口用于显示数值的 高位,po 口用于显示数值的低位。vccTR2SW-PEEe$2JKioopr53QpF 匚二| 而MKi?0eFU1P1J0(ADO.OP1.1P1J(AD2.2PU(AL 30.5P1.4(APt)Prt.+Pl J(ALSPrt.SP1j6Pl.

2、7(Al)7Prt.7P3 3LINT1)(AJ83P3.0P3.2(IHT0)(A105P2JP3-5(;Tp(Al 1JP2.3P3.4(T0)(A12)P3.斗(Al 33.5EM/PP(A1+5P2.(A15JP3.7a XIALLXT心VC (J(jNDRSI(KXD 职 QCTXDJP3.1P3-7QU)ALEfPROgP3x5WR)PSEtT) 一vcc |I4020rnr PC?POJpqJP04P05P06P07VCETWu2、AAAAAAIKP50o?h SW-PEdlD0SW-PE-JiJSWTB.*SWPB4SW-P8P52kI33SW-FEj|SW-PB3riij-i

3、QaTASWFB SWPE SW-PB1P34nsRe2 lOK图3-1简易计算器电路原理图键值与功能对应表键值 0123456789+ON/C功能 0123456789+- x 十=清零表 3-13.2 计算器的软件设计#include /头文件#define uint unsigned int /#define uchar unsigned charsbit Icde n=P23; /定义引脚sbit rs=P2A4;sbit rw=P2A0;sbit busy=P0A7;char i,j,temp,num,num_1;long a,b,c;a,第一个数b,第二个数c,得数fIoat a_

4、c,b_c;uchar flag,fuhao;/flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table=7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30;void delay(uchar z) / 延迟函数uchar y;for(z;z0;z-)for(y=0;yK苹4ns 宀bHbu o+fab-ernumke-se ifmumHH 二)3 口-H

5、s-1- 宀f_agH_k-fuhaoH2yK5wM4nmnQrb-e 二 numWmeldafe(ox3o+i)八P3uoxf7_=h(p3H0xf7) 宀de-ay(5)八=h(p3H0xf7)宀fempHP3QOoxfo 八 swiohaemp)case 0xe0:num=12;break;case 0xd0:num=13;break;case 0xb0:num=14;break;case 0x70:num=15;break;while(P3!=0xf7);switch(num)case 12:write_com(0x01);a=0;b=0;flag=0;fuhao=0;/ 按下的是 清

6、零 break;case 13:/按下的是 0if(flag=0)/ 没有按过符号键a=a*10;write_date(0x30);P1=0;else if(flag=1)/ 如果按过符号键b=b*10;write_date(0x30);break;case 14:j=1;if(fuhao=1)write_com(0x80+0x4f);/ 按下等于键, 光标前进至第二行最后 一个显示处write_com(0x04); /设置从后住前写数据,每写完一个数据,光标后退 一格c=a+b;while(c!=0)write_date(0x30+c%10);c=c/10;write_date(0x3d);

7、 /再写 =a=0;b=0;flag=0;fuhao=0;else if(fuhao=2)write_com(0x80+0x4f);/ 光标前进至第二行最后一个显示处write_com(0x04); /设置从后住前写数据,每写完一个数据,光标后退 一格 (这个照理说顺序不对,可显示和上段一样 )if(a-b0)c=a-b;elsec=b-a;while(c!=0)write_date(0x30+c%10);c=c/10;if(a-b0)write_date(0x2d);write_date(0x3d); /再写 =a=0;b=0;flag=0;fuhao=0;else if(fuhao=3)write_com(0x80+0x4f);write_com(0x04);c=a*b;wh

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

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