單片機從外形結構上看,就是類似塑料的一坨東西外加幾個金屬引腳,有沒有很像一個甲殼蟲的感覺?
但是就是這么一坨東西,怎么就神奇的寫入程序后讓他干什么就干什么呢?
我們從最簡單的I/O口開始說吧。
單片機的I/O口可用作輸入,也可用作輸出;常見的有8位/16位的;要怎么理解他們與二進制數(shù)據(jù)的關系及區(qū)別呢?
以8051單片機為例,他有四個8位并行I/O口,分別為p0/p1/p2/p3口。
我們可以把整個單片機想象成為一個學校,那么這四個I/O口就相當于學校中一個宿舍樓中的四個宿舍,宿舍編號假定為303/304/305/306。
這時問題來了,剛才不是說是p0/p1/p2/p3口嗎?這個問題可以這么理解:這303/304/305/306宿舍在宿舍評比的活動中分別獲得了“最佳和諧宿舍”/“最佳衛(wèi)生宿舍”/“最佳文明宿舍”/“最佳創(chuàng)新宿舍”稱號,在學校里一提到“最佳和諧宿舍”都知道是303宿舍,這編號303就相當與單片機中給P0口寄存器統(tǒng)一分配的地址,“最佳和諧宿舍”就相當于特殊寄存器名稱,也就是說我們說“303宿舍”和“最佳和諧宿舍”指的都是同一個宿舍。
每個宿舍有八張床位,宿舍304內的八張床編號為304.0/304.2/....../304.7,每張床上面綁了一根電線連接到學校外面,這電線的露頭就是引腳P1.0/P1.1....../P1.7。這宿舍就相當于單片機中的寄存器,這電線露頭就相當于單片機的引腳,8位的單片機每個宿舍有8張床,16位的單片機每個宿舍中有16張床,以此類推。
我們使用單片機的I/O口一般做為輸入/輸出口來用,用的時候怎么理解呢?
假如我需要用P0口輸出八個高電平以驅動外圍電路,我們只用向P0口寫入11111111就行了,也就是讓303宿舍內的八張床上都睡上人,那么引腳就是高電平了,想讓哪個引腳為低電平,讓那個床鋪上的人出去談戀愛就可以了。
P0口的輸入可以理解為我不管你們303宿舍的人干啥去了,我就想知道你們宿舍現(xiàn)在哪個床鋪上睡的有人哪個床鋪上沒有睡人就可以了。
這是小編第一次發(fā)文章,51單片機方面有不懂的可以給小編留言,小編做為于論的第二篇。
聯(lián)系客服