A. 單片機的疑惑
我覺得還是焊一個吧,因為買一個有時候真的並不合心意,自已想要的它沒有,自已不想要的它裝了上去,再說尺寸也不合意.總有一種老大全的感覺.
如果已經有點經驗,你可以做點難的系統,繼續積累點實用知識,
自已焊系統還有一個設計的知識環節在裡面,購買就只有應用了.
建議1,做個無線防盜的監控系統吧,實現:定時進入監控狀態,撥電話進入監控狀態(市面上的產品都沒有這兩個功能的).2,做個電梯或簡易機械手吧.
B. 學PIC單片機需要學什麼軟體
需要:
1、MPLAB IDE,這個是所有PIC單片機的開發平台,目前最高版本是8.83,這個軟體是免費的,可以到MICROCHIP公司網站上下載;
2、PICC,這個是PIC 16系列單片機的C編譯器,建議直接學C,所以要用它,這個是收費軟體,但網上可以找到的最高版本破解版,版本是9.8,上網可以找到;
3、PROTEUS,這個是目前世界上最好的單片機的模擬軟體,因為大多數人沒有實驗條件,用這個最好,這個也是收費軟體,網上可以找到破解片,目前最高版本是7.8;
4、要買相應的書,沒有書你會學得很辛苦,建議你買北航出版社的《PIC16系列單片機C程序設計與PROTEUS模擬》,這本書介紹上面的所有東東,有很多實例,包括線路圖和程序。
C. 如何用最少的單片機埠驅動多個數碼管
最好的辦法是用串轉並的晶元如74HC164或595,只要二根線就可以驅動多個數碼管,且是靜態的,程序也方便編制,不用象動態顯示那樣不停地刷新。、
附圖是用PIC16單片機驅動6個數碼管的PROTEUS模擬的情況,實物也運行了,沒問題。理論上可以驅動無窮多個數碼管,實際上用十幾二十個沒問題。
北航《PIC16系列單片機C程序設計與PROTEUS模擬》書中有這個完整的線路圖和程序,附光碟中有所有的線路圖和程序代碼。
D. 想學習51單片機 有什麼好得 比較基礎得書介紹
你要是學51單片機,那麼樓上說的(1)北航出版的單片機原理確實是本好書,我還要推薦 求實科技出版的好書 (2)單片機應用系統開發實例導航 還有人民郵電出版社的(3)例說8051 (1) 是基本原理 (2)(3)是一些程序應用例子(包括電路圖) 還有我建議你學pic系列的單片機,因為這種單片機,設計簡潔,我個人認為它的內部構造就是像你說的「簡明扼要」 你可以在網上找一下關於它的一些介紹,或者問我也行 如果你學pic系列的單片機 那我就推薦幾本好書 第一階段: (1)北航出版社的 pic單片機入門與實戰(初學的時候看,一直看到第5章,等到該看第6章的時候換書,我覺得這本書前5章經典的不能再經典,從第6章開始垃圾的不能在垃圾) (2)求實科技的 PIC單片機典型模塊設計實例導航[有一些程序應用例子(包括電路圖)] 第二階段(第一階段看完後再買下面這些): (3)PIC單片機實用教程--提高篇(經典啊,個人認為) (4)PIC單片機實用教程--基礎篇 (雖是基礎篇,但不要忽視,有定時器等章節) 第三階段: 不用買書了,接項目了,自己掙錢了 關於語言:是辨證的, 匯編:最接近硬體,用它編程序,可以在編程的時候,更加深對單片機內部結構的了解,而且匯編的實時性好,但是可讀性差,程序長,對編程者的匯編語言的水平有較高的要求 C語言:編程較容易,程序短,可讀性強,看實時性沒有匯編好,控制硬體也不想匯編那麼接近硬體 本人認為:二者皆有好的一方面,我建議先用匯編,匯編掌握了很好的時候再用c語言,最終達到用c嵌套匯編的編程風格。 對於那些一開始就用C的,本人絕對不支持,個人認為那是不可取的一條死路。
E. PIC單片機 4M晶振 產生1秒延遲的原理
可以用任何定時器陸檔,如TMR0,設置它基本延時時間為50ms,延時20次就是1s了!
因為你用的是4M晶振,指令周期為1us,TMR0的延時50ms延時常數計算如下:
先計算TMR0的分頻系數K:
50000=256*1*K,K=195.3,取K=256(只能取略大的計算值,不能四捨五入!),這是的1是指令周期,下周
再計算TMR0的延時常數X:
5000=(256-X)*1*K,K用256代入,得X=61.
程序設計時用一個累計TMR0中斷次數的變數T0_N,每早蘆亂中斷一次嘩激T0_N+1,並判斷其值>=20時就是1秒了。
注意,TMR0中斷時要清TMR0IF,並要重新對TMR0賦初值61。
F. pic單片機串列通信收發字元串的問題!高分求助!
我把你的程序做了些修改,並在PROTEUS中模擬,是正確的,圖中的上面是模擬的發送,我輸入了「HowAreYou?"並按回車鍵,單片機收到回車後,先輸出"OK!!!"及回車,再把收到的數回送出去。
這里加了宏定義。有些內容請見北航的《PIC16系列單片機C程序設計與PROTEUS模擬》一書。
#include<pic.h>
__CONFIG(0x3F31);
#defineucharunsignedchar
#defineuintunsignedint
//宏定義,發送一個數,並等等發送完畢
#defineSEND_ONE(A)
TXREG=A;
while(!TRMT)
bitFLAG=0; //標志位,如收到回車字元,此位為1
ucharN=0; //接收數據累計
ucharDD[20]; //接收數據存放在此
constucharDD1[7]="OK!!!"; //雖然只有6個字元,但要用7個單元,最後一個為結束字元,const表示存放在程序存儲器中的常數
voidinit(void);
voidinterruptISR(void);
voidmain()
{ uchari;
init();
while(1)
{ if(FLAG)
{ for(i=0;i<6;i++) //先發送「OK!!!」
{ SEND_ONE(DD1[i]);
}
SEND_ONE(0x0D); //發送一個回車
for(i=0;i<N;i++)
{ SEND_ONE(DD[i]);
}
FLAG=N=0; //重新清0,為下次接收做准備
}
};
}
voidinit()
{
TRISC=0xff; //這里要把高二位設置這輸入,但在以下的串口使能後,系統自動將RC6變成通信輸出
TXSTA=0x24;
RCSTA=0x90;
SPBRG=25; //9600波特率
GIE=1;
PEIE=1;
RCIE=1; //打開中斷
}
voidinterruptISR(void)
{
if(RCIE&&RCIF) //不必清RCIF,因為接收數據後RCIF自動清0
{ DD[N]=RCREG;
if(DD[N]==0x0D)
FLAG=1; //如果收到回車,標志位置1
N++;
if(N>=20)
N=0; //如果接收數據數超出,從0存放
}
}
G. 求用PIC單片機語言編寫一段crc8校驗碼的程序 (求大神指點,要是有注釋就更好了)
可以參考北航的《PIC16系列單片機C程序設計與PROTEUS模擬》一書,裡面有8位的和16位的CRC程序,是用PICC編的,8位的好象在第6章的一線式溫度感測器那一節。