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

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

用51單片機制作的簡單計算器程序

作者:劉杰   來源:會員發(fā)布   點擊數(shù):  更新時間:2014年06月25日   【字體:

一、硬件仿真圖

 

 

件部分比較簡單,當鍵盤按鍵按下時它的那一行、那一列的端口為低電平。因此,只要掃描行、列端口是否都為低電平就可以確定是哪個鍵被按下。

 二、主程序流程圖



程序的主要思想是:將按鍵抽象為字符,然后就是對字符的處理。將操作數(shù)分別轉(zhuǎn)化為字符串存儲,操作符存儲為字符形式。然后調(diào)用compute()函數(shù)進行計算并返回結(jié)果。具體程序及看注釋還有流程圖。


三、程序源代碼

#include <</font>reg51.h>#include <</font>intrins.h>

#include <</font>ctype.h>            

#include <</font>stdlib.h>            

 

#define uchar unsigned char

#define uint unsigned int

 

uchar operand1[9], operand2[9];  

uchar operator;                     

 

void delay(uint);

uchar keyscan();

void disp(void);

void buf(uint value);

uint compute(uint va1,uint va2,uchar optor);

 

uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,

                0x92,0x82,0xf8,0x80,0x90,0xff};     

 

uchar dbuf[8] = {10,10,10,10,10,10,10,10};            

 

        

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

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

}

 

 

uchar keyscan()

{

    uchar skey;                     

    

 

    P1 = 0xfe;

    while((P1 & 0xf0) != 0xf0)        

    {

        delay(3);                    

 

        while((P1 & 0xf0) != 0xf0)    

        {

            switch(P1)                

            {

                case 0xee: skey = '7'; break;

                case 0xde: skey = '8'; break;

                case 0xbe: skey = '9'; break;

                case 0x7e: skey = '/'; break;

                    

                default:   skey = '#';

            }

 

            while((P1 & 0xf0) != 0xf0) 

                ;

        }

    }

 

 

    P1 = 0xfd;    

    while((P1 & 0xf0) != 0xf0)

    {

        delay(3);

 

        while((P1 & 0xf0) != 0xf0)

        {

            switch(P1)

            {

                case 0xed: skey = '4'; break;

                case 0xdd: skey = '5'; break;

                case 0xbd: skey = '6'; break;

                case 0x7d: skey = '*'; break;

                    

                default:   skey = '#';

            }

 

            while((P1 & 0xf0) != 0xf0)

                ;

        }

    }

 

 

 

    P1 = 0xfb;

    while((P1 & 0xf0) != 0xf0)

    {

        delay(3);

        

        while((P1 & 0xf0) != 0xf0)

        {

            switch(P1)

            {

                case 0xeb: skey = '1'; break;

                case 0xdb: skey = '2'; break;

                case 0xbb: skey = '3'; break;

                case 0x7b: skey = '-'; break;

                    

                default: skey = '#';

            }

 

            while((P1 & 0xf0) != 0xf0)

                ;

        }

    }

 

 

 

    P1 = 0xf7;

    while((P1 & 0xf0) != 0xf0)

    {

        delay(3);

 

        while((P1 & 0xf0) != 0xf0)

        {

            switch(P1)

            {

                case 0xe7: skey = '$'; break;

                case 0xd7: skey = '0'; break;

                case 0xb7: skey = '='; break;

                case 0x77: skey = '+'; break;

                    

                default:   skey = '#';

            }

 

            while((P1 & 0xf0) != 0xf0)

                ;

        }

    }

 

    return skey;

}

 

void main()

{    

    uint value1, value2, value;           

    uchar ckey, cut1 = 0, cut2 = 0;    

    uchar operator;                       

    uchar i, bool = 0;

 

init:                                   

 

    buf(0);                            

    disp();

    value = 0;

    cut1 = cut2 = 0;

    bool = 0;

    for(i = 0;i <</font> 9;i++)

    {

        operand1[i] = '\0';

        operand2[i] = '\0';

    }                                  

 

    while(1)

    {

        ckey = keyscan();             

        if(ckey != '#')

        { 

            if(isdigit(ckey))         

            {

                switch(bool)    

                {

                    case 0:

                            operand1[cut1] = ckey;

                            operand1[cut1+1] = '\0';

                            value1 = atoi(operand1);  

                            cut1++;

                            buf(value1);

                            disp();

                            break;

                    case 1:

                            operand2[cut2] = ckey;

                            operand2[cut2+1] = '\0';

                            value2 = atoi(operand2);

                            cut2++;

                            buf(value2);

                            disp();

                            break;

                            

                    default: break;

                }

            }

            else if(ckey=='+'||ckey=='-'||ckey=='*'||ckey=='/')

            {

                bool = 1;    

                operator = ckey;

                buf(0);

                dbuf[7] = 10;

                disp();

            }

            else if(ckey == '=')

            {

                value = compute(value1,value2,operator);

                buf(value);

                disp();

                while(1)                     

                {

                    ckey = keyscan();

                    if(ckey == '$')          

                        goto init;

                    else

                        {

                            buf(value);

                            disp();

                        }

                }

            }

            else if(ckey == '$') 

            {    goto init;}

        }

        disp();

    }

 

}

 

 

