如题,刚学dsp,想找一款仿真软件先学学,就像proteus一样的那种,再上手硬件,请各位帮忙提供点建议,谢谢。
2013-04-24 23:53
如题,我想用wundows 8,但是目前在学51,不知道这个系统能不能很好地兼容相关的软件等。懂的人麻烦给小弟点建议,十分感谢{:1:}{:1:}
2014-08-22 20:26
现象:1:我用stc-isp软件给单片机下载程序后重启开发板,2:再次点stc-isp软件上的下载/编程按钮,这次我不重启开发板,为了模拟通讯,一直循环给开发板发数据。3:没过多久,led1或者led2会点亮。我的理解:1:理论上TEnd=0或者1,但是这里TEnd还会等于256或者-255。不会再等于其他任何数据。2:如果是定时器太短,导致主程序跑不动延时了,TEnd完全会不定期等于其他数据,但是没有,他只会等于256或者-255这两个特殊数据。3:我怀疑是数据溢出 因为这两个数据跟8bit,byte有关系。#include#define uchar8 unsigned char //8#define uint16 unsigned int //16#define ulong32 unsigned long //32***it led0=P1^0;***it led1=P1^1;***it led2=P1^2;ulong32 TStar=0;//记录时间ulong32 TEnd=0;ulong32 sys1ms=0;//1ms累加,可以一直累加到49.7天void main(){//1ms@12.000MHzTMOD &= 0xF0; //设置定时器模式TMOD |= 0x01; //设置定时器模式TL0 = 0x18; //设置定时初值TH0 = 0xFC; //设置定时初值TF0 = 0; //清除TF0标志TR0 = 1; //定时器0开始计时//4800bps@12.000MHzPCON |= 0x80; //使能波特率倍速位SMODSCON = 0x50; //8位数据,可变波特率TMOD &= 0x0F; //清除定时器1模式位TMOD |= 0x20; //设定定时器1为8位自动重装方式TL1 = 0xF3; //设定定时初值TH1 = 0xF3; //设定定时器重装值ET1 = 0; //禁止定时器1中断TR1 = 1; //启动定时器1EA=1;//开启总中断ES=1;//开串口中断ET0=1;//开定时器0中断while(1){ ulong32 temp; TStar=sys1ms;//扫描周期记录初始值 //todo_something1(); //todo_something2 (); temp=sys1ms-TStar; if(TEnd
2014-08-10 13:52
看不出什么毛病啊,程序也很简单,怎么就是不行啊!已经验证板子没有问题。#include#includevoid init();int a;void main(){init();P1=0xfe; while(1) { if(a==20) { a=0; P1=_crol_(P1,1); } }}void init(){TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;}void timer0() interrupt 1{a++;TH0=(65535-50000)/256;TL0=(65535-50000)%256;}
2014-07-31 02:01