找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何确保单片机按键不会出现抖动且按紧不会熄灭

[复制链接]
跳转到指定楼层
楼主
ID:108201 发表于 2016-3-15 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
郭天祥的板子单片机按键,在下面程序的基础上加按键,确保不会出现抖动且按紧不会熄灭
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code du[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. uchar code we[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
  6. sbit dula = P2^6;
  7. sbit wela = P2^7;
  8. sbit coke = P2^3;
  9. uchar shi,fen,miao,aa;
  10. void display(uchar);
  11. void delay(uint z)
  12. {
  13.         uint x;
  14.         for(;z>0;z--)
  15.                 for(x=110;x>0;x--);
  16. }

  17. void mm(uchar a,k)
  18. {
  19.         wela=1;
  20.         P0=we[a];
  21.         wela=0;
  22.         dula=1;
  23.         P0=du[k];
  24.         dula=0;
  25.         delay(1);
  26.         P0=0xff;
  27. }
  28. void main()
  29. {
  30.         
  31.         uchar temp;
  32.         uchar miao_ge,miao_shi,fen_ge,fen_shi;
  33.         uchar shi_ge,shi_shi;
  34.         aa=0;
  35.         TMOD=0x01;
  36.         TH0=(65536-50000)/256;
  37.         TL0=(65536-50000)%256;
  38.         EA=1;
  39.         ET0=1;
  40.         TR0=1;
  41.         while(1)
  42.         {
  43.                 miao_ge        =(miao%10);
  44.                 miao_shi=(miao/10);
  45.                 fen_ge=(fen%10);
  46.                 fen_shi=(fen/10);
  47.                 shi_ge=(shi%10);
  48.                 shi_shi=(shi/10);
  49.                
  50.                 dula=1;
  51.                 wela=1;
  52.           mm(5,miao_ge);
  53.                 mm(4,miao_shi);
  54.                 mm(3,fen_ge);
  55.                 mm(2,fen_shi);
  56.                 mm(1,shi_ge);
  57.                 mm(0,shi_shi);
  58.                 dula = 0;
  59.                 wela = 0;
  60.                 P0 = 0xff;
  61.                                 
  62.                 if(aa<10)
  63.                 {
  64.                         dula = 1;
  65.                         P0 = 0x80;
  66.                         dula = 0;
  67.                         wela = 1;
  68.                         P0 = 0x15;
  69.                         wela = 0;
  70.                         P0 = 0xff;
  71.                 }
  72.         }
  73. }

  74. void timer0() interrupt 1
  75. {
  76.         TH0=(65536-50000)/256;
  77.         TL0=(65536-50000)%256;
  78.         aa++;        
  79.         if(aa==20)
  80.         {        
  81.                 aa=0;
  82.                 miao++;
  83.                 if(miao>59)
  84.                         {
  85.                                 fen++;
  86.                         miao=0;
  87.                         }
  88.                 if(fen>59)
  89.                         {
  90.                                 shi++;
  91.                         fen=0;
  92.                         }
  93.                 if(shi>23)
  94.                         {
  95.                         shi=0;
  96.                         }
  97.         }
  98.         if(fen==0&&miao==0)
  99.                 {
  100.                         coke=0;
  101.                 }
  102.                 else
  103.                 {
  104.                         coke=1;
  105.                 }
  106. }
复制代码







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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