欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機按鍵控制數碼管加1程序,結果不亮 [打印本頁]

作者: GadflyGuy    時間: 2019-5-19 10:52
標題: 單片機按鍵控制數碼管加1程序,結果不亮
/*
*功能:開關key1控制實現每按一次,數碼管數字加1,實現00-99的循環
*開關key2實現隨時清零
*/

  1. #include<reg52.h>
  2. sbit SEG1 = P1^0;  //定義顯示十位的數碼管
  3. sbit SEG2 = P2^0;  //定義顯示個位的數碼管
  4. sbit key1 = P3^2;  //定義實現數碼管加1的開關key1
  5. sbit key2 = P3^3;  //定義實現清零的開關key2
  6. typedef unsigned int uint;
  7. uint i,j;
  8. uint sum = 0;
  9. unsigned char code DSY_CODE[] = {0xC0,0xF9,0xA4,
  10.                                  0xB0,0x99,0x92,
  11.                                                                  0x82,0xF8,0x80,0x90}; //共陽極數碼管
  12. void display(uint i,uint j); //數碼管顯示函數   


  13. void main()
  14. {
  15.         IE = 0X85;
  16.         IT0 = 1;
  17.         IT1 = 1;
  18.         while(1)
  19.         {           
  20.           display(i,j);                                
  21.         }
  22.                
  23. }


  24. void EX0_INT(void) interrupt 0        // 外部中斷0,實現按鍵按一下數碼管數字加一
  25. {
  26.         sum++;        
  27. }

  28. void EX1_INT(void) interrupt 2//外部中斷1,實現清零
  29. {
  30.         sum = 0;        
  31. }


  32. void display(uint i,uint j)        //數碼管顯示數字
  33. {
  34.         i = sum/10;                        //數碼管顯示十位數字
  35.         j = sum%10;                    //數碼管顯示個位數字
  36.         if(sum == 100)
  37.         sum = 0;
  38.         P1 = DSY_CODE[i];
  39.         P2 = DSY_CODE[j];
  40. }
復制代碼


作者: wulin    時間: 2019-5-19 21:17
樓主顯示程序錯誤




  1. #include<reg52.h>
  2. sbit SEG1 = P1^0;  //定義顯示十位的數碼管
  3. sbit SEG2 = P2^0;  //定義顯示個位的數碼管
  4. sbit key1 = P3^2;  //定義實現數碼管加1的開關key1
  5. sbit key2 = P3^3;  //定義實現清零的開關key2
  6. typedef unsigned int uint;
  7. //uint i,j;
  8. uint sum = 0;
  9. unsigned char code DSY_CODE[]={ //共陽極數碼管
  10.                 0xC0,0xF9,0xA4,0xB0,0x99,
  11.                 0x92,0x82,0xF8,0x80,0x90};
  12. void display(unsigned char i); //數碼管顯示函數   

  13. void main()
  14. {
  15.         IE = 0X85;
  16.         IT0 = 1;
  17.         IT1 = 1;
  18.         while(1)
  19.         {           
  20.                 display(sum);
  21.         }
  22.                
  23. }


  24. void EX0_INT(void) interrupt 0 // 外部中斷0,實現按鍵按一下數碼管數字加一
  25. {
  26.         sum++;        
  27.         if(sum >= 100)
  28.                 sum = 0;
  29. }

  30. void EX1_INT(void) interrupt 2//外部中斷1,實現清零
  31. {
  32.         sum = 0;        
  33. }


  34. void display(unsigned char i)        //數碼管顯示數字
  35. {       
  36.         P1 = DSY_CODE[i/10];
  37.         P2 = DSY_CODE[i%10];
  38. }
復制代碼








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