找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3223|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

PIC16F877單片機(jī)簡(jiǎn)易加法計(jì)算器 源碼+proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
PIC16F877單片機(jī)設(shè)計(jì),做了一個(gè)簡(jiǎn)易加法計(jì)算器


單片機(jī)源程序如下:
  1. /*
  2.   簡(jiǎn)單的加法計(jì)算器例程。
  3.   當(dāng)前使用方法:
  4.        1)  輸入第一個(gè)數(shù)(<4位);
  5.        2)  按+號(hào);清空數(shù)碼管;
  6.        3)  輸?shù)诙䝼(gè)數(shù)(<4位) ;
  7.        4)  按=號(hào)出結(jié)果;顯示在數(shù)碼管上
  8.        5)  按C號(hào),返回1)  繼續(xù)等待輸入
  9. */
  10. #include "pic.h"
  11. #include "delay.h"
  12. #include "keyboard.h"
  13. #include "seg74.h"
  14. //  ICD2調(diào)試時(shí)必須設(shè)定的配置字內(nèi)容
  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; // 開始時(shí)輸入數(shù)據(jù)放在Number[0]中。
  24.         while(1)
  25.         {
  26.        
  27.           i=GetKeyValue();  //獲得鍵值
  28.           if(i!=NO_KEY)  //如果有按鍵按下
  29.           {
  30.               if(i>=0 && i<=9) // 如果是數(shù)字鍵
  31.               {
  32.                 Number[NumIndex]=Number[NumIndex]*10+i; //原顯示數(shù)字×10+新數(shù)字
  33.               }
  34.               else
  35.               {
  36.                     switch(i)
  37.                     {
  38.                             case '+' : NumIndex=1; break; //按加號(hào)則開始記錄下一個(gè)數(shù)字
  39.                             case '=' : NumIndex=0; // 按等號(hào)說明用戶要求計(jì)算結(jié)果了
  40.                                         Number[0]=Number[0]+Number[1];  //Number[0]+計(jì)算加法
  41.                                         Number[1]=0; // 第二個(gè)數(shù)清零,這樣可以實(shí)現(xiàn)連加
  42.                                         break;
  43.                             case 'C' : Number[0]=0;  // C鍵表示計(jì)算器清零
  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. }
復(fù)制代碼

所有資料51hei提供下載:
PIC16F877簡(jiǎn)易加法計(jì)算器.zip (135.59 KB, 下載次數(shù): 37)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表