『壹』 用的STM32單片機不小心把下載埠都設為了輸出埠,現在找不到下載器了,用什麼方法把它改回來
STM32有類似LPC的ISP功能嗎?如果有的話可以通過串口擦除配置恢復。
『貳』 單片機程序中把一個io口定義為a,能中間把a表示的io口換成另一個嗎
不能。
可以另定義一個函數。或者宏
如SET_PA(val)
{
P1.2=VAL&1;
p2.0=(VAL<<1) & 1;
.
.
.
}
宏的話也差不多,需要把這些操作匯整一下。
但如果你在程序里調用的多的話,個人認為還是函數方便些。
『叄』 51單片機編程 怎麼才能切換埠
寫成這樣誰來解答呀,你當人都是神呀,請詳細清楚的描述你的目的,還有你的開發環境,比如你用的哪款51單片機,具體型號,原理圖,
『肆』 單片機輸出埠
這是最基礎的東東呀,你還要多看看書才可以,在知道里一句話說不清楚。
P0,P1,P2,P3都可以控制輸出高低電平,只要在指令里指定就可以了,比如:MOVP1,#FFH.這樣P1口輸出全高電平。MOVP3,#0FH,這是P3口高4位為低電平,低4位為高電平。
40個管腳,除了這32個I/O外,電源2個,時鍾電路2個,復位一個,EA(選擇片內片外程序存儲器),PSEN,ALE(後面這兩個現在基本不用了,因為我們都常用擴展外部的三匯流排)。接線見下面的最小系統圖。
『伍』 單片機GPIO口可以隨意變換嗎
不可以。
單片機GPIO口不可以隨意變換,但是可以任意輸入輸出數據。gpio是單片機的引腳輸入輸出功能,輸出功能,就是把引腳變高和變低。輸入功能,就是檢測引腳上的電平是高電平還是低電平。
『陸』 單片機C語言中如何替換定義好的引腳
因為同一個程序不能出現兩次#define定義同一個標識符,而且它定義的是常量不是變數,所以LAUNCH可以是變數,但不能是常量。
一般對埠操作的時候,另外做判斷;你上面的switch判斷可以設置flag標記,或者變數存入埠索引號,在具體操作的時候還需判斷,或者用索引代替。
『柒』 單片機的P0.0做為輸出埠,怎麼將其擴展成8個輸出埠;p0.1做為輸入埠怎麼將其擴展成8個輸入埠。
你把一個引腳擴展成8個輸出引腳,很顯然,一個總的思想就是串列轉並行,就是把一個引腳上的信號通過電路,以串列的方式輸入,以並行的方式輸出.
同理,你把8個引腳合並成1個引腳,那就要並入串出.
前者,你可以用 74164,或者74595,建議用74595,因為有鎖存功能
後者,你可以用74165
但是,不管你用什麼晶元,單單只靠一個引腳是完不成的,最少你還得需要另一個IO引腳,為這個晶元提供時鍾,因為串轉並或者並轉串需要有時鍾支持,另外,還有的需要有鎖存引腳等等.
『捌』 請問這段C51單片機代碼輸出埠是哪個,改埠怎麼改
輸出口是TXD也就是P3.1,改成P2.6的話,就不能用串口了,你能模擬串列通訊。
#include<reg51.h>
sbit dat=P2^6;
sbit key=P1^0;
bit flag,eflag;
unsigned char outd;
void delay(int a)
{
while(a--);
}
void t0isr() interrupt 1
{
if(flag){dat=0;flag=0;}//發送起始位
else
{
dat=(bit)(outd & 0x01) //發送數據
outd=outd>>1;
cnt++;
if(cnt==8){ TR0=1;outd=1;eflag=0;} //發送結束位
}
main()
{
unsigned char *str=「Hello World!\r\n「;
TMOD=0x02;
TH0=256-96;
TL0=256-96;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
flag=1;
eflag=1;;
TR0=1;
outd=*str;
while(eflag)
str++;
}
}
}
}
『玖』 51單片機中怎麼樣將輸入輸出埠設置成輸入功能
普通單片機io設置成1就是輸入了
因為1能被拉成0
但是0不能被拉成1
(電流高的話也可以的,一般不會有那麼高的電流)