當前位置:首頁 » 編程語言 » 51單片機c語言教程全集
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

51單片機c語言教程全集

發布時間: 2022-09-14 12:51:14

① 單片機哪本書比較好,有推薦嗎

推薦號稱十天學會單片機(結果一個視頻三小時)的郭天祥的《新概念51單片機c語言教程》。但我個人比較推薦《時間觸發嵌入式系統設計模式 (豆瓣)》——Michael ***.pont 。這本書不僅僅讓你學會單片機,而且教你一些單片機編程思想(看書名字就知道)。其實說白了單片機這東西看書還不如買塊開發板自己親自看看歷程跑跑程序學得好,特別是剛入門用的51。

② 自學51單片機的書籍

51單片機的書籍,都是差不多的。
《零基礎學習單片機C》
個人覺得看看郭天祥老師《十天學習單片機》的視頻就夠了。
不懂的話再查閱相關的書籍或是資料。可以做些項目。
我個人只有c語言基礎的,學習51隻用了2周。現在已經能和研究生師兄一起做項目了。

③ 求51單片機c語言教程 pdf

單片機學習方法:

網上單片機資料很多:
http://www.mcufan.com/scom.htm
http://www.51c51.com/cyuyan.htm
http://www.laogu.com/downtop.aspx
上面去搜搜看單片機的學習資料,都有入門級的
另外書店裡面入門級的書也很多,可以買一本(北航出版的比較好)

1.入門時先了解單片機的構造啊原理啊
2.如果沒有實驗板自己搭建單片機的最小平台是比較難的
網上有個叫proteus的軟體,可以用於單片機的模擬,就是說你編的程序可以在這個軟體里運行,效果挺逼真的,可免費下載.
3.單片機的編程軟體有keil或者wave,推薦前者,可以用c語言編寫也可以匯編語言,c語言比較好學,推薦入門學習c語言,(可以買c和匯編語言都有介紹的單片機的書)
4.然後用keil編寫程序在proteus上跑起來,如果你能點亮經典的單片機流水燈實驗,那你就已經入門了

另:單片機的開發板或者最小系統可以買,電路水平高的話也可以自己搭建起來,51單片機大概6塊左右一片自己搭建最小系統很便宜滴,學單片機一定要多做實驗,不過推薦還是從模擬入門,模擬成功了後面的就有方向了.

④ 關於C語言入門

na ni 那你就好好雪白

⑤ 那位兄弟有 郭天祥(51單片機的書籍,好像有本是新概念)

ISBN:978-7-121-07893-4
書名:《新概念51單片機C語言教程——入門、提高、開發、拓展全攻略》
作者:郭天祥
定價:69元(含光碟1張)

作者背景
作者郭天祥是哈爾濱工程大學的碩士生,但是一名電子設計迷,這本書是他學習和實踐單片機設計的經驗總結,本書出版前他發布於網上的他給本科生上課的視頻教程非常受歡迎,受眾主要是高校電子信息類的學生。
請關注後面的附件:本書作者在本書文前「致讀者」的內容,相信會對大學生有非常好的人生啟迪,同時也是本書的一個非常好的賣點。
本書「圖書教材+隨書視頻光碟+可選實驗板」可以完全實現學生的自主學習。

封底文字
本書組織
全書分為5篇,入門篇、內外部資源操作篇、提高篇、實戰篇和拓展篇
特別按照初學者所遇到的問題和需求路徑安排全書內容
以應用需求為主線,搭建了單片機技術上下游的知識體系
從實際工程應用入手,通過實驗過程和現象講解單片機原理,可讀性好
內容源於大量科研和教學實踐,許多C語言代碼可直接應用到工程項目中,實用性強
配套學習光碟,並可提供學慣用實驗板,可以邊學邊練
學習資源
本書含DVD光碟一張,13講教學視頻+課件常式代碼+全書常式代碼
技術支持,天祥電子網站http://www.txmcu.com
讀者對象
高校電子信息類和機電類專業本/專科師生
高校大學生創新基地師生
51單片機C語言編程初學者
計算機、自動控制、智能儀器儀表、電力電子、機電一體化技術人員
讀者層次
入門初學者
中級開發者

