找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5883|回复: 0
打印 上一主题 下一主题
收起左侧

我想用两个按键控制2个数码管单独显示数字,但是这个程序按k1

[复制链接]
跳转到指定楼层
楼主
ID:153645 发表于 2016-12-16 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//我想用两个按键控制2个数码管单独显示数字,但是这个程序按k1,第一个数码管亮第二个灭;
//按k2第二个数码管亮了,第一个又灭了,有什么办法可以让这两个数码管同时亮着。请指教,谢谢了!
  1. #include <REG52.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit k1=P3^4;
  5. sbit k2=P3^5;
  6. sbit duan=P2^6;
  7. sbit wei=P2^7;
  8. uint m=0,n=0;
  9. uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  10. void delay(uint xms)
  11. {
  12.         uint i,j;
  13.         for(i=xms;i>0;i--)
  14.                 for(j=112;j>0;j--);
  15. }

  16. void smgk1()
  17. {
  18.         uint i;
  19.         i=m%10;
  20.          
  21.         P0=tab[i];
  22.         duan=1;
  23.         duan=0;
  24.         P0=0xfe;
  25.         wei=1;
  26.         wei=0;
  27.         delay(500);
  28. }
  29. void smgk2()
  30. {
  31.         uint i;
  32.         i=n%10;
  33.          
  34.         P0=tab[i];
  35.         duan=1;
  36.         duan=0;
  37.         P0=0xfd;
  38.         wei=1;
  39.         wei=0;
  40.         delay(500);
  41. }


  42. void main()
  43. {
  44.         while(1)
  45.         {
  46.          if(k1==0|k2==0)
  47.         {
  48.                 delay(10);
  49.                 if(k1==0)
  50.                 {
  51.                          while(k1!=0);
  52.                         smgk1();
  53.                         m++;               
  54.                 }
  55.                 if(k2==0)
  56.                 {
  57.                          while(k2!=0);
  58.                         smgk2();
  59.                         n++;

  60.                 }
  61.         }
  62.         }        
  63. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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