wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于HD7279和51單片機的計算器

作者:丁弘偎   來源:51hei   點擊數:  更新時間:2010年08月18日   【字體:

   HD7279是一款用于擴展單片機I/O口的芯片,至少我是這么認為的,雖然它占用了單片機4個I/O但是真正作為傳輸的僅僅是一根總線,它可以同時驅動8位共陰數碼管(或者8×8點陣),及8×8的矩陣鍵盤,而同時接在單片機上的話,至少需要3~4組I/O,當然單總線控制的芯片基本需要自己的指令和時序。

  接到這個課程設計之前我自己懶懶散散地看了一段時間的C51(用C語言編寫單片機代碼),之前老師教的是A51(用匯編編寫單片機代碼),我玩了很久,但是發現A51真的很局限,匯編這種語言是寫給機器看的,真正地寫0和寫1,真正是一個寄存器一個寄存器的調用,對于8位的51單片機來說,要實現1000×1000或者小數是比較困難的。老師推薦用C,之前只是看書實現過一些小東西這回要做比較大的項目了,雖然還有其他課題比如溫度計和數字鐘,不過都做過,只是環境不一樣,修改一下代碼太沒有挑戰性了。

  確實開始輕敵了,真正做的時候發現不是那么簡單,

   高中的時候學過一點VB做過計算器,如果讓我現在做,也許給我幾天我可以做出來,用C我也沒什么問題,但是C51就有難度了,要考慮太多硬件的東西,特別是顯示這個模塊好不容易瘦下去的頭又兩個大了。等我真正意識到的時候,已經過去幾個禮拜了,呵呵,要和朋友說抱歉了,雖然我答應“等我做完計算器之后再幫你改下程序”但是沒一個實現。

    當然,此程序因為基本全是自己寫的,被方晉甬老師稱之為“程序設計不成熟、比較亂”的,額,本來準備用switch語句,但是呂昂老師說switch語句會產生過多閑置寄存器(可是他沒有考慮到我僅僅是實現很少的功能),這段程序只實現+-×÷,符號閃爍,過八位報錯等功能但是沒有小數,只能計算一步(加少數程序即可計算多部)。其實程序挺早就寫出來了,只是一直出不來效果,后來在仿真和VC++編譯環境下修改了很多,理論上是可以實現了,可是還是沒有顯示,于是抓狂了“看來我已處在瓶頸...”,晃了最后一個禮拜,周日周一看了兩天晚上,依然沒有看出什么來,禮拜二去方晉甬老師辦公室請教,查了近3個鐘頭【基本看過了我所有奇形怪狀的子程序—。—||||】,在仿真多遍之后發現就少了一句“while(!key)【檢測釋放按鍵】”【程序中紅字部分即主程序最后一句】囧啊~~~~以至于周四答辯的時候我演示之后,剛點看ppt他就說直接給A,不用答了。。。。
程序的完整版下載地址:http://www.izizhuan.cn/ziliao/file/jsjq.rar 

/////////////////////////////****************程序*****************///////////////////////
 

#include<reg51.h>
#include<math.h>
sbit  cs=P2^6;
sbit clk=P1^0;
sbit dat=P1^1; 
sbit key=P3^3; 
bit  add,sub,mul,div,equ,clr;
unsigned char times,st,l,data_jp,flag,d;


unsigned int  tmr;
unsigned long    num[8],sn[8],disp[8],sh,result,hp=100000000;

void send(unsigned char);
unsigned char receive(void);
unsigned long real(unsigned long ,unsigned char);
unsigned long calcu(unsigned   long, unsigned long);
void display(unsigned long);
unsigned long write_key(unsigned   char);

void char_flk(void);
void test(void);
void error(void);
void long_delay(void);
void short_delay(void);
void delay10ms(unsigned char);  

/////////**************主函數****************//////////