本書文前內容
內 容 簡 介
本書從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機C語言編程方法以及51單片機的硬體結構和功能應用。全書共分5篇,分別為入門篇、內外部資源操作篇、提高篇、實戰篇和拓展篇。本書內容豐富,實用性強,書中大部分內容均來自科研工作及教學實踐,許多C語言代碼可以直接應用到工程項目中。本書配套光碟提供13講近30學時的教學視頻和本書實例代碼,可使讀者更快更好地掌握單片機知識和應用技能。本書作者還可提供與本書配套的單片機實驗板。
本書可作為大學本、專科單片機課程教材,適合於51單片機的初學者和使用51單片機從事項目開發的技術人員,也可供從事自動控制、智能儀器儀表、電力電子、機電一體化等專業的技術人員參考。

前 言
本書從實際工程應用入手,以實驗過程和實驗現象為主導,由淺入深、循序漸進地講述使用C語言為51單片機編程的方法、51單片機的硬體結構和各種功能應用。
本書不同於傳統的講述單片機的書籍,本書中的所有常式均以實際硬體實驗板現象為根據,由C語言程序來分析單片機工作原理,使讀者知其然,又能知其所以然,從而幫助讀者從實際應用中徹底理解和掌握單片機。另外,本書中大部分內容均來自作者科研及教學工作實踐,內容涵蓋作者多年來項目經驗總結的精華,並且貫穿一些學習方法的建議。
本書內容豐富,實用性強,許多C語言代碼可以直接應用到工程項目中。本書配套附一張光碟,提供近30小時的單片機教學視頻。同時,作者還開發了與本書配套的TX-1C單片機實驗板,可幫助讀者邊學邊練,達到學以致用的目的。讀者在學習過程中可以將視頻和書互為參考,配合學習,並用單片機實驗板進行實踐,這樣可以更快更好地掌握單片機應用知識和技能。
本書適合作為大學電子信息類和機電類各專業本、專科單片機課程教材,或高校大學生創新基地培訓教材,也適合51單片機的初學者和使用51單片機從事項目開發的技術人員,還可供從事自動控制、智能儀器儀表、電力電子、機電一體化等專業的技術人員參考。
本書內容組織
本書內容共分5篇,分別為入門篇、內外部資源操作篇、提高篇、實戰篇和拓展篇。
第1,2篇與本書配套光碟內容基本對應,內容組織上循序漸進、由淺入深;在知識介紹上,從原理到實踐,再從實驗現象進一步分析原理,對51單片機的主要功能及硬體結構做了詳細介紹。
第3篇在前兩篇的基礎上通過實驗進一步擴展講解了51單片機的其他功能應用,而且還特別將STC單片機與傳統51單片機相比擴展了的功能逐一講解。
第4篇是作者教學和實際項目中精選出的具有代表性的真實項目,其知識涉及面廣,內容豐富,是作者開發經驗的精華總結。
第5篇為拓展部分,詳細講解了使用Protell軟體繪制原理圖、PCB圖、元件庫和元件封裝的過程;詳細介紹了常用的ISD400X系列語音晶元;分別講解了直流電機、步進電機和舵機的原理及驅動方法;介紹了設計電路常用的元件;詳細介紹了如何設計直流穩壓電源及開關電源;最後介紹運放的應用知識。
本書實常式序
作者在編寫本書時,使用的操作系統是英文版Windows XP SP2,開發工具是Keil V6.12,抓圖工具是紅蜻蜓抓圖精靈V1.24,單片機下載軟體是STC-ISP V3.9,使用的硬體實驗設備是天祥電子的TX-1C單片機實驗板,本書中單片機部分的所有實常式序都在該環境中調試通過,並且在TX-1C實驗板上得以驗證。
本書學習建議
配套光碟提供的視頻與本書前兩篇基本對應,建議讀者在學習本書之前,最好有一塊與本書中相同的實驗板。學習時先看視頻,對單片機有一個初步的印象,視頻中互動部分讀者可親自做實驗,在學習過程讀者要多動腦,多動手,單片機是實實在在的硬體,只有在不斷實踐中才能領悟它的工作原理。讀者在對實驗原理理解的前提下,要嘗試獨立編寫出書中每章的例子程序,當有困惑時再查看書中代碼,反思自己的失誤在哪裡,進而積累更多的經驗。
本書配套光碟說明
本書配套光碟提供兩部分內容:本書所有實例代碼和13講視頻教程。
視頻教程內容列表
講 次 內 容 細 節
第1講 學習單片機預備知識
如何點亮一個發光管 單片機能做什麼,基本電子知識,如何用TX-1C單片機學習板學習單片機,C51知識簡介,如何申請免費晶元樣品。點亮一個發光管
第2講 流水燈設計
蜂鳴器發聲
繼電器控制 簡單延時程序、子程序調用、帶參數子程序設計、流水燈同時蜂鳴器響、如何驅動蜂鳴器,及如何驅動繼電器,集電極開路的概念及應用
第3講 數碼管顯示的原理
數碼管的靜態顯示 共陽、共陰數碼管顯示原理、定時器工作方式介紹、重點講述工作方式2、中斷概念及中斷函數寫法、外部中斷試驗、定時器中斷應用
第4講 數碼管的動態顯示原理及應用實現 動態掃描概念、定時器、中斷加深
用單片機的定時器及中斷設計一個60秒定時器
第5講 獨立鍵盤、矩陣鍵盤的檢測原理及實現 鍵盤用來做什麼、如何檢測鍵盤、消抖、鍵盤編碼、帶返回值函數寫法及應用
第6講 A/D、D/A的工作原理及實現、運放電路 模擬電壓與數字電壓的關系、為什麼要使用A/D及D/A、ADC0804的操作方法、DAC0832的操作方法
第7講 串口通信原理及操作流程 串口通信工作方式、10位數據通信、波特率概念、如何根據波特率計算定時器初值
第8講 1602液晶顯示原理及實現 最簡單液晶工作原理、如何開始對一個沒有任何概念的晶元開始單片機的操作
第8講 I2C匯流排AT24C02晶元工作原理 I2C匯流排工作原理、目前非常通用的一種通信機制
第10講 利用51單片機的定時器設計一個時鍾 綜合運用51單片機知識設計一個可以隨意調節時間、帶整點鬧鈴的時鍾(其中用到定時器、中斷、按鍵、蜂鳴器、數碼管或串口通信)
第11講 用DS12C887時鍾晶元設計一個高精度時鍾 DS12C887內部帶有鋰電池,系統掉電情況下可自行精確走10年,並帶有鬧鍾功能、年、月、日、時、分、秒等(本節由學生自己設計電路)
第12講 使用Protell 99繪制電路圖全過程 Protell 99軟體使用、元件庫、封裝庫設計、繪制原理圖、錯誤檢查、生成PCB、手動、自動布線、送去加工
第13講 Altium designer 6.5繪制電路圖全過程 最頂級電路板設計軟體Altium Designer使用、元件庫、封裝庫設計、繪制原理圖、錯誤檢查、生成PCB、手動、自動布線、送去加工

