標題: 求助幫忙分析一下這個程序 displaydate【i】=number(0)是啥意思 [打印本頁]

作者: 669621251    時間: 2018-5-13 16:32
標題: 求助幫忙分析一下這個程序 displaydate【i】=number(0)是啥意思
  1. #define uchar unsigned char         //快捷定義
  2. #define uint unsigned int         //快捷定義
  3. #define duan P2     //數(shù)碼管段選接口
  4. #define wei P3      //數(shù)碼管位選接口
  5. sbit ledH=P0^2;     //指示紅燈接口
  6. sbit ledL=P0^3;     //指示綠燈接口
  7. sbit Frst=P1^4;            //按鍵1
  8. sbit Second=P1^5;        //按鍵2
  9. sbit Third=P1^6;        //按鍵3
  10. sbit Forth=P1^7;        //按鍵4
  11. sbit k1=P1^0;       //start按鍵
  12. sbit k2=P1^1;                //reset按鍵
  13. uchar i=0;                        //數(shù)碼管顯示計時
  14. //uchar qinflag;          //移位標志
  15. uchar code number[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8c,0xff,0xbf,0xcf};         //0~9,a,b,c,d,e,f,p,不顯示,-,
  16. iuchar code weizi[11]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x10,0x20};//位選數(shù)據(jù)//
  17. uchar code error[10]={0xff,0xaf,0xc0,0xaf,0xaf,0x86,0xff,0xff,0xff};//erroruchar displayData[11];
  18. //uchar weishu;
  19. char time;
  20. uchar qdShijian;                //時間計時
  21. uchar xuanshou;                  //選手編號
  22. bit qdQidong;                         //搶答啟動
  23. //bit dtQidong; //答題啟動
  24. bit select;                                 //選擇
  25. uint count;                                //定時計時變量
  26. void init();                          //初始化
  27. uchar scanzhi();                //獲取按鍵值
  28. void display();                        //數(shù)碼管顯示
  29. void duzhichuli();                //數(shù)據(jù)處理
  30. =================================================
  31. void keyscan(){        
  32. if(k1==0)                //檢測按鍵K1是否按下開始        
  33. {                //Delay10ms();        //消除抖動
  34.         //        while(k1==0);        //松手檢測        
  35.         qdQidong = 1; //啟動搶答               
  36. qdShijian = 20;//倒計時20秒        
  37.         select = 1;        //啟動選擇        
  38.         ledL = 1;  //綠燈亮        }        
  39. if(k2==0)                //檢測按鍵K2是否按下復位
  40.         {                ledL = 0;        //綠燈滅               
  41. ledH = 0;  //紅燈滅               
  42. select = 1;//選擇               
  43. for(i=1;i<12;i++)  //顯示數(shù)據(jù)清零   
  44.          displayData[i]=number[0];                        }        
  45. if(select == 1 && qdQidong == 1)         //搶答處理
  46.         {                if(Frst==0)                //檢測按鍵1號選手        
  47.         {                        select = 0;         //退出選擇        
  48.         //        dtShijian = 30;  //倒計時30秒        
  49.         //        dtQidong = 1;  //倒計時啟動               
  50.         qdQidong = 0;   //搶答停止               
  51.         xuanshou = 1;                 //選手1               
  52.         time=0;               
  53.         displayData[1] = number[10]; //顯示a                        
  54.         displayData[2] = number[xuanshou]; //顯示編號                }
復制代碼





displaydate【i】=number(0)是啥意思

作者: wulin    時間: 2018-5-13 19:09
        for(i=1;i<12;i++)  //顯示數(shù)據(jù)清零   
                displayData[i]=number[0];      
displayData[]是顯示緩存,number[]是字符數(shù)組,程序是循環(huán)12次把緩存清零 。
作者: 51jia    時間: 2018-5-13 22:24
意思是把顯示數(shù)組中每一組寫入0x00.
作者: ysqing    時間: 2018-5-14 03:12
displayData[i]=number[0]; 這里number[0]應該為“0”的顯示代碼,把所有的顯示緩沖置0,在屏上顯示字符0,查找對應的電路圖應該會更加清楚。
作者: ysqing    時間: 2018-5-14 03:14
number[0]應該為字符’0“的顯示代碼,displaydate[i]=number(0); 應該是把所有的顯示緩沖區(qū)填成字符”0“,在LED屏上顯示字符”0“的意思。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1