void main ()
{
   times=0;
   l=times;
   st=0;
   flag=0;
   test();

   while(1)
   {
     unsigned char i;
     if(!key)
     {   
       send(0x15);
       data_jp=receive();
       cs=1;
       d=write_key(data_jp);
       if (data_jp<=9)
       {
         flag=0;
         num[times]=d;
       }
       else
       {
         flag=1;
         //times-=1;
       }
       if(flag!=1)
       { 

       
           if(num[0]==0)
           {
             times=0;
             continue;
           }
           if(7>times>=1)
           {
             send(0xa1);
         }

            send(0x80);
            send(num[times]);
            while(!key); 
             delay10ms(1);
            times=times+1;
            cs=1;

          if(times>7)
          {
            send(0xa4);
            error() ;
           times=0;
           send(0xa4); 
          }
       }
       else
       {
           send(0xa4);
           char_flk();
           
           
           times-=1;
           l=times;
           for(i=0;i<=times;i++)    
           {
           
             num[i]=real(num[i],l);
             sh=sh+num[i];
               l--;           
           }
          
           sn[st]=sh;
         
           if(st>=1)
           {
             result=calcu(sn[st],sn[st-1]);
             sn[st-1]=result;
             st--;           
           }
           st++;
           times=0;
           flag=0;
           sh=0;

          
         if(equ==1)
         {  
           st=0;           
           send(0xa4);
           display(result);
           equ=0;
         }
         if(clr==1)
         {
           st=0;
           times=0;
           flag=0;
           sh=0;
           add=0;
           sub=0;
           mul=0;
           div=0;
           equ=0;
           clr=0;
           send(0xa4);
         }
         while(!key);
        
         }
       }

     
    }
}
/////////*********************測試子函數****************////////
void test(void)
{   
    
    char i;
       delay10ms(2);
  
    send(0xbf);
    cs=1; 
    for (i=0;i<=3;i++)    
      {
      delay10ms(100);
    }
    send(0xa4);
    cs=1;
      delay10ms(20);

}
///////***********************讀鍵盤程序**************///////
unsigned long write_key(unsigned char data_jp)
{
  unsigned char shuzi;

  if(data_jp<10)
  {
 
      shuzi=data_jp;
  }
  else
  {
     if(data_jp==10)
     {

        add=1;
     }
     else  if(data_jp==11)
     {
      sub=1;
     }
     else if(data_jp==12)
     {

      mul=1;
     }
     else if(data_jp==13)
     {

      div=1;
     }
     else if(data_jp==14)
     {

      equ=1;
     }
     else if(data_jp==15)
     {
      clr=1;
     }
     shuzi=0xff;
  }
    return(shuzi) ;
}

///////***********************發送子函數*************//////
void send(unsigned char data_out) 
{
   unsigned char i;
   cs=0;
   long_delay();
   for(i=0;i<=7;i++)
   {

    if(data_out&0x80)
    {
        dat=1;
    }
    else
    {
      dat=0;
    }
    clk=1;
    short_delay();
    clk=0;
    short_delay();
    data_out=data_out<<1;

   }
   
    dat=0;
}

/////************************接收鍵盤子函數************//////
unsigned char receive(void)
{
   unsigned char i,data_in;
   dat=1;
   long_delay();
   for(i=0;i<=7;i++)
   {
     clk=1;
   short_delay();
   data_in=data_in<<1;
   if(dat)
   {
    data_in=data_in|0x01;
   }
   else
   {
      data_in=data_in|0x00;
   }
   clk=0;
   short_delay();

   }
   dat=0;
   return(data_in);
}
/////////***************************顯示數字處理子函數***********/////////
unsigned long real(unsigned long so, unsigned char s)
{
  unsigned char z;
     if(s!=0)
  {
    for(z=0;z<=(s-1);z++)
    {
         if(s!=0)
     {
       so=so*10;
     }
     else
     {
       so=so;
     }
     
    }
   }
   else
   {
      so=so;
   }
  return(so);
}

//////////*************************計算子函數*******************///////////
unsigned long calcu(unsigned   long    sn0,unsigned   long   sn1  ) 
{
  if(add==1)
  {
    sn0=sn0+sn1;
    add=0;
  }
  if(sub==1)
  {
    sn0=sn1-sn0;
    sub=0;
  }
  if(mul==1)
  {
     sn0=sn0*sn1;
    mul=0;
  }
  if(div==1)
  {
    if(sn0>0)
      sn0=sn1/sn0;
    else 
      error();
    div=0;
  }
  return(sn0);

}


////////****************************報錯錯誤子函數***************/////////
void error(void)
{
 while(key)
 {
      send(0x96);
     send(0x4f);
     delay10ms(2);
     send(0x95);
     send(0x05);
     delay10ms(2);
     send(0x94);
     send(0x05);
     delay10ms(2);
     send(0x93);
     send(0x1d);
     delay10ms(2);
     send(0x92);
     send(0x05);
     delay10ms(2);    
 }
}
///////////********************顯示子函數*********////////////
void display(unsigned long display)
{
 unsigned char i,asus=8;
 if(display>99999999)
  error();  
 else
 {  
   for(i=0;i<=7;i++)
   {
      if((display/hp)>=1)
         break;
      else
      {
         hp=hp/10;
         asus-=1;
      }
   }
   for(i=0;i<=asus;i++)
   {
         
         disp[i]=display/hp;
         if(hp>1)
         {
            display=display%hp;
            hp=hp/10;
           }
    }
    for(i=0;i<=asus;i++)
    {
       if(i>0)
      { send(0xa1); }
      send(0x80);
      send(disp[i]);
      
    }
 }
}

