作者SMJeremy (幹 嘛要下雨)
看板ASM
標題[問題] 8051用keil C無法運作之詭異問題
時間Tue Dec 9 02:13:15 2008
請問各位先進一個很急的問題 謝謝
我有個很簡單的程式作測試用
就是要讓51的P2.0上的LED閃爍
但是用keil C編譯完的hex燒錄後
發現無法運作 但是若用手一直碰著51的第19隻腳就可以正常運作
若手放開又不能運作 已經確定12MHz震盪器與兩個30pf電容是好的
改成組語寫 用x8051與link組譯卻又可以正常運作 不必用手碰
這現象很詭異 我在猜想是不是keil C的什麼環境設定出了問題?
但我確認過51的型號、Xtal有改成12MHz跟24MHz測試過都不行
C的原始程式如下:
#include<reg51.h>
sbit LED=P2^0;
void delay1ms(char);
main()
{
while(1)
{
LED=1;
delay1ms(1000);
LED=0;
delay1ms(500);
}
}
void delay1ms(char x)
{
char i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.80.135.23
1F:推 ruemann:第19隻腳是不是reset pin? 12/09 03:40
2F:→ shuiyuan:void delay1ms(char x)改成void delay1ms(int x)試試看 12/09 09:35
3F:→ shuiyuan:因為在main內的delay1ms(1000)已經超過char的最大值 12/09 09:36
4F:→ SMJeremy:第18,19隻腳是震盪器加電容的腳位 我試試樓上方法 謝謝 12/09 10:40
5F:推 saram:將兩個電容器拿掉. 這沒影響的. 01/25 00:37