日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机小白学步系列(十四) 点亮第一个LED的程序分析

發(fā)布時(shí)間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机小白学步系列(十四) 点亮第一个LED的程序分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇我們將分析上一篇所寫的程序代碼。未來學(xué)習(xí)單片機(jī)的大部分精力,我們也將放在程序代碼的編寫上。但是不用擔(dān)心,我會(huì)非常詳細(xì)的介紹每個(gè)程序的編寫思路和各種注意事項(xiàng)等。

之前我們寫的程序如下:

#include <reg52.h>

sbit LED = P1^0;

void main()

{

? ? LED = 0;

? ? while(1);

}

頭文件

第一行包含頭文件,這個(gè)和C語言編寫HelloWorld時(shí)的#include 一樣。頭文件reg52.h中定義了單片機(jī)的一些寄存器,如P0~P3等。至于什么是寄存器,將在原理篇中具體介紹,現(xiàn)在我們只要把它想象成C語言中常說的內(nèi)存就好了。有興趣的讀者可以右擊reg52.h打開頭文件看一看。

C51的變量類型

這里我們使用的語言是C51,和標(biāo)準(zhǔn)C語言相比,最主要的特點(diǎn)就是多出來兩種變量類型:sfr和sbit。sfr和char一樣是一個(gè)8位數(shù)據(jù)類型,表示一個(gè)8位的寄存器。例如頭文件reg52.h中就有一句sfr P1 = 0x90,它定義了寄存器P1。由于P1是IO口寄存器,所以對(duì)P1賦值,則相應(yīng)的, IO口P1將輸出對(duì)應(yīng)的高低電平。而sbit則是一個(gè)1位數(shù)據(jù)類型,只有0和1兩種值,它對(duì)應(yīng)寄存器中的一個(gè)位。

于是在第二行里,我們定義了sbit型變量LED,并設(shè)置LED對(duì)應(yīng)P1的最低位bit0。此時(shí)變量LED就和IO口P1.0關(guān)聯(lián)起來。執(zhí)行賦值語句LED = 0,IO口P1.0就會(huì)輸出低電平,于是我們電路中的LED就會(huì)亮起來了。是不是非常神奇呢?在原理篇中,我會(huì)一步一步講解單片機(jī)是如何實(shí)現(xiàn)這種功能的。

位尋址

在其他的很多單片機(jī)中,我們只能讀寫整個(gè)P1寄存器,而不能直接定義類似sbit這種對(duì)應(yīng)寄存器一位的數(shù)據(jù)類型,另外51單片機(jī)里面有些寄存器也只能整個(gè)8位一起讀寫。這種直接讀寫一個(gè)寄存器位的特性被叫做位尋址功能。

又是一個(gè)很難理解的概念,同樣,還是需要了解原理篇才能很好的理解它,現(xiàn)在完全不用擔(dān)心,我提這個(gè)就是想讓初學(xué)者對(duì)此提前有個(gè)大體印象。畢竟很多知識(shí)都是慢慢積累的,如果把大量這樣的小知識(shí)全部放在原理篇中一并介紹,反而難以接受。

主函數(shù)的特點(diǎn):沒有參數(shù)和返回值

讀者應(yīng)該已經(jīng)看到了無參數(shù)且無返回值的void main()函數(shù),以及倒數(shù)第二行的while(1)語句,并可能疑惑不解。沒錯(cuò),主函數(shù)沒有參數(shù)也沒有返回值,倒數(shù)第二行的這句是一個(gè)死循環(huán),程序永遠(yuǎn)也不會(huì)退出。這和計(jì)算機(jī)上的程序有很大的不同。下面簡(jiǎn)單的說明一下這樣做的原因何在,更深入的原因,則需要讀者看完原理篇后才能理解透徹。

