久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 25229|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

什么是51單片機(jī)-51單片機(jī)入門篇

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:94097 發(fā)表于 2015-10-30 14:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
 我覺(jué)得是時(shí)候有必要出一些“掃盲”文章了,在2年多與網(wǎng)友們的交流中,發(fā)現(xiàn)了很多問(wèn)題,這些問(wèn)題大多數(shù)發(fā)生在初學(xué)者上,不管是大學(xué)生還是DIY愛(ài)好者,只要是初學(xué)者,難免會(huì)產(chǎn)生一些基礎(chǔ)的異或,加入技術(shù)群有覺(jué)得不好意思發(fā)問(wèn)。所以只要有時(shí)間,我就會(huì)出些“掃盲”文章,轉(zhuǎn)為小白解惑。如果大家還想有其他的方面的更多了解或者疑問(wèn),歡迎在文章結(jié)尾留言!

一、什么是51單片機(jī),現(xiàn)在很多人有用51的,用52的,還有用stc12stc15的,這些都有什么區(qū)別?

通常我們說(shuō)的51單片機(jī),是Intel 8031指令系統(tǒng)單片機(jī)的統(tǒng)稱,并不是某一種型號(hào) ,盡管單片機(jī)型號(hào)繁多,但根據(jù)它們的構(gòu)架及指令系統(tǒng),都可以歸為MCS51。對(duì)于用戶來(lái)說(shuō),最直觀的感受就是程序的兼容性,比如AT89C51的程序拿到AT89C52上可以通用,反之AT89C52的程序也可以用在AT89C51芯片上,當(dāng)然,第二種情況有個(gè)前提,下文我會(huì)提到。也許上面的話理解起來(lái)比較復(fù)雜,那么我概括為一句:兩個(gè)51芯片功能不沖突的前提下,程序可以互相移植,這就是相同指令系統(tǒng)的單片機(jī)。

不管是學(xué)生還是diy愛(ài)好者,最開(kāi)始接觸的多為AT89C51AT89C52,或STC系列的5152,乃至后面的AT89S系列、STC12系列、STC15系列,都屬于51芯片,他們的構(gòu)架是一樣的。只是隨著需求的增加,單片機(jī)的功能越來(lái)越多,處理速度越來(lái)越快,才有了不同的型號(hào),但它們的母親,都是偉大的intel,雖然功能有變化,但指令系統(tǒng)是不變的,這樣就方便了用戶移植程序。現(xiàn)在流行的單片機(jī)很多種類,只要說(shuō)是51構(gòu)架的,那么程序都是兼容的,可以不管型號(hào)。拿來(lái)就用。

二、        既然程序是兼容的,那么為什么很多時(shí)候程序直接下載后,卻不能正常工作?

程序的兼容是有前提的,我通過(guò)舉例來(lái)說(shuō)明:

1 AT89C51AT89C52程序是否完全兼容

151的程序向52移植時(shí),完全兼容,無(wú)需任何改動(dòng)即可正常 工作

25251移植時(shí),不完全兼容,因?yàn)?/span>52有些功能是51沒(méi)有的,涉及52增強(qiáng)功能的,不能直接向51移植。最常見(jiàn)的例子就是定時(shí)器2,52芯片有定時(shí)器2,但51沒(méi)有,那么涉及到定時(shí)2的程序就不能直接給51用,如果非要用,就只能把定時(shí)器2的功能給定時(shí)器0或定時(shí)器1,這就需要改程序了

總結(jié):只要不涉及特殊功能,程序完全兼容

2AT89C52STC89C52RC不同公司的芯片程序是否兼容

不同公司的51芯片程序到底兼容嗎?這個(gè)是最困惑大家的,下面以AT52stc52做說(shuō)明

(1)    如果是經(jīng)典程序,那么也是完全兼容的,這里說(shuō)的經(jīng)典程序指的是我們實(shí)驗(yàn)里老生常談的流水燈、點(diǎn)陣、定時(shí)器秒表、蜂鳴器唱歌等等,程序無(wú)需做任何改動(dòng)即可下載直接使用。它們連封裝都一樣,所以說(shuō),在無(wú)特殊要求時(shí),可以直接替換。

(2)    不能直接替換的程序與例1中提到的是一樣的,即功能差異,比如說(shuō)stc52eeprom,而AT52沒(méi)有,所以含有eeprom程序的,就不能直接移植

 

總結(jié),只要不涉及到功能差異的程序,也是可以互換的,但兩者在處理速度上略有差異,不過(guò)不大,但涉及到不同的芯片時(shí),頭文件是需要注意的,一般來(lái)說(shuō),沒(méi)用的附加功能,reg52.h都適用,但如果在移植程序的時(shí)候,用到了附加功能,那就只能將頭文件改為這個(gè)芯片的頭文件。

3:相同公司,增強(qiáng)型與非增強(qiáng)型單片機(jī)程序是否兼容?