在這里對配套視頻中講解三極體和場效應管部分的一點錯誤給予更正:
作者在講課時說:三極體是壓控流型器件,場效應管是壓控壓型器件。
正確結論應該是:三極體是流控流型器件,場效應管是壓控流型器件。

作者在編寫本書的過程中,得到了哈爾濱工程大學國家電工電子教學基地和信息與通信工程學學院郭黎利教授、刁鳴教授、趙旦峰教授、付永慶教授和王松武教授、劉文智老師和李海波老師的大力支持。本書的部分章節由我的同學葉大鵬、李健編寫,另外我的同學張勇、宋寶森、鍾雙、於振南、郭天宇、李名祺也十分關心本書的編寫進度,為提高書稿的質量提出了許多寶貴的建議和修改意見。在此,對他們一並表示衷心的感謝。
由於作者的水平有限,錯誤和疏漏之處在所難免,歡迎廣大技術專家和讀者指正。作者的聯系方式是[email protected],讀者也可以登錄天祥電子網站發表意見,或聯系購買單片機實驗板,網址是http://www.txmcu.com。

郭天祥
於哈爾濱工程大學
2008年11月

⑥ 求51單片機蜂鳴器播放音樂的教程 C語言

這是我學校電子設計時做的,可以彈琴,也有幾首歌在裡面。。你應該看得懂#include <reg52.h> #define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit BEEP=P2^0; //喇叭輸出腳uchar th0_f; //在中斷中裝載的T0的值高8位
uchar tl0_f; //在中斷中裝載的T0的值低8位
uchar key;/*------------------------------------------------
函數聲明
------------------------------------------------*/
uchar keyscan(void);//鍵盤掃描程序
void delay(uint i); //延時子程序/*-------- T0的值,及輸出頻率對照表 --------------*/
uchar code freq[36*2]={
0xA9,0xEF, //0x3F,0XEE,//00220HZ ,1 //0
0x93,0xF0, //0X3D,0XEF,//00233HZ ,1#
0x73,0xF1, //0X30,0XF0,//00247HZ ,2
0x49,0xF2, //0X18,0XF1,//00262HZ ,2#
0x07,0xF3, //0XE6,0XF1,//00277HZ ,3
0xC8,0xF3, //0XB7,0XF2,//00294HZ ,4
0x73,0xF4, //0X71,0XF3,//00311HZ ,4#
0x1E,0xF5, //0X2A,0XF4,//00330HZ ,5
0xB6,0xF5, //0XCF,0XF4,//00349HZ ,5#
0x4C,0xF6, //0X72,0XF5,//00370HZ ,6
0xD7,0xF6, //0X09,0XF6,//00392HZ ,6#
0x5A,0xF7, //0X97,0XF6,//00415HZ ,7
0xD8,0xF7, //0X20,0XF7,//00440HZ 1 //12
0x4D,0xF8, //0X9F,0XF7,//00466HZ 1# //13
0xBD,0xF8, //0X18,0XF8,//00494HZ 2 //14
0x24,0xF9, //0X88,0XF8,//00523HZ 2# //15
0x87,0xF9, //0XF3,0XF8,//00554HZ 3 //16
0xE4,0xF9, //0X59,0XF9,//00587HZ 4 //17
0x3D,0xFA, //0X05,0XFA,//00622HZ 4# //18
0x90,0xFA, //0X13,0XFA,//00659HZ 5 //19
0xDE,0xFA, //0X66,0XFA,//00698HZ 5# //20
0x29,0xFB, //0XB9,0XFA,//00740HZ 6 //21
0x6F,0xFB, //0X05,0XFB,//00784HZ 6# //22
0xB1,0xFB, //0X4D,0XFB,//00831HZ 7 //23
0xEF,0xFB, //0X90,0XFB,//00880HZ `1
0x2A,0xFC, //0XD0,0XFB,//00932HZ `1#
0x62,0xFC, //0X0C,0XFC,//00988HZ `2
0x95,0xFC, //0X44,0XFC,//01046HZ `2#
0xC7,0xFC, //0X7B,0XFC,//01109HZ `3
0xF6,0xFC, //0XAD,0XFC,//01175HZ `4
0x22,0xFD, //0XDD,0XFC,//01244HZ `4#
0x4B,0xFD, //0X0A,0XFD,//01318HZ `5
0x73,0xFD, //0X35,0XFD,//01397HZ `5#
0x98,0xFD, //0X5D,0XFD,//01480HZ `6
0xBB,0xFD, //0X83,0XFD,//01568HZ `6#
0xDC,0xFD, //0XA6,0XFD,//01661HZ `7 //35
};//定時中斷0,用於產生唱歌頻率
timer0() interrupt 1
{
TL0=tl0_f;TH0=th0_f; //調入預定時值
BEEP=~BEEP; //取反音樂輸出IO
}//音樂符號串解釋函數
//入口:要解釋的音樂符號串,輸出的音調串,輸出的時長串
changedata(uchar *song,uchar *diao,uchar *jie)
{
uchar i,i1,j;
char gaodi; //高低+/-12音階
uchar banyin;//有沒有半個升音階
uchar yinchang;//音長
uchar code jie7[8]={0,12,14,16,17,19,21,23}; //C調的7個值
*diao=*song;
for(i=0,i1=0;;)
{
gaodi=0; //高低=0
banyin=0;//半音=0
yinchang=4;//音長1拍
if((*(song+i)=='|') || (*(song+i)==' ')) i++;
//拍子間隔和一個空格過濾
switch(*(song+i))
{
case ',': gaodi=-12;i++;//低音
break;
case '`': gaodi=12;i++; //高音
break;
}
if(*(song+i)==0) //遇到0結束
{
*(diao+i1)=0; //加入結束標志0
*(jie+i1)=0;
return;
}
j=*(song+i)-0x30; i++; //取出基準音
j=jie7[j]+gaodi; //加上高低音
yinc: switch(*(song+i))
{
case '#': //有半音j加一個音階
i++;j++;
goto yinc;
case '-': //有一個音節加長
yinchang+=4;
i++;
goto yinc;
case '_': //有一個音節縮短
yinchang/=2;
i++;
goto yinc;
case '.': //有一個加半拍
yinchang=yinchang+yinchang/2;
i++;
goto yinc;
}
*(diao+i1)=j; //記錄音符
*(jie+i1)=yinchang; //記錄音長
i1++;
}
}//奏樂函數
//入口:要演奏的音樂符號串
void play(uchar *songdata)
{
uchar i,c,j=0;
uint n;
uchar diaodata[48]; //音調緩沖
uchar jiedata[48]; //音長緩沖
changedata(songdata,diaodata,jiedata); //解釋音樂符號串
TR0=1;
for(i=0;diaodata[i]!=0;i++) //逐個符號演奏
{
tl0_f=freq[diaodata[i]*2]; //取出對應的定時值送給T0
th0_f=freq[diaodata[i]*2+1];
for(c=0;c<jiedata[i];c++) //按照音長延時
{ key = keyscan();
for(n=0;n<29500;n++); // 29500
if(key != 0xff)//((!K1)||(!K2)||(!K3)||(!K4))//發現按鍵,立即退出播放
{
TR0=0;
return;
}
}
TR0=0;
for(n=0;n<460;n++); //460音符間延時
TR0=1;
}
TR0=0;
}//一分錢
uchar code yifenqian[]={
"5`1|6_`1_5|3_5_2_3_|5-|"
"3_5_6_`1_|5_6_5_3_|1.3__|2-|"
"3_2_1_2_|3-|6_5_3_5_|6-|"
"5_`1_6_5_|3_5_2|5_2_3_2_|1-|"
}; //世上只有媽媽好
uchar code mamahao[]={
"6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|"
"2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"
};
//找朋友
uchar code zhaopengyou[]={ "5_6_5_6_|5_6_5|5_`1_7_6_|5 3|"
"5_5_3_4_|5_5_3|1_4_3_2_|1_2_1|"
};
//茉莉花
uchar code molihua[]={"33_5_6_`1_`1_6_|55_6_5-|33_5_6_`1_`1_6_|55_6_5-|"
"5553_5_|665-|32_3_53_2_|11_2_1|"
//"3_2_1_3_2.3_|56_`1_5-|23_5_2_3_1_,6_|,5-,61|"
//"2.3_1_2-1_,6_|,5--"
};
//新年好
uchar code xinnianhao[]={
"1_1_1 ,5|3_3_3 1|1_3_5 5|4_3_2-|"
"2_3_4-|3_2_3 1|1_3_2 ,5|,7_2_1-|"
};
//小星星
uchar code xingxing[]={
"1155|665-|4433|221-|"
"5544|332-|5544|332-|"
"1155|665-|4433|221-|"
};
//外婆的澎湖灣
uchar code waipodephw[]={
"3_5_5_5_6_`1_6_5_|`1_`1_`1_6_5-|"
"`3_`3_`3_`3_`4_`3_`2_`1_|`2_`2_`2_`3_`2-|"
"`3_`3_`3_`3_`4_`3_`2_`1_|6_`1_`1_6_5-|"
};
}

