您的位置:程序门 -> 硬件/嵌入开发 -> 片机/工控



单片机下c编程的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


单片机下c编程的问题
发表于:2007-04-19 15:40:53 楼主
#include <reg52.h>

unsigned   char   i,j;

unsigned   char   code   tab[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
                                                0x87,0xff,0xef}   ;

void   init_com()
{
          tmod   =   0x20;
          pcon   =   0x00;
          scon   =   0x50;
          th1   =   0xfd;
          tl1   =   0xfd;
          tr1   =   1;
}

void   main()
{
ea=1;
init_com();
ti=1;
while(ti)
{
for(i=0;i <10;i++)
sbuf=tab[i];
}
tr1=0;
}


程序的目的是向上位机传输十个数,完成后停止

但我在运行的时候发现接收到的数据不是按照顺序来的,离散分布。还有一点是程序无法停止,tr1=0不起作用,无法停止计数器,一直传输数据,这两点是怎么回事?

现在我都开始怀疑我的c水平了,我刚刚接触单片机
发表于:2007-04-19 16:11:451楼 得分:0
for(i=0;i <10;i++)
{sbuf=tab[i];
while(ti);
ti=0;}
试试
发表于:2007-04-19 16:18:482楼 得分:0
这样试试:
void   main()
{
init_com();
ti=0;
                  for(i=0;i <10;i++)
                  {
                        sbuf=tab[i];
                        while(ti);
                        ti=0;
                  }
                  while(1);
}
发表于:2007-04-19 16:22:433楼 得分:0
是这个while(ti==0);
      ti=0;
发表于:2007-04-19 16:48:294楼 得分:0
void   main()
{
init_com();
ti=0;
                  for(i=0;i <10;i++)
                  {
                        sbuf=tab[i];
                        while(ti);
                        ti=0;
                  }
                  while(1);
}
这样不行,传输一个数据就停下了,对了,请问一下while(1)什么意思,那不是一个死循环了,如果没有这条语句,整个main是不是就是循环?
发表于:2007-04-19 16:57:045楼 得分:0
for(i=0;i <10;i++)
        {
                sbuf=tab[i];
                while(ti==0);
                ti=0;
        }
tr1=0;

这样可以实现了,不过没有tr1=0的时候,会出现在输出完一遍后,出现再重新输出的现象,这是不是表明,main里的语句是循环的?


发表于:2007-04-19 18:38:056楼 得分:0
在单片机里开发的时候,main里必须是可知的,由于没有os,所以只能用户自己处理.

也就是一般放到一个死循环里while   (1);
发表于:2007-04-20 12:42:067楼 得分:0
在单片机的程序中是不停的从ram调用程序,所以没有程序结束之说。同意楼上的说法。
但即使有os,也是需要一个死循环。看看ucos的原代码就知道了
发表于:2007-04-21 07:27:568楼 得分:0
单片机程序一般是这样的当系统初始化工作结束后就进入一个循环系统.循环系统内有各种查寻来对系统的操作,进入各种子模块,或由中断进入子模块,退出后又进入循环系统.使系统在可控范围内运行.楼主的程序指行好就不知道程序到了什么地方去了.
发表于:2007-05-26 13:05:279楼 得分:0
study


快速检索

最新资讯
热门点击