日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

嵌入式版"Hello world"之流水燈實驗

系統 1792 0

在短短的兩周內,我們集中學習了ARM體系結構相關課程和ucos基礎課程,并第一次深入一個操作系統的內部進行詳細的學習探究。

在學習了ucos和相關工具下的demo之后,我終于將匯編、hex、c等底層代碼和硬件聯系在了一起。一直做web、桌面應用開發,我這次算是體驗到了另外的世界和開發思路。

?

關注于:

  1. 代碼計數用大小k
  2. 關注效率
  3. 關注空間
  4. 注意賦值--掩碼賦值
  5. 學會看芯片時序圖
  6. 看清引腳
  7. 等等

下面開始我們的Hello world之旅吧。

在實驗室寫blog,沒有linux環境,所以在描述windows相關操作和技巧時會有疏漏,如果疑問敬請斧正。

?

點燈和閃亮的基本原理:對于一個發光二極管(流水燈的顯示器),其發光是電流可正向通過,也就是說兩邊一邊高電壓一邊低電壓。如下圖所示,如果上面是高電壓,下面是低電壓則這個發光二極管就可以亮。


?

首先需要建立一個工程,在這里使用的是一個強大的嵌入式IDE:Keil uVision3. Project->New u...Project->choose a file-> select device -> NXP(LPC2124)->確定拷貝數據


然后,讓這個工程在編譯完文件后輸出hex(用于電路板的二進制文件)文件.

Project-> Options about... -> Output -> Create HEX File

?

最后編碼并生成。

繪制電路圖,并導入HEX文件。



?電路圖的關鍵:左下方電源的配置連接,發光二極管的電阻連接。

代碼結構:

    #include <LPC21xx.h>

//多用宏,不論是遷移還是使用都很方便,而且方便閱讀
#define ALL 0x3;//用于燈連接的端口 P0.0 P0.1

unsigned long i;//用于延時計數的變量
int j;

void delay(){
  i=0x000FFFFF;
  while(i)i--;
}

int main(){
  //所有的芯片默認狀態時GPIO,輸入輸出數據口
  IO0DIR = ALL;//對應的二進制數是:0000 0000 0000 0011 ,
               //即對應的P0.0, P0.1口為數據輸出口
  j = 0;
  while(1){
    IO0SET = ALL;//導致二極管的兩極都為高電位,從而不亮
    j++;
    j%=2;//奇偶計數
    if(j){
      IO0CLR = 0x1; //讓P0.0低電壓 
    }else{
      IO0CLR = 0x2; //讓P0.1低電壓  
    }
    delay();
  }
}


  

?細節的討論還會補充。

?

嵌入式版"Hello world"之流水燈實驗


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 揭西县| 顺义区| 濉溪县| 当涂县| 高密市| 巴中市| 浦县| 岱山县| 开化县| 澎湖县| 蓝田县| 南澳县| 康平县| 清涧县| 舒兰市| 镇原县| 乐安县| 新宁县| 甘孜县| 嘉峪关市| 郧西县| 云林县| 文登市| 武汉市| 思茅市| 丰宁| 阿鲁科尔沁旗| 新化县| 保定市| 沁水县| 疏附县| 桓仁| 澜沧| 昌宁县| 安丘市| 图片| 勐海县| 新巴尔虎左旗| 涿鹿县| 清丰县| 崇文区|