⑦ 新概念51單片機C語言教程的介紹

《新概念51單片機C語言教程》是2009年電子工業出版社出版的圖書,作者是郭天祥。《新概念51單片機C語言教程:入門、提高、開發、拓展》從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機C語言編程方法以及51單片機的硬體結構和功能應用。《新概念51單片機C語言教程:入門、提高、開發、拓展》從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機C語言編程方法以及51單片機的硬體結構和功能應用。全書共分5篇,分別為入門篇、內外部資源操作篇、提高篇、實戰篇和拓展篇。《新概念51單片機C語言教程:入門、提高、開發、拓展》內容豐富,實用性強,書中大部分內容均來自科研工作及教學實踐,許多C語言代碼可以直接應用到工程項目中。《新概念51單片機C語言教程》配套光碟提供13講近30學時的教學視頻和《新概念51單片機C語言教程》實例代碼,可使讀者更快更好地掌握單片機知識和應用技能。《新概念51單片機C語言教程》作者還可提供與《新概念51單片機C語言教程:入門、提高、開發、拓展》配套的單片機實驗板。《新概念51單片機C語言教程:入門、提高、開發、拓展》可作為大學本、專科單片機課程教材,適合於51單片機的初學者和使用51單片機從事項目開發的技術人員,也可供從事自動控制、智能儀器儀表、電力電子、機電一體化等專業的技術人員參考。

