找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机按键控制数码管加1程序,结果不亮

查看数: 2241 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-5-19 10:52

正文摘要:

/* *功能:开关key1控制实现每按一次,数码管数字加1,实现00-99的循环 *开关key2实现随时清零 */ #include<reg52.h> sbit SEG1 = P1^0;  //定义显示十位的数码管 sbit SEG2 = P2^0; &n ...

回复

ID:213173 发表于 2019-5-19 21:17
楼主显示程序错误




  1. #include<reg52.h>
  2. sbit SEG1 = P1^0;  //定义显示十位的数码管
  3. sbit SEG2 = P2^0;  //定义显示个位的数码管
  4. sbit key1 = P3^2;  //定义实现数码管加1的开关key1
  5. sbit key2 = P3^3;  //定义实现清零的开关key2
  6. typedef unsigned int uint;
  7. //uint i,j;
  8. uint sum = 0;
  9. unsigned char code DSY_CODE[]={ //共阳极数码管
  10.                 0xC0,0xF9,0xA4,0xB0,0x99,
  11.                 0x92,0x82,0xF8,0x80,0x90};
  12. void display(unsigned char i); //数码管显示函数   

  13. void main()
  14. {
  15.         IE = 0X85;
  16.         IT0 = 1;
  17.         IT1 = 1;
  18.         while(1)
  19.         {           
  20.                 display(sum);
  21.         }
  22.                
  23. }


  24. void EX0_INT(void) interrupt 0 // 外部中断0,实现按键按一下数码管数字加一
  25. {
  26.         sum++;        
  27.         if(sum >= 100)
  28.                 sum = 0;
  29. }

  30. void EX1_INT(void) interrupt 2//外部中断1,实现清零
  31. {
  32.         sum = 0;        
  33. }


  34. void display(unsigned char i)        //数码管显示数字
  35. {       
  36.         P1 = DSY_CODE[i/10];
  37.         P2 = DSY_CODE[i%10];
  38. }
复制代码



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

Powered by 单片机教程网

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