看板 ASM 關於我們 聯絡資訊
請問各位先進一個很急的問題 謝謝 我有個很簡單的程式作測試用 就是要讓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
ruemann:第19隻腳是不是reset pin? 12/09 03:40
shuiyuan:void delay1ms(char x)改成void delay1ms(int x)試試看 12/09 09:35
shuiyuan:因為在main內的delay1ms(1000)已經超過char的最大值 12/09 09:36
SMJeremy:第18,19隻腳是震盪器加電容的腳位 我試試樓上方法 謝謝 12/09 10:40
saram:將兩個電容器拿掉. 這沒影響的. 01/25 00:37