wqiling 发表于 2011-5-19 16:06:06

STC单片运行如下流水灯程序都运行部了,难道....?

程序源码如下:
/*间隔300ms第一次一个管亮流动一次
第二次两个管亮流动,依次到8个管亮
然后重复整个过程*/
#include <reg52.h>
#include <intrins.h>
void delay (unsigned int z);
void main()                  //主函数
{
        unsigned char a,i,j;
        while(1)      //大循环
        {
                        a=0xfe;   //赋初值
                        for(j=0;j<8;j++)
                        {
                                for(i=0;i<8-j;i++)   //左移
                                {
                                        P1=a;       //点亮小灯
                                        delay(200); //延时200毫秒
                                        a=_crol_(a,1); //将a变量循环左移一位
                                }
                                a=_crol_(a,j);   //补齐,方便下面的左移一位则最高位点亮后再向左移j位使最低起亮j个灯
                                P1=0xff;                //全部关闭
                                a=a<<1;                       //左移一位让多一个灯点亮则最低位补0使最低位起亮j+1个灯
                        }
        }
}
void delay (unsigned int z)           //带参数的函数,在使用该函数时直接在()中赋值即可
{
        unsigned int x,y;
        for (x=z;x>0;x--)
                for(y=110;y>0;y--);
}
以上代码为郭天祥所写的,为了验证程序的正确性,用Proteus 7.5搭建的电路能正确仿真,可下载到如下单片机中,型号有:STC89C51RC\STC89C52RC\STC12C5A60S2\STC90C546RD都只有第一个LED亮,可是用SST89E516RD进行在线仿真正常,而只要在KEIL中勾选http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_641031LALEYR.png
(原文件名:2011-05-19_155950.png)
该选项后,仿真却只有第一个LED在闪烁,难道STC很烂,烂得不得了??望各位高手能给我指点下迷津!谢谢。。。!

songyangsheng 发表于 2011-5-20 16:49:51

我觉得楼主心急了点吧,怎么这点程序就怀疑芯片不行,怎么不说你的操作出错呢,

guer 发表于 2011-5-20 16:53:53

至少STC这点还是没有问题的,

marshallemon 发表于 2011-5-20 17:06:51

建议楼主直接再买个新的STC的片子,不需要向里面写程序,直接插在板子上观察,你会神奇的发现,你的程序无线下载进去了

wqiling 发表于 2011-5-20 19:54:53

以上程序编译后均下载到刚到手的STC芯片中!型号就是前面所列的!都在三种不同实验板上运行测试!流水灯电路原理一样的!情况都是前面所描述一样!可是用SST芯片在线调试完全通过!只是在KEIL仿真选项中够选软件控制复位!就出现第一个LED闪烁的情况!用带串口的台式机和转串口的笔记本调试下载程序!一直操作调试三个多钟头!情况都一直那样!我耐着性子调了这么久!咳…用PROTEUS 7.5仿真和平凡的KEIL仿真插件都完全通过!直到此我想到这!希望大家帮我找下错误是在哪里!谢谢了…

zouyf12 发表于 2011-5-20 21:04:41

想了想,还是不说了。培养楼主的调试能力。

erxun 发表于 2011-5-20 21:08:11

不要打击楼主了,
楼主加油~~~

oldman123 发表于 2011-5-20 22:03:49

其实楼主学下去没有多大前途的,大家不要害楼主浪费时间了,还是改行吧

liucw99 发表于 2011-5-20 22:06:22

还是需要高人出来给LZ指点下。

wqiling 发表于 2011-5-20 22:50:09

7楼真打击啊!我现在就是对单片机感兴趣!就趁着这份热心学下知识!好充实下自己,提高自己的专业水平!我知道学习光靠三分热度是不行的,不能三天打鱼两天晒网吧??我需继续努力!感谢大家给我勇气,刚放学回来,我重新建立工程,重新输入代码啊进行调试,却完全通过了,走了弯路了!可能是以前建的工程设置出错了吧!现在上传下proteus仿真文件和源代码,在proteus中单步调试可观察源代码的,这下放心了,下一步就想着怎样用定时器写一个电子钟。。。电路原理图就在该文件中,大家看下实现的难易情度是怎样的,期待成功!???ú???????··???ourdev_641634TQFQPU.rar(文件大小:100K) (原文件名:Day2.rar)

zouyf12 发表于 2011-5-21 00:06:34

搞不好是你工程添加的MAIN文件错了, 这个问题真的很奇怪啊

wqiling 发表于 2011-5-21 00:20:08

是啊!这个问题确实很奇怪,我一般都是软件仿真后,再进行硬件运行。。。。可偏偏就出现这样的问题!我重写就行。。旧的问题解决了,新的问题有出来了!!为什么会是这样呢??不过这样可以确定是我操作问题了!正如一楼所说了!以后学习不但要专注更要专心细心才行的!!

rocky-zou 发表于 2011-5-22 12:10:36

昨天搞了半天,弄了 个汇编的电子钟,现在还在测试效果不错。在KILL中编译程序我也发现了点问题,有些语句编译不能通过,

把一摸一样的语句重写一遍就通过了,真搞不懂怎么回事,,

zheniantou 发表于 2011-5-22 12:28:24

楼主加油,应该不是芯片的问题,STC芯片有些是1T的,看是否有关系。

49dz 发表于 2011-5-22 13:47:04

小问题要悄的搞定。
页: [1]
查看完整版本: STC单片运行如下流水灯程序都运行部了,难道....?