作者googoochage (('.'))
看板Electronics
标题[问题]一个有关於8051使用keil c 的实作问题
时间Fri Apr 10 01:06:42 2009
最近开始自己学习单晶片,遇到一个奇怪的问题,我想使单晶片产生一个
几百Hz级的方波讯号,再将程式码使用Keil c编译後烧制单晶片内,再接
到面包板上测试,发现在电源接上的一瞬间,示波器上可以产生正确的方
波讯号,但马上讯号就会变为固定的高电位或者是低电位,程式码如下:
#include <regx51.h>
#include <stdio.h>
void DelayX1ms(int count){
int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++)
;
}
void main(){
while(1) {
P3_0=1;
DelayX1ms(5);
P3_0=0;
DelayX1ms(5);
}
}
希望有板友能给我一些可能发生这种问题的原因,这个问题困扰久,
毕竟这程式码应该是属於非常简单的部分,如果搞不定的话也很难进
到下一步,先谢谢各位的指教。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.121.182.155
1F:推 TroyLee:有内建WatchDog吗? 像是我用 C8051F 好像内建都有 04/10 01:10
2F:→ TroyLee:不用的话要先关掉 04/10 01:10
3F:→ googoochage:我刚估狗了一下才知道有watchdog这东西= =,我是使用 04/10 01:26
4F:→ googoochage:atmel 89c51 04/10 01:26
5F:→ googoochage:我明天试试,先谢了 04/10 01:32
6F:推 TroyLee:89c51那可能不是watchdog得问题... 04/10 01:43
7F:→ googoochage:ㄜ,真的是很怪的问题阿.... 04/10 01:48
8F:推 stool100:或许可以检查看看你的周边电路 04/10 01:56
9F:→ googoochage:周边电路检查蛮多便了....ˊ ˋ 04/10 02:13
10F:→ proach:有没有装稳压电容? 0.1uF装在VCC, GND之间. 04/10 02:28
11F:→ googoochage:有ㄟ.... 04/10 02:32
12F:推 ksmrt0123:程式应该没问题, 可能是hardware或keil设定的问题 04/10 13:39
13F:→ ksmrt0123:clock跑多快? keil用那个memory model? 04/10 13:40
14F:→ ksmrt0123:power-on 後正常输出多久? 不关电reset後的情形如何? 04/10 13:41
15F:→ googoochage:石英震荡器是12MHz,reset後还是会发生一样的问题, 04/11 17:15
16F:→ googoochage:正常的输出只能维持很短的一段时间大概一两秒吧。 04/11 17:15
17F:→ googoochage:至於memory model 我不知道怎麽调整... 04/11 17:16
18F:推 ksmrt0123:改memory model: project->options for target '...' -> 04/11 23:51
19F:→ ksmrt0123:target选项里... 不过你可跑1-2秒, 应该不是这个问题, 04/11 23:52
20F:→ ksmrt0123:你用面包板吧... 也许可换颗慢一点的xtal试试看... 04/11 23:53