在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

51單片機(jī)如何進(jìn)行模塊化編程

ss ? 作者:工程師譚軍 ? 2018-09-11 09:11 ? 次閱讀

本文主要是關(guān)于51單片機(jī)的相關(guān)介紹,并著重對(duì)51單片機(jī)的原理及其模塊化編程進(jìn)行了詳盡的闡述。

51單片機(jī)

51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8004單片機(jī),后來隨著Flash rom技術(shù)的發(fā)展,8004單片機(jī)取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長的一段時(shí)間內(nèi)將占有大量市場。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是51系列的單片機(jī)一般不具備自編程能力。

功能

·8位CPU·4kbytes程序存儲(chǔ)器(ROM) (52為8K)

·128bytes的數(shù)據(jù)存儲(chǔ)器(RAM) (52有256bytes的RAM)

·32條I/O口線·111條指令,大部分為單字節(jié)指令

·21個(gè)專用寄存器

·2個(gè)可編程定時(shí)/計(jì)數(shù)器·5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))

·一個(gè)全雙工串行通信

·外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB

·外部程序存儲(chǔ)器尋址空間為64kB

·邏輯操作位尋址功能·雙列直插40PinDIP封裝

·單一+5V電源供電

CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;

RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);

ROM:用以存放程序、一些原始數(shù)據(jù)和表格;

I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出

T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;

五個(gè)中斷源的中斷控制系統(tǒng);

一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;

片內(nèi)振蕩器時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M—12M。

功能

·8位CPU·4kbytes程序存儲(chǔ)器(ROM) (52為8K)

·128bytes的數(shù)據(jù)存儲(chǔ)器(RAM) (52有256bytes的RAM)

·32條I/O口線·111條指令,大部分為單字節(jié)指令

·21個(gè)專用寄存器

·2個(gè)可編程定時(shí)/計(jì)數(shù)器·5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))

·一個(gè)全雙工串行通信口區(qū)別

同樣的一段程序,在各個(gè)單片機(jī)廠家的硬件上運(yùn)行的結(jié)果都是一樣的,如ATMEL的89C51(已經(jīng)停產(chǎn))、89S51, PHILIPS,和WINBOND等,我們常說的已經(jīng)停產(chǎn)的89C51指的是ATMEL公司的 AT89C51單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由Flash(程序存儲(chǔ)器的內(nèi)容至少可以改寫1000次)存儲(chǔ)器取代了原來的ROM(一次性寫入),AT89C51的性能相對(duì)于8051已經(jīng)算是非常優(yōu)越的了。

不過在市場化方面,89C51受到了PIC單片機(jī)陣營的挑戰(zhàn),89C51最致命的缺陷在于不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續(xù)MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,89S51已經(jīng)成為了實(shí)際應(yīng)用市場上新的寵兒,作為市場占有率第一的Atmel公司已經(jīng)停產(chǎn)AT89C51,將用AT89S51代替。89S51在工藝上進(jìn)行了改進(jìn),89S51采用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以向下兼容89CXX等51系列芯片。同時(shí),Atmel不再接受89CXX的定單,大家在市場上見到的89C51實(shí)際都是Atmel前期生產(chǎn)的巨量庫存而以。如果市場需要,Atmel當(dāng)然也可以再恢復(fù)生產(chǎn)AT89C51。

89S51相對(duì)于89C51增加的新功能包括:

-- 新增加很多功能,性能有了較大提升,價(jià)格基本不變,甚至比89C51更低!

-- ISP在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強(qiáng)大易用的功能。

-- 最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計(jì)算速度。

-- 具有雙工UART串行通道。

-- 內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像89C51那樣外接看門狗計(jì)時(shí)器單元電路。

-- 雙數(shù)據(jù)指示器。

-- 電源關(guān)閉標(biāo)識(shí)。

-- 全新的加密算法,這使得對(duì)于89S51的盜版變?yōu)椴豢赡?,程序的保密性大大加?qiáng),這樣就可以有效的保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯。

-- 兼容性方面:向下完全兼容51全部字系列產(chǎn)品。比如8051、89C51等等早期MCS-51兼容產(chǎn)品。也就是說所有教科書、網(wǎng)絡(luò)教程上的程序(不論教科書上采用的單片機(jī)是8051還是89C51還是MCS-51等等),在89S51上一樣可以照常運(yùn)行,這就是所謂的向下兼容。