現(xiàn)在不比以前了,最開(kāi)始學(xué)單片機(jī)的朋友們,接觸最多的都是12T單片機(jī),我讀大學(xué)的時(shí),STC12系列的1T芯片都還沒(méi)興起。但我們總歸是要與時(shí)俱進(jìn)的,現(xiàn)在在網(wǎng)上買單片機(jī)DIY套件,絕大多數(shù)都不是你正在學(xué)習(xí)的單片機(jī)型號(hào),那么程序也會(huì)有所不同,現(xiàn)在常說(shuō)的就是增強(qiáng)型51和非增強(qiáng)型51,那么到底有多大差異?下面將以STC兩種經(jīng)典的單片機(jī)型號(hào)做解說(shuō)

STC89C52RC(下簡(jiǎn)稱89C52)和STC12C5A60S2(下簡(jiǎn)稱STC12)的程序兼容性

(1)    與例12中涉及到的一樣,在沒(méi)有功能性差異的前提下,程序也是兼容的,這里說(shuō)一下STC12C5A60S2中的經(jīng)典功能——AD轉(zhuǎn)換。STC12內(nèi)置了8個(gè)10AD采集通道,無(wú)需外部AD采集芯片,89C52如果想做數(shù)模轉(zhuǎn)換,就必須外接AD轉(zhuǎn)換芯片,顯然,涉及到AD部分的程序,是不能兼容的,這就是功能差異。當(dāng)然,如果你放著STC12內(nèi)置AD功能不用,非要用外接AD轉(zhuǎn)換芯片,那程序自然就兼容了

2)軟件延時(shí)不兼容

兩款芯片在處理速度上有著本質(zhì)不同,89C5212T單片機(jī),STC121T單片機(jī),這里可以簡(jiǎn)單理解為后者比前者處理速度更快,因?yàn)樘幚硭俣茸兛炝耍绦虿荒苤苯右浦玻枰D(zhuǎn)換方可正常使用。至于到底快了多少,STC的官方手冊(cè)給出了說(shuō)明,下圖即為STC官方給出的指令周期對(duì)照表(部分),列舉了一些12T單片機(jī)和1T單片機(jī)的指令處理速度差異

 

可以看出,1T單片機(jī)對(duì)指令提速了不少,但有人會(huì)說(shuō),我學(xué)的是C,匯編不懂,給我看這個(gè)表也沒(méi)意義。這樣說(shuō)是不對(duì)的,不管你懂不懂,你至少要知道指令都是提速的,因?yàn)樵?/span>keil下,C語(yǔ)言是先轉(zhuǎn)換為匯編語(yǔ)言的。匯編指令提速了,對(duì)應(yīng)的C語(yǔ)言自然也提速了。至于說(shuō),在實(shí)際應(yīng)用中,到底提速了多少呢?特別是針對(duì)C語(yǔ)言用戶,我只知道我寫(xiě)的程序是C,不可能讓我轉(zhuǎn)譯到匯編再計(jì)算我提高了多少時(shí)間吧?接下來(lái)我將作出詳細(xì)說(shuō)明。

我們先來(lái)看一段程序:
 

這是一個(gè)流水燈程序,單片機(jī)工作在12MHz晶振下,閃爍時(shí)間為100毫秒,這是在89C52下的程序,延時(shí)子程序是通過(guò)STC官方軟件生成的,如下圖。
 

我們要研究的問(wèn)題在于,這個(gè)程序能不能直接用在STC12單片機(jī)上?有多大差異?

答案是可以直接下載到STC12單片機(jī)執(zhí)行的,只是閃爍時(shí)間會(huì)比100毫秒要短,因?yàn)橹噶钏俣忍崽嵘耍?/span>P2=0xaa這種端口賦值語(yǔ)句我們可以忽略不計(jì),因?yàn)椴还茉趺刺嵘俣龋@一句對(duì)整個(gè)程序的周期影響不大。我們主要來(lái)研究下100毫秒的延時(shí)程序發(fā)生了怎樣的變化。

這個(gè)100毫秒的延時(shí)程序,下載到STC12單片機(jī)時(shí),延時(shí)時(shí)間大約是16毫秒左右。那么為什么是16毫秒?是怎么算出來(lái)的?下面我就一一作出解釋。

我通過(guò)兩種方法來(lái)驗(yàn)證,第一種就是把這些C語(yǔ)言轉(zhuǎn)譯為匯編,根據(jù)匯編指令計(jì)算出提高的速度,當(dāng)然這種方法很蛋疼,就算懂匯編,計(jì)算起來(lái)也麻煩;第二種就是通過(guò)邏輯分析儀來(lái)檢測(cè)IO端口的輸出變化,P2=0xaaP2=0x55存在高低電平的變化周期,觀察周期變化即可。

通過(guò)上述兩種方法,都可以得出的結(jié)論是,速度提高了6.5倍左右,可以近似的認(rèn)為提高了7倍。也就是說(shuō),89C52100毫秒的延時(shí)程序,在給STC12執(zhí)行時(shí),速度提高了67倍(在匯編指令下,不同指令的提速不同,平均下來(lái),就有了這樣一個(gè)倍數(shù)關(guān)系)。

