導航:首頁 > 操作系統 > 宋雪松的51單片機

宋雪松的51單片機

發布時間:2022-05-13 00:18:29

㈠ 買了一塊KST金沙灘宋雪松老師的開發板,群里說了一下不行,就遭到了老師的嘲諷,感覺一天都難受,咋辦啊

至於你說的他的板子不行,我不知道是指的哪些方面,我現在手裡也有一套開發板,感覺沒有問題啊。可能你們雙方在溝通的時候言語上有些小問題吧,畢竟做技術的都不太會說話。有時候詞不達意。
這么說吧,宋老師的開發板硬體是很少的,在很多人看來這塊板子不值這個價錢(板子+書+視頻要200多塊,而其他的開發板可能60塊錢就買下了),其實宋老師主要賣的是教學服務,如果跟著他的教程走,你會學到很多的東西,並且他的代碼在規范化程度上也是非常用心的,但是但是但是------宋老師講的東西非常的深入,所以很多同學會感覺他的課程非常的難,這恰恰印證了宋老師的話——簡單的東西不值錢!

因為他講的深入,所以學起來會很辛苦,不過,我可以向你保證的是:認真跟著這個教程走,最後你是能夠獨立設計出合格的51單片機電路的。切記宋老師的那句話:「拿起烙鐵焊電路。」不要只拘泥於紙面上的理論,當你認真焊接電路的時候,你才會發現,宋老師的教程是有多麼的完善。
聲明一下:我不是來舔宋老師的,也不是給宋老師當托推銷板子的,如果你認為我是托的話,完全可以去咸魚買二手的開發板來用。
有問題歡迎討論
一個從事軟體開發要轉硬體的苦逼程序員

㈡ 單片機郭天祥的書好還是小宋老師的好

其實兩個人的都看過 ,對比一下 小宋老師的講解好太多,小宋老師講的內容很多,很細致,代碼是按照工程項目來寫的,代碼比較精簡(剛開始看代碼 有點難懂 需要反復看),而郭老師個人覺得上課就有點水了,效率太低 ,講的也不深入。看了郭老師的視頻 10天你覺得你入門了其實一個月都不見得。看小宋老師的視頻,學了一個月,不認真理解每一個模塊,你是學不走的。總之同樣 學一個月 在小宋老師哪裡學到的太多。本人親測 。
PS:十天學會單片機是不太可能的 ,別說學習能力不行。每天你花費多少時間在這上面?敲代碼花時間,出問題調程序才是最耗時間的,10天只能說你對單片機有個基本的理解,能實現100行代碼以內的不算項目的項目,總之個人覺得學習技術一個反復和實踐的過程才能加深記憶和理解

㈢ 手把手教你學會單片機,宋雪松老師的簡易計算器,怎麼用普中科技單片機實現怎麼接線

/* S16 S12 S8 S4分別是123+

S15 S11 S7 S3分別是456-

S14 S10 S6 S2分別是789*

S13 S9 S5 S1分別是0 CLR = /

*/

/* 實現兩個數的運算,每個數的位數至少可以八位 */

#include<reg52.h>

typedef unsigned char uint8;

typedef unsigned int uint16;

sbit rw=P2^5;

sbit rs=P2^6;

sbit e=P2^7;

sbit led=P3^7;

sbit beep=P2^0;

uint8 key,num;

uint8 fuhao;//定義具體的那個符號,是加減還是乘除。

uint8 flag; //定義有沒有按下符號鍵,這個是統稱

long a,b,c,d; //定義運算數據的第一個和第二個及等於的數變數

uint8 k; //定義小數點後面顯示的位數

uint8 biao;

uint8 dat1[]={1,2,3,0x2b-0x30, 4,5,6,0x2d-0x30, 7,8,9,0x2a-0x30, 0,0x01-0x30,0x3d-0x30,0x2b-0x30 };//保存顯示的數據

void delay(uint16 i)

