找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3351|回復(fù): 25
打印 上一主題 下一主題
收起左側(cè)

剛開始用stc8g1k08,這個程序?qū)懙膶Σ粚Π。瑸樯秵纹瑱C(jī)沒反應(yīng)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1026082 發(fā)表于 2022-5-12 21:57 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
如題,這個D2燈照樣亮,是我程序的問題嗎

5a9743f6b34ee85d.jpg (206.49 KB, 下載次數(shù): 44)

5a9743f6b34ee85d.jpg

-21cfc5bec82a8ef6.jpg (269.78 KB, 下載次數(shù): 42)

-21cfc5bec82a8ef6.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1026082 發(fā)表于 2022-5-12 22:17 來自觸屏版 | 只看該作者
吐槽一下,這個芯片要是能在protues上仿真就好了,要不學(xué)習(xí)編程確實比較費(fèi)勁
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2022-5-13 05:32 | 只看該作者
zzsxjzscx 發(fā)表于 2022-5-12 22:17
吐槽一下,這個芯片要是能在protues上仿真就好了,要不學(xué)習(xí)編程確實比較費(fèi)勁

void main()
{
        port_mode();
        LED=0;
        beep=0;
        while(1);
}
回復(fù)

使用道具 舉報

地板
ID:584814 發(fā)表于 2022-5-13 08:23 | 只看該作者
程序?qū)懙闹灰幾g能通過就對,但能不能實現(xiàn)你想要的功能兩說;
單片機(jī)有沒有反應(yīng)不是肉眼凡胎直接可以看全的;
能仿真通過的未必實物也一樣;
先學(xué)好基礎(chǔ)再深入。
回復(fù)

使用道具 舉報

5#
ID:339654 發(fā)表于 2022-5-13 08:33 | 只看該作者
你這三極管給低電平才導(dǎo)通的,給1肯定是沒反應(yīng)的
回復(fù)

使用道具 舉報

6#
ID:1026082 發(fā)表于 2022-5-13 08:49 來自觸屏版 | 只看該作者
weijoyer 發(fā)表于 2022-5-13 08:33
你這三極管給低電平才導(dǎo)通的,給1肯定是沒反應(yīng)的

很奇怪,這個LED只要上電就亮,我想讓他滅,看看程序管不管用
回復(fù)

使用道具 舉報

7#
ID:136485 發(fā)表于 2022-5-13 09:30 | 只看該作者
PNP的三極管要給低電平才行,STC的芯片要配置成推挽輸出,P1M0=0x03;P1M0=0x00;多看書,不要一點(diǎn)小問題就來問,高手是沒空理你的
回復(fù)

使用道具 舉報

8#
ID:1026082 發(fā)表于 2022-5-13 09:40 來自觸屏版 | 只看該作者
kxcuser 發(fā)表于 2022-5-13 09:30
PNP的三極管要給低電平才行,STC的芯片要配置成推挽輸出,P1M0=0x03;P1M0=0x00;多看書,不要一點(diǎn)小問題就來 ...

感謝高手大哥的回復(fù),但是問題是這樣的,我的小燈上電就亮,我想讓他關(guān)掉,所以這樣寫。推挽模式可能能幫助小燈滅吧
回復(fù)

使用道具 舉報

9#
ID:170318 發(fā)表于 2022-5-13 09:51 | 只看該作者
zzsxjzscx 發(fā)表于 2022-5-13 08:49
很奇怪,這個LED只要上電就亮,我想讓他滅,看看程序管不管用

上電滅的話,端口要設(shè)置成雙向或推挽,且端口輸出為高電平,另電路圖中R3、4改成1k,R5取值計算一下,51估計小了
回復(fù)

使用道具 舉報

10#
ID:170318 發(fā)表于 2022-5-13 09:57 | 只看該作者
zzsxjzscx 發(fā)表于 2022-5-13 09:40
感謝高手大哥的回復(fù),但是問題是這樣的,我的小燈上電就亮,我想讓他關(guān)掉,所以這樣寫。推挽模式可能能幫 ...

