久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)+LCD1602做的計算器 共享代碼原理圖與實(shí)物圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:150346 發(fā)表于 2017-12-23 17:30 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  最近課程設(shè)計做了個計算器 ,MCU用STC89C51 ,顯示部分用LCD1602,矩陣按鍵和獨(dú)立按鍵輸入.
  功能有 加減乘除 乘方運(yùn)算,可輸入小數(shù)點(diǎn), 可連續(xù)運(yùn)算,結(jié)果超過蜂鳴器會警告,24C02可以掉電保存運(yùn)算結(jié)果.
  分享給需要的人!!!!

1.基本的加減乘除運(yùn)算,輸入輸出全部為整形數(shù)
2.可以得到浮點(diǎn)型結(jié)果,不能輸入浮點(diǎn)數(shù)
3.加入乘方運(yùn)算
4.加入小數(shù)點(diǎn)輸入
5.加入連續(xù)運(yùn)算

源程序見附件,下面是制作出來的實(shí)物圖:


電路原理圖:


單片機(jī)源程序如下:
  1. /*=================================================*/
  2. /*項(xiàng)目名稱: 51單片機(jī)計算器
  3. /*代碼作者: F H X
  4. /*修改時間: 2017/12/20
  5. /*=================================================*/
  6. #include "Config.h"

  7. uchar T0RH = 0;                                  //定時器0重載值
  8. uchar T0RL = 0;

  9. extern bit Buzz_flag;                            //蜂鳴器開關(guān)標(biāo)志
  10. /*========================================================================*/
  11. /*函數(shù)名稱:void main()
  12. /*函數(shù)功能:主函數(shù)
  13. /*輸入?yún)?shù):無
  14. /*輸出參數(shù):無
  15. /*========================================================================*/
  16. void main()
  17. {
  18.         EA=1;                                          //開啟總中斷
  19.         Timer0Init(2);                                 //定時器0初始化 定時2ms
  20.         InitLcd1602();                                 //LCD1602初始化
  21.         
  22.         while(1)
  23.         {        
  24.                 KeyDrive();                                  //矩陣鍵盤驅(qū)動
  25.                 KeyDrive2();                                 //獨(dú)立鍵盤驅(qū)動
  26.         }
  27. }
  28. /*========================================================================*/
  29. /*函數(shù)名稱:void KeyDown(uchar keycode)
  30. /*函數(shù)功能:執(zhí)行按鍵動作
  31. /*輸入?yún)?shù):keycode
  32. /*輸出參數(shù):無
  33. /*========================================================================*/
  34. void KeyDown(uchar keycode)
  35. {
  36.         if((keycode <= 0x39)&&(keycode >= 0x30))           //數(shù)字鍵0~9
  37.         {
  38.                 BuzzerControl();
  39.                 NumAction(keycode - 0x30);
  40.         }
  41.         else if(keycode == 0x26)                           //"+"號
  42.         {
  43.                 BuzzerControl();
  44.                 OprAction(0);
  45.         }
  46.         else if(keycode == 0x25)                           //"-"號
  47.         {
  48.                 BuzzerControl();
  49.                 OprAction(1);
  50.         }
  51.         else if(keycode == 0x28)                           //"×"號
  52.         {
  53.                 BuzzerControl();
  54.                 OprAction(2);
  55.         }
  56.         else if(keycode == 0x27)                           //"÷"號
  57.         {
  58.                 BuzzerControl();
  59.                 OprAction(3);
  60.         }
  61.         else if(keycode == 0x0D)                           //"="號
  62.         {
  63.                 BuzzerControl();
  64.                 GetResult();
  65.         }
  66.         else if(keycode == 0x1B)                           //小數(shù)點(diǎn) '.'
  67.         {
  68.                 BuzzerControl();
  69.                 DecimalAction();
  70.         }
  71.         else if(keycode == 0x01)                           //復(fù)位鍵
  72.         {
  73.                 BuzzerControl();
  74.                 Reset();
  75.         }
  76.         else if(keycode == 0x02)                           //乘方運(yùn)算                  
  77.         {
  78.                 BuzzerControl();
  79.                 OprAction(4);        
  80.         }
  81.         else if(keycode == 0x03)                           //從24c02讀取運(yùn)算結(jié)果
  82.         {
  83.                 BuzzerControl();
  84.                 Read_Result();                              
  85.         }
  86.         else if(keycode == 0x04)                           //開關(guān)蜂鳴器聲音
  87.         {
  88.                 Buzz_flag = ~Buzz_flag;
  89.         }
  90. }
  91. /*========================================================================*/
  92. /*函數(shù)名稱:void Timer0Init(uint ms)
  93. /*函數(shù)功能:定時器0初始化
  94. /*輸入?yún)?shù):ms
  95. /*輸出參數(shù):無
  96. /*========================================================================*/
  97. void Timer0Init(uint ms)
  98. {
  99.         ulong tmp;                                //16位長整型變量tmp
  100.         tmp = MAIN_OSC/12;                        //用晶振頻率除以12得到定時器計數(shù)頻率
  101.         tmp = (tmp*ms)/1000;                      //計算出需要多少個機(jī)器周期
  102.         tmp = 65536 - tmp;                        //定時器的初始值
  103.         tmp = tmp + 18;                           //補(bǔ)償中斷延時響應(yīng)造成的誤差
  104.         T0RH = (uchar)(tmp>>8);                   //將tmp高8位右移8位 賦值給T0RH
  105.         T0RL = (uchar)tmp;                        //將tmp低8位賦值給T0RL
  106.         TMOD &= 0xF0;                             //TMOD高4位不變 低四位清零
  107.         TMOD |= 0x01;                             //TMOD低四位變成0001
  108.         TH0 = T0RH;                               //裝載初值
  109.         TL0 = T0RL;
  110. ……………………

  111. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
課程設(shè)計(計算器) - 最終版.rar (119.56 KB, 下載次數(shù): 32)

評分

參與人數(shù) 2黑幣 +55 收起 理由
kuiiel + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:102293 發(fā)表于 2017-12-24 11:01 | 只看該作者
好資料,學(xué)習(xí)學(xué)習(xí),謝謝分享!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 视频在线一区二区 | 免费看一区二区三区 | 成人精品一区二区三区中文字幕 | 精品www| www,黄色,com | 最新国产精品视频 | 国产精品美女久久久久aⅴ国产馆 | 在线中文一区 | 91精品久久久久久久久中文字幕 | 亚洲国产精品久久久 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 久久久91精品国产一区二区三区 | 欧美色综合网 | 天天拍天天射 | 欧美视频免费在线 | 黄页网址在线观看 | 亚洲一区二区三区免费视频 | 欧美一卡二卡在线 | 亚洲精品一区中文字幕乱码 | 亚洲高清一区二区三区 | julia中文字幕久久一区二区 | 亚洲视频免费 | 免费日韩网站 | 久色 | 亚洲一区二区精品视频 | 人妖一区 | 久久精品国产一区二区电影 | 中文字幕中文字幕 | 午夜国产羞羞视频免费网站 | 国产成人影院 | 日韩高清在线观看 | 狠狠操网站 | 久视频在线观看 | 欧美久久一区二区三区 | 国产高清免费视频 | 中国一级特黄真人毛片 | www.天天操 | 国产99视频精品免视看9 | 久久久国产精品视频 | 日韩精品一区二区三区在线播放 | 日一区二区 |