找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2393|回复: 0
打印 上一主题 下一主题
收起左侧

PIC16F877单片机简易加法计算器 源码+proteus仿真

[复制链接]
跳转到指定楼层
楼主
PIC16F877单片机设计,做了一个简易加法计算器


单片机源程序如下:
  1. /*
  2.   简单的加法计算器例程。
  3.   当前使用方法:
  4.        1)  输入第一个数(<4位);
  5.        2)  按+号;清空数码管;
  6.        3)  输第二个数(<4位) ;
  7.        4)  按=号出结果;显示在数码管上
  8.        5)  按C号,返回1)  继续等待输入
  9. */
  10. #include "pic.h"
  11. #include "delay.h"
  12. #include "keyboard.h"
  13. #include "seg74.h"
  14. //  ICD2调试时必须设定的配置字内容
  15.   
  16. main()
  17. {
  18.         int i=0,k=9,Number[2]={0,0},NumIndex=0;
  19.         SEG_FONT_PORT_DIR=0x00;
  20.         SEG_FONT_PORT=0x00;
  21.         SEG_BITSEL_PORT_DIR=0xF0; // low 4 bits is selecting  bit
  22.         SEG_BITSEL_PORT=0x0;  //  deselect all 4 bits
  23.         NumIndex=0; // 开始时输入数据放在Number[0]中。
  24.         while(1)
  25.         {
  26.        
  27.           i=GetKeyValue();  //获得键值
  28.           if(i!=NO_KEY)  //如果有按键按下
  29.           {
  30.               if(i>=0 && i<=9) // 如果是数字键
  31.               {
  32.                 Number[NumIndex]=Number[NumIndex]*10+i; //原显示数字×10+新数字
  33.               }
  34.               else
  35.               {
  36.                     switch(i)
  37.                     {
  38.                             case '+' : NumIndex=1; break; //按加号则开始记录下一个数字
  39.                             case '=' : NumIndex=0; // 按等号说明用户要求计算结果了
  40.                                         Number[0]=Number[0]+Number[1];  //Number[0]+计算加法
  41.                                         Number[1]=0; // 第二个数清零,这样可以实现连加
  42.                                         break;
  43.                             case 'C' : Number[0]=0;  // C键表示计算器清零
  44.                                        Number[1]=0;
  45.                                        NumIndex=0;
  46.                                        break;
  47.                             case  NO_KEY : break;  // 说明无按键按下
  48.                             default :   break;
  49.                     };
  50.              }
  51.           }
  52.           DisplayData(Number[NumIndex]);          
  53.         }
  54. }
复制代码

所有资料51hei提供下载:
PIC16F877简易加法计算器.zip (135.59 KB, 下载次数: 36)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表