這一部分要學習在stc-b學習板上進行的案例測試和硬體相關操作,第一步先把已有的樣例看懂吧
1.流水燈案例
程式主體**如圖,可以看到init函式對p0和p2進行了初始化,那麼p0和p2是什麼呢
在這張圖中可以看到,如果我們想使二極體點亮,就需要使得e3為低電平0,所以p2.3就需要被置為1,這也是為什麼p2m0被置為0x08的原因
根據資料手冊中給出的p2埠工作模式設定,p2m0為0x08,p2m1為0x00,為推挽輸出,增加顯示亮度
對於p0埠,同樣有工作模式設定規則,可以看到p0m0為0xff,p0m1為0x00,這樣推算下來是……僅為輸入??這部分沒大看懂,有時間再問問大神吧
第二個函式delay_ms看起來是乙個延時函式,也容易理解他的作用,如果led燈乙個接乙個閃過去由於視覺暫留的原因是沒辦法辨別的,所以在這裡要讓led燈閃爍之間停留一段時間
通過注釋了解到這是乙個延時1ms的程式,也就是說while迴圈執行完11*190次經過了1ms,那麼每一次也就是1/(11*190)ms,不過這不重要
接下來關注到主函式,前面的截圖不全,整體應該是這樣的
這樣就明朗一些了,首先將埠狀態進行初始化,然後led這個引數對應於位選訊號,選擇哪一位led燈進行點亮,下面設定的死迴圈保證了硬體層面可以一直執行下去,將led的值賦給p0,在電路圖中也看到p0決定了哪些二極體可以被點亮,二極體陰極已經被置為0,所以哪個二極體的陽極為1則哪個點亮,點亮後為了保證人眼有充分的時間辨別下乙個二極體的點亮,我們延時200ms,下面的語句用來判斷led燈是否已經點亮到電路板最左邊的乙個,如果是,為了實現迴圈點亮的功能,將led重新賦值為0x01,否則向左移動一位,點亮下乙個二極體即可。
//這是第一次寫部落格,感覺和大神們的部落格真的是沒法比,就當做自己的學習筆記吧
//文中有一些問題的思考其實是模糊的,明天找時間去把這些弄明白再修改
微控制器入門學習二 51微控制器學習一
本篇將對51微控制器一些概念進行一下記錄,本次針對 手把手教你學51微控制器 的前7章的硬體知識做乙個總結,軟體程式設計就不記錄了,可以看教程,裡面講解的很詳細。微控制器最小系統的三要素 電源 晶振 復位電路。最小系統是指用最少的原件組成微控制器可以工作的系統 下圖中晶振旁邊的20pf的電容的作用是...
微控制器學習
微控制器學習 宗旨 技術的學習是有限的,分享的精神是無限的。學習使用微控制器就是理解微控制器硬體結構,在彙編或c語言中學會各種功能的初始化設定,以及實現各種功能的程式編制。第一步 數字 i o的使用 使用按鈕輸入訊號,發光二極體顯示輸出電平,就可以學習引腳的數字i o功能,在按下某個按鈕後,某發光二...
微控制器學習(一) 微控制器基礎 STM32
io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...