比較結(jié)果:就如同INTEL的P3向P4升級(jí)一樣,雖然都可以跑Windows98,不過速度是不同的。從AT89C51升級(jí)到AT89S51 ,也是同理。和S51比起來,C51就要遜色一些,實(shí)際應(yīng)用市場方面技術(shù)的進(jìn)步是永遠(yuǎn)向前的。

·外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB

·外部程序存儲(chǔ)器尋址空間為64kB

·邏輯操作位尋址功能·雙列直插40PinDIP封裝

·單一+5V電源供電

CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;

RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);

ROM:用以存放程序、一些原始數(shù)據(jù)和表格;

I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出

T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;

五個(gè)中斷源的中斷控制系統(tǒng);

一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;

片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M—12M。

51單片機(jī)如何進(jìn)行模塊化編程

分模塊的好處

首先,這是我在寫萬年歷和溫度傳感器的時(shí)候,顯然這是我經(jīng)過收縮函數(shù)之后的程序

51單片機(jī)如何進(jìn)行模塊化編程

由上圖可以看出,當(dāng)我收縮函數(shù)的時(shí)候,代碼已經(jīng)到達(dá)了451行,而當(dāng)我打開之后,函數(shù)就達(dá)到了上千行,你們想想,當(dāng)你看著這一千多行的代碼時(shí),你能夠方便的從中找出僅僅是一行的錯(cuò)誤嗎?這顯然是不可能的。既然對(duì)于自己這個(gè)打代碼的人都很難看得懂,更別說別人了!

而讓我們來看看下面這個(gè)同樣的程序

51單片機(jī)如何進(jìn)行模塊化編程

51單片機(jī)如何進(jìn)行模塊化編程

怎么樣,是不是看得容易了許多。對(duì)于學(xué)過51單片機(jī)的人來說,他能知道:

第一個(gè)模塊是主函數(shù)模塊,第二個(gè)模塊是液晶顯示和數(shù)碼管顯示模塊,第三個(gè)是時(shí)間延時(shí)模塊,第四個(gè)是溫度傳感器模塊。

而對(duì)于沒學(xué)過的人來說呢,看我的模塊名稱他也能知道第一個(gè)是主函數(shù)模塊,第二個(gè)是和顯示有關(guān)的模塊,而第三個(gè)是和時(shí)間有關(guān)的模塊,最后一個(gè)雖然他不知道,但他可以百度對(duì)吧,就可以知道這是和溫度傳感器有關(guān)的模塊。

這樣一看,整個(gè)程序就非常的清晰,每個(gè)人都能看懂你的程序在哪定義了些什么。而這對(duì)于每個(gè)人日后的工作來說是至關(guān)重要的。想要讓別人能看懂你的代碼,就要好好的規(guī)劃自己程序的模塊怎么劃分,才能讓別人看的簡單。對(duì)于所有想要從事有關(guān)于計(jì)算機(jī)的職業(yè)的人,只要你不是那種萬中無一IT大佬,你都不可能獨(dú)自完成整個(gè)軟件的程序設(shè)計(jì),公司里都會(huì)把整個(gè)程序分成許多的模塊,讓每個(gè)人完成各自的模塊,最后再由專門的人員整合起來。對(duì)于現(xiàn)在的我們來說,養(yǎng)成寫程序分模塊的習(xí)慣尤為重要。

接下來講講干貨

首先你得有主函數(shù)的模塊,(這個(gè)最后整合了之后再講)然后是其他的模塊。

先來講講分模塊。開始你要建立一個(gè)工程,對(duì)于單片機(jī)來說,只要在工程文件下建立就

51單片機(jī)如何進(jìn)行模塊化編程

在自己的工程文件下建立 .c 的文件就可以(名字用小寫)。

(對(duì)于c語言來說主模塊和其它模塊是不建到一起的,這個(gè)本人用的是VS2017而且學(xué)的時(shí)間不長,所以就是在這隨口提一下。)

(以delay模塊為例)

創(chuàng)建好了 .c 文件后,我們把.c文件添加進(jìn)工程中,之后還需要在創(chuàng)建一個(gè) .h 的文件(假如你的.c文件是delay.c那么你的.h文件必須為delay.h的文件,且這個(gè)文件要與.c的文件放在同一個(gè)文件夾中)類似以下這樣

接下來就先講講.c的文件

51單片機(jī)如何進(jìn)行模塊化編程

首先要寫的就是 #include“delay.h” 記住這個(gè)函數(shù)必須要有,它所添加的就是我們剛剛建立的那個(gè).h的文件,通過這個(gè)函數(shù)我們把它們關(guān)聯(lián)起來(其他的學(xué)過c語言的應(yīng)該都知道,添加需要的庫,恒定義,創(chuàng)建一些需要使用的函數(shù))