uint compute(uint va1,uint va2,uchar optor)

{

    uint value;

 

    switch(optor)

    {

        case '+' : value = va1+va2;    break;

        case '-' : value = va1-va2;    break;

        case '*' : value = va1*va2;    break;

        case '/' : value = va1/va2;    break;

        

        default :  break;

    }

    return value;

}

 

 

void buf(uint val)

{

    uchar i;

    if(val == 0)

    {

        dbuf[7] = 0;

        i = 6;

    }

    

    else

        for(i = 7; val > 0; i--)

        {

            dbuf[i] = val % 10;

            val /= 10;

        }

    

    for( ; i > 0; i--)

        dbuf[i] = 10;

}

 

 

void disp(void)

{

    uchar bsel, n;

    

    bsel=0x01;

    for(n=0;n<</font>8;n++)

    { 

        P2=bsel;

        P0=table[dbuf[n]];

        bsel=_crol_(bsel,1);

        delay(3);

        P0=0xff;

    }

}

關(guān)閉窗口

相關(guān)文章

99久久婷婷国产综合| 在线看片你懂得| 精品人妻在线播放| 浓精h攵女乱爱av| 免费观看成人在线| 最好看的2019年中文视频| 一区二区三区四区五区视频在线观看| 久久久久国内| 2019天天操夜夜操| www.xxx国产| 国产黄a三级三级| 成人免费视频久久| 婷婷久久伊人| 国产精品免费网站| 中文字幕精品www乱入免费视频| 日韩欧美国产视频| 26uuu另类欧美| 久久久久久黄| 久久美女视频| 久久精品中文字幕一区| 综合伊思人在钱三区| 久久亚洲资源| 免费在线观看麻豆视频 | 国产精品你懂的在线| 丝袜亚洲另类欧美| 久久在线视频| 一区中文字幕| 亚洲精品动漫| 免费日本一区二区三区视频| 午夜剧场免费在线观看| 最新中文字幕免费视频| 亚洲欧美日韩不卡| 999在线观看免费大全电视剧| 欧美理论电影在线播放| 亚洲精品福利免费在线观看| 色呦呦国产精品| 国产精品看片你懂得| 国产电影精品久久禁18| 可以看av的网站久久看| 欧美一区综合| 精品久久久中文字幕| 97久久综合精品久久久综合| 肉色欧美久久久久久久免费看| 高潮毛片在线观看| 国产高清视频免费最新在线| 久久久亚洲精华液精华液精华液| eeuss影院www| a视频免费观看| 欧洲黄色一级视频| 国产精品12p| 日韩欧美亚洲日产国| 99re国产视频| 国产乱人伦真实精品视频| 欧美一区二三区| 欧美激情视频在线观看| 久久国产精品亚洲| 久久精品国产v日韩v亚洲| 亚洲丝袜av一区| 99精品视频在线免费播放| 精品国自产拍在线观看| 黄色片视频免费| 超碰手机在线观看| 91制片厂在线| 蜜桃av免费在线观看| 亚洲自拍偷拍一区二区| 怡红院一区二区三区| 自拍偷拍亚洲天堂| 成人黄色a级片| jizz18女人高潮| 男女全黄做爰文章| 小泽玛利亚一区二区免费| www.4hu95.com四虎| av黄色免费在线观看| 日韩在线视频免费看| 污污的视频在线免费观看| 久久精品一区二区三| 久久久久久久久久久久久久久久久| 欧美第一页在线观看| 国产亚洲欧美精品久久久www| 免费视频网站www| 久久久久久福利| 国产精品男女视频| 中文字幕一区二区久久人妻| 国产精品欧美久久久久天天影视| 国产精品视频一二区| 日本wwwxxxx| 欧美一级欧美三级在线| 国产精品入口麻豆免费看| 免费看又色又爽又黄网站| 狠狠色狠狠色综合网| 最新中文在线视频| 欧美激情黑人| 亚洲涩涩在线| 精品一区二区三区中文字幕视频| 久草在线综合| 欧美影院一区| 日韩精品电影在线| 国产精品99久久久久久有的能看| xf在线a精品一区二区视频网站| 国产精品乱人伦| 亚洲成人高清在线| 制服视频三区第一页精品| 日韩av在线网址| 欧美日韩成人网| 国产成人欧美在线观看| 国产高清在线一区| 亚洲图片小说在线| 人妻无码视频一区二区三区| 久久久久国产免费| 久久久久久天堂| 国产一区二区三区中文字幕| 在线观看亚洲网站| 岳乳丰满一区二区三区| 色综合久久五月天| h网站在线看| av电影在线观看网址| 国产高清不卡| 免费成人网www| 伊人久久大香线蕉综合热线| 激情五月婷婷综合网| 国产精品麻豆久久久| 欧美亚洲一区二区三区四区| 亚洲深夜福利在线| 国产精品久久不能| 婷婷五月色综合| 91亚洲免费视频| 永久免费观看片现看| 亚洲一二区视频| 国产精品久久久久久久泡妞| 四色成人av永久网址| 成人免费网站观看| 久9久9色综合| 麻豆久久一区二区| 亚洲精品免费在线| 精品亚洲夜色av98在线观看| 国产精品88a∨| 97超碰人人爱| 免费成人蒂法网站| 一级黄色短视频| 免费偷拍视频网站| 黄色网页网址在线免费| 精品少妇一区| 日本一不卡视频| 亚洲视频 欧洲视频| 亚洲国产精品va在线| 国产999视频| 日本丰满大乳奶| 大又大又粗又硬又爽少妇毛片| 最近中文字幕在线观看| 日本tube24xxxxx| 羞羞电影在线观看www| 亚洲区小说区图片区qvod| 韩国欧美一区二区| 91高清在线观看| 久久久久一本一区二区青青蜜月| 日本在线播放不卡| 亚洲自拍第三页| 久久久蜜桃一区二区| 中国老太性bbbxxxx| av在线免费网址| 国产毛片一区二区三区| 成人免费观看av| 91精品国产欧美一区二区成人| 91精品国产色综合久久不卡98口| 杨幂一区欧美专区| 自拍偷拍中文字幕| 亚洲成年人视频| 老师让我她我爽了好久视频| 久草视频在线播放| 日本高清精品| 国产一区二区不卡老阿姨| 91久久国产最好的精华液| 国内伊人久久久久久网站视频 | 日韩精品免费观看| 亚洲一区二区三区久久| 一起操在线视频| 在线黄色av网站| 操操操综合网| 懂色av一区二区| 丁香五精品蜜臀久久久久99网站 | 亚洲视频小说| 一本在线免费视频| 国产视频xxxx| 手机在线观看av网站| 久久福利影视| 色综合av在线| 国产美女直播视频一区| 在线视频日韩一区| 一级特黄色大片| 在线午夜视频| 国产麻豆一区二区三区精品视频| 久久这里只有精品视频网| 日韩精品在线视频| 日韩欧美激情一区二区| 永久免费看片直接| 成年人网站免费观看| 免费在线视频一级不卡| 欧美激情影院| 97aⅴ精品视频一二三区| 亚洲美女av在线播放| 中文字幕中文字幕一区三区| 丁香花五月激情| 被陌生人带去卫生间啪到腿软 | 久久精品亚洲乱码伦伦中文| 中文字幕精品在线| 日本久久高清视频| 亚洲天堂视频网站| 天堂成人在线| 久久久久久影院| 欧美日韩精品在线观看| 成人激情在线播放| 自拍偷拍亚洲天堂| 日本黄色免费网站| 亚洲网址在线观看| 国产精品久久久久久亚洲伦| 久久在精品线影院精品国产| 色综合久久久久无码专区| 国产精品久久无码一三区| 成人日韩欧美| 日产欧产美韩系列久久99| 欧美v国产在线一区二区三区| 日本在线观看一区二区| 日本道在线观看| 在线观看黄色片| 欧美日韩国产精品一区二区亚洲| 在线精品亚洲一区二区不卡| 极品日韩久久| 国产午夜久久久| 亚洲成人福利| 亚洲精品精选| 亚洲精品720p| 霍思燕三级露全乳照| 国产熟女精品视频| 欧美日韩在线观看首页| 97久久超碰精品国产| 久久久久久伊人| 国产精品伦子伦| 天天操天天碰| 911精品美国片911久久久| 欧美日韩免费高清一区色橹橹| 欧美成人一区二区在线| 欧美a视频在线观看| 日本电影全部在线观看网站视频| 日韩中文字幕一区二区三区| 国产亚洲欧美另类中文| 北条麻妃在线视频| 亚洲国产日韩成人综合天堂| 日韩高清在线观看一区二区| 亚洲最新视频在线播放| 好看的日韩精品视频在线| 人人干人人干人人干| 毛片在线播放a| 国产成人综合亚洲网站| 韩剧1988免费观看全集| 51妺嘿嘿午夜福利| 黄污网站在线观看| 久久精品中文| 欧美成人精品一区| 久久久亚洲av波多野结衣| 国产男女爽爽爽| 一区二区三区国产在线| 一本大道久久加勒比香蕉| 亚洲午夜激情影院| h网站在线观看| 亚洲大片av| 中文字幕亚洲情99在线| fc2成人免费视频| 男人在线视频资源| 久久久久久久欧美精品| 欧美日本在线视频中文字字幕| 国产国语性生话播放| 一级一片免费视频| 毛片av一区二区| 97在线视频免费| 538精品在线视频| 欧美13一16娇小xxxx| 26uuu国产在线精品一区二区| 91日本视频在线| 日韩在线视频不卡| 久久野战av| 天天色天天操综合| 国产高清不卡无码视频| 欧美顶级xxxxbbbb| 希岛爱理一区二区三区| 一个色综合网站| 日韩成人av电影在线| 成 人 免费 黄 色| 蜜臀av一区| 亚洲黄在线观看| 一本色道久久hezyo无码| 蜜臀在线观看| 国产成人av福利| 99re国产视频| 亚洲精品久久久久久久久久| 激情小说亚洲图片| 欧美精品一区二区三区蜜桃 | 欧美综合二区| 韩国v欧美v日本v亚洲| 久草视频在线资源| 91高清视频在线观看| 精品露脸国产偷人在视频| 妺妺窝人体色777777| 日本性视频网站| 三级久久三级久久久| 国产精品久久久久国产a级| 伊人久久中文字幕| 成人免费网站在线观看视频| 国产精品私房写真福利视频| 天天综合狠狠精品| 精品一区二区在线欧美日韩| 欧美午夜国产| 69av在线视频| 日日噜噜噜噜人人爽亚洲精品| 日本精品网站| 日韩视频中午一区| 男人的天堂99| www.成人69.com| 成人性视频免费网站| 久久影院理伦片| 欧美性xxxx交| 久久一区中文字幕| 成人激情黄色网| 区二区三区在线| 亚洲激情社区| 成人免费看片视频| 91精品国自产在线偷拍蜜桃| 免费h片在线观看| 99re成人精品视频| 熟妇熟女乱妇乱女网站| xfplay资源站夜色先锋| 国产高清在线精品| 日韩精品一区二区三区四区五区 | 亚洲黄色网址大全| 亚洲女同志freevdieo| 欧美一级片在线观看| a级大片在线观看| 欧美成人a交片免费看| 精品欧美久久久| 亚洲色图综合区| 99re8这里有精品热视频免费| 在线一区二区日韩| 日韩乱码一区二区| 自拍视频一区| 欧美亚洲一级片| 欧美一级在线免费观看| 伊人成年综合电影网| 91观看网站| 国产极品嫩模在线视频一区| 精品亚洲成av人在线观看| 日韩动漫在线观看| av免费高清观看| 亚洲欧美偷拍三级| 亚洲xxx在线观看| 日韩免费影院| 精品国产一区二区三区久久影院 | 国产日产精品一区| 日韩成人三级视频| 青青草在线免费观看| 欧美日韩国产区| 精品人妻一区二区三区日产乱码卜| 成人软件在线观看| 中国日韩欧美久久久久久久久| 五月天婷婷激情| 91精品精品| 鬼打鬼之黄金道士1992林正英| 全彩无遮拦全彩口工漫画全彩| 91在线精品秘密一区二区| 日韩精品xxxx| 青草视频在线免费直播| 亚洲国产日韩精品在线| 日韩黄色在线视频| 亚洲精品国产偷自在线观看| 444亚洲人体| 奇米四色7777| 亚洲综合男人的天堂| 中文文字幕文字幕高清| 精品美女一区| 国内精品久久影院| 欧美怡红院在线| 中文字幕免费不卡在线| 五月天婷婷在线观看视频| 美女色狠狠久久| 久久久久免费视频| 国产精品伦理一区二区三区| 中文字幕乱码亚洲精品一区| avtt中文字幕| 亚洲国产欧美国产第一区| 欧美在线视频免费| 国产美女做爰免费视频软件| 久久久www免费人成精品| 韩国三级hd中文字幕有哪些| 四虎精品一区二区免费| 97精品在线视频| 日本影音先锋电影| 亚洲国产综合人成综合网站| 免费成人深夜蜜桃视频| 色一区二区三区四区| 九九九九九精品| 你懂的在线视频| 日韩精品在线免费播放|