找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2239|回复: 1
收起左侧

单片机新手,刚做完按键计数给同样是新手的分享一下

[复制链接]
ID:763578 发表于 2020-6-8 15:38 | 显示全部楼层 |阅读模式
通过按键控制数码管显示加一,减一,附件有需要的下载 9Z1EFDFMDRE4M4SW{[P3X)1.png 3ZEDAF4AOW61}IN_OXYP{N5.png %CGA@TUYP9[2B[CP1~)(5WF.png

单片机源程序如下:
  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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:771727 发表于 2020-6-9 03:05 来自手机 | 显示全部楼层
源程序加上注释就好了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表