[問題] 8051用keil編譯 無法運作之詭異問題

看板ASM (組合語言)作者 (幹 嘛要下雨)時間16年前 (2008/12/09 02:13), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/1
請問各位先進一個很急的問題 謝謝 我有個很簡單的程式作測試用 就是要讓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

12/09 03:40, , 1F
第19隻腳是不是reset pin?
12/09 03:40, 1F

12/09 09:35, , 2F
void delay1ms(char x)改成void delay1ms(int x)試試看
12/09 09:35, 2F

12/09 09:36, , 3F
因為在main內的delay1ms(1000)已經超過char的最大值
12/09 09:36, 3F

12/09 10:40, , 4F
第18,19隻腳是震盪器加電容的腳位 我試試樓上方法 謝謝
12/09 10:40, 4F

01/25 00:37, , 5F
將兩個電容器拿掉. 這沒影響的.
01/25 00:37, 5F
文章代碼(AID): #19FMEyyc (ASM)
文章代碼(AID): #19FMEyyc (ASM)