㈠ STC89C52單片機串列通信異常
你的串口調試助手發送的1,2,3是ASCII碼,而你的程序里判斷是二進制數(表面上是十進制,但內部要變成二進制數),所以,二者不能比較的。
方法一,發送時直接發送二進制,在發送設置下面選中Hex,而你現在選的是ASCII
方法二,發送ASCII碼時,程序中判斷時也要用ASCII碼來判,即要加''
例如:
if(a=='1') //注意加單引號
flag1=1;// flag1無法改變,始終為0
if(a=='2') //注意加單引號
flag1=2;
if(a=='3') //注意加單引號
flag1=3;
㈡ 單片機程序運行後數碼管顯示異常
main()
{
ucharnum=0;
key_add=1;
key_del=1;
while(1){
HuanCun[0]=DuanMa[num%10];//查表
Display();
if(!key_add){//檢測按鍵是否按下
Display();
if(!key_add){//再次檢測按鍵是否按下
while(!key_add);//檢測按鍵是否松開
if(num<9)num++;
}
}
if(!key_del){
Display();
if(!key_del){
while(!key_del);
if(num>0)num--;
}
}
}
}
㈢ 單片機連不上電腦怎麼辦
有的質量差的,識別有一定問題,這次能下載,下次有不能下載了。淘一個好的USB-ISP或者自己動手做一個,網路都有教程,用ATMEG8做
㈣ 單片機虛擬平台V2.0遇到致命錯誤是怎麼回事
如果說遇到了致命的錯誤的話,可以通過相關設置裡面找到對你的標准這樣的話就可以通過裡面找到對那些說明,一般情況下的話各方面的代碼都是可以通過手動添加的方式進行移送。
㈤ 51單片機代碼編譯正常,Proteus模擬無錯誤提示但工作異常怎麼回事
你的埠定義都不對啊;
㈥ 單片機故障
多插拔幾次看看,有可能是接觸不好.另外看有沒有插反
㈦ 單片機之間串口通信異常
產品測:9600,e,8,2, 單片機測:9600,N,8,1
這很明顯兩者的通信模式不同,當然就不能正常通信了,產品的通信模式是兩位停止位,可單片機只能有一位停止位,那個校驗位,對於單片機倒是可以做到,可停止位不好解決。產品的通信模式能不能設置,最好設置成1位停止位。
㈧ 51單片機程序運行異常
void pause0() interrupt 0
{
TR0=0; //你在外部中斷0中把定時器0禁止了,退出外部中斷後,沒有開啟。
}
/*****************************************************************
你可以這樣寫,第一次進入外部中斷關閉定時器0,
第二次進入外部中斷就打開定時器0,然後循環,如下!
*******************************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa,num;
bit temp=0; //用於存儲進入外部中斷的標志,第一次進入後取反為1
void main()
{
while(1)
{
TMOD=0x01;
EA=1;
EX0=1;
ET0=1;
IT0=1; //這時改為下降沿觸發中斷
TR0=1;
aa=0xfe;
P1=aa;
while(1)
{
if(num==20)
{
num=0;
aa=_crol_(aa,1);
P1=aa;
}
}
}
}
void timer0() interrupt 1
{
TH0=0x3C;
TL0=0xB0;
num++;
}
void pause0() interrupt 0
{
temp = ~temp;
if(temp)TR0=0;
else TR0=1;
}
㈨ 單片機常見故障及處理
一些單片機常見問題的解決辦法
工作和生活中會遇到許許多多的問題,可能讓你一時陷於其中,但是總有解決的辦法。隨時記下遇到的問題,並做好總結,一方面有助於積累,另一方面也避免同一次錯誤再犯。
1.PIC12F629僅有一個中斷入口,要避免多個中斷引發的沖突。
2.引腳電平變化觸發中斷,和外部INT中斷,在總中斷GIE清零的時候,不會進入中斷程序執行。
3.單片機進入休眠時,要喚醒,常常使用引腳電平變化中斷或者外部INT中斷。若是前者,按鍵按下時會喚醒,按鍵抬起時也會喚醒。如果這個時候還有別的中斷,如初始化了定時器,GIE置位了,兩種中斷就會沖突
4.如果PIC單片機的I/O口作為輸入引腳使用,初始化時必須要關比較器,否則,不會響應。
5.看門狗溢出會導致單片機從休眠中醒來。
6.使用PT2262和單片機做發射端時,如果用電池,要做到最省電。正常時,單片機休眠,PTT2262不上電,可以用三極體控制PTT2262的電源端,僅在發射時上電一次。
7.315MHZ的調幅電路中,選頻電感可以使用模壓電感,也可以自己繞,當然最好使用一端環形PCB銅線。
8.315Mhz的收發天線長度計算公式:L=1/4波長;而波長=3.0*10^8/315Mhz 算出 最佳匹配天線約25cm,可以使用拉桿天線,當然在PCB上用一段長的粗線也可以。
9.接收端使用的是超再生接收電路,網路上普遍流傳的那張圖紙被人原搬下來後,可以使用,我也剽竊了一次,希望也可以。要想看懂,真不容易。
10.P溝道的MOS管能不用就不用,價格昂貴不說,導通電阻大,功耗大,單片機輸出0時很容易打開,但是輸出1時,如果MOS管源極接的是高於單片機高電平的電壓,是關不斷的,需要藉助三接管關斷。
10.把過孔設成外徑0.4mm,孔徑0.2mm理論上可以,但是有人告訴我PCB加工廠可能做不出來,但我覺的問題不大
11.調試時一定要有耐心。沉住氣,多反思,沒有誰一下子就會成功,之前都會失敗很多次。想不通時把問題說出來,旁觀者清,別人可以給你啟示。