标题: 单片机新手,刚做完按键计数给同样是新手的分享一下 [打印本页]

作者: dpjhaonan    时间: 2020-6-8 15:38
标题: 单片机新手,刚做完按键计数给同样是新手的分享一下
通过按键控制数码管显示加一,减一,附件有需要的下载

单片机源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar shi,ge,shi1,ge1;
  5. unsigned char duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  6. uint m=0;
  7. uint n=99;
  8. sbit KB1=P3^2;
  9. sbit KB2=P3^4;
  10. void delay_S(uint z)
  11. {
  12.         uint x,y;
  13.         for(x=z;x>0;x--)
  14.         for(y=110;y>0;y--);
  15. }
  16. void Display(uint shi,uint ge)
  17. {
  18.         P0=duanma[shi];
  19.         P2=0xfd;
  20.         delay_S(5);
  21.         P0=0;
  22.         P2=0xff;
  23.        
  24.         P0=duanma[ge];
  25.         P2=0xfe;
  26.         delay_S(5);
  27.         P0=0;
  28.         P2=0xff;
  29. }
  30. void Display1(uint shi1,uint ge1)
  31. {
  32.         P1=duanma[shi1];
  33.         P3=0xfd;
  34.         delay_S(5);
  35.         P1=0;
  36.         P3=0xff;
  37.        
  38.         P1=duanma[ge1];
  39.         P3=0xfe;
  40.         delay_S(5);
  41.         P1=0;
  42.         P3=0xff;
  43. }
  44. void main(void)
  45. {
  46.         while(1)
  47.         {
  48.                 if(KB1==0)
  49.                 {
  50.                         delay_S(5);
  51.                         if(KB1==0)
  52.                         {
  53.                                 m++;
  54.                                 if(m>99)  m=0;
  55.                         }
  56.                         while(!KB1);
  57.                 }
  58.                 shi=m/10;
  59.                 ge=m%10;
  60.                 Display(shi,ge);
  61.                
  62.                
  63.                 if(KB2==0)
  64.                 {
  65.                         delay_S(5);
  66.                         if(KB2==0)
  67.                         {
  68.                                 n--;
  69.                                 if(n<0)  n=99;
  70.                         }
  71.                         while(!KB2);
  72.                 }
  73.                 shi1=n/10;
  74.                 ge1=n%10;
  75.                 Display1(shi1,ge1);
  76.                 }
  77. }
复制代码

所有资料51hei提供下载:
按键计数.zip (48.41 KB, 下载次数: 11)






作者: llh558382727960    时间: 2020-6-9 03:05
源程序加上注释就好了。




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