簡單討論一下小白學習單片機所需要的軟體環境、硬體環境

2022-05-12     大方老師單片機

原標題:簡單討論一下小白學習單片機所需要的軟體環境、硬體環境

簡單討論一下小白學習單片機所需要的軟體環境、硬體環境

///插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以~點我頭像黑色字體加我地球呺也能領取哦。最近比較閒,帶做畢設,帶學生參加省級或以上比///

單片機讓很多同學覺得難,是因為單片機是軟硬體結合的產品。你需要對軟體了解,也需要對硬體了解一些,但是這不是單片機入門最關鍵的要素,大部分同學不入門最關鍵的問題是好高騖遠,另一個關鍵問題是目前市面上大部分的單片機書籍不適合入門。

作者一直提倡學習使用框架法、逆推法、一步步學習,此次也不例外。

直接了當,我們做個學習單片機的知識框架:

·單片機核心當然是必不可少的,單片機就是將電腦所擁有的大部分硬體集成到一個晶片中,當然是精簡過,但是也強悍的不得了。

·都將計算機集成了,我們考慮下,自然需要有些基礎學習單片機才能進展快,所以要了解一些模擬電路、數字電路的基礎知識,但是大家不要被這兩個名詞嚇住了,針對單片機應用來說,我們僅學習其中萬分之一的基礎知識就好。

·當然單片機學習離不開單片機編程,早期學單片機很費勁,要學習彙編語言,機器語言,感C語言的發明人和拓展科學家吧!他們把問題簡化,我們可以用中級語C語言完成單片機編程C語言是核心,這個要學會,現在甚至有些可以用高級語言或者圖形化單片機編程,但是還不夠實用化,C語言仍然是核心

·我們用編寫單片機軟體來控制單片機硬體,所以軟體環境、硬體環境都必不可少。軟體環境包括編程平台(軟體開發平台)和調試工具(串口調試助手TCP/IP/UDP調試助手等等;硬體環境我們要準備單片機開發板和調試工具萬用表、示波器、邏輯分析儀等。

·準備這些很麻煩,有些還比較貴,所以在公司內部和學校學習是最好的方式,另外現在有個-Proteus,它包含了單片機編程平台、硬體仿真、硬體調試工具,作為初學者可以proteus入手學習單片機,事半功倍。

·通訊協議是重點、重點、重點!單片機核心與外部模塊、晶片通訊,都要有通訊協議才行,要用幾根線與外部連線,要發送什麼數...

嚮導的專欄從來不是勸退專欄,而是想盡各種辦法讓零基礎、非專業的同學入門。

不要被上面的英文單詞或者專業術語嚇住了,實際上框架羅列出來,是讓大家有個清晰的認識,知道單片機系統是什麼。

大部分不適合入門的最大的問題就是無框架、跳躍式講解,任何一個專業術語,都有辦法解釋清楚,一篇文章不100篇!

僅以此篇,作為單片機入門專欄的總目錄。

總目錄:

第一篇,單片機入門系列

嚮導D1.1單片機入門第一課

嚮導D1.2單片機入門第二程序語言框架

嚮導:單片機入門框架學習思代碼結流程圖與分析工具

嚮導:單片機核心概1---定時器

嚮導PM10單片機調試方法與技軟體工具使用

第二篇,進階工程師內容

嚮導E2.1單片機開源框--時間片輪詢

嚮導E2.2單片機開源框--時間片輪--思路

附錄

嚮導:單片機學習方法與步驟

嚮導:代碼分析工understand與實用化配置

嚮導:玲瓏劍與生鏽--串口調試利器

嚮導:嚮導單片機訓練--開源資料

嚮導:最簡潔的單片機狀態機模(X-狀態)

嚮導:單片--學習全流程框架(初稿)

待補...

聲明:

文中所有論點、結論皆根據作者經歷經驗總結,限於知識結構、層次、經歷局限性,必然有不少偏頗,甚至部分內容偏激,作者所有的文章也是試錯的過程,歡迎批評斧正,如有不同意見或建議,請與討論區提出討論

1.數碼管靜態與動態的原理

1.1靜態

概念:每個數碼管必須8位數據線。當送入一次字形碼後,可保持不變,直至送入新的為止。

優點:CPU占用時間少

缺點:硬體電路複雜,成本高

.2 動態

特點:將所有數碼管的段選線並聯,由位選線決定哪一個數碼管工作。同一時刻,僅有一個數碼管工作。

動態顯示的亮度要差一些,所以選擇限流電阻時,應略小於靜態顯示電路中的電阻。

.中斷

.1概念:略

.2中斷過程:.中斷髮生;.中斷服務;.中斷返回(自己看書本的描述,記一下)

.3相關寄存器

..1TCON

TR0=1,定時器0啟動;TF0:定時器0溢出中斷標誌位

..2SCON

TI、RI:收發中斷標誌位,需軟體清零。

..3中斷允許控制

EA:中斷總開關

如果要打開定時器中斷,要開兩個中斷!先EA=1,再ET0=1。

如果要打開串口中斷,則是先EA=1,再ES=1。

..4中斷優先級控制

.4定時器/計數器

51單片機的定時器,有4種工作方式,通過寄存M1,M0來設置。

.5程序(僅摘錄關鍵部分)

..1定時器初始化部分

TMOD=0x01;

TH0=(65536-N)/256;

TL0=(65536-N)%256;

EA=1;

ET0=1;

TR0=1;

..2中斷服務

void T0_time()interrupt 1

TH0=...;

TL0=...;

num++;

如果時使用定時器1,則是interrupt 3。

..3 延時函數

void delayms(uint z)

uint i,j;

for(i=z;i>0;i--)

for(j=110;j>0;j--);

第四章 鍵盤

.鍵盤分類

.1編碼鍵盤

硬體部分已經幫鍵盤編好碼了

.2非編碼鍵盤

需要軟體去編碼和判斷哪個按鍵按下。其中常見的有獨立鍵盤和矩陣鍵盤。

.去抖

去抖的關鍵是加delay函數,看程序就很好理解了。

.獨立鍵盤程序編寫

sbit s1=p3^0;

if(s1 == 0)

delayms(0);//去抖

if(s1 == 0)

...

while(s1!=0)//等待按鍵放下

.矩陣鍵盤編寫

假設,先檢測第2列

P3=0xfd;//關鍵1:0xfd即(11111101),掃描第2列

temp=P3;//

temp=temp&0xf0;//關鍵2:讀取第1、2、3、4行

if(temp!=0xf0)

delayms(10);

if(temp!=0xf0)

temp=P3;

switch(temp)

case ...//逐行排除,看看是誰被按下了。

矩陣鍵盤特點:節省I/O口資源,但編程複雜。

文章來源: https://twgreatdaily.com/zh-mo/deb218809c0fdda9abdb5e34f0386221.html