接下來就是重點(diǎn)的.h文件

51單片機(jī)如何進(jìn)行模塊化編程

基本的寫法就是

#ifndef __(你所定義的.h文件的大寫)_H__

#define __(你所定義的.h文件的大寫)_H__

這里的東西是你之前在.c文件中定義過的函數(shù)(記住不要全部復(fù)制,只需復(fù)制開頭的函數(shù))

#endif

51單片機(jī)如何進(jìn)行模塊化編程

大體上就是這樣的,只需要復(fù)制開頭的函數(shù),不過切記,函數(shù)后面的分號(hào)千萬千萬千萬別忘了

好了這就是一個(gè)時(shí)間的模塊了,其它的模塊也一樣,接下來就到最重要的一步---整合

51單片機(jī)如何進(jìn)行模塊化編程

在main函數(shù)也就是主函數(shù)當(dāng)中,當(dāng)我們需要使用我們之前定義的函數(shù)的時(shí)候,我們就需要在開頭把函數(shù)所在的文件添加進(jìn)去,正如我所寫的

#include“display.h” #include“delay.h” #include“de18b20.h”

其余的就是與你的主函數(shù)寫的程序相關(guān)的東西

其它模塊的互相關(guān)聯(lián)

其它的模塊也可以像主模塊那樣關(guān)聯(lián)起來的

51單片機(jī)如何進(jìn)行模塊化編程

就拿我上面這個(gè)ds18b20的.c文件來講,在它的函數(shù)里是需要用到延時(shí)的函數(shù)的,而延時(shí)函數(shù)是定義在delay模塊里的,因此我們需要添加delay的模塊才能使用我們定義延時(shí)函數(shù),所以就有了 #include “delay.h”

結(jié)語

關(guān)于51單片機(jī)的相關(guān)介紹就到這了,如有不足之處歡迎指正。

相關(guān)閱讀推薦:51系列與幾款常見的單片機(jī)性能對(duì)比

