熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-4-27 11:25
正文摘要:#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit led =P1; int i,a; char b[]={0xfe,0xfd,0xfb,0xfc,0xf7,0xef,0xdf,0xbf,0x7f}; void bule_Init() { &nbs ... |
|
串口接收程序RI的處理部分最好在串口中斷服務(wù)程序里解決,TI在其它地方發(fā)送還可以,接收那樣不好,說(shuō)不定就是處理不到 |
qwettyuio 發(fā)表于 2021-4-28 16:45 這樣你理解一下,你串口發(fā)送2,是單次的,單片機(jī)只接收到一次a=2,所以只會(huì)執(zhí)行一次你的流水燈for循環(huán)。你看能不能想到解決辦法,如果不能再回復(fù)一下,可以告訴你怎么做。 |
haokey 發(fā)表于 2021-4-28 10:35 修改了,流水燈直接停在led8亮,不動(dòng)了 |
sync763 發(fā)表于 2021-4-28 09:16 改了,但是流水燈不循環(huán)了,直接停在led8不動(dòng)了 |
sync763 發(fā)表于 2021-4-28 09:16 同意,本來(lái)已經(jīng)有個(gè)while(1)了,這個(gè)else if(a == 2)里面的while(1)就多余了 |
else if(a==2) { while(1) { for(i=0;i<8;i++) P1=b; } } 將紅色的部分刪除試試。 |
sync763 發(fā)表于 2021-4-27 16:26 可以是可以,但是串口輸入0或者1是無(wú)效的。輸入0串口發(fā)送應(yīng)該是全亮,現(xiàn)在是死循環(huán),沒(méi)法中斷 |
延時(shí)函數(shù)發(fā)來(lái),可以看看 |
while(1) { for(i=0;i<8;i++) { P1=b[i]; delay(); } } 你自己完善一下delay()函數(shù)應(yīng)該可以。 |
sync763 發(fā)表于 2021-4-27 16:11 大佬能幫忙修改一下嗎 |
sync763 發(fā)表于 2021-4-27 16:11 加入延時(shí)報(bào)錯(cuò) |
while(1) { for(i=0;i<8;i++) P1=b[i]; } 速度太快,看不出來(lái)效果,加一定的延時(shí)就能看出來(lái)了。 |
不要用HEX模式,選用文本模式發(fā)送試試 |
Powered by 單片機(jī)教程網(wǎng)