自學(xué)單片機現(xiàn)場直播,只講教訓(xùn),不談經(jīng)驗,讓你少走彎路,新手進(jìn),高手勿進(jìn)勿擾
燒錄問題:
1 電腦串口是RS232 TTL電平。
2 沒有串口時候需要USB轉(zhuǎn)串口,強烈建議網(wǎng)上購買一條,使用CH340芯片的,不貴10元以內(nèi)不加郵費。
個人的SB行為,弄拉個最小單片機系統(tǒng),個人電腦公司電腦都沒有串口,DIY個PL2303 USB轉(zhuǎn)串口,直接接單片機
RXD TXD,各種方法都用了直接燒了單片機。USB轉(zhuǎn)串口.pdf
從今天開始上傳
(單片機C語言程序設(shè)計實訓(xùn)100例)
這些例子配合仿真軟件,
軟件太大Keygen3p20(Edge).zipC51V900.part01.rarC51V900.part02.rarC51V900.part03.rarC51V900.part04.rarC51V900.part05.rarC51V900.part06.rarC51V900.part07.rarC51V900.part08.rarC51V900.part09.rarC51V900.part10.rarC51V900.part11.rarC51V900.part12.rarC51V900.part13.rarC51V900.part14.rarC51V900.part15.rar
上干貨了么,配合這些再談?wù)勀愕男牡冒?大家伙伸脖子等著呢哦
~~哈哈
#include//這個是頭文件,選KEIL自帶的89C51單片機的,此命令不用記 不能截圖,看我上傳的WORD里面有說明,KEIL里面有。
sbit LED=P2^0;//C語言對大小寫敏感,I.O口都是大寫,我就是自學(xué)剛剛開始時候,手打別人程序,大小寫不對,而欲哭無淚,好好的程序經(jīng)自己一寫都是廢柴了
void main ()//這個要注意了,一個程序只能有一個main,主程序。一山不容二虎。
{
LED=0;//這個;要主要了半角的有效,全角無效 } //這個叫什么括號了,我文盲就叫他大括號,這是羅密歐和朱麗葉成對出現(xiàn)的
分享下我學(xué)單片機的歷程:
我是一個職業(yè)高中畢業(yè)的,在小學(xué)的時候特別喜愛電子。99年到我現(xiàn)在的城市,算是打工吧。由于有點電子方面的基礎(chǔ),在一個小廠作焊接調(diào)試工作。廠里有時候需要一些特殊的功能,請了外面一些做單片機的人過來做事情,我也幫著打打下手,看著他們實現(xiàn)很牛的功能,心里特別羨慕。自己也想想學(xué)學(xué),那時候他們還都是用匯編編的程序。我買了幾本單片機方面的書,看了真像是天書。光那111條匯編指令,看的都頭疼。
那時候沒人教呀,問別人,一般很牛的人,對你的簡單的問題都是一幅不屑的神情。只能自己琢磨,那時候沒有網(wǎng)上,自己就這樣弄了很久。比如一個簡單的問題,1個字節(jié)是什么意思,也搞不懂。突然有點晚上,想起來原來1個字節(jié)是8比特。更不用說什么查表,轉(zhuǎn)移,這些搞的我特別的郁悶。
在那個廠做了4年,自己每天重復(fù)著做著一件事情也學(xué)不到什么。只有學(xué)會了畫圖,與是辭職找到一家led公司,在研發(fā)部,畫pcb板。這個部里有3個人,一個做上位機軟件,兩個是做單片機的。這下子可以學(xué)單片機了,無奈自己天資太差,還是大家都有自己的事要做。一直沒編過完整的程序,在此期間和高手們在一起學(xué)到很多知識。
漸漸的對單片機有點入門,也能看懂一些簡單的程序。這個離做項目差的遠(yuǎn)呢。后來公司效益不好,研發(fā)部解散了,我了也辭職。又應(yīng)聘到一家小公司,接手前面人留下的東西。這其中有單片機,不過第一次接觸到32位單片機。這時才把一個完整的工程,從頭看到尾。后來慢慢的也會了,這個時間很漫長。不是一個月兩個月的時間,所以學(xué)習(xí)一定要堅持 。
現(xiàn)在,講點我所理解的單片機吧。
單片機其實就是在做循環(huán)工作,就是周而復(fù)始的在跑。這就要歸功為時鐘晶振做的貢獻(xiàn),晶振就像是人的心臟。利用血液向全身輸送營養(yǎng)。
c編程序首先要初始化各部分功能,,比如,包含文件,配置腳位,時鐘頻率,定時時間,串口波特率,等等
然后才是在main的函數(shù)大循環(huán)里編你需要的功能。
#include#define uchar unsigned char #define uint unsigned int uchar code Pattern_P0[]= { 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f }; uchar code Pattern_P2[]= { 0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6 }; void DelayMS(uint x) { uchar t; while(x--) { for(t=120;t>0;t--); } } void main() { uchar i; while(1) { for(i=136;i>0;i--) { P0=Pattern_P0[i]; P2=Pattern_P2[i]; DelayMS(150); } } }
\\順序?qū)懛ǖ陌存I發(fā)音程序,很簡單,很適合我這樣的菜鳥,比我弄的簡單
#include#define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; sbit K1 = P1^4; sbit K2 = P1^5; sbit K3 = P1^6; sbit K4 = P1^7; void DelayMS(uint x) { uchar t; while(x--) { for(t=0;t<120;t++); } } void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP = ~BEEP; DelayMS(t); } BEEP = 0; } void main() { P1 = 0xff; while(1) { if(K1==0) Play(1); if(K2==0) Play(2); if(K3==0) Play(3); if(K4==0) Play(4); } }