{

while(i--);

}

void lcdwrc(uint8 c)

{

delay(1000);

rs=0;

rw=0;

e=0;

P0=c;

e=1;

delay(1000);

e=0;

}

void lcdwrd(uint8 dat)

{

delay(1000);

rs=1;

rw=0;

e=0;

P0=dat;

e=1;

delay(1000);

e=0;

rs=0;

}

void lcdinit()

{

delay(1500);

lcdwrc(0x38);

delay(500);

lcdwrc(0x38);

delay(500);

lcdwrc(0x38);

delay(500);

lcdwrc(0x38);

lcdwrc(0x08);

lcdwrc(0x01);

lcdwrc(0x06);

lcdwrc(0x0c);

key=0;

num=0;

flag=0;

fuhao=0;

a=0;

b=0;

c=0;

d=0;

biao=0;

led=0;

}

void keyscan()

{

P1=0xfe; //令第一行為0,然後判斷是哪一列按下

if(P1!=0xfe)

{

delay(1000);

if(P1!=0xfe)

{

key=P1&0xf0;

switch(key)

{

case 0xe0: num=0;break; //1

case 0xd0: num=1;break; //2

case 0xb0: num=2;break; //3

case 0x70: num=3;break; //加

}

}

while(P1!=0xfe);

if(num==0||num==1||num==2) //確認第一行的數1,2,3

{

if(flag==0) //沒有按下符號鍵

{

//led=1;

a=a*10+dat1[num];

}

else

{

//led=1;

b=b*10+dat1[num];

}

}

if(num==3)

{

//led=0;

flag=1;

fuhao=1;//加號+

}

lcdwrd(0x30+dat1[num]);

}

P1=0xfd; //令第二行為0,判斷是哪一列按下

if(P1!=0xfd)

{

delay(1000);

if(P1!=0xfd)

{

key=P1&0xf0;

switch(key)

{

case 0xe0: num=4;break; //4

case 0xd0: num=5;break; //5

case 0xb0: num=6;break; //6

case 0x70: num=7;break; //減—

}

}

while(P1!=0xfd);

if(num==4||num==5||num==6)

{

if(flag==0) //沒有按下符號鍵

{

//led=1;

a=a*10+dat1[num];

}

else

{

//led=1;

b=b*10+dat1[num];

}

}

else

{

flag=1;

fuhao=2;//帶表減號

}

lcdwrd(0x30+dat1[num]);

}

P1=0xfb; //令第三行為0,判斷哪一列按下

if(P1!=0xfb)

{

delay(1000);

if(P1!=0xfb)

{

key=P1&0xf0;

switch(key)

{

case 0xe0: num=8;break; //7

case 0xd0: num=9;break; //8

case 0xb0: num=10;break; //9

case 0x70: num=11;break; //乘*

}

}

while(P1!=0xfb);

if(num==8||num==9||num==10)

{

if(flag==0) //沒有按下符號鍵

{

//led=1;

a=a*10+dat1[num];

}

else

{

//led=1;

b=b*10+dat1[num];

}

}

else

{

flag=1;

fuhao=3;//帶表乘號*

}

lcdwrd(0x30+dat1[num]);

}

P1=0xf7; //令第四行為0,判斷哪一列按下

if(P1!=0xf7)

{

delay(1000);

if(P1!=0xf7)

{

key=P1&0xf0;

switch(key)

{

case 0xe0: num=12;break; //0

case 0xd0: num=13;break; //清除rst

case 0xb0: num=14;break; //等號=

case 0x70: num=15;break; //除/

}

}

while(P1!=0xf7);

switch(num)

{

case 12:

if(flag==0) //沒有按下符號鍵

{

//led=1;

a=a*10+dat1[num];

lcdwrd(0x30);

}

else

{

//led=1;

b=b*10+dat1[num];

lcdwrd(0x30);

}

break;

case 13:

lcdwrc(0x01); //清屏指令

a=0;

b=0;

flag=0;

fuhao=0;

break;

case 15:

flag=1;

fuhao=4;

lcdwrd(0x2f);//除號/

break;

case 14:

if(fuhao==1)//加

{

lcdwrc(0x4f+0x80);

lcdwrc(0x04);//設置游標左移,屏幕不移動

c=a+b;

while(c!=0) //一位一位顯示

{

lcdwrd(0x30+c%10);//顯示結果的最後一位在0x4f的位置

c=c/10;//取前面的結果數據

}

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}

if(fuhao==2) //減

{

lcdwrc(0x4f+0x80);

lcdwrc(0x04);//設置游標左移,屏幕不移動

if(a>b)

c=a-b;

else

c=b-a;

while(c!=0) //一位一位顯示

{

lcdwrd(0x30+c%10);//顯示結果的最後一位在0x4f的位置

c=c/10;//取前面的結果數據

}

if(a<b) lcdwrd(0x2d); //顯示-號

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}

if(fuhao==3)//乘法

{

lcdwrc(0x4f+0x80);

lcdwrc(0x04);//設置游標左移,屏幕不移動

c=a*b;

while(c!=0) //一位一位顯示

{

lcdwrd(0x30+c%10);//顯示結果的最後一位在0x4f的位置

c=c/10;//取前面的結果數據

}

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}

if(fuhao==3)//乘法

{

lcdwrc(0x4f+0x80);

lcdwrc(0x04);//設置游標左移,屏幕不移動

c=a*b;

while(c!=0) //一位一位顯示

{

lcdwrd(0x30+c%10);//顯示結果的最後一位在0x4f的位置

c=c/10;//取前面的結果數據

}

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}

if(fuhao==4)

{

k=0;

lcdwrc(0x4f+0x80);

lcdwrc(0x04);//設置游標左移,屏幕不移動

c=(long)(((float)a/b)*1000);//強制轉換為long。

while(c!=0) //一位一位顯示

{

k++;

lcdwrd(0x30+c%10);//顯示結果的最後一位在0x4f的位置

c=c/10;//取前面的結果數據

if(k==3)

{

lcdwrd(0x2e);

k=0;

}

}

if(a/b<0) //如果a比b小的話那麼除的結果最高位是0

{

lcdwrd(0x30);

}

lcdwrd(0x3d); //顯示等號

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}

break;

}

}

}

