找回密码
 立即注册

QQ登录

只需一步,快速开始

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

程序有错误.哪位大神能帮忙看看

[复制链接]
跳转到指定楼层
楼主
ID:108510 发表于 2016-6-2 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Temperature[]={0,0,0};
sbit ST= P2^5;
sbit OE= P2^7;
sbit EOC =P2^6;
sbit CLK =P2^4;
sbit H_LED=P3^0;
sbit L_LED=P3^1;
sbit BEEP = P3^7;
uchar t=0;
void DelayMS(unit x)
{
uchar i;
while(x--)for(i = 0;i< 120; i++);
}
void Show_Temperature()
{
uchar i,DSY_IDX[]= {0xF7,0xFB,0xFD};
for  (i = 0;i < 3; i++)}
{
   P0 = DSY_CODE[ Temperature ];
   P2 &= DSY_IDX;
   DelayMS(5);
   P2 |= 0x0F;
  }
}
void main()
{
  uchar d;
  IE = 0x8a;
  TMOD = 18;
  TH0 = 245;
  TL0 = 0;
  TH1 = (65536 -1000) /256;
  TL1 = (65536 -1000) &256;
  TR0 = 1;
  H_LED = L_LED = 1;
  while(1)
{
   ST = 0; ST = 1; ST = 0;
   while(1)
  {
    if(EOC == 1)
    {
      OE = 1;
      d  = P1;
      OE = 0;
      Temperature[2] = d/100;
      Temperature[1] = d%100/10;
      Temperature[0] = d%10;
Show_Temperature();
  if(d < 60)
{
   TR1 = 1;  L_LED = !H_LED;
  }
  else
  if(d > 160)
{
  TR1 = 1;  H_LED = !L_LED;
}
  else
{
  TR1 = 0;  H_LED = L_LED = 1;
}
break;
          }
         }
       }
    }
void T0_INT() interrupt 1
{
   CLK = ~CLK;
}
void T1_INT() interrupt 3
{
  TL1 = (65536 -1000) % 256;
  BEEP = ~BEEP;
      { if (++t !=150 ) return; }
   else
      { if (++t !=60 ) return; }
   t = 0;
  DelayMS(20);
}

最佳答案

查看完整内容

错误还真不少。。。 void DelayMS(unit x) unit????打错字了吧 uchar i,DSY_IDX[]= {0xF7,0xFB,0xFD}; for (i = 0;i < 3; i++)} //////////这里这个右大括号什么意思???? P0 = DSY_CODE[ Temperature ]; //[ ]这里面应该是一个数值,然而Temperature 是一个数组 P2 &= DSY_IDX;//////这里,DSY_IDX又是一个 数组。。。应该是DSY_IDX吧 { if (++t !=150 ) return; } else//////////这个意义何在 ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:97438 发表于 2016-6-2 20:50 | 只看该作者
错误还真不少。。。
void DelayMS(unit x) unit????打错字了吧

uchar i,DSY_IDX[]= {0xF7,0xFB,0xFD};
for  (i = 0;i < 3; i++)} //////////这里这个右大括号什么意思????

  P0 = DSY_CODE[ Temperature ]; //[ ]这里面应该是一个数值,然而Temperature 是一个数组

   P2 &= DSY_IDX;//////这里,DSY_IDX又是一个 数组。。。应该是DSY_IDX[i]吧

      { if (++t !=150 ) return; }
   else//////////这个意义何在?
      { if (++t !=60 ) return; }

总结一下,c语言基础不过关。。。
回复

使用道具 举报

板凳
ID:108510 发表于 2016-6-2 20:54 | 只看该作者
学的汇编.c的有点看不懂.急需帮忙啊
回复

使用道具 举报

地板
ID:123917 发表于 2016-6-2 22:49 | 只看该作者
这是C,不是汇编。我也是学的汇编
回复

使用道具 举报

5#
ID:108510 发表于 2016-6-3 23:12 | 只看该作者
luoluoluo136 发表于 2016-6-2 20:50
错误还真不少。。。
void DelayMS(unit x) unit????打错字了吧

已成功修改.可是仿真效果不好.大概是程序上的问题.大神,能不能帮忙看看,这个我会另外悬赏.有空的话帮忙指导一下我这个小菜鸟.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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