新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于51單片機的計算器 C語言程序

        基于51單片機的計算器 C語言程序

        作者: 時間:2016-11-25 來源:網絡 收藏

        void ChangeNum(uchar *p,uchar nCount)
        {
        if(nCount<4)
        {
        uchar ncount;
        ncount=nCount;
        while(ncount>0)
        {
        *(p+nCount)=*(p+nCount-1);
        ncount--;
        }
        }
        }
        void Delay_510(void)//延時510微秒
        {
        #pragma asm
        MOV R0,#7DH
        MOV R1,#02H
        TSR1:
        DJNZ R0,TSR1
        MOV R0,#7DH
        DJNZ R1,TSR1
        #pragma endasm
        }

        void Time0_Isr_Int(void) interrupt 1 //定時器0中斷服務子程序
        {
        TH0=(65536-20000)/256;
        TL0=(65536-20000)%256;
        P1=0xF0;
        if((P1&0xF0)!=0xF0)
        {
        Delay_510();
        if((P1&0xF0)!=0xF0)
        {
        P1=0xFE;
        if((P1&0xF0)==0xE0)//數字鍵0
        {
        KeyNum=0;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xD0)
        {
        KeyNum=1;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xB0)
        {
        KeyNum=2;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0x70)
        {
        KeyNum=3;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        P1=0xFD;
        if((P1&0xF0)==0xE0)
        {
        KeyNum=4;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xD0)
        {
        KeyNum=5;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xB0)
        {
        KeyNum=6;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0x70)
        {
        KeyNum=7;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        P1=0xFB;
        if((P1&0xF0)==0xE0)
        {
        KeyNum=8;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xD0)
        {
        KeyNum=9;
        ChangeNum(NumBufe,KeyPos);
        KeyPos++;
        }
        if((P1&0xF0)==0xB0)//加法
        {
        op=1;
        add=1;
        }
        if((P1&0xF0)==0x70)
        {
        op=1;
        dec=1;
        }
        P1=0xF7;
        if((P1&0xF0)==0xE0)
        {
        op=1;
        mul=1;
        }
        if((P1&0xF0)==0xD0)
        {
        op=1;
        div=1;
        }
        if((P1&0xF0)==0xB0)//等號
        {
        equ=1;
        }
        if((P1&0xF0)==0x70)//清零
        {
        clr=1;
        }
        }
        }
        }

        本文引用地址:http://www.104case.com/article/201611/321399.htm


        上一頁 1 2 下一頁

        關鍵詞: 51單片機計算器C語言程

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天峻县| 韶关市| 武陟县| 富川| 富顺县| 姜堰市| 屯留县| 上思县| 疏附县| 鄂托克旗| 郓城县| 壤塘县| 铁岭市| 枞阳县| 合山市| 哈密市| 比如县| 乐都县| 灵台县| 太仓市| 高清| 承德市| 元朗区| 鄂州市| 象山县| 子洲县| 诸城市| 文安县| 南丹县| 晋州市| 潼南县| 海伦市| 通海县| 东港市| 平江县| 比如县| 崇礼县| 忻州市| 景德镇市| 万盛区| 宜良县|