标题: 用矩形按键控制数码管的显示 [打印本页]

作者: beibeixin    时间: 2017-10-13 00:15
标题: 用矩形按键控制数码管的显示
用矩形按键控制数码管的显示

单片机源程序如下:
  1. #include"reg52.h"
  2. #define u8 unsigned char
  3. #define u16 unsigned int
  4. sbit duan1=P2^2;
  5. sbit duan2=P2^3;
  6. sbit duan3=P2^4;
  7. sbit key=P3^3;
  8. u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  9. u8 date;
  10. void delay(u16 mas)
  11. {
  12.    u16 i,j;
  13.    for(i=mas;i>0;i--)
  14.      for(j=110;j>0;j--);
  15. }

  16. void display(u16 date)
  17. {
  18.    
  19.    duan1=0;duan2=0;duan3=0;
  20.    P0=table[date];
  21.    delay(5);
  22.    P0=0x00;
  23.    }
  24. void keyscan()
  25. {
  26.   u8 temp;
  27.   P1=0x7f;
  28.   temp=P0;
  29.   if(temp!=0x7f)
  30.     {
  31.           delay(10);
  32.           P1=0x7f;
  33.           temp=P1;
  34.           if(temp!=0x7f)
  35.           {
  36.              temp=P1;
  37.                    switch(temp)
  38.                  {
  39.                  case 0x77: date=0; break;
  40.                  case 0x7b: date=1; break;
  41.                  case 0x7d: date=2; break;
  42.                  case 0x7e: date=3; break;
  43.                    }
  44.                 }
  45. //           while(temp=0xff)
  46. //                 {
  47. //                   delay(10);
  48. //                 }

  49.         }
  50. }

  51. void main()
  52. {  

  53.   while(1)
  54.   {
  55.    
  56.    display(date);
  57.    keyscan();
  58.    }
  59. }
复制代码

所有资料51hei提供下载:
独立按键.zip (19.48 KB, 下载次数: 6)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1