标题: 程序有错误.哪位大神能帮忙看看 [打印本页]
作者: 1003 时间: 2016-6-2 20:50
标题: 程序有错误.哪位大神能帮忙看看
#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);
}
作者: luoluoluo136 时间: 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语言基础不过关。。。
作者: 1003 时间: 2016-6-2 20:54
学的汇编.c的有点看不懂.急需帮忙啊
作者: wjfw 时间: 2016-6-2 22:49
这是C,不是汇编。我也是学的汇编
作者: 1003 时间: 2016-6-3 23:12
已成功修改.可是仿真效果不好.大概是程序上的问题.大神,能不能帮忙看看,这个我会另外悬赏.有空的话帮忙指导一下我这个小菜鸟.
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |