熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
lkc8210 發(fā)表于 2022-6-25 16:26 非常感謝,原來(lái)這個(gè)就是I/O口的設(shè)置,我們需要哪種情況就在程序中先設(shè)定好,雙向口、推挽輸出、高阻狀態(tài)、開(kāi)漏輸出原來(lái)是這么設(shè)定的,這下子是算有點(diǎn)明白了。 ![]() |
51老鷹 發(fā)表于 2022-6-25 09:29 有啊?怎么沒(méi)有? ![]() ![]() |
感謝高手,剛學(xué)單片機(jī),有很多的常識(shí)不是很理解,請(qǐng)見(jiàn)諒。 是不是可以這么理解:給定端口輸出置1,相當(dāng)于I/O端口輸出高位。 如果外部通過(guò)10K電阻拉高端口電平的話是不是就不需要在程序中申明了。另外在弱弱的問(wèn)一下,P0M0和P0M1這兩個(gè)端口在stc8g1k08中是沒(méi)有的,為什么要這么申明? |
STC8G單片機(jī)IO口可以直接控制LED,不需要三極管。 |
51老鷹 發(fā)表于 2022-6-24 15:23 STC官網(wǎng)下個(gè)STC8G的手冊(cè)學(xué)學(xué)! |
51老鷹 發(fā)表于 2022-6-24 15:23 對(duì)每組IO口進(jìn)行配置,你可以搜一搜就行了 |
新手剛學(xué)51,這個(gè)程序大部分都可以理解,就是中間的一段 void port _mode() { P0M0=0x00; P0M1=0x00; P1M0=0x00; P2M0=0x00; P2M1=0x00; P3M0=0x00; P3M1=0x00; } 這一段不知道干嘛用的,看圖中mcu沒(méi)有P0M0、P0M1啊。而且程序中也沒(méi)有用到這些東西。剛學(xué)51,有很多東西都不懂,請(qǐng)各位大佬別笑話。 |
建議還是別仿真了。不是說(shuō)仿真不好,只是就算仿真通過(guò)了。做實(shí)物也不一定能成功。不如一步到位自己做實(shí)物。有問(wèn)題了直接查,然后就學(xué)會(huì)了。 就像KEIL 一樣,編譯通過(guò)了,不表示程序沒(méi)有問(wèn)題。邏輯通過(guò)了不表示單片機(jī)能跑出想要的結(jié)果。 |
你既然用stc8h了,直接ice不好么?不比protuse好玩么? |
建議你使用pmos管,如果使用三極管的電路有問(wèn)題,比如ao3401 |
電路最好是: +VCC------>負(fù)載(LED)------>三極管(NPN或PNP)或MOS管------> GND,具體原因這里就不說(shuō)了,樓主要好好補(bǔ)補(bǔ)基礎(chǔ)知識(shí)! |
kxcuser 發(fā)表于 2022-5-13 11:13 供電電壓相同,費(fèi)心了。 |
Y_G_G 發(fā)表于 2022-5-13 10:44 大哥真厲害。vcc供電是和單片機(jī)一樣的,都是3.3V。我覺(jué)得proteus好主要是因?yàn)樗梢园凑针娐穲D構(gòu)建電路,仿真比較有說(shuō)服力。這個(gè)硬件不是我設(shè)計(jì)的,之前準(zhǔn)備用89C52RC的芯片,臨時(shí)換到這個(gè)STC8G,所以沒(méi)準(zhǔn)備開(kāi)發(fā)版。如果有仿真的話可以更好的分辨是硬件還是軟件的問(wèn)題,方便排查。再次感謝 |
zzsxjzscx 發(fā)表于 2022-5-13 09:40 用PNP的三極管比較麻煩,如果供電電壓不一樣,是關(guān)不了的(就比如說(shuō)你的單片機(jī)是5V,但是三極的VCC是12V),除非前面在用一個(gè)NPN的三極管控制PNP,當(dāng)然單片機(jī)供電電壓和VCC一樣就可以 |
如果你有電腦又有學(xué)習(xí)板或者其它的硬件電路板,別用protues,那玩意沒(méi)有用,只會(huì)浪費(fèi)時(shí)間 1,D2是由P1.1控制的,低電平亮 2,P1.1輸出要設(shè)定成強(qiáng)推挽模式,而不是傳統(tǒng)的8051模式 3,如果還亮的話,啟用內(nèi)置的上拉電阻看一下 正常來(lái)說(shuō),一般是不用這種驅(qū)動(dòng)電路的,不知道你VCC是不是單片機(jī)的電源,如果VCC是5V的,單片機(jī)是3.3V的,你是控制不了的,而且還有可能損壞單片機(jī) |
jhczy 發(fā)表于 2022-5-13 09:57 十分感謝解答。小燈的電阻應(yīng)該不是問(wèn)題,之前也是用的一樣的電路,只不過(guò)用的是C52RC控制,能實(shí)現(xiàn)功能。我把while加上試試吧。 |
zzsxjzscx 發(fā)表于 2022-5-13 09:40 R3、4改成1k的電阻,2k肯定不行。主程序: void main() { port_mode(); LED=1; beep=1; while(1) { ... } } |
zzsxjzscx 發(fā)表于 2022-5-13 08:49 上電滅的話,端口要設(shè)置成雙向或推挽,且端口輸出為高電平,另電路圖中R3、4改成1k,R5取值計(jì)算一下,51估計(jì)小了 |
kxcuser 發(fā)表于 2022-5-13 09:30 感謝高手大哥的回復(fù),但是問(wèn)題是這樣的,我的小燈上電就亮,我想讓他關(guān)掉,所以這樣寫。推挽模式可能能幫助小燈滅吧 |
PNP的三極管要給低電平才行,STC的芯片要配置成推挽輸出,P1M0=0x03;P1M0=0x00;多看書,不要一點(diǎn)小問(wèn)題就來(lái)問(wèn),高手是沒(méi)空理你的 |
weijoyer 發(fā)表于 2022-5-13 08:33 很奇怪,這個(gè)LED只要上電就亮,我想讓他滅,看看程序管不管用 |
你這三極管給低電平才導(dǎo)通的,給1肯定是沒(méi)反應(yīng)的 |
程序?qū)懙闹灰幾g能通過(guò)就對(duì),但能不能實(shí)現(xiàn)你想要的功能兩說(shuō); 單片機(jī)有沒(méi)有反應(yīng)不是肉眼凡胎直接可以看全的; 能仿真通過(guò)的未必實(shí)物也一樣; 先學(xué)好基礎(chǔ)再深入。 |
zzsxjzscx 發(fā)表于 2022-5-12 22:17 void main() { port_mode(); LED=0; beep=0; while(1); } |
吐槽一下,這個(gè)芯片要是能在protues上仿真就好了,要不學(xué)習(xí)編程確實(shí)比較費(fèi)勁 |
Powered by 單片機(jī)教程網(wǎng)