void main()

{

lcdinit();

while(1)

{

keyscan();

}

}

㈣ 宋雪松單片機視頻怎麼樣啊

視頻動不動計時幾百兆,幾個G的量,誰也不會蛋疼的發給你,網路一下,很多的。線上看的最多,可供的也有。

㈤ 什麼是51單片機

單片機是對所有兼容Intel8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flashrom技術的發展,8031單片機取得了長足的進展。很多公司都有51系列的兼容機型推出,很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,需要注意的是52系列的單片機一般不具備自編程能力。成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。好的單片機可以去朱有鵬的某寶店進行購買,品牌的,不會有差錯。

㈥ 沒有任何電子電路基礎想學嵌入式單片機和畫PCB要看什麼書

我有點奇怪耶,你看不懂電路圖是怎麼做出小車的(小車在我看來對初學者算難的了吧,我就還沒做出來過一個完整的)。。。應該也是知道點吧,只是不是很懂。
我提一些我的看法吧,有幫助的話就看,因為我也在學習中,很多東西沒有實踐過。
我認為學習單片機硬體方向,你要知道最基礎的也是最重要的電路原理和數模電,這個你可以去看清華大學的視頻教程在B站有,也可以用清華大學的配套書籍。還有就是了解計算機的基礎,微機原理,這個我覺得可以在後面看。
然後軟體方向,我是主要學習的stm32的編程,是c語言編程,你學的是Arino,所以我不是很清楚,我當時先學的51,現在在學習32,51當時看了一本宋雪松老師的手把手教你學51單片機,覺得還可以,32是看的視頻,看了原子和野火出的關於他們板子配套的書,和一些文檔,數據手冊,配合著學習的。
PCB板,我其實不建議買書,可能是我沒遇見什麼好書吧,不是說書不好,而是我見過的書一般都寫得很詳細,就像是在介紹一個個功能樣的,我覺得你可以看看凡億教育的視頻,b站上也有,我覺得講得很好,他們也有出書,但是我沒看過。畫電路圖就要學會看晶元的數據手冊了。手冊會有怎麼用這塊晶元的電路圖。
我不知道你的基礎到底如何,只是做一些我的建議,因為我也在學習中,很多東西也沒搞太明白,只是建議。
上面這些都是基礎吧,我覺得真的掌握這些都能做點小東西了,後面你了解得更多了,可以再去找資料學習。不知道有沒幫助(我寫的最長的一個回答了。。。。)。