在計(jì)算機(jī)中,我們開機(jī)時(shí)看到的啟動(dòng)界面是操作系統(tǒng),如Windows、Linux等,我們編寫的程序則是在操作系統(tǒng)的環(huán)境下運(yùn)行的。程序執(zhí)行時(shí),相當(dāng)于系統(tǒng)調(diào)用main函數(shù),所以系統(tǒng)可以向main函數(shù)傳遞參數(shù),也可以獲取main函數(shù)執(zhí)行結(jié)束時(shí)的返回值,程序執(zhí)行結(jié)束后,會(huì)重新回到操作系統(tǒng)環(huán)境下。而在這里,我們寫的程序是直接運(yùn)行在單片機(jī)上的,不依賴操作系統(tǒng)。我們程序中的main函數(shù)不會(huì)被操作系統(tǒng)調(diào)用,因此通常它不需要參數(shù),也不需要返回值。事實(shí)上,main函數(shù)有些情況下是被啟動(dòng)代碼調(diào)用的,而啟動(dòng)代碼是匯編語言寫的,還記得上一篇中提到的啟動(dòng)代碼么?

主函數(shù)的特點(diǎn):死循環(huán),不會(huì)執(zhí)行結(jié)束

在計(jì)算機(jī)中,我們寫的程序執(zhí)行結(jié)束會(huì)回到操作系統(tǒng)環(huán)境下。而在單片機(jī)中,一旦單片機(jī)上電復(fù)位,就會(huì)執(zhí)行我們寫的main函數(shù),直到斷電。而如果main函數(shù)執(zhí)行結(jié)束,將發(fā)生不可預(yù)知的結(jié)果。

實(shí)際實(shí)驗(yàn)時(shí),STC單片機(jī)會(huì)復(fù)位并重新開始執(zhí)行程序,或許只是個(gè)巧合,因?yàn)楣俜降男酒謨?cè)中并沒有明確說明這一點(diǎn)。本著嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,我們不利用這種未經(jīng)官方確認(rèn)的特點(diǎn)來開發(fā)我們的程序。程序的可靠性是非常重要的,這一點(diǎn)要引起重視。

試想如果你用單片機(jī)開發(fā)的是醫(yī)療相關(guān)的產(chǎn)品,或者是控制一些大型機(jī)器等,一旦發(fā)生意外,后果難以想象。即使你開發(fā)的是普通的產(chǎn)品,如果總是出現(xiàn)奇怪的故障,也足以讓用戶抓狂。因此這一點(diǎn)要引起讀者注意。所以,單片機(jī)的程序是不應(yīng)該執(zhí)行結(jié)束的,因此最后必然是一個(gè)死循環(huán),這樣才能保證單片機(jī)系統(tǒng)的可靠性。

總結(jié)

于是我們總結(jié)出通常情況下51單片機(jī)程序的幾個(gè)特點(diǎn):

1、包含REG52.H,該文件中定義了P0-P3接口等信息(sfr型和sbit型)。

2、單片機(jī)主函數(shù)沒有參數(shù),沒有返回值(當(dāng)然寫成int型也不會(huì)報(bào)錯(cuò),但是沒必要)。

3、單片機(jī)主函數(shù)末尾會(huì)有個(gè)死循環(huán),不會(huì)退出。

=======================================================

《單片機(jī)小白學(xué)步》系列教程(原名《單片機(jī)入門指南》)介紹

本系列教程從最基本的入門知識(shí)開始,逐步深入介紹單片機(jī)系統(tǒng)設(shè)計(jì),內(nèi)容包括:
1、入門篇:單片機(jī)等基本概念、各種電子設(shè)計(jì)基本知識(shí)
2、思想篇:單片機(jī)/計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的工程思想
3、學(xué)習(xí)篇:單片機(jī)學(xué)習(xí)過程、方法和技巧,以51單片機(jī)為例介紹,并推廣到其他單片機(jī)
4、應(yīng)用篇:遵循規(guī)范的工程方法,設(shè)計(jì)單片機(jī)系統(tǒng)實(shí)例(計(jì)劃設(shè)計(jì)的系統(tǒng)有:計(jì)算器、電子表、密碼鎖、簡(jiǎn)易手機(jī),具體看有沒有時(shí)間再確定)
5、原理篇:從模擬電路、數(shù)字電路開始,逐步深入介紹單片機(jī)/計(jì)算機(jī)系統(tǒng)原理,并自行設(shè)計(jì)簡(jiǎn)易的CPU(由于個(gè)人水平有限,這部分沒有把握寫好,具體內(nèi)容視情況而定)

