找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1384|回复: 5
收起左侧

我想实现通过单片机按键中断实现每次按键之后数据加二,再用数码显示管显示,但不...

[复制链接]
ID:512883 发表于 2019-4-29 13:28 | 显示全部楼层 |阅读模式
QQ截图20190429132519.png
  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. }
复制代码
回复

使用道具 举报

ID:96682 发表于 2019-4-29 17:25 | 显示全部楼层
看数码管办,AT 89 系列的 P0 口得接上拉电阻
回复

使用道具 举报

ID:213173 发表于 2019-4-29 21:59 | 显示全部楼层
给你改好了。

无标题.jpg


  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. }
复制代码



回复

使用道具 举报

ID:522450 发表于 2019-4-30 08:33 | 显示全部楼层

回复

使用道具 举报

ID:512883 发表于 2019-4-30 12:01 | 显示全部楼层

十分感谢你的指导,不过你帮我都改好了,我都懒得动脑子了,哈哈
回复

使用道具 举报

ID:213173 发表于 2019-4-30 15:29 | 显示全部楼层
博蒗 发表于 2019-4-30 12:01
十分感谢你的指导,不过你帮我都改好了,我都懒得动脑子了,哈哈

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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