性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

肉嘟嘟的程序媛
認(rèn)證:普通會員
所在專題目錄 查看專題
暴揍單片機(jī)知識點(diǎn) 1 -- 一門和芯片對話的外語
暴揍單片機(jī)知識點(diǎn) 2 -- 三頭六臂
暴揍單片機(jī)知識點(diǎn) 3 -- 51初窺
暴揍單片機(jī)知識點(diǎn) 4 -- 51的手表和鬧鐘 (1)
暴揍單片機(jī)知識點(diǎn) 5 -- 51的手表實(shí)操(2)
暴揍單片機(jī)知識點(diǎn) 6 -- 51的鬧鐘 + 鬧鈴
作者動態(tài) 更多
git 情景 4 —— 永世不滅
2021-12-16 22:14
git 情景 3 —— 多重分身
2021-08-06 17:28
git 情景 2 —— 時空穿梭
2021-06-08 01:20
git 情景 1 —— 封存歷史,探索代碼的前世今生
2021-05-13 21:11
git 版本管理 —— 使用場景以及入門
2021-05-11 13:12

暴揍單片機(jī)知識點(diǎn) 1 -- 一門和芯片對話的外語

正如標(biāo)題所說,c語言是我們和各種芯片對話的語言(其他吹牛逼的話請去多找找專業(yè)書籍,我就不贅述了)。我在本張只會講解一些常用和簡單的用法,便于大家入門和熟悉單片機(jī)的程序的設(shè)計(jì)原理。

第一招,開門見山。

單片機(jī)是怎樣運(yùn)行的?它內(nèi)部是怎么設(shè)計(jì)的?這些問題,可以說是很重要,但也不重要(這句話,你品你細(xì)品,就是裝逼用的)。

其實(shí)單片機(jī)就認(rèn)識一個東西,他的一生最愛:main小姐。每次單片機(jī)只要蘇醒了(也就是給他點(diǎn)電,像打了雞血似的),它就會瘋狂的找尋它們女朋友(MAIN小姐)。當(dāng)他找到main小姐后,man小姐就會把它肚子里面的所有想法和要求告訴單片機(jī)。而單片機(jī)就像一個好丈夫,孜孜不倦的滿足main小姐的全部要求。最終換來的可能只是一句:你是個好單片機(jī),我們不合適。哈哈。。。

給你們看看 main 小姐的美妙身材:

main

{

    // ........... 我們存放所有流程的地方。

}

第二招,認(rèn)祖歸宗。

舉個例子:比如在課堂上,老師叫小明,你給我滾出去。這時候小明會看看自己,然后老老實(shí)實(shí)的滾出去。但是如果班級里面沒有小明,那么同學(xué)們就會沒有反應(yīng)。這可以理解為簡單的死機(jī)了。哈哈哈。

所以,我們一定要告訴單片機(jī),我們想讓誰干嘛。

比如:

int nums = 10;此時,我們用int(類似的還有char ...)來告訴單片機(jī),臭小子,我現(xiàn)在需要生個孩子,它的名字叫做 nums,它現(xiàn)在初始值是10(單片機(jī)中的所有東西都只是數(shù)字)。這句話只要單片機(jī)讀完或者運(yùn)行完,那它知道我一個兒子叫 nums 并且也知道 nums 等于 10。

nums = nums + 1;我隨后想讓我兒子自己加一下。那好,我只需要告訴單片機(jī),把我兒子加1,至于為什么是 nums = nums + 1 而不是 nums + 1 = nums 。這就好比吃飯為什么要用筷子,因?yàn)槲覀兪侵袊?,這是我們的驕傲。(其實(shí)就是編譯器是別人寫的,我們必須準(zhǔn)守這樣的規(guī)則一樣)。

第三招,明碼標(biāo)價

比如,出門你去買衣服,或者買手機(jī)。這手機(jī)你再喜歡一看標(biāo)價:10w,你心里就在想,臥槽,老子窮屌絲,你這么貴,我怎么買。這樣你連頭都不帶回的就溜了。

單片機(jī)也是會這樣的,比如我們告訴單片機(jī),如果我要的這個兒子比 10 大,那你把它丟掉。如果比 10 小,那你就給他加點(diǎn)。這樣單片機(jī)每次檢查你兒子的時候就會看他是不是比10大。

代碼如下:

if(nums > 10){

    丟掉

}else{

    nums = nums + 1

}

第四招,偷工減料

我想知道大家都很不愿意做一些傻瓜式,枯燥,重復(fù)性的事情吧。但是單片機(jī)沒得選,它不做就得我們自己來做,每個人都是貪婪的,我們都喜歡偷懶,那就把我們的輕松轉(zhuǎn)嫁到單片機(jī)的身上了,這樣我們就輕松了。

舉個例子:比如我現(xiàn)在需要找到 1-100 之間的偶數(shù)。

第一種,自己沒事找事型:

首先按照第二招,我們要告訴單片機(jī)我們又要一個孩子了,比如:int nums = 1;這時候我們只需要檢測 i 是不是 2 的倍數(shù)。然后讓 nums = nums + 1,再檢測一次。我感覺從 1 - 100 我需要寫 n 個。

nums 是不是2 的倍數(shù)?

nums = nums + 1

nums 是不是2 的倍數(shù)?

nums = nums + 1

nums 是不是2 的倍數(shù)?

nums = nums + 1

....

自我寫個 100 遍,我tm又不是默寫出錯了,憑什么讓我罰寫。這時候我們觀察一下,其實(shí)這些都是有規(guī)律的,他總是檢查,檢查完后加1.這樣我們的先輩們就給我們提供了一個更好的解決方式:

for(nums = 1;nums < 100;nums ++){

    nums 是不是2 的倍數(shù)?

}

臥槽,真的這么簡單嗎?是的就是這么簡單。原本幾百行的代碼,在你面前被縮減成了 3 行。臥槽,你真牛逼。但是對于單片機(jī)而言,它的工作量沒有太大的變化,我們確實(shí)節(jié)約了不少的時間。

====

我們開發(fā)的主要流程,以及一些步驟:

  • 我們需要使用 C 語言編寫一段符合 C 語言規(guī)范的程序。(這時候你如想想深入學(xué)習(xí),擴(kuò)展一下自己的 C 語言功底)。
  • 我們需要找到合適的編譯器(比如,keil,iar,gcc 。。。)將 C 語言文件轉(zhuǎn)化你要燒錄芯片的二進(jìn)制文件(這個類型的文件可以是,hex,bin,mot。。。哪怕是 txt 類型文件也無所謂,主要看編譯器可以生成什么樣的文件)。
  • 想辦法把編譯器生成的二進(jìn)制文件燒錄到單片機(jī)中。這樣單片機(jī)就能按照你編寫的 c 語言邏輯運(yùn)行了。

燒錄的部分細(xì)節(jié)說明:編譯生成的文件只是一個載體,就是說這個文件里面存放了我們要燒錄到單片機(jī)中的信息。其實(shí)燒錄過程就是講二進(jìn)制文件中的信息解析出來,然后存放到單片機(jī)當(dāng)中,至于這個流程細(xì)節(jié)怎么實(shí)現(xiàn)的不知道也沒關(guān)系,因?yàn)槟阒灰獣镁涂梢粤恕?/p>

====

至此,你基本就需要會了 C 語言在單片機(jī)里面的基本簡單運(yùn)用方式。如有問題請留言,我將一一解答

下一節(jié)給大家初略的介紹單片機(jī)的三頭六臂!

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 7
收藏 10
關(guān)注 54
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