///////////********************符號判斷閃爍顯示*********////////////
void char_flk(void)
{
        if(add==1)
       {
         send(0x97);
         send(0x77);
       }
       else if(sub==1)
       {
         send(0x97);
         send(0x01);
       }
       else if(mul==1)
       {
         send(0x97);
         send(0x37);
       }
       else if(div==1)
       {
         send(0x97);
         send(0x49);
       }
       else if(clr)
       {
           ;
       }
       send(0x88);
       send(0x7f);
}
//////************************延時子函數*************///////

void long_delay(void)
{
 char i;
 for(i=0;i<=25;i++) ;
}

void short_delay(void)
{
 char j;
 for(j=0;j<=4;j++);

}


void delay10ms(unsigned char time)
{
 unsigned char i;
 unsigned int j;
 for (i=0;i<=time;i++)
 {
  for(j=0;j<=0x390;j++);

 }
}

///////////////////////////************效果圖*************////////////////////

以上演示的為9876543÷234,其本來的結果是42207.4487179……無法顯示小數位,所以結果為42207 。

關閉窗口

相關文章

亚洲精品久久久久久久久久久久久久 | 97碰在线观看| 精品国产电影一区| 国内精品伊人久久久久av一坑| 91亚洲无吗| 成人影欧美片| 黄色网址入口| 久久人体做爰大胆| 波多野结衣午夜| 久久久精品人妻无码专区| 国产一区二区三区小说| 国产一区不卡在线观看| 国语自产在线不卡| 国产丝袜一区二区三区免费视频| 一区二区三区中文在线观看| 国产精品一区专区| 亚洲人成毛片在线播放女女| 极品束缚调教一区二区网站| 午夜影视一区二区三区| 九色在线视频蝌蚪| 男人捅女人免费视频| 亚洲欧美综合图片| 国产精品久久久久久久一区二区| 国产盗摄一区二区三区在线| 中国特级黄色片| 男人天堂999| 综合视频在线观看| 国产精品一区二区三区观看| 欧美一级电影在线| 日韩中文字幕免费看| 日韩精品一区二区三区四区 | 午夜日韩av| 亚洲成在人线免费观看| 亚洲精品第一| 亚洲天堂免费电影| 91麻豆免费在线视频| 久草在线青青草| 桥本有菜亚洲精品av在线| eeuss影院www| 在线观看自拍| 久久99蜜桃精品久久久久小说| 丰满熟女一区二区三区| 真实的国产乱xxxx在线91| 青青草原免费观看| 波多野结衣久久久久| 久久精品老司机| 337p日本欧洲亚洲大胆张筱雨 | 碰碰视频免费| 在线看黄色网| 中国女人一级毛片| 91精品国产91久久久久久三级| 日本久久国产| 欧美国产中文| 欧美国产中文| www.四虎.com| 日韩欧美黄色片| 亚洲成人国产综合| 最新版天堂中文在线官网| 日本美女一级片| 开心激情综合网| 好吊色在线观看| 六月丁香色婷婷| 欧美自拍偷拍第一页| 动漫av一区二区三区| 成人乱码一区二区三区| 亚洲成人中文字幕在线| 亚洲AV无码一区二区三区性| 99国产揄拍国产精品| 99精品人妻无码专区在线视频区| 91麻豆成人精品国产| 国产乱叫456在线| 亚洲精品第五页| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 成人久久久精品国产乱码一区二区 | 884aa四虎影成人精品一区| 欧美日韩一区二区电影| 777午夜精品视频在线播放| 日韩免费视频线观看| 欧美tk—视频vk| 精品视频在线导航| 日韩中文字幕在线免费观看| 久色乳综合思思在线视频| 欧美乱大交xxxxx| 欧美亚州一区二区三区| 国产精品三级网站| 国产区二精品视| 日韩在线第一区| 亚洲综合激情五月| 久久综合九色综合88i| 日日噜噜夜夜狠狠| 欧美做受喷浆在线观看| 成人美女视频在线看| 一色桃子一区二区| 国产成人永久免费视频| 国产一区二区三区四区五区在线 | 日韩一区二区在线看| 正在播放一区二区| 日韩国产欧美精品一区二区三区| 在线观看视频99| 欧美激情乱人伦| 国产精品成人一区| 精品综合在线| 国产91视频一区| 三级4级全黄60分钟| 无码国产精品久久一区免费| 中文在线最新版地址| 直接在线观看的三级网址| √天堂8资源中文在线| 不卡一二三区| 韩国精品福利一区二区三区| 手机亚洲手机国产手机日韩| 亚洲影视综合| 9l国产精品久久久久麻豆| 国产精品私人自拍| 欧洲另类一二三四区| 亚洲精品一区中文| 欧美亚洲伦理www| 久久大香伊蕉在人线观看热2| 女同性恋一区二区| 成人综合久久网| 免费看特级毛片| 91久久精品无码一区二区| 欧美jizzhd欧美精品巨大| 成年人免费看的视频| 欧美精品日韩少妇| 亚洲人成777| 亚洲综合小说| 成人午夜精品一区二区三区| 亚洲福利一区二区| 日韩电影视频免费| 国产精品黄色av| 在线视频精品一区| 女同性αv亚洲女同志| 欧美黄色aaa| 秋霞欧美在线观看| 天天综合天天| 爱看av在线| 国产精品嫩模av在线| 久热精品视频| 最近中文字幕一区二区三区| 日韩欧美一区中文| 欧美国产日韩视频| 久久日韩精品| 特级黄色片视频| 九九免费精品视频| 先锋影音欧美官网| 蝌蚪视频在线播放| 亚洲欧美在线人成swag| 亚洲每日在线| 亚洲色图在线视频| 亚洲高清久久网| 国产精品亚洲第一区| 成人av在线不卡| 日本二区在线观看| 免费观看的毛片| 中文字幕在线观| 欧美国产日韩电影| 亚洲一级网站| 一区二区三区在线视频观看| 亚洲日本成人女熟在线观看| 91在线观看网站| 欧美成年人视频在线观看| 日韩成人一区二区三区| 中国xxxx视频播放50| 在线中文字幕视频观看| 色喇叭免费久久综合网| 久久婷婷一区二区三区| 亚洲精品二三区| 99热99热| 9191在线视频| 91久久精品国产91性色69 | 豆花视频一区二区| 紧缚捆绑精品一区二区| 欧美二区乱c少妇| 成人黄色在线播放| 激情五月婷婷基地| 国产美女三级无套内谢| 粗大的内捧猛烈进出在线视频| 国产69精品久久久久9999人| 日韩电影在线观看一区| 色婷婷综合久久久久中文| 青草青草久热精品视频在线网站| 国产白丝袜美女久久久久| 永久免费看片在线播放| 天天草天天爽| 免费观看亚洲视频大全| 激情综合色播五月| 精品日产卡一卡二卡麻豆| 国产精品毛片一区视频| 捆绑凌虐一区二区三区| 男人天堂网av| 激情黄产视频在线免费观看| 天堂精品中文字幕在线| 欧美人牲a欧美精品| av日韩中文字幕| 最近中文字幕在线mv视频在线| 欧美第一页草草影院浮力| 成人在线影视| 深爱激情综合| 亚洲一区自拍偷拍| 日本不卡免费高清视频| 中文 日韩 欧美| 亚洲人午夜射精精品日韩| 日本在线视频网址| 亚洲专区一区二区三区| 制服丝袜av成人在线看| 欧美黄色直播| 国产网友自拍视频| 男人天堂v视频| 欧美午夜精彩| 亚洲成人免费在线| 亚洲一区二区久久久久久| 久久精品一区二区免费播放 | 国产精品19乱码一区二区三区| 天天操天天怕| 美国成人xxx| 亚洲欧美日韩电影| 国产精品久久久久久久久粉嫩av| 美女搡bbb又爽又猛又黄www| 精品视频一区二区观看| 成人免费在线观看视频| 久久亚洲精华国产精华液| 欧美韩日一区二区| 三级网站免费看| 国产丝袜控视频在线观看| 国产不卡精品| 亚洲欧美欧美一区二区三区| 国产精品热视频| 国产精品av久久久久久无| 成人毛片免费在线观看| 国产探花一区二区| 日韩欧美中文在线| 日韩精品久久久| 亚洲一区二区天堂| 丁香花视频在线观看| 成人av在线看| 欧美中文字幕在线观看| 色婷婷精品久久二区二区密| 俺去啦俺在线观看| 日韩综合在线| 日韩欧美一级精品久久| 日韩视频在线视频| 先锋影音男人站你懂得| 网站一区二区| 疯狂蹂躏欧美一区二区精品| 鲁丝一区二区三区免费| 中文字幕av久久爽| 日韩欧美一中文字暮专区 | 国产精品自拍小视频| 欧美a在线播放| 日中文字幕在线| 久久超碰97中文字幕| 久久国产天堂福利天堂| 波多野结衣先锋影音| 精品剧情v国产在线观看| 99精品国产在热久久下载| 亚洲欧美另类中文字幕| 午夜诱惑痒痒网| 成人福利影院| 亚洲黄色影片| 久久久精品电影| 成年人网站免费看| 亚洲成人天堂| 韩国三级在线一区| 日本高清不卡的在线| 中文国语毛片高清视频| 中文日本在线观看| 99国产精品久久久久久久久久 | 福利电影一区| 欧美三片在线视频观看 | 国产日韩欧美夫妻视频在线观看 | 黄色a级三级三级三级| jizz.www| 久久激情视频| 欧美亚洲成人精品| 国产亚洲精品成人| 精品三级久久| 一区二区激情视频| 久久久久久久久网| 国产麻豆麻豆| 999在线观看| 男人操女人免费软件| 欧美色图久久| 日韩激情一区| 亚洲福利视频专区| 三级网站免费看| 色视频在线播放| 高清日韩电视剧大全免费| 国产精品视频成人| 国产99免费视频| 亚洲精品毛片| 欧美三级中文字幕| 亚洲污视频在线观看| 91大神影片| 韩日av一区二区| 成人欧美在线视频| 国产丝袜在线视频| 国产精彩视频一区二区| 国产大片精品免费永久看nba| 国产99在线 | 亚洲| 成人在线观看网站| 久久日韩粉嫩一区二区三区| av一区二区三区免费| www.亚洲欧美| 欧美日韩激情| 久久精品视频免费播放| 色哟哟一一国产精品| 草草在线视频| 欧美日韩视频在线一区二区| 三年中国国语在线播放免费| 天堂中文字幕| 久久久91精品国产一区二区三区| 欧美一区二区在线视频观看| 蜜桃视频一日韩欧美专区| 亚洲国产影院| 91视频精品在这里| 999精品视频一区二区三区| 成人午夜福利视频| 婷婷综合亚洲| 欧美精品18videosex性欧美| 日韩少妇高潮抽搐| 国产精品17p| 色一情一乱一区二区| 国产第一页在线播放| 国产一区二区久久久久| 国产视频精品在线| 真实国产乱子伦对白在线| 九七影院97影院理论片久久| 亚洲国产精品女人久久久| 欧美日韩生活片| 色豆豆成人网| 亚洲精品xxx| 外国一级黄色片| 欧美经典一区| 精品国产一区二区三区久久狼黑人| 男女性高潮免费网站| 欧美少妇激情| 国产一区二区三区欧美| 国产九九在线观看| 视频在线91| 中文字幕二三区不卡| 国产玉足脚交久久欧美| 毛片.com| 国产精品视频麻豆| 久草在在线视频| 在线观看国产原创自拍视频| 欧美日韩激情小视频| 国产人成视频在线观看| 碰碰在线视频| 亚洲黄在线观看| 国产奶水涨喷在线播放| 香蕉久久夜色精品国产使用方法 | 久久精品视频91| 美女国产在线| 欧美一区午夜视频在线观看| 最新高清无码专区| 91小视频免费看| 日本免费在线视频观看| 狠狠干夜夜操| 一色桃子久久精品亚洲| 亚洲精品成人在线播放| 成人性生交大片免费看网站| 日韩精品中文字幕一区二区三区 | 国产精品一区在线观看乱码 | 国产精欧美一区二区三区| 男人天堂网在线视频| 视频一区二区三区入口| 色就是色欧美| 伊人久久青青草| 欧美午夜影院一区| 男女性高潮免费网站| 精品国内自产拍在线观看视频| 国产精品免费福利| 一个人免费观看在线视频www| 久久久蜜臀国产一区二区| 久久这里只精品| 欧美大片免费| 欧美成人久久久| 亚洲图片小说网| www.视频一区| 天天干天天玩天天操| 国产一级片大全| 久久久美女艺术照精彩视频福利播放| 自拍偷拍21p| 黄页免费欧美| 欧美最猛黑人xxxx黑人猛叫黄| 国产欧美日韩第一页| 国产精品久久久久久久久晋中| 亚欧精品在线视频| 精品一区二区三区在线观看视频| 日本aⅴ大伊香蕉精品视频| 一级毛片美女欧洲| 亚洲综合久久久| 香蕉久久久久久久| 日本久久黄色| 热re99久久精品国产99热| 国产视频二区在线观看| 亚洲白虎美女被爆操| 国产一区二区在线播放视频| 美女视频黄 久久|