相關(guān)閱讀推薦:三種方法教你如何破解51單片機(jī)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6065

    文章

    44944

    瀏覽量

    647922
  • 模塊化編程
    +關(guān)注

    關(guān)注

    4

    文章

    17

    瀏覽量

    7805
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)C語言模塊化編程

    單片機(jī)C語言模塊化編程下面讓我們揭開模塊化神秘面紗,一窺其真面目。
    發(fā)表于 01-14 16:46

    單片機(jī)模塊化是如何進(jìn)行編程的?

    單片機(jī)模塊化是如何進(jìn)行編程的?
    發(fā)表于 10-21 06:20

    什么是模塊化編程模塊化編程的注意事項(xiàng)

    、回顧上篇文章,我寫了單片機(jī)的實(shí)戰(zhàn),數(shù)碼管的消影。這篇文章,將對(duì)單片機(jī)模塊化編程進(jìn)行一個(gè)記錄講解。二、什么是
    發(fā)表于 02-23 07:14

    8051模塊化編程分析

    本文以“60秒倒計(jì)時(shí)電路”為例談一談51 單片機(jī)匯編語言模塊化編程的一點(diǎn)技巧
    發(fā)表于 06-30 11:04 ?3630次閱讀
    8051<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>分析

    單片機(jī)模塊化編程方法

    基于51單片機(jī)模塊化學(xué)習(xí),是一個(gè)不錯(cuò)的手冊,值得收藏
    發(fā)表于 11-25 11:26 ?63次下載

    單片機(jī)的C語言模塊化編程

    單片機(jī)的C語言模塊化編程
    發(fā)表于 10-13 11:16 ?51次下載
    <b class='flag-5'>單片機(jī)</b>的C語言<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>

    單片機(jī)教程之如何進(jìn)行單片機(jī)內(nèi)部資源的C51編程

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)教程之如何進(jìn)行單片機(jī)內(nèi)部資源的C51編程詳細(xì)資料免費(fèi)下載
    發(fā)表于 11-30 18:02 ?21次下載
    <b class='flag-5'>單片機(jī)</b>教程之如<b class='flag-5'>何進(jìn)行</b><b class='flag-5'>單片機(jī)</b>內(nèi)部資源的C<b class='flag-5'>51</b><b class='flag-5'>編程</b>

    何進(jìn)行單片機(jī)模塊化編程詳細(xì)資料說明

    單片機(jī)編程時(shí),如果代碼量不多,可以將所有的函數(shù)和定義等放在一個(gè)main.c文件中,但是隨著代碼量的增加,如果將所有代碼都放在同一個(gè).C文件中,會(huì)使得程序結(jié)構(gòu)混亂、可讀性與可移植性變差,而模塊化
    發(fā)表于 08-06 17:34 ?3次下載
    如<b class='flag-5'>何進(jìn)行</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>詳細(xì)資料說明

    何進(jìn)行51單片機(jī)的SecureCRT安裝

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何進(jìn)行51單片機(jī)的securecrt安裝。
    發(fā)表于 07-25 17:36 ?1次下載
    如<b class='flag-5'>何進(jìn)行</b><b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的SecureCRT安裝

    單片機(jī)】Keil+Proteus流水燈(模塊化編程

    【征服單片機(jī)】實(shí)戰(zhàn)篇:Keil+Proteus流水燈(模塊化編程)主要是Keil的模塊化編程,同時(shí)實(shí)現(xiàn)了一個(gè)小實(shí)驗(yàn),通過Keil
    發(fā)表于 11-17 11:06 ?15次下載
    【<b class='flag-5'>單片機(jī)</b>】Keil+Proteus流水燈(<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>)

    51單片機(jī)-矩陣鍵盤模塊-長短按鍵&數(shù)碼管顯示-模塊化編程模板

    51單片機(jī)-矩陣鍵盤模塊-長短按鍵&數(shù)碼管顯示-模塊化編程模板
    發(fā)表于 11-21 09:21 ?28次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>-矩陣鍵盤<b class='flag-5'>模塊</b>-長短按鍵&數(shù)碼管顯示-<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>模板

    經(jīng)驗(yàn)分享|十年老司機(jī)的單片機(jī)模塊化編程

    經(jīng)驗(yàn)分享|十年老司機(jī)的單片機(jī)模塊化編程
    發(fā)表于 11-23 17:51 ?33次下載
    經(jīng)驗(yàn)分享|十年老司機(jī)的<b class='flag-5'>單片機(jī)</b><b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>

    單片機(jī)工程模塊化操作_適用單片機(jī)編程新手

    對(duì)于一些接觸單片機(jī)編程不久的小萌新來說,模塊化編程這個(gè)概念剛接觸的時(shí)候可能會(huì)很懵,到底什么是模塊化編程
    發(fā)表于 11-23 17:51 ?26次下載
    <b class='flag-5'>單片機(jī)</b>工程<b class='flag-5'>模塊化</b>操作_適用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>編程</b>新手

    單片機(jī)零基礎(chǔ)入門(8-5)模塊化編程

    、回顧上篇文章,我寫了單片機(jī)的實(shí)戰(zhàn),數(shù)碼管的消影。這篇文章,將對(duì)單片機(jī)模塊化編程進(jìn)行一個(gè)記錄講解。二、什么是
    發(fā)表于 12-31 18:55 ?20次下載
    <b class='flag-5'>單片機(jī)</b>零基礎(chǔ)入門(8-5)<b class='flag-5'>模塊化</b><b class='flag-5'>編程</b>

    51單片機(jī)模塊化編程設(shè)計(jì)與實(shí)例要點(diǎn)分析

    51單片機(jī)模塊化開發(fā)教程
    發(fā)表于 02-24 16:40 ?2次下載
    主站蜘蛛池模板: 国产98色在线 | hd性欧美 | 你懂的视频在线看 | 日本黄色绿像 | 九色综合久久综合欧美97 | 免费看黄色片的软件 | 99色在线| 丁香婷婷激情五月 | 亚洲五月激情综合图片区 | 成年人激情视频 | 午夜看一级特黄a大片 | 国产精品自在线天天看片 | 亚洲情a成黄在线观看动 | 国产成人精品一区二区仙踪林 | 三级理论手机在线观看视频 | 九九美剧| 中文4480yy私人免费影院 | 天天操天天草 | 国产亚洲精品aaa大片 | 亚洲精品美女久久久 | 中文字幕1区 | 久久青青草原精品老司机 | 五月激情网站 | 91免费视频网站 | 亚洲色图欧美视频 | 男人午夜网站 | 久久久成人影院 | 成人观看天堂在线影片 | 99久久网站| 啪啪调教所29下拉式免费阅读 | 日本xxxx色视频在线观看免费 | 免费国产zzzwww色 | 婷婷丁香亚洲 | 日韩毛片免费视频 | 色天使色护士 | 奇米影视四色首页手机在线 | 午夜影院一区二区三区 | h国产| 久久五月网| 在线观看黄色网 | 久久久精品久久久久久久久久久 |