教程特點(diǎn)

1、技術(shù)知識(shí)點(diǎn)全面,從入門到精通

包含了各種基本知識(shí),尤其是對(duì)單片機(jī)基本概念的介紹、為什么要用單片機(jī)等,在很多同類書籍教程中都被忽略了。同時(shí)也包含了一些深入的知識(shí),包括原理篇考慮對(duì)單片機(jī)的基本原理進(jìn)行介紹,有助于深入理解單片機(jī)。

本系列教程以51單片機(jī)為例進(jìn)行介紹。通過51介紹完單片機(jī)的基本知識(shí),我會(huì)再把430進(jìn)行簡(jiǎn)要介紹,尤其是對(duì)比兩者之間的優(yōu)缺點(diǎn),讓大家很快感受到430的巨大優(yōu)勢(shì),而學(xué)習(xí)51正好為快速了解430打下了堅(jiān)實(shí)的基礎(chǔ)。

2、除了單片機(jī)知識(shí),還有思想、方法、技巧的介紹

本系列教程中,介紹單片機(jī)各種模塊編程知識(shí)的主要是學(xué)習(xí)篇,而學(xué)習(xí)篇只是整個(gè)教程的一部分。在學(xué)習(xí)篇中我會(huì)貫穿各種方法技巧,如何理解一些模塊功能,怎么看時(shí)序圖,嚴(yán)格遵守工程思想進(jìn)行編程,程序發(fā)生了錯(cuò)誤怎么調(diào)試等等。而在思想篇中會(huì)總體介紹很多重要的思想,為后面的學(xué)習(xí)做好準(zhǔn)備工作。

3、知識(shí)先后順序的設(shè)計(jì)

單片機(jī)學(xué)習(xí)過程中,涉及大量的知識(shí),而且很多知識(shí)之間相互依賴,關(guān)聯(lián)很強(qiáng)。

本系列教程對(duì)知識(shí)的先后順序進(jìn)行比較明確的規(guī)劃,盡最大可能符合人的認(rèn)知過程。但是實(shí)際規(guī)劃時(shí)發(fā)現(xiàn),無論怎么調(diào)整知識(shí)的順序,總有一些知識(shí)之間相互依賴,關(guān)系復(fù)雜。例如開始講IO口的時(shí)候肯定會(huì)提到寄存器,而寄存器這個(gè)詞的理解,需要深厚的背景知識(shí)。但是這些背景知識(shí)在沒有進(jìn)行實(shí)踐的時(shí)候也很難理解。

初學(xué)者常常就會(huì)在這樣的地方感覺疑惑不解,不知所措。而每次遇到類似這樣的知識(shí),我會(huì)向初學(xué)者指出,應(yīng)該如何對(duì)待。這個(gè)知識(shí)是應(yīng)該自己去學(xué)習(xí)補(bǔ)充,還是等到學(xué)完原理篇再做理解,而現(xiàn)在又應(yīng)該怎么去看待這個(gè)名詞。

另外,在整個(gè)教程的學(xué)習(xí)前,需要掌握一定的C語言等基礎(chǔ)知識(shí),具體可參考教程第〇篇《序》中的相關(guān)說明
http://www.hainter.com/mcu-primer-0

4、語言通俗易懂

本系列教程力求語言通俗易懂,而不會(huì)用一堆新手不懂的詞語去解釋另一個(gè)不懂的詞語。但是受限于個(gè)人語言表達(dá)能力,可能有些地方表述的比較繁瑣,或者不清楚,希望大家能夠幫忙指出。

其他問題

如果覺得我寫的對(duì)你有幫助,歡迎多多反饋,包括寫的不正確、不合理、不太明白都可以指出來,這樣方便我對(duì)其進(jìn)行完善。

更多可參見:《如何以學(xué)習(xí)單片機(jī)為契機(jī),逐步成為優(yōu)秀的工程師》
http://www.hainter.com/mcu-engineer

