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

看板Electronics作者 (幹 嘛要下雨)時間17年前 (2008/12/09 02:15), 編輯推噓9(9012)
留言21則, 8人參與, 7年前最新討論串1/2 (看更多)
請問各位先進一個很急的問題 謝謝 我有個很簡單的程式作測試用 就是要讓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 02:25, , 1F
pin19 不就是 crystal in 嗎? 有沒有加電容?
12/09 02:25, 1F

12/09 02:28, , 2F
如果石英不起振當然整個單晶片都不會跑...
12/09 02:28, 2F

12/09 02:28, , 3F
對了, 請問各位這個問題要如何診斷? 我只會用示波器看...
12/09 02:28, 3F

12/09 02:29, , 4F
但是每次程式不跑就搬示波器出來實在很累, 舊型的好重
12/09 02:29, 4F

12/09 03:17, , 5F
delay1ms() 的問題... char 的 range 是 -128...127
12/09 03:17, 5F

12/09 03:20, , 6F
摸 Xin 就會"正常" 可能是 51 會不定期 reset...
12/09 03:20, 6F

12/09 05:33, , 7F
有改用SDCC編譯試看看嗎??
12/09 05:33, 7F

12/09 08:04, , 8F
to beagle:可以試看看用電錶量~0表示不起振~有值表示起
12/09 08:04, 8F

12/09 08:05, , 9F
振...因為我常常用電錶量看看有沒有輸出PWM...應該大同
12/09 08:05, 9F

12/09 08:06, , 10F
小異吧XDD
12/09 08:06, 10F

12/09 09:56, , 11F
不知道能不能用AVID找共振頻 @@
12/09 09:56, 11F

12/09 10:41, , 12F
有加電容...用12MHz 加兩顆30pf電容 照書接的...........
12/09 10:41, 12F

12/09 14:12, , 13F
可以的話用示波器量量看... 你有 reset 嗎?
12/09 14:12, 13F

12/09 15:06, , 14F
對了...如果懷疑是keilC的問題...
12/09 15:06, 14F

12/09 15:06, , 15F
把asm貼到網路上給大家看看???
12/09 15:06, 15F

12/09 23:20, , 16F
什麼叫正常運作 什麼叫無法運作? char塞1000不太對喔
12/09 23:20, 16F

12/09 23:21, , 17F
也許是手摸上去clock rate降低, 感覺好像正常罷了
12/09 23:21, 17F

12/10 01:40, , 18F
^^^^^^^^^^^^^^^^^^^^^^ Good Guess!
12/10 01:40, 18F

11/11 14:52, , 19F
摸 Xin 就會"正常 https://daxiv.com
11/11 14:52, 19F

01/04 21:50, 7年前 , 20F
//daxiv.com
01/04 21:50, 20F

01/04 21:50, 7年前 , 21F
01/04 21:50, 21F
文章代碼(AID): #19FMGmT0 (Electronics)
文章代碼(AID): #19FMGmT0 (Electronics)