導航:首頁 > 操作系統 > 手把手教你單片機

手把手教你單片機

發布時間:2022-10-15 04:02:34

『壹』 學51單片機推薦書籍,要求是入門的

單片機入門書籍,推薦3本書給你吧。

1.《新型單片開關電源設計與應用技術》

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

/* 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();

}

}

『叄』 單片機初學者該看什麼書

《51單片機工程師是怎樣煉成的:基於C語言+Proteus模擬》老楊 電子工業出版社
《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》彭偉 電子工業出版社
《新概念51單片機C語言教程——入門、提高、開發、拓展》 郭天祥 電子工業出版社
《實例解讀51單片機完全學習與應用》 電子工業出版社
《手把手教你學單片機》 北航
《單片機基礎》李廣弟 北航
《單片機原理及介面技術》李朝青 北航
《51單片機應用從零開始》匯編 楊欣 清華出版社
《愛上單片機》 杜洋 人民郵電出版社
《例說51單片機(C語言版)》 張義和 人民郵電出版社
《單片機原理與技術》
《51單片機開發與應用技術詳解》
《單片機技術與原理教材》
《匠人手記》
《手把手教你學單片機》
《8051單片機》
《單片機原理及應用》 張毅剛
《51單片機原理與實踐》
《單片機應用技術》 哈爾濱工業大學出版社
《8051單片機教程》 平凡
《單片機輕松入門》平凡

『肆』 自學51單片機的書籍

如下:
《51單片機工程師是怎樣煉成的:基於C語言+Proteus模擬》老楊 電子工業出版社
《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》彭偉 電子工業出版社
《新概念51單片機C語言教程——入門、提高、開發、拓展》 郭天祥 電子工業出版社
《實例解讀51單片機完全學習與應用》 電子工業出版社
《手把手教你學單片機》 北航
《單片機基礎》李廣弟 北航
《單片機原理及介面技術》李朝青 北航
《51單片機應用從零開始》匯編 楊欣 清華出版社
《愛上單片機》 杜洋 人民郵電出版社
《例說51單片機(C語言版)》 張義和 人民郵電出版社
《單片機原理與技術》
《51單片機開發與應用技術詳解》
《單片機技術與原理教材》
《匠人手記》
《手把手教你學單片機》
《8051單片機》
《單片機原理及應用》 張毅剛
《51單片機原理與實踐》
《單片機應用技術》 哈爾濱工業大學出版社
《8051單片機教程》 平凡
《單片機輕松入門》平凡
《單片機原理與應用》 西安電子科技大學

『伍』 手把手教你單片機宋老師中的按鍵 為什麼要多加這個程序 請教各位大神

注釋已經很明白了啊,
例如行列掃描,一列掃完以後就要釋放當前列並且拉低下一列,為之後對下一列的掃描做好准備。

『陸』 手把手教你學單片機課後習題答案:關於用定時器著流水燈程序

在51單片機開發板上,用定時器做了一個流水燈程序,調整非常靈活,很實用拿出來和朋友們一起分享#include<reg52.h>,這是一個左右循環的程序,如果想要其他花樣只需改變數組里元素排列順序即可,很好玩的,也很簡單。

『柒』 手把手教你學51單片機的前 言

目前,51系列單片機在我國已得到大力推廣和廣泛應用,從工業控制系統到小型電子產品都可以見到51單片機的身影,它經典的結構使其成為單片機學習的入門首選,得到了廣大單片機使用者的一致推崇,關於51單片機學習和應用的書也五彩紛呈,本書也是其中的一本。
編寫本書的目的
筆者從事單片機設計工作已有多年,在這期間設計和參與設計了較多的單片機項目,取得了很多單片機實際設計經驗,對單片機設計有了一些較深的認識。所以希望能通過這本書對初步學習單片機的讀者有所幫助,並且也是自己對學習和應用單片機的一個總結。
通常在學校學習的單片機知識偏重於理論而不是技能,可是在工作中需要面對的是實際問題,而不是在紙上談兵;作為一名單片機工程師,筆者在工作中對此深有感觸。所以本書的著重點是想讓讀者了解一個完整的單片機設計過程所需的知識,而不僅僅只是講述單片機的原理。通過本書的學習,讀者可以獨立設計和完成一個簡單的單片機控制系統,即體驗從原理圖設計、製作電路板到單片機系統調試的整個過程。
本書的主要內容
本書概括地論述了單片機的基礎知識,包括單片機的基本結構和工作原理;並就實際單片機項目開發中會遇到的各種問題進行了闡述,列舉了單片機開發的流程和必須遵守的一些規范,說明了模擬器和編程器在開發中的作用以及基本的使用方法。具體內容如下。
 首先論述了單片機的基礎知識,包括單片機的基本結構和工作原理,闡述了目前單片機的發展情況,列舉了最新流行的單片機種類,總結了單片機的選擇方法。
 在了解單片機基本知識的基礎上,詳細講解了單片機的主要開發語言——匯編語言和C51語言;編程語言的使用是單片機和其他集成電路的重要區別,用它來賦給單片機命令,使單片機按照設計者的意志運行命令。
 本書也花了一定的篇幅講解了模擬器和編程器的原理和使用說明。編程器和模擬器是單片機項目開發中常用的工具,模擬器是單片機程序調試中很有用的輔助工具,可以逐步地觀察單片機的運行過程,以便發現程序中的錯誤;而編程器是用來將編寫好的程序寫入單片機的工具。除了傳統的模擬器和編程器外,還列舉了一些最新的單片機開發手段,如在線模擬和ISP(在系統編程),這些新的方法大大降低了單片機的開發費用,在線模擬使得設計者不需要去購買昂貴的模擬器,而ISP則替代了編程器,這進一步降低了學習單片機開發的門檻。
 在講解這些理論知識的過程中,本書還簡單講述了單片機開發中的一些規范,包括單片機原理圖、PCB圖以及程序設計的設計規范。這在實際工作中是必須了解和遵守的,也是一個單片機設計工程師必須具備的基本知識。
 完成了基本知識的學習後,本書由易至難列舉了一些設計實例,這些實例基本上概括了單片機項目設計中遇到的各種問題。
通常,一個單片機系統設計可以分為如下五大方面。
(1)單片機能夠運行的最小系統,包括振盪電路、復位電路以及電源電路。
(2)單片機I/O口的使用方法和定時器、中斷系統的使用。
(3)單片機的通信介面,單片機的通信在單片機設計中是經常遇到的功能,所以必須注意目前單片機系統常用的各種通信介面和協議。
(4)單片機的系統擴展,系統擴展通常可以分為程序存儲器的擴展、數據存儲器的擴展以及單片機I/O口的擴展三部分。
(5)信號轉換介面,主要是A/D、D/A轉換以及PWM的實現。這是單片機信號處理中經常遇到的問題。
前面兩部分是單片機最基本的功能,後面三部分則是單片機的擴展應用,掌握了這些基本知識,便可應對用單片機解決的各種項目。
本書的特點
 本書具有知識全面、實例豐富、操作性強的特點,力求以全面、系統的知識和豐富、簡短的實例指導初學者學習單片機各方面的知識。因此,本書適合於開始學習單片機設計和具有一定單片機基礎知識的讀者,目的是使讀者通過本書的學習可以初步掌握單片機的開發應用。
 本書安排有「提示」、「注意」、「說明」小欄目,通過這些小欄目可和讀者分享一些經驗和心得,同時也可為讀者清除學習過程中的難點和疑點。
 本光碟內容超值豐富,不但提供了書中全部範例的源代碼和電路圖,而且提供了多媒體視頻教學錄像,用以講解如何使用本書光碟中的源代碼,手把手引導讀者直觀深入地學習。
本書閱讀順序
本書章節的安排是依據讀者對單片機學習的過程、以循序漸進的方式建立的,建議初學者從前至後閱讀。
 首先閱讀第1章至第7章,這些章節是單片機設計的基礎知識,必須掌握。只有熟讀了這幾章的內容,才能閱讀後面的章節。其中,第3章可以放到完成基本知識的學習後閱讀。
 閱讀第8章至第12章,這幾章是講述單片機設計中的一些基本手段和方法,涉及單片機系統設計中的方方面面,掌握這些知識可以解決單片機設計中的大部分問題。
 閱讀第13章——綜合實例,它由淺入深、由簡入繁,將前面講解的一些知識應用到實際項目中,可以讓讀者對單片機設計項目有具體的認識。
致謝
經過緊張的策劃、寫作和編寫,本書才得已完稿。在寫作的過程中,得到了參與本書策劃的各位編輯的大力協助;在此,對所有參與該書編輯、出版的老師表示衷心的感謝。
惠 仇
2008.6.28

『捌』 零基礎怎麼學單片機

可以的,單片機不難,先學C語言,英語常用的單詞認識就行,一般都可以用翻譯軟體。0基礎建議先學51

『玖』 手把手教你單片機宋老師的一個代碼沒看懂 請教各位大神解釋一下這個代碼的詳細過程 非常感謝

手把手教你單片機宋老師的一個代碼沒有看懂對不起你。教各位大神解釋一下這個代碼的,這個手機把你當面積慫慫老師的一個代碼沒看懂,請教各位大神解釋一下這個代碼的這個。單片這個代碼的這個看看不懂得這個解釋一下哥。

『拾』 手把手教你學51單片機的內 容 簡 介

本書語言簡潔,由淺入深、循序漸進,基礎知識與設計實踐緊密結合,邊講邊練,利於讀者舉一反三,鞏固所學的知識。隨書配套光碟內容超值豐富,不但提供了書中範例的代碼和電路圖,而且提供了多媒體視頻教學錄像,手把手引導讀者直觀深入地學習。
本書適合廣大51單片機使用者閱讀,也是從事單片機設計的科技工作者必備的首選寶典;同時也可作為大中專院校、高職計算機專業學生,以及社會相關培訓班學員的教材。

閱讀全文

與手把手教你單片機相關的資料

熱點內容
怎麼把電腦里文件夾挪出來 瀏覽:693
java流程處理 瀏覽:683
ftp創建本地文件夾 瀏覽:659
腰椎第一節壓縮 瀏覽:738
xp去掉加密屬性 瀏覽:117
2345怎麼壓縮文件 瀏覽:982
迷你奪寶新演算法 瀏覽:407
伺服器如何防止木馬控制 瀏覽:715
壓縮空氣用電磁閥 瀏覽:742
微信為什麼不能設置加密認證 瀏覽:672
鄧倫參加密室逃脫視頻 瀏覽:391
音頻壓縮編碼標准 瀏覽:300
常提到的app是表示什麼 瀏覽:261
天津程序員傳銷 瀏覽:349
下班之後的程序員 瀏覽:73
檢測支持ssl加密演算法 瀏覽:344
衢州發布新聞什麼APP 瀏覽:85
中國移動長沙dns伺服器地址 瀏覽:251
wifi密碼加密了怎麼破解嗎 瀏覽:599
linux命令cpu使用率 瀏覽:70