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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己寫的51單片機的計算器程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:263173 發表于 2017-12-23 12:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include<reg52.h>

#define ucharunsigned char

#define uintunsigned int



#define weixuan P1

#define duan  P0



int qian,bai,shi,ge;

intnum1,num2,num,keyvalue,keyvalue1;

uchar codetable[11]={0x14,0xd7,0x4c,0x45,0x87,0x25,0x24,0x57,0x04,0x05,0xff};//定義數碼管的數值0-9,0xff為滅。

uchar  wei[4]={0,0,0,0};定義位。

//uchardisbuffer[4]={0,11,11,11};







   void delayms(uintxms)//延時函數

  {

   uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

  }



   



temp=0x01;         顯示函數

void display()

{

    qian=num/1000;

  bai=num%1000/100;

  shi=num%100/10;

  ge=num%10;



  weixuan = ~wei[1] ;

duan=table[ge];

delayms(1);

duan=0xff;



weixuan = ~wei[2] ;

duan=table[shi];

delayms(1);

duan=0xff;





  weixuan = ~wei[3];        

duan=table[bai];



delayms(1);

duan=0xff;



weixuan = ~wei[4] ;

duan=table[qian];



delayms(1);

duan=0xff;

delayms(1);

  }



  



void init()        //                      初始化函數

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;



}





unsigned char keyscan()          //按鍵掃描函數

{

unsigned char keytemp,keyvalue;

keyvalue1 = 0;

P3=0x0f;

keytemp=P3;

if(keytemp!=0x0f)

delayms(5);

else

return 0xff;





P3=0x0f;

keytemp=P3;

if(keytemp!=0x0f)

{

switch(keytemp)

{

case 0x0e:keyvalue=0;

break;

case 0x0d:keyvalue=1;

break;

     case 0x0b:keyvalue=2;

break;

case 0x07:keyvalue=3;

break;


}

P3=0xf0;

keytemp=P3;

switch(keytemp)

{

case0xe0:keyvalue1=keyvalue+0;

break;

case0xd0:keyvalue1=keyvalue+4;

break;

     case0xb0:keyvalue1=keyvalue+8;

break;

case0x70:keyvalue1=keyvalue+12;

break;



       }        

if(keyvalue1<10)                 //按鍵位移  并且給按鍵賦值

  {

wei[4]=wei[3]<<1;

wei[3]=wei[2]<<1;

wei[2]=wei[1]<<1;

wei[1]=wei[0];

     num=num*10+keyvalue1;

}



while(P3 != 0xf0);

   



}

return keyvalue1;

}









void yunsuan()            //運算并且分辨按鍵的值

{



static uchar fh;//

if(fh==0)

{

num1=num;

     }

else

{

num2=num;

      }

if(keyvalue1==11)

{        

switch(fh)

{

case 1:num=num1+num2;

break;

case 2:num=num1-num2;

break;

case 3:num=num1*num2;

break;

case 4:num=num1/num2;

break;

}

wei[4]=8,wei[1]=1,wei[2]=2,wei[3]=4;

}

if(keyvalue1>11)

{

    switch(keyvalue1)

{

case 12:fh=1;break;

case 13:fh=2;break;

case 14:fh=3;break;

case 15:fh=4;break;

     }

num=0;

wei[4]=0,wei[1]=0,wei[2]=0,wei[3]=0;

}

if (keyvalue1==10)

{

num=0,num1=0,num2=0,wei[4]=0,wei[1]=0,wei[2]=0,wei[3]=0;fh=0;

      }

keyvalue1 = 0;

}





main()                     //主函數

{

    init();

   while(1)

{

keyscan();

yunsuan();

display();

     }

}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:771010 發表于 2020-7-10 11:25 | 只看該作者
能不能批注下每個代碼的意思呢,我有些不太懂
回復

使用道具 舉報

板凳
ID:138997 發表于 2020-7-25 08:06 | 只看該作者
最好配上仿真原理圖和注釋就好了,作為新手的我是一頭霧水。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久综合九色综合欧美狠狠 | 国产91久久久久 | a级在线免费视频 | 精品视频一二区 | 日韩在线xx | 久久久久久久国产精品视频 | 日韩欧美在线不卡 | 国产精品久久久久av | 99re在线视频 | 久久高清国产视频 | 欧美日韩精品影院 | 久久高清 | 国产精品久久久久久久午夜 | 在线小视频| 天天综合操 | 欧美专区日韩 | 亚洲网址 | 国产欧美一区二区精品忘忧草 | 日日日色 | 狠狠操狠狠干 | 成人av网站在线观看 | 日韩成人在线免费观看 | 成人午夜免费福利视频 | 亚洲中字在线 | 91在线电影 | 视频在线观看一区 | 久久久噜噜噜久久中文字幕色伊伊 | 国产亚洲一区二区三区 | 中国三级黄色录像 | 成人性视频在线播放 | 一区二区三区av | 久草网站| 夜夜爽99久久国产综合精品女不卡 | 欧美日本一区 | 久久成人精品 | 激情欧美一区二区三区 | 亚洲精品一区久久久久久 | 青草青草久热精品视频在线观看 | 久久精品久久久久久 | 天天躁日日躁aaaa视频 | 国产欧美精品一区二区三区 |