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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1768|回復: 1
打印 上一主題 下一主題
收起左側

51單片機 簡單計算器

[復制鏈接]
跳轉到指定樓層
樓主
代碼:
#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int

unsigned char table[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
unsigned char pos[]={0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
uint num[10];
uint cnt,flag,num1,num2,op,st;
unsigned long  res;
uint col,row;
/*--------------?óê±10ms×ó3ìDò---------*/
void delay10ms(void)
{
unsigned int TempCyc = 5552*2;
  while(TempCyc--);
}
void update()
{
   cnt = 1;
   num[cnt] = res % 10;
   for (;;)
   {
      if (res>10)
      {
  res = res/10;
  cnt++;
  num[cnt] = res % 10;
      }
      else
  break;
   }
   st = 1;
}
void delay(unsigned int k)
{
   unsigned int j;
   for (j=0; j<k; j++)
   {}
}
void main(void)
{
    uchar keyval;
    uint i;
    cnt = 0;
    flag = 0;
    num1 = 0;
    num2 = 0;
    op = 0;
    st = 0;
    for (;;)
    {
      
       P1 = 0xf0;
       keyval = 0xf0;
       if ((P1&0xf0) != 0xf0)
       {
   if (st != 0)
   {
      st = 0;
      cnt = 0;
   }
   keyval = P1^0xf0;
   switch (keyval)    //col
   {
      case (0x10):
  col = 1;
  break;
      case (0x20):
  col = 2;
  break;
      case (0x40):
  col = 3;
  break;
      case (0x80):
  col = 4;
         break;
   }
   delay10ms();
   P1 = 0x0f;
   keyval = P1^0x0f;
   switch (keyval)
   {
      case (0x01):
  row = 1;
  break;
      case (0x02):
  row = 2;
  break;
      case (0x04):
  row = 3;
  break;
      case (0x08):
  row = 4;
         break;
   }
   if ((col<4 && row<4))  //1~9
   {
      cnt++;
      if (flag == 0)
      {
  num1 = num1*10 + 9 - 3*row + col;
  num[cnt] = 9 - 3*row + col;
      }
      else
      {
  num2 = num2*10 + 9 - 3*row + col;
  num[cnt] = 9 - 3*row + col;
      }
      
   }   
   if (row == 4 && col == 1) //0
   {
      if (cnt!=0)
  cnt++;
      if (flag == 0)
      {
  num1 = num1*10;
  if (cnt != 0)
     num[cnt] = 0;
      }
      
      else
     {
  num2 = num2*10;
  if (cnt != 0)
     num[cnt] = 0;
      }
   }
   if (row == 4 && col == 2) //C
   {
      cnt = 0;
      flag = 0;
      num1 = 0;
      num2 = 0;
      op = 0;
   }
   if (col == 4)  //option
   {
      flag = 1;
      cnt = 0;
      op = row;
   }
   if (row == 4 && col == 3)     //=
   {
      switch (op)
      {
  case (1):
     res = num1+num2;
     update();
     break;
  case (2):
     res = num1-num2;
     update();
     break;
  case (3):
     res = num1*num2;
     update();
     break;
  case (4):
     res = (num1*10/num2+5)/10;
     update();
     break;
      }
      flag = 0;
      num1 = 0;
      num2 = 0;
      op = 0;
   
   
  }
  P1 = 0xf0;
  while((P1&0xf0)!=0xf0);
      }
       P2 = 0x00;
       for (i = 1; i <=cnt; i++)
       {
   P2 = pos[i];
   if (st == 0)
      P0 = table[num[cnt-i+1]];
   else
      P0 = table[num[i]];
   delay(300);
       }
    }
   
   
   while (1)
      ;
}

2019-07-12_185550.png (174.35 KB, 下載次數: 23)

原理圖

原理圖
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:543557 發表于 2019-7-21 11:19 | 只看該作者
正好需要,謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线视频网址 | 91五月婷蜜桃综合 | 午夜在线视频 | av电影一区 | 91欧美精品成人综合在线观看 | 午夜精品久久 | 成人精品国产免费网站 | 91精品国产综合久久久久久首页 | 国产精品久久久久久久久久尿 | 中文成人无字幕乱码精品 | 一级午夜aaa免费看三区 | 日本免费一区二区三区四区 | 国产成人精品久久二区二区 | www.夜夜骑.com| 亚洲精品乱码久久久久久久久久 | 亚洲精品视频在线 | 国产精品一区二区视频 | 欧美成视频在线观看 | 中文字幕一区二区三区在线观看 | 久久鲁视频 | 国产精品一区二区不卡 | 亚洲精品一区在线 | 日韩喷潮| 91久久国产综合久久91精品网站 | 国产91亚洲精品一区二区三区 | 999久久 | 国产精品1 | 亚洲精品中文字幕在线观看 | 成人午夜影院 | 国产精品视频久久久 | 国产激情网 | 波霸ol一区二区 | 中文字幕亚洲一区二区三区 | 在线色网| 特黄特色大片免费视频观看 | 亚洲国产精品久久 | 国产精品久久9 | 久久这里只有精品首页 | 中文字幕av网站 | 国产成人短视频在线观看 | 日韩色在线|