您现在所在的是:

电脑编程

回帖:10个,阅读:2492 [上一页] [1] [2] [下一页]
1700
QTANSUO
文章数:237
年度积分:50
历史总积分:1700
注册时间:2006/4/28
发站内信
发表于:2009/3/30 21:14:01
#0楼
请问下面 C 程序什么地方有错误?
                                          谢谢!

/*ch7-1.c定时器试验1-查询方式-高低位等互上闪*/
//==================================================================
#include  <reg51.h>
#define LED  P2
#define count_M1   50000
#define   TH _M1(65636-count_M1)/256
#define   TL _M1(65636-count_M1)%256
//====================================================================
main()
{ int  i;
IE=0x82;
TMOD=0x01;
LED=0xf0;
while(1)
{ for     (i=0;i<5;i++)
 {    TH0=TH_M1;
     TL0=TL_M1;
     TR0=1;
     while(TF0==0);
     TF0=0;
 }
 LED= ~LED;
 }
}

是第16行     TH0=TH_M1;
     17行      TL0=TL_M1;
中的  TH_M1;
       TL_M1;
显示错误

还有,如果下面的TH与_M1靠近(TH_M1与下面的距离不同)也会显示这两条(6、7)条错误。
#define   TH _M1(65636-count_M1)/256
#define   TL _M1(65636-count_M1)%256

请指正,谢谢!





[此贴子已经被jint于2009-3-31 8:42:00编辑过]
19184
pqsh 版主
文章数:7417
年度积分:1014
历史总积分:19184
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2009/3/31 10:32:05
#1楼
#define空格TH_M1空格(65535-count_M1)/256
#define空格TL_M1空格(65536-count_M1)%256


[此贴子已经被作者于2009-3-31 10:46:53编辑过]
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
1051
菩提树1
文章数:83
年度积分:50
历史总积分:1051
注册时间:2008/11/19
发站内信
发表于:2009/3/31 16:22:23
#2楼
#define   TH _M1(65636-count_M1)/256
TH0=TH_M1;
TH_M1中TH后,一个有空格,一个没空格。
上善若水
1700
QTANSUO
文章数:237
年度积分:50
历史总积分:1700
注册时间:2006/4/28
发站内信
发表于:2009/3/31 21:14:03
#3楼
谢谢大家热心!
请大家再指点:
/*ch7-1.c定时器试验1-查询方式-高低位等互上闪*/
//==================================================================
#include <reg51.h>
#define LED P2
#define count   50000
#define TH_M1 (65636-count_M1)/256
#define TL_M1 (65636-count_M1)%256
//====================================================================
main()
{ int  i;
IE=0x82;
TMOD=0x01;
LED=0xf0;
while(1)
{ for (i=0;i<5;i++)
{ TH0=TH_M1; // 显示错误
               TL0=TL_M1; //显示错误
TR0=1;
 while(TF0==0);
 TF0=0;
}
LED= ~LED;
}
}
19184
pqsh 版主
文章数:7417
年度积分:1014
历史总积分:19184
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2009/4/3 9:31:50
#4楼
#define TH_M1 (65636-count_M1)/256
上面的65636是不是65535或65536?
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
1700
QTANSUO
文章数:237
年度积分:50
历史总积分:1700
注册时间:2006/4/28
发站内信
发表于:2009/4/3 21:53:57
#5楼
谢谢4楼!我查了资料MODE1的位数应该是65536,但数据改了还是显示;
CH7.1.C(16):error c202: count_M1':undefinid identifier
CH7.1.C(17):error c202: count_M1':undefinid identifier
Targer not created
请指教!
1700
QTANSUO
文章数:237
年度积分:50
历史总积分:1700
注册时间:2006/4/28
发站内信
发表于:2009/4/3 22:08:27
#6楼
请问下面的语句中计数1次是指1个机器周期吗?1个机器周期也只有1us的时间,下面的怎么有5ms?
          for(j=1;j<=600;j++);     //计数600次,延迟5ms
         
   谢谢!

19184
pqsh 版主
文章数:7417
年度积分:1014
历史总积分:19184
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2009/4/5 20:50:42
#7楼
我真服了你了,第一次写的还有count_M1,后来写的又没有,成了count?错误就是未定义符号.
for的这个循环,是要执行循环体{}内的所有指令的.这里包括几个简单指令,也包括计时TF0的等待.总共可能是5ms吧?
就是一个j++估计也不只一个机器周期.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
1700
QTANSUO
文章数:237
年度积分:50
历史总积分:1700
注册时间:2006/4/28
发站内信
发表于:2009/4/6 22:17:50
#8楼

我请教的上面的程序是《例说51单片机 》上面的,程序上面的2个错误现在清楚了
1、count为定义符号
2、65536错写为65636
                                         谢谢老大指教!
19184
pqsh 版主
文章数:7417
年度积分:1014
历史总积分:19184
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2009/4/10 7:28:45
#9楼
晕,你是来扰乱论坛的啊?
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004