小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

零成本學習單片機編程之從hello word開始

 leafcho 2019-02-12

本人從事從2004年大學畢業(yè)開始從事開發(fā)工作,先后做過單片機開發(fā)、ucOSII開發(fā)、手機開發(fā)、android APP開發(fā)、PHP開發(fā)、微信小程序開發(fā),目前從事物聯(lián)網(wǎng)開發(fā)。我本人并非學計算機的,除了學校上課之外,基本上這些開發(fā)都是自學的。邊學習邊工作,基本上以學以致用為目的,用到什么學習什么。

深深體會到自學的艱辛,尤其是最初入門的時候,那道砍邁過去后面再學習基本上就簡單多了,所謂觸類旁通,舉一反三。但是前面打基礎的時候是非常費力的,看到很多評論說C語言指針太難了,后來就放棄了。其實那是沒有找到好的學習方法,沒有人指導。只要有人帶一帶指點一下,問題很快就能解決。

相比于國外的開源學習氛圍,我認為我們做的還遠遠不夠,我們的編程大師還非常少,像ucLinux、ucOSII、FreeRtos等等非常有名的嵌入式操作系統(tǒng),商業(yè)的更不用說了,太多了。我們在軟件方面一直都是落后的狀態(tài),當然近幾年我們自己也有不少好的作品。比如,Huawei LiteOS、Alios Things、djyos、RT-Thread、SylixOS等。一直想為學習單片機的同學做點什么,今年相對來說會輕松一些,利用閑暇時間,給大家分享一些案例、學習方法和心得。本課系列課程主要針對初學者、單片機學習愛好者、學習中遇到困難者,有什么不清楚的地方可以留言討論。


本課的第一個案例,從串口編程輸出hello word

首先、打開proteus(需要安裝文件的童鞋,發(fā)我私信1000,將自動給你軟件連接)

零成本學習單片機編程之從hello word開始

在打開文件->示例工程,如下圖所示

零成本學習單片機編程之從hello word開始

打開之后是原理圖,這個是ADC擴展采樣的電路,暫時不管它

零成本學習單片機編程之從hello word開始

本節(jié)我們只演示,串口輸出hello word的內容

第二、修改代碼如下

void delayFunc(unsigned int ms)//不精確的延時10ms

{

unsigned int i=0;

while(ms--)

{

while(++i<1000);

i=0;

}

return;

}

void SendString(const char *s) //串口發(fā)送

{

while(*s) {

TI=0;

SBUF=*s++;

while(TI==0);

}

}

void main(void)

{

unsigned int delay, MSB , LSB, adc_Res;

//串口初始化部分

SCON = 0xDA; // SCON: mode 1, 8-bit UART, enable rcvr */

TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload */

TH1 = 0xFD; // TH1: reload value for 1200 baud @ 12MHz */

TR1 = 1; // TR1: timer 1 run */

TI = 1; // TI: set TI to send first char of UART */

while(1)

{

printf('hello Word!!\n'); //串口輸出hello word

delayFunc(50);//延時500ms

SendString('hello MCU!!\r\n');//串口輸出hello MCU

delayFunc(50);//延時500ms

}

}

代碼解析已經(jīng)在具體代碼中了,運行結果如下圖所示,是不是很簡單呢?。?/p>

零成本學習單片機編程之從hello word開始

最后、總結知識點

1.串口初始化部分可以參考8051的數(shù)據(jù)手冊,這部分都是標準8051內核通用的,哪個廠家的都一樣

2.注意printf函數(shù)是對串口格式輸出函數(shù),它的代碼不是公開的,而是封裝在stdio庫中,是一個標準額庫函數(shù)

3.換行小知識點,不知道你注意到?jīng)]有

printf('hello Word!!\n');

SendString('hello MCU!!\r\n');

為什么一個是\n換行,而后面一個是\r\n表示換行呢?

這其中的原因出在printf庫函數(shù)上,printf在發(fā)現(xiàn)\n時會自動轉換成\r\n輸出,所以后面一個函數(shù)輸出hello MCU時,必須是標準的\r\n才可以。

本節(jié)課就結束了,有什么疑問歡迎留言討論!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多