作者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