找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求stc15单片机大神帮帮忙,蓝桥杯的

[复制链接]
回帖奖励 3 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 50%)
跳转到指定楼层
楼主
ID:551339 发表于 2019-11-30 19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮忙看一下为什么在定时器里面写LED灯闪烁和数码管显示中间有干扰,数码管偶尔会产生鬼影,谢谢了

  1. void Time_0() interrupt 1
  2. {
  3.         if(floag_T==0&&floag_S!=1)
  4.         {
  5.                 LED_L1++;
  6.                 if(floag_S==0&&LED_L1>0&&LED_L1<800)
  7.                 {
  8.                         P2=0x00;P2=0x80;P0=~0x80;P2=0x00;P0=0xff;
  9.                         
  10.                 }else if(floag_S==0&&LED_L1>800&&LED_L1<1600)
  11.                 {
  12.                         P2=0x00;P2=0x80;P0=0xff;P2=0x00;P0=0xff;
  13.                 }else if(LED_L1==1600)
  14.                 {
  15.                         LED_L1=0;
  16.                 }
  17.         }               
  18. }

  19. void Display(uchar dat_0,dat_1,dat_2,dat_3,dat_4,dat_5,dat_6,dat_7)
  20. {
  21.         uchar i;
  22.         for(i=0;i<8;i++)
  23.         {
  24.                 P2=0xc0;
  25.                 P0=wei[i];
  26.                 delay(100);

  27.                 P2=0xe0;
  28.                 switch(i)
  29.                 {
  30.                         case(0): P0=Data[dat_0];break;
  31.                         case(1): P0=Data[dat_1];break;
  32.                         case(2): P0=Data[dat_2];break;
  33.                         case(3): P0=Data[dat_3];break;
  34.                         case(4): P0=Data[dat_4];break;
  35.                         case(5): P0=Data[dat_5];break;
  36.                         case(6): P0=Data[dat_6];break;
  37.                         case(7): P0=Data[dat_7];break;
  38.                 }

  39.                 delay(1000);
  40.                 P2=0xe0;
  41.                 P0=0xff;
  42.         }
  43. }
复制代码



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

使用道具 举报

沙发
ID:213173 发表于 2019-12-1 09:48 | 只看该作者
没有硬件图,单看代码片段也难确认问题在哪。好像你的P2是共用的。显示程序运行时P2被中断干扰,这需要统筹考虑代码时序。
回复

使用道具 举报

板凳
ID:18297 发表于 2019-12-1 18:45 | 只看该作者
防止有鬼影的方法是:显示程序的设置如下,
1、显示数据的输出, 再位选输出。
1、刷新时,位选关闭,(注意共阴和共阳的不同),再更新数据输出P2,最后再输出新的位选信号。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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