那么有人就要問(wèn)了,我現(xiàn)在有個(gè)89C52的流水燈程序,非要寫(xiě)在STC12芯片上,我又不會(huì)改延時(shí)程序,只會(huì)復(fù)制粘貼,怎么辦?我估計(jì)STC也考慮到了程序移植上帶來(lái)的計(jì)算不變,所以特別設(shè)計(jì)了帶有輔助功能的下載軟件,我們只需用“軟件延時(shí)計(jì)算器”這一功能就可以完美解決。假設(shè)我們現(xiàn)在是在STC12環(huán)境下開(kāi)發(fā)程序,那么先將之前的89C52流水燈程序復(fù)制過(guò)來(lái)(單片機(jī)型號(hào)對(duì)應(yīng)的頭文件自行替換),如圖:
 

我們只要替換掉這個(gè)延時(shí)程序就可以了,當(dāng)前的延時(shí)程序是89C5212Mhz100毫秒,只需要改為STC1212Mhz100毫秒就可以了。在這里強(qiáng)烈推薦用stc官方下載器的“軟件延時(shí)計(jì)算器”功能,只需四步,如圖:
 

第一步選擇晶振大小,第二步設(shè)置延時(shí)時(shí)間,第三步選擇單片機(jī)指令集種類,第四步生成C代碼或匯編代碼,最后復(fù)制這些代碼就可以了。將89C52的延時(shí)程序刪除,替換為剛剛生成的STC12延時(shí)程序,那么STC12芯片的流水燈程序就完成了!如圖:
 

(上圖中的延時(shí)程序就是基于STC12芯片的延時(shí)程序,與89C52下的延時(shí)程序不一樣,注意區(qū)別)

以上只是一個(gè)簡(jiǎn)單程序的移植介紹,這種方法也適用于其他程序,比如說(shuō)18B20、液晶顯示等,凡是程序中涉及到的軟件延遲,都可以通過(guò)這種方法替換。我通過(guò)這種替換延時(shí)程序的方法,移植了很多程序,諸如液晶顯示、溫度程序、DS1302程序等等。

3)定時(shí)器延時(shí)

單片機(jī)除了軟件延時(shí),還有定時(shí)器延時(shí),這兩種延時(shí)都是我們最常用的,那么89C52STC12的定時(shí)器有變化嗎?接下來(lái)我們看一下STC官方手冊(cè)中給出的說(shuō)明:
 

可以看出,在我們常用的定時(shí)器功能、串口功能上,程序都是完全兼容的,避免了移植過(guò)程中繁瑣。同樣的,STC官方也說(shuō)明,靠軟件延實(shí)現(xiàn)的延時(shí)是需要做調(diào)整的,與前文的敘述一致。當(dāng)然,STC12系列畢竟和傳統(tǒng)的8051系列有著太大的不同,關(guān)于芯片替換中需要注意的問(wèn)題,就需要用戶自己閱讀STC官方技術(shù)手冊(cè)了。

 以上對(duì)51單片機(jī)及程序兼容性做出了解釋,上述文字僅代表工作室意見(jiàn),難免出現(xiàn)錯(cuò)誤、不足。望高手們更正指出!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:170536 發(fā)表于 2017-4-8 08:27 | 只看該作者
最近用stc15系列代替89c芯片也是遇到問(wèn)題了:irc設(shè)置頻率為6M原89(外晶振6M)ale輸出1M給8279分頻作時(shí)鐘信號(hào),
回復(fù)

使用道具 舉報(bào)

板凳
ID:255072 發(fā)表于 2017-12-18 11:18 | 只看該作者
學(xué)習(xí)了,之前一直在星創(chuàng)客看單片機(jī)教程,學(xué)得差不多了,回頭偶爾看看理論知識(shí)也是很重要的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产乱码久久久久久 | 九色porny自拍视频 | 国产专区视频 | 欧美a在线看 | 久久综合久色欧美综合狠狠 | 成人国产精品 | 亚洲国产成人精品女人久久久野战 | 成人在线免费观看视频 | 91大神在线资源观看无广告 | 久久久久久国产精品免费 | 欧美成人精品一区二区男人看 | 亚洲高清在线观看 | 欧美一区二区在线 | 美女网站视频免费黄 | 成人国产在线视频 | 欧美午夜激情在线 | 国产精品福利视频 | 日韩电影a | 国产精品免费一区二区三区 | 国产精品日日做人人爱 | 亚洲精品视频播放 | 日韩免费在线观看视频 | 在线观看av网站 | 亚洲高清在线 | 精品欧美激情在线观看 | 欧美精品久久 | 国产精品成人一区二区三区 | 日韩中文视频 | 亚洲色图综合网 | 91传媒在线观看 | 四虎影院免费在线播放 | 九九热在线视频 | 亚洲精品国产综合区久久久久久久 | 欧美精品久久 | 欧美一区二区三区在线观看视频 | 日韩av一区在线观看 | 成人国产综合 | 2019天天操| 欧美一区中文字幕 | 亚洲成人高清 | 亚洲国产精品久久久久 |