A. 單片機怎麼給步進電機驅動器發脈沖啊發的是什麼脈沖啊驅動器有一個WC是接收脈沖的!
是兩位的,意思是二個功能腳,一個是方位,別一個是發脈沖串的一個脈沖等於電機轉一個步進角。
B. STC單片機p31口如何串口通信IO復用
首先要用串口,P3.0和P3.1就不能復用,否則在對I/O口操作時,就會影響到串口的通信,如你的程序中最後一行是:P3=0;就是因為P3.0和P3.1都為0了,即不能收,也不能發了,當然就不能通信了,那串口助手肯定是收不到內容了。但不知為什麼要有這一行,是因為P3.0和P3.1還控制其它什麼電路了嗎?有的話,一定要改一下,改用其它I/O來控制。
其次,不知你用的是什麼型號的STC單片機,STC單片機有些型號是帶雙串口的,這樣,還可以用第2個串口了,就不會影響你用P3.0和P3.1了,但最好還是把串口放在P3.0和P3.1上。因STC單片機下載程序就是用P3.0和P3.1這兩個引腳的,所以,最好不要復用。
按你補充的說法只能復用的話,就要考慮以下問題:
P3.0和P3.1復用做什麼了?串口是不是需要收/發,還是只用來發送,如果只是發送的話,那就不用P3.0了,可以用做I/O口了。
另一個問題:那個發送的P3.1接什麼控制端電路了,當串口發送數據時,P3.1是變化的,會不會影響到控制端所控制的電路的工作?如果會的,就不能復用了,如果不會,可以復用。但必須保證,在串口發送數據時,先將P3.1置成高電平,即P3.1=1,才能保證串口正常發送數據。而不要寫P3=0,這肯定是不行的。
C. 單片機求助C語言編程 實現99秒倒計時到0秒停止! 求好心人哪!
#include<reg51.h> // 包含51單片機寄存器定義的頭文件
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//數碼管顯示0~9的段碼表
unsigned char int_time; //記錄中斷次數
unsigned char second; //儲存秒
/***********************************************************************
函數功能:快速動態掃描延時,延時約0.6毫秒
************************************************************************/
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++) ;
}
/***********************************************************************
函數功能:顯示秒
入口參數:k
出口參數:無
************************************************************************/
void DisplaySecond(unsigned char k)
{
P2=Tab[k/10]; //顯示十位
P3=0x01; //P3.0引腳輸出高電平, 點亮 十位
delay();
P3=0xfc; //關閉所有數碼管
P2=Tab[k%10]; //顯示個位
P3=0x02; //P3.1引腳輸出高電平, 點亮 個位
delay();
P3=0xfc; //關閉所有數碼管
}
void main(void) //主函數
{
TMOD=0x01; //使用定時器T0
TH0=(65536-5000)/256; //將定時器計時時間設定為50毫秒
TL0=(65536-5000)%256;
EA=1; //開啟總中斷
ET0=1; //定時器T0中斷允許
TR0=1; //啟動定時器T0開始運行
int_time=0; //中斷次數初始化
second=99; //秒初始化
while(1)
{
DisplaySecond(second); //調用秒的顯示子程序
while(second==0)
DisplaySecond(second);
}
}
//********************************************************
//函數功能:定時器T0的中斷服務程序
//*******************************************************
void interserve(void ) interrupt 1 using 1
{
TR0=0; //關閉定時器T0
int_time ++; //每來一次中斷,中斷次數int_time自加1
if(int_time==20) //夠20次中斷,即1秒鍾進行一次檢測結果采樣
{
int_time=0; //中斷次數清0
second--; //秒減1
}
TH0=(65536-5000)/256; //重新給計數器T0賦初值
TL0=(65536-5000)%256;
TR0=1; //啟動定時器T0
if(second==0) //如果 倒計時 0 停止定時器T0
TR0=0;
}
D. 用C語言編程 怎麼用單片機使2位數碼管動態顯示00---99 P1口接1個二位數碼管 P30和P31控制位選!急用
我覺得你應該自己寫,因為很簡單,不懂腦筋是學不好的。雖然我的話不中聽,但希望你能接受。
E. 單片機引腳電平變化檢測程序
檢測P3.1引腳 只要這個引腳電平有變化P2.1就取反。
----
ORG 0000H
DJNZ R7, $
MOV A, P3
MOV 20H, A
XRL A, 21H
MOV 22H, A
MOV 21H, 20H
JNB 22H.1, 0000H
CPL P2.1
SJMP 0000H
END
可以實現題目要求。
F. 掃碼槍對單片機的通信是通過MAX232後與單片機的P30,P31連接,無線傳輸數據也是連接的單片機的P30,P31
串口同一時間只能與一個設備通訊。
G. 單片機的引腳在接圖的時候是怎麼選擇的
單片機的IO口在使用上是很靈活的,除了少數有特定的功能,多數引腳都是由使用者設定的,
也就是說你讓它干什麼它就干什,
這里所說的:讓它干什麼它就干什,就是編程。
程序讓它輸出它就輸出,讓它輸入它就是輸入,當然還要有正確對應的,硬體電路。
你的圖中SCL SDA 是選用的P3.1 P3.2,有的人就用別的IO口,都是可以的。
H. 單片機,秒錶問題
1、最好不要用軟體模擬。
2、for(m=0;m<100;m++);這是你的延時么時間太短,遠小於你所需要的1ms。
3、三極體最好用pnp的三極體,如果你看看射極跟隨電路,你就知道載入在LED上的電壓可能有問題。
4、p31也是高電平?這個不符合常理,用硬體吧,不要用軟體模擬。
I. 現代單片機怎麼連接電腦在線燒錄
就舉最簡單的51單片機來說吧,假如是51開發版的話,都是自帶下載電路的,接上電腦可以用燒錄軟體燒錄。如果是最小系統的話,需要使用一個USB轉TTL,然後和串口線連接,p30和p31,連接方法為R接R,T接T,再使用燒錄軟體即可。