⑧ 很簡的51單片機C語言流水燈程序

1、51單片機C語言實現循環8個流水燈左移三次,後右移三次。
常式:

#include<reg51.h>//51單片機頭文件
#include<intrins.h>//包含有左右循環移位子函數的庫
#defineuintunsignedint//宏定義
#defineucharunsignedchar//宏定義
sbitbeep=P2^3;
voiddelay(uintz)//延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.
{//delay(500);大約延時500ms.
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()//主函數
{
uchara,i,j;
while(1)//大循環
{
a=0xfe;//賦初值
for(j=0;j<3;j++)for(i=0;i<8;i++)//左移三次
{
P1=a;//點亮小燈
beep=0;//開啟蜂鳴器
delay(50);//延時50毫秒
beep=1;//關閉蜂鳴器
delay(50);//再延時50毫秒
a=_crol_(a,1);//將a變數循環左移一位
}
a=0x7f;
for(j=0;j<3;j++)for(i=0;i<8;i++)//右移三次
{
P1=a;//點亮小燈
beep=0;//開啟蜂鳴器
delay(50);//延時50毫秒
beep=1;//關閉蜂鳴器
delay(50);//再延時50毫秒
a=_cror_(a,1);//將a變數循環右移一位
}
}
}



2、51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flash rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。

⑨ 51單片機項目教程 C語言版 高清帶書簽(吳險峰)PDF,哪裡可以下載

《51單片機項目教程C語言版 贈單片機開發板.pdf》(選擇普通下載即可!

1、找到這本資料,美中不足就是沒有書簽,湊合看吧;

2、手機瀏覽器網頁端登 陸 或 PC電腦端登 陸,即可查看、下載;

3、文件有時效性,若失效或下載問題,留言;

⑩ 郭天祥《新概念51單片機C語言教程--入門提高》電子版以及光碟內容

https://yunpan.cn/cBCpu8r84Uc8t (提取碼:7a0c)