标题: 我想实现通过单片机按键中断实现每次按键之后数据加二,再用数码显示管显示,但不... [打印本页]

作者: 博蒗    时间: 2019-4-29 13:28
标题: 我想实现通过单片机按键中断实现每次按键之后数据加二,再用数码显示管显示,但不...

  1. #include <reg52.h>
  2. LED_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  3. disbuf[]={0x01,0x02,};
  4. void delay(unsigned char time)
  5. {
  6.   unsigned char i;
  7.   int j=0;
  8.   for(i=time;i>0;i--)
  9.   for(j=0;j<125;j++);
  10. }
  11. break_() interrupt 2
  12. {
  13.   int i,j;
  14.         int m=0;
  15.   m=m+2;
  16.   i=m%10;
  17.         j=m/10;
  18.         if(j!=0)
  19.         for(j=0;j<2;j++)
  20.         {
  21.    P2=disbuf[j];
  22.                 P0=LED_[i];
  23.                 delay(10);
  24.         }
  25.         else
  26.   {
  27.                 P2=0x01;
  28.           P0=LED_[i];
  29.           delay(10);
  30.                 P2=0x02;
  31.           P0=LED_[i];               
  32.         }
  33. }
  34. void main()
  35. {
  36.   P0=0x3f;
  37.   P2=0x01;
  38.   EA=1;
  39.   EX1=1;
  40.   IE1=1;
  41.   IT1=1;
  42. while(1);
  43. }
复制代码

作者: wc86110    时间: 2019-4-29 17:25
看数码管办,AT 89 系列的 P0 口得接上拉电阻
作者: wulin    时间: 2019-4-29 21:59
给你改好了。




  1. #include <reg52.h>
  2. code unsigned char LED_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  3. code unsigned char disbuf[]={0xfe,0xfd};
  4. unsigned char m;

  5. void delay(unsigned char time)
  6. {
  7.         unsigned char i,j;
  8.         for(i=time;i>0;i--)
  9.           for(j=0;j<125;j++);
  10. }

  11. break_() interrupt 2
  12. {
  13.         m+=2;
  14.         m%=100;
  15. }
  16. void main()
  17. {
  18.         bit j=0;
  19.         EA=1;
  20.         EX1=1;
  21.         IE1=1;
  22.         IT1=1;
  23.         m=0;
  24.         while(1)
  25.         {
  26.                 if(j==0)
  27.                 {
  28.                         P2=disbuf[0];
  29.                         P0=LED_[m/10%10];
  30.                         j=1;
  31.                 }
  32.                 else
  33.                 {
  34.                         P2=disbuf[1];
  35.                         P0=LED_[m%10];
  36.                         j=0;
  37.                 }
  38.                 delay(2);
  39.                 P0=0x00;;
  40.         }
  41. }
复制代码




作者: tigerlyt    时间: 2019-4-30 08:33
wulin 发表于 2019-4-29 21:59
给你改好了。


作者: 博蒗    时间: 2019-4-30 12:01
wulin 发表于 2019-4-29 21:59
给你改好了。

十分感谢你的指导,不过你帮我都改好了,我都懒得动脑子了,哈哈
作者: wulin    时间: 2019-4-30 15:29
博蒗 发表于 2019-4-30 12:01
十分感谢你的指导,不过你帮我都改好了,我都懒得动脑子了,哈哈

程序虽然很简单,希望你能读懂。懒得动脑子乘早改行。入这行玩的就是动脑子。




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