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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個程序,編譯沒有錯誤.輸入一位數據沒事,第二位就亂了.哪位大神幫忙看看.謝謝!

[復制鏈接]
跳轉到指定樓層
樓主
ID:674808 發表于 2020-2-8 14:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
uchar dx[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};  //聲明全局變量(段選)
uchar wx[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};                         //聲明全局變量(位選)
void jzkey();                                                                                                        //聲明矩陣鍵盤函數
uint sj,sj1,sj2;                                                                                                //聲明(unsigned int)全局變量:數據,數據1,數據2.
uchar bzw,s[5];                                                                                                        //聲明(unsigned char)全局變量:標志位,數.
                                        /*****延時函數*****/                                                                                                          
void delay1ms(c)   //誤差 0us
{
    uchar a,b,d;                        //聲明局部變量:a,b,d.
        for(d=c;d>0;d--)               
            for(b=199;b>0;b--)
                for(a=1;a>0;a--);
}
                                        /****數據顯示*****/
sjxs(uint a)                                                                                               
{
          uchar b[8];
          b[7]=a/100000;b[6]=a/100000%10;b[5]=a/10000%10;b[4]=a/1000%10;
          b[3]=a/1000%10;b[2]=a/100%10;b[1]=a/10%10;b[0]=a%10;        //定義數據位
          P2=dx[b[0]]; P1=wx[0];delay1ms(10);                                        //定義P2口為段選,P1口為位選,延時10ms.
          if(a>=10){P2=dx[b[1]];P1=wx[1];delay1ms(1);}                        //十位
          if(a>=100){P2=dx[b[2]]; P1=wx[2];delay1ms(1);}                //百位
          if(a>=1000){P2=dx[b[3]]; P1=wx[3];delay1ms(1);}                //千位
          if(a>=10000){P2=dx[b[5]]; P1=wx[4];delay1ms(1);}                //萬位
          if(a>=100000){P2=dx[b[6]]; P1=wx[4];delay1ms(1);}                //十萬
          if(a>=1000000){P2=dx[b[7]]; P1=wx[4];delay1ms(1);}        //百萬
          if(a>=10000000){P2=dx[b[8]]; P1=wx[4];delay1ms(1);}          //千萬
}
void main()                       
{
        while(1)               
        {
        jzkey();                 //調用矩陣按鍵函數
        sjxs(sj);         //調用數據顯示函數
        }
}
                                        /******數據移位*****/
void  yw()
{       
        s[7]=s[6]=s[5]=s[4]=s[3]=s[2]=s[1]=s[0];                       
}
                                        /******數據合成*****/
void sjhc()
{
        sj=s[7]*10000000+s[6]*1000000+s[5]*100000+s[4]*10000+s[3]*1000+s[2]*100+s[1]*10+s[0]*1;               
}
                                        /*******數據復位*****/
void fw()
{
        sj=s[4]=s[3]=s[2]=s[1]=s[0]=0;                                                       
}
                                        /*****矩陣按鍵*****/
void jzkey()                                                                                                                       
{
        P3=0XFE;if(P3!=0XFE) delay1ms(10);P3=0XFE;if(P3!=0XFE)                       
        {
        if(P3==0XEE){yw();s[0]=1;sjhc();}
        if(P3==0XDE){yw();s[0]=2;sjhc();}
        if(P3==0XBE){yw();s[0]=3;sjhc();}
        if(P3==0X7E){yw();s[0]=4;sjhc();}delay1ms(500);}                                
        P3=0XFD;if(P3!=0XFD) delay1ms(10);P3=0XFD;if(P3!=0XFD)               
        {
        if(P3==0XED){yw();s[0]=5;sjhc();}
        if(P3==0XDD){yw();s[0]=6;sjhc();}
        if(P3==0XBD){yw();s[0]=7;sjhc();}
        if(P3==0X7D){yw();s[0]=8;sjhc();}delay1ms(500);}                               
        P3=0XFB;if(P3!=0XFB) delay1ms(10);P3=0XFB;if(P3!=0XFB)                       
        {
        if(P3==0XEB){yw();s[0]=9;sjhc();}
        if(P3==0XDB){yw();s[0]=0;sjhc();}
        if(P3==0XBB){fw(),sj1,sj2;}
        if(P3==0X7B)
        {
        sj2=sj;
        if(bzw==1)sj=sj1+sj2;                                                                                        //設置(+,-,*,/)
        if(bzw==2)sj=sj1-sj2;
        if(bzw==3)sj=sj1*sj2;
        if(bzw==4)sj=sj1/sj2;
        bzw=0;}
        delay1ms(500);}                                                                                                       
        P3=0XF7;if(P3!=0XF7) delay1ms(10);P3=0XF7;if(P3!=0XF7)                       
        {
        if(P3==0XE7){bzw=1;sj1=sj;fw();}
        if(P3==0XD7){bzw=2;sj1=sj;fw();}
        if(P3==0XB7){bzw=3;sj1=sj;fw();}
        if(P3==0X77){bzw=4;sj1=sj;fw();}delay1ms(500);}                               
}

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

使用道具 舉報

沙發
ID:235200 發表于 2020-2-9 00:58 | 只看該作者
s數組只定義了5個卻使用了8個,sj只定義了uint,卻要存放8位十進制,不發生錯誤才怪
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年网站在线观看 | 小h片免费观看久久久久 | 中文字幕高清av | 亚洲中午字幕 | 综合激情久久 | 丝袜美腿一区 | 亚洲精品乱码久久久久久蜜桃 | 久久久www成人免费无遮挡大片 | 久久久久亚洲精品 | 黄色av网站在线免费观看 | 欧美福利| 日韩成人专区 | 精品美女久久久 | 九九福利 | 亚洲欧美成人影院 | 欧美亚洲国产一区二区三区 | www.成人在线视频 | 在线视频a| 成人高潮片免费视频欧美 | 欧美性猛交 | 日日夜夜草 | 午夜视频在线观看一区二区 | 91传媒在线播放 | 夜夜操操操 | 国产精品乱码一二三区的特点 | 久久青 | 日本精品久久 | 亚洲精品在线视频 | 二区中文字幕 | 91麻豆产精品久久久久久夏晴子 | 午夜在线视频一区二区三区 | 成人国产精品入口免费视频 | 欧美亚洲国产日韩 | 亚洲日本乱码在线观看 | 亚洲精品视频导航 | 精品一区二区电影 | 欧美日韩精品一区二区 | 中文字幕99 | 自拍偷拍欧美 | www日韩| 精品日韩一区 |