R3、4改成1k的電阻,2k肯定不行。主程序:
void  main()
{
port_mode();
LED=1;
beep=1;
while(1)
{
...
}
}
回復(fù)

使用道具 舉報

11#
ID:1026082 發(fā)表于 2022-5-13 10:02 來自觸屏版 | 只看該作者
jhczy 發(fā)表于 2022-5-13 09:57
R3、4改成1k的電阻,2k肯定不行。主程序:
void  main()
{

十分感謝解答。小燈的電阻應(yīng)該不是問題,之前也是用的一樣的電路,只不過用的是C52RC控制,能實現(xiàn)功能。我把while加上試試吧。
回復(fù)

使用道具 舉報

12#
ID:401564 發(fā)表于 2022-5-13 10:44 | 只看該作者
如果你有電腦又有學(xué)習(xí)板或者其它的硬件電路板,別用protues,那玩意沒有用,只會浪費(fèi)時間
1,D2是由P1.1控制的,低電平亮
2,P1.1輸出要設(shè)定成強(qiáng)推挽模式,而不是傳統(tǒng)的8051模式
3,如果還亮的話,啟用內(nèi)置的上拉電阻看一下
正常來說,一般是不用這種驅(qū)動電路的,不知道你VCC是不是單片機(jī)的電源,如果VCC是5V的,單片機(jī)是3.3V的,你是控制不了的,而且還有可能損壞單片機(jī)
回復(fù)

使用道具 舉報

13#
ID:136485 發(fā)表于 2022-5-13 11:13 | 只看該作者
zzsxjzscx 發(fā)表于 2022-5-13 09:40
感謝高手大哥的回復(fù),但是問題是這樣的,我的小燈上電就亮,我想讓他關(guān)掉,所以這樣寫。推挽模式可能能幫 ...

用PNP的三極管比較麻煩,如果供電電壓不一樣,是關(guān)不了的(就比如說你的單片機(jī)是5V,但是三極的VCC是12V),除非前面在用一個NPN的三極管控制PNP,當(dāng)然單片機(jī)供電電壓和VCC一樣就可以
回復(fù)

使用道具 舉報

14#
ID:1026082 發(fā)表于 2022-5-13 12:00 來自觸屏版 | 只看該作者
Y_G_G 發(fā)表于 2022-5-13 10:44
如果你有電腦又有學(xué)習(xí)板或者其它的硬件電路板,別用protues,那玩意沒有用,只會浪費(fèi)時間
1,D2是由P1.1控制的 ...

大哥真厲害。vcc供電是和單片機(jī)一樣的,都是3.3V。我覺得proteus好主要是因為他可以按照電路圖構(gòu)建電路,仿真比較有說服力。這個硬件不是我設(shè)計的,之前準(zhǔn)備用89C52RC的芯片,臨時換到這個STC8G,所以沒準(zhǔn)備開發(fā)版。如果有仿真的話可以更好的分辨是硬件還是軟件的問題,方便排查。再次感謝
回復(fù)

使用道具 舉報

15#
ID:1026082 發(fā)表于 2022-5-13 12:00 來自觸屏版 | 只看該作者
kxcuser 發(fā)表于 2022-5-13 11:13
用PNP的三極管比較麻煩,如果供電電壓不一樣,是關(guān)不了的(就比如說你的單片機(jī)是5V,但是三極的VCC是12V ...

供電電壓相同,費(fèi)心了。
回復(fù)

使用道具 舉報

16#
ID:138119 發(fā)表于 2022-5-14 15:39 | 只看該作者
電路最好是:     +VCC------>負(fù)載(LED)------>三極管(NPN或PNP)或MOS管------> GND,具體原因這里就不說了,樓主要好好補(bǔ)補(bǔ)基礎(chǔ)知識!
回復(fù)

使用道具 舉報

17#
ID:1026496 發(fā)表于 2022-5-14 16:27 | 只看該作者
建議你使用pmos管,如果使用三極管的電路有問題,比如ao3401  
回復(fù)

使用道具 舉報

18#
ID:624769 發(fā)表于 2022-5-19 11:36 來自觸屏版 | 只看該作者
你既然用stc8h了,直接ice不好么?不比protuse好玩么?
回復(fù)

使用道具 舉報

19#
ID:230742 發(fā)表于 2022-5-19 12:19 | 只看該作者
建議還是別仿真了。不是說仿真不好,只是就算仿真通過了。做實物也不一定能成功。不如一步到位自己做實物。有問題了直接查,然后就學(xué)會了。
就像KEIL 一樣,編譯通過了,不表示程序沒有問題。邏輯通過了不表示單片機(jī)能跑出想要的結(jié)果。
回復(fù)

使用道具 舉報

20#
ID:1033105 發(fā)表于 2022-6-24 15:23 | 只看該作者
新手剛學(xué)51,這個程序大部分都可以理解,就是中間的一段
void port _mode()
{
P0M0=0x00;
P0M1=0x00;
P1M0=0x00;
P2M0=0x00;
P2M1=0x00;
P3M0=0x00;
P3M1=0x00;
}
這一段不知道干嘛用的,看圖中mcu沒有P0M0、P0M1啊。而且程序中也沒有用到這些東西。剛學(xué)51,有很多東西都不懂,請各位大佬別笑話。
回復(fù)

使用道具 舉報

21#
ID:908826 發(fā)表于 2022-6-24 15:34 | 只看該作者
51老鷹 發(fā)表于 2022-6-24 15:23
新手剛學(xué)51,這個程序大部分都可以理解,就是中間的一段
void port _mode()
{

對每組IO口進(jìn)行配置,你可以搜一搜就行了
回復(fù)

使用道具 舉報

22#
ID:99525 發(fā)表于 2022-6-24 17:38 | 只看該作者
51老鷹 發(fā)表于 2022-6-24 15:23
新手剛學(xué)51,這個程序大部分都可以理解,就是中間的一段
void port _mode()
{

STC官網(wǎng)下個STC8G的手冊學(xué)學(xué)!
回復(fù)

使用道具 舉報

23#
ID:491577 發(fā)表于 2022-6-24 20:39 | 只看該作者
STC8G單片機(jī)IO口可以直接控制LED,不需要三極管。
回復(fù)

使用道具 舉報

24#
ID:1033105 發(fā)表于 2022-6-25 09:29 | 只看該作者
感謝高手,剛學(xué)單片機(jī),有很多的常識不是很理解,請見諒。
是不是可以這么理解:給定端口輸出置1,相當(dāng)于I/O端口輸出高位。
如果外部通過10K電阻拉高端口電平的話是不是就不需要在程序中申明了。另外在弱弱的問一下,P0M0和P0M1這兩個端口在stc8g1k08中是沒有的,為什么要這么申明?
回復(fù)

使用道具 舉報

25#
ID:161164 發(fā)表于 2022-6-25 16:26 | 只看該作者
51老鷹 發(fā)表于 2022-6-25 09:29
感謝高手,剛學(xué)單片機(jī),有很多的常識不是很理解,請見諒。
是不是可以這么理解:給定端口輸出置1,相當(dāng)于I ...

有啊?怎么沒有?




回復(fù)

使用道具 舉報

26#
ID:1033105 發(fā)表于 2022-6-25 17:03 | 只看該作者
lkc8210 發(fā)表于 2022-6-25 16:26
有。吭趺礇]有?

非常感謝,原來這個就是I/O口的設(shè)置,我們需要哪種情況就在程序中先設(shè)定好,雙向口、推挽輸出、高阻狀態(tài)、開漏輸出原來是這么設(shè)定的,這下子是算有點(diǎn)明白了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表