找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6973|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)矩陣鍵盤(pán)按1-16的平方在數(shù)碼管顯示程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:82008 發(fā)表于 2015-6-5 00:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit duxu=P2^6;
sbit wexu=P2^7;
uint num;
uchar bai,shi,ge,temp;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void yanshi(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void xianshi(uint shu);

void main()
{       
        duxu=1;
        P0=0;
        duxu=0;

        while(1)
        {
                P3=0xfe;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        yanshi(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xee:num=1*1;
                                        break;
       
                                        case 0xde:num=2*2;
                                        break;
       
                                        case 0xbe:num=3*3;
                                        break;
       
                                        case 0x7e:num=4*4;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }

                       
                }
                xianshi(num);


                P3=0xfd;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        yanshi(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xed:num=5*5;
                                        break;
       
                                        case 0xdd:num=6*6;
                                        break;
       
                                        case 0xbd:num=7*7;
                                        break;
       
                                        case 0x7d:num=8*8;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }

                       
                }

                xianshi(num);


                P3=0xfb;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        yanshi(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xeb:num=9*9;
                                        break;
       
                                        case 0xdb:num=10*10;
                                        break;
       
                                        case 0xbb:num=11*11;
                                        break;
       
                                        case 0x7b:num=12*12;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }

                       
                }
                xianshi(num);


                P3=0xf7;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        yanshi(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xe7:num=13*13;
                                        break;
       
                                        case 0xd7:num=14*14;
                                        break;
       
                                        case 0xb7:num=15*15;
                                        break;
       
                                        case 0x77:num=16*16;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }

                       
                }

                xianshi(num);
        }
}void xianshi(uint num)
{
        ge=num%10;
        shi=num%100/10;
        bai=num/100;
       

        wexu=1;
        P0=0xfb;
        wexu=0;
        P0=0xff;
       
        duxu=1;
        P0=table[ge];
        duxu=0;
        yanshi(5);




        wexu=1;
        P0=0xfd;
        wexu=0;
        P0=0xff;
        duxu=1;
        P0=table[shi];
        duxu=0;
        yanshi(5);




        wexu=1;
        P0=0xfe;
        wexu=0;
        P0=0xff;
        duxu=1;
        P0=table[bai];
        duxu=0;
        yanshi(5);

}


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

使用道具 舉報(bào)

沙發(fā)
ID:329796 發(fā)表于 2018-5-14 18:10 | 只看該作者
請(qǐng)問(wèn)這個(gè)程序在AT89c51單片機(jī)上怎樣接線,謝謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:329981 發(fā)表于 2018-5-14 22:02 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表