![]() |
發布時間: 2019-5-15 09:31
正文摘要:問一下 有四盞燈分別為P0.4;P0.5;P0.6;P0.7四個口 只是讓一個亮為什么都亮 #include<stc15.h> sbit led1=p0.4; sbit led2=p0.5; sbit led3=p0.6; sbit led4=p0. ... |
要注意P的大小寫,還有while()循環。 其實剛開始接觸單片機還是要多看參考程序代碼,多積累 |
低電平有效唄 |
oxff什么意思都不明白? |
你這個很明顯程序有問題,上面已經給出了正確的程序。然后,還要檢查硬件有沒有錯誤,是否元件損壞等 |
三感 發表于 2019-5-17 22:45 你要相信 真的不報錯的 |
wj_yuq 發表于 2019-5-18 13:41 謝謝 現在改完了 |
問青天磕大地 發表于 2019-5-18 10:28 沒那么大的能力 |
首先要從原理圖層面搞清楚什么樣的輸出有效,此處為輸出低電平有效,再者,要清除了解編程軟件的規范(如大小寫要求);第三從最簡單做起以了解細節 |
難道芯片給你整壞了,擊穿了,造成漏電,4燈都亮 |
main函數里面加一個P0M0=0;P0M1=0;基本的框圖要打好啊,還有while()呢? |
不報錯?我不信。 |
還有那個P應該用大寫的 |
p0.4這個點怎么看著那么別扭 把他改成∧試試吧 |
0才是開,1應該是關,你的程序是讓一個滅 |
angmall 發表于 2019-5-16 18:26 這還去給寫一遍 ![]() |
P要用大寫,頭文件改成#include "reg51.h"這個51就行了,還有沒有while()循環,而且按你圖紙=1是不亮,=0是亮 |
smarttran 發表于 2019-5-17 01:43 謝謝了 辛苦 ![]() |
樓主你這個代碼哪是讓一個燈亮呀?有幾個問題:1,程序沒有死循環,只要程序跑到LED4=0后,就會從頭開始又執行一次了,2、P0=0xff,就是把四個燈關了,LED1=1就沒有意義了,接著后面3個燈會全亮,亮完后,程序又從頭開始執行。修改建議:while(1){P0=0xff;led1 = 0;delay();P0=0xff;delay();led2 = 0;delay();P0=0xff;delay();led3 = 0;delay();P0=0xff;delay();led4 = 0;delay();} |
改成: void main() { p0=0xff; while(1){ led1=0; led2=1; led3=1; led4=1; } } |
angmall 發表于 2019-5-16 18:26 感謝 這個改成了跑馬燈 挺謝謝的 |
stephanie_han 發表于 2019-5-16 18:20 謝謝 還是會亮 |
lele5211314 發表于 2019-5-16 17:26 謝謝 使用了 沒有變 |
wulin 發表于 2019-5-16 17:15 這個頭文件 是對的 并不是從網上抄寫 也可以編譯出hex文件 你寫的這個我也改了沒有用 還是同樣的效果 |
定義有些問題 我給你來個程序試試
|
試試看p0=0x10是不是也都亮? |
程序運行可能出現問題,建議在led4=0;后面加個while(1);死循環 |
估計樓主這個程序是胡亂抄的,并不是樓主用于芯片下載的程序,一共就十一條語句,幾乎沒有一條是正確的,并且不可能通過編譯器成功編譯得到hex文件。 1.首先<stc15.h>這個頭文件名就不存在,官方名稱是 <STC15F2K60S2.H>,按樓主目前水平還不具備自主編輯專用頭文件。 2.四條led端口定義的寫法全是錯誤的。 3.main函數第一條P0=0xff;是多余的,因為MCU加電復位P0就是高電平。 4.樓主想要4個led中的1個發光,其余不發光,邏輯反了。 5.程序必須限制在main函數內循環,否則執行完指令后會跳出main函數。必須用while(1)限制。 樓主試試這個程序 #include <STC15F2K60S2.H> sbit led1=P0^4; sbit led2=P0^5; sbit led3=P0^6; sbit led4=P0^7; void main() { led1=1; led2=1; led3=1; led4=0; while(1); } |
直接寫led1=0就可以了吧,其他可以不要寫。 |
用的什么?開發板還是自制電路?發圖上來,看看你led的接線方式 |
把原理圖發來看看, |
jmkl128 發表于 2019-5-15 17:24 改了 還是不行。。。 ![]() |
p0=0xff;把這一句改成p0=0x00; |
15775211617 發表于 2019-5-15 14:49 頭文件不是stc15.h么? 現在是高低電平都會亮 不知道怎么改 |
頭文件 ? 位申明? 低電平有效? |
ssk7793 發表于 2019-5-15 11:29 可以可以 |
ssk7793 發表于 2019-5-15 11:29 能通過 但是他全亮 ![]() |
你確定你的程序能編譯通過? |