本系列教程首發(fā)于我的個(gè)人主頁,歡迎訪問(由于是國外服務(wù)器,速度稍微有點(diǎn)慢):
http://www.hainter.com/category/hacker/mcu-primer

同時(shí)會(huì)將其轉(zhuǎn)發(fā)到CSDN、電子發(fā)燒友等站點(diǎn),歡迎關(guān)注。
CSDN專欄網(wǎng)址?http://blog.csdn.net/column/details/mcu-introduction.html
電子發(fā)燒友論壇?http://bbs.elecfans.com/zhuti_mcu_1.html

本文首發(fā)自我的個(gè)人主頁, 轉(zhuǎn)載請(qǐng)注明來源:http://www.hainter.com/mcu-primer-14?

總結(jié)

以上是生活随笔為你收集整理的单片机小白学步系列(十四) 点亮第一个LED的程序分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97精品人妻麻豆一区二区 | 亚洲综合免费观看高清完整版在线 | 久久精品中文闷骚内射 | 免费人成年激情视频在线观看 | 热@国产| 久久影院国产 | 视频在线观看免费 | 国产精品久久久久久久毛片 | 在线播放第一页 | 日韩特黄一级片 | 91猎奇在线观看 | 香蕉久久av一区二区三区 | 性猛交娇小69hd | 夜夜艹| 成人欧美一区二区 | 午夜美女视频 | 成人av一区| 性感美女视频一二三 | 中文字幕日韩欧美一区二区三区 | 亚洲欧美另类中文字幕 | 日本精品视频在线 | 精品人妻码一区二区三区红楼视频 | 欧美a视频在线观看 | 日韩欧美国产高清91 | 成人久久免费视频 | 打屁股外国网站 | www.av在线.com| 啪啪精品 | 色噜噜亚洲 | 一本色道久久综合狠狠躁 | 欧美日韩视频一区二区三区 | 妹子色综合 | 日本黄色网络 | 少妇又色又紧又黄又刺激免费 | 四虎精品在永久在线观看 | 97精品人妻一区二区三区 | 免费成人美女在线观看 | 每日在线观看av | 免费黄色在线观看 | 久久动态图 | 精品乱码一区二区三区四区 | 日韩欧美国产一区二区三区 | 91精品国产91久久久久久黑人 | 国产内谢 | 18成人免费观看视频 | 污到下面流水的视频 | 一级黄色视 | 日本黄色免费看 | 欧美日韩在线视频 | 国产日本一区二区 | 成人国产精品免费 | 国产第8页 | 国产精品一区一区三区 | 玖玖精品视频 | 亚洲精品丝袜 | 奶波霸巨乳一二三区乳 | 国产香蕉在线 | 国产在线观看你懂的 | 五个女闺蜜把我玩到尿失禁 | eeuss国产一区二区三区黑人 | av爱爱爱 | 亚洲麻豆av| 91av免费看 | 9.1成人看片 | 亚洲精品一区二区三区蜜桃久 | 亚洲 小说 欧美 激情 另类 | 国产乱来 | 91吃瓜在线| 99免费在线视频 | 偷偷操99 | 黄色a级大片 | 一区二区三区激情 | 视频二区三区 | 亚洲成人91 | 久久精品国产亚洲av嫖农村妇女 | 免费观看一级一片 | 国产精品久久麻豆 | 精品一区二区中文字幕 | 黑人巨大精品欧美一区免费视频 | 亚洲小视频在线观看 | 九九热播视频 | 亚洲中文字幕在线观看 | 岛国免费视频 | 中文字幕一区二区三区精彩视频 | 先锋资源久久 | 日韩久久不卡 | 五月婷婷一区二区 | 免费黄色网址大全 | 亚洲精品国产精品国 | 精品看片| 国产精彩视频 | 男人的天堂国产 | 亚色影库 | 国产sm主人调教女m视频 | 欧美一级片观看 | aaaaa级片| 中文字幕av一区 | 久草网视频在线观看 | 一区二区三区精 |