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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2101|回復: 6
收起左側

關于單片機C語言全局變量的值 不明白呀,請教了

[復制鏈接]
ID:64817 發表于 2019-1-27 10:23 | 顯示全部樓層 |閱讀模式
大神們真心請教,搞不明白,為什么按健數碼管顯顯正常,為什么全局變量b,,進不了 switch(b),,俺的C語言也是個入門級,請教了/




#include <reg51.h>
#define led P2
#define shumaguan P0
#define anjian P1
sbit ls138A= P2^2;
sbit ls138B= P2^3;
sbit ls138C= P2^4;
unsigned char b  ;

unsigned char code shuzu[]={ 0x3f  ,0x06 , 0x5b , 0x4f , 0x66,
0x6d  ,0x7d  , 0x07 , 0x7f , 0x6f } ;// 0--8數字
void ls138shuju()          
{
        ls138A= 0;
    ls138B= 0;
    ls138C= 0;
}
void yanshi (unsigned int u)
{
while(u--)        ;
}

void shuzihanshu()
{
   unsigned char v ;
   shumaguan=shuzu[0];                                                       
   while(1)
   {
         ls138shuju();
        /************* 掃描最右側一例*************/
         anjian=0XFE; //把1111 1110賦于按鍵,高4位與低4位組成縱橫矩陣
            v=anjian;    //        anjian賦于V
         v=v&0XF0;    //v于1111 0000相&取出高4位,如高4位有0說明有按健按下,
         if(v!=0XF0)         //有按鍵按下高4位不等于1111會進入if
           {
             yanshi (100);
             v=anjian;   
             v=v&0XF0;          
             if(v!=0XF0)
               {
                 switch(v)
                       {
                             case 0X70 :        b=4; shumaguan=shuzu[b]; break ;
                            case 0XB0 :        b=8; shumaguan=shuzu[b]; break ;          
                       }
                }
         while(v!=0XF0)
              {
                v=anjian;   
                v=v&0XF0;   
              }
         yanshi (100);                     
        }  

   }

}
void main()
{

  while(1)
       {

                shuzihanshu();
             switch(b)  //,為什么全局變量b,,進不了 switch(b),
                      {
                             case (4) : led=0X00; break ; 。疞ED燈不亮呀,請教了
                               case (8) : led=0X62; break ;
                      }
       
       }
}

回復

使用道具 舉報

ID:164602 發表于 2019-1-27 14:05 | 顯示全部樓層
不是全局變量的事兒啊。
你的程序中,當執行了void shuzihanshu()這個函數后,就死循環了
void shuzihanshu()
{
   unsigned char v ;
   shumaguan=shuzu[0];                                                        
   while(1)
再也跳不出來,根本沒有執行這以后的程序嘛。
程序結構有問題。自己改改吧。
回復

使用道具 舉報

ID:393699 發表于 2019-1-27 15:13 | 顯示全部樓層
shuzihanshu();這個函數是死循環嗎?那當然就不能switch命令咯。
你想同時掃描并顯示數字吧,把掃描函數放到主循環里面
回復

使用道具 舉報

ID:64817 發表于 2019-2-16 08:57 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2019-1-27 14:05
不是全局變量的事兒啊。
你的程序中,當執行了void shuzihanshu()這個函數后,就死循環了
void shuzihans ...

老師,怎么改好呀,,我想不出,給點意見。謝
回復

使用道具 舉報

ID:410399 發表于 2019-2-16 09:37 | 顯示全部樓層
把shuzihanshu()里面的while(1)去掉吧,你已經把shuzihanshu()放到main里面的while(1)了,那shuzihanshu()就已經無限循環了,你在shuzihanshu()里面加while(1)就在里面無限循環出不來了
回復

使用道具 舉報

ID:64817 發表于 2019-2-16 15:31 | 顯示全部樓層
mosqu 發表于 2019-2-16 09:37
把shuzihanshu()里面的while(1)去掉吧,你已經把shuzihanshu()放到main里面的while(1)了,那shuzihanshu() ...

謝謝,我試過把while(1)去過,但出現按健顯示正常了,好像都從子函數的開始指行了,,我的基礎差,想不出如何改呀
回復

使用道具 舉報

ID:356526 發表于 2019-2-16 20:00 | 顯示全部樓層
shuzihanshu()里面的while(1)是個死循環,你的邏輯有問題。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产主播第一页 | 亚州精品天堂中文字幕 | 亚洲综合久久久 | 国产二区视频 | 欧美成人精品一区二区男人看 | av男人的天堂在线 | 欧美日韩精品一区二区 | 日本涩涩网 | 黄色大片在线免费观看 | www.亚洲免费 | 特级丰满少妇一级aaaa爱毛片 | 亚洲国产精品一区二区www | 欧美在线资源 | 亚洲人成人一区二区在线观看 | 国产精品久久久久久久免费大片 | 91视频日本 | 亚洲精品一| 天天操天天舔 | 久久99精品久久久 | 国产一级淫片a直接免费看 免费a网站 | 精品美女久久久久久免费 | 99精品国产一区二区三区 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 一区二区三区视频播放 | 日韩一区和二区 | 国产精品久久久久久久久久 | 免费毛片网 | 欧美在线视频一区 | 日韩一区不卡 | 色先锋影音 | 亚洲精品乱码久久久久久蜜桃 | 天天色图 | 欧美一区二区在线免费观看 | 欧美一区二区三区在线 | 天天躁日日躁狠狠躁白人 | 一区二区三区av夏目彩春 | 欧洲一区二区在线 | 日韩在线免费 | 精品国产乱码久久久久久牛牛 | 中文字幕免费在线 | 精品国产乱码久久久久久丨区2区 |