㈦ 51單片機的工作原理

單片機由運算器、控制器、存儲器、輸入輸出設備構成。
單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統所決定的,一條指令對應著一種基本操作;單片機所能執行的全部指令,就是該單片機的指令系統,不同種類的單片機,其指令系統亦不同。為使單片機能自動完成某一特定任務,必須把要解決的問題編成一系列指令(這些指令必須是選定單片機能識別和執行的指令),這一系列指令的集合就成為程序,程序需要預先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出並執行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然後再被執行。程序通常是順序執行的,所以程序中的指令也是一條條順序存放的,單片機在執行程序時要能把這些指令一條條取出並加以執行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數器PC(包含在CPU中),在開始執行程序時,給PC賦以程序中第一條指令所在的地址,然後取得每一條要執行的命令,PC在中的內容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執行。

㈧ 宋雪松單片機開發板怎麼樣要開單片機課程了。

這家教程還湊合,但是沒有技術指導,主要的是客服很氣人,我買了8套,讓他們幫忙寫一個小程序,剛開始的時候答應的好好的,後來買了東西以後就不說不寫了,還把我踢出了答疑群。2000元,少5塊錢都不願意,這個商家垃圾。

㈨ 宋雪松和郭天祥的單片機教學視頻哪個更適合初學者

個人覺得郭天祥的不錯,郭天祥有個10天學會單片機。21ic電子技術網站的公開課上有好幾個版本,。。你可以看看。http://open.21ic.com/Video/index/id/42

㈩ 宋雪松51單片機教學視頻怎麼樣

這樣給你說吧,天下文章一大抄,但宋老師的書籍我是從頭看到尾的,非常接地氣,一看就是有真貨的人寫出來的,不像那些個教授導師沽名釣譽,讓學生去拼湊篇章,然後打上自己的名字。

閱讀全文

與宋雪松的51單片機相關的資料

熱點內容
免費pdf工具 瀏覽:380
pdf加密一機一碼 瀏覽:600
怎麼把百度雲資源壓縮 瀏覽:456
不會數學英語如何編程 瀏覽:88
如何能知道網站伺服器地址 瀏覽:648
程序員月薪5萬難嗎 瀏覽:138
如何評價程序員 瀏覽:803
雲虛機和伺服器的區別 瀏覽:403
廣西柳州壓縮機廠 瀏覽:639
arm開發編譯器 瀏覽:833
51單片機的核心 瀏覽:746
看電視直播是哪個app 瀏覽:958
將c源程序編譯成目標文件 瀏覽:787
再要你命3000pdf 瀏覽:558
ai軟體解壓軟體怎麼解壓 瀏覽:520
文件夾怎樣設置序列號 瀏覽:963
javascriptgzip壓縮 瀏覽:248
易語言怎麼取出文件夾 瀏覽:819
蘋果xs手機加密app哪裡設置 瀏覽:605
超聲霧化器與壓縮霧化器 瀏覽:643