單片機常見(jiàn)問(wèn)題10問(wèn)
機器匯編后得到的數字形式的指令序列以一個(gè)文件的形式保存在磁盤(pán)上,這個(gè)文件的擴展名一般是HEX,即人們常說(shuō)的HEX文件。得到了HEX文件后,就可以將其寫(xiě)入程序存儲器中了。要將程序寫(xiě)入芯片,通常需要一個(gè)稱(chēng)之為“編程器”的專(zhuān)用設備,在計算機上運行與之配套的編程軟件,然后在這個(gè)軟件中打開(kāi)HEX文件,即可將其寫(xiě)入芯片中。隨著(zhù)技術(shù)的發(fā)展,編程方式越來(lái)越多,但總的概念是這樣的,具體的細節,將在另一個(gè)問(wèn)題“單片機編程器是什么”中回答。
4. 8位、16位、32位單片機中的“XX位”指什么?
8位、16位、32位是指單片機的“字長(cháng)”,也就是一次運算中參與運算的數據長(cháng)度,這個(gè)位是指二進(jìn)制位。以8位為例,8位二進(jìn)制的表達范圍是0000,0000~1111,1111即十進(jìn)制的0~255,即每次參與運算的數據最大不能超過(guò)255。而16位機的字長(cháng)是16位,其數據表達范圍是0~65535,即每次參與運算的數據最大不能超過(guò)65535;32位單片機的字長(cháng)是32位,其數據表達范圍是0~4294967295,即每次參與運算的數據最大不能超過(guò)4294967295。
8位、16位、32位與單片機的性能密切相關(guān),通常32位機的性能要高于16位機,而16位機的性能又要高于8位機。為什么會(huì )這樣呢?這要從2個(gè)方面來(lái)分析。第一,位數不同,運算效率不同。對于8位機而言,由于在一次運算中的每一個(gè)數都不能超過(guò)8位,因此即便如100+200=300這樣的運算,它也不能一次完成,因為300已超過(guò)了8位所能表達的最大范圍(255),因此,要對這樣的一個(gè)式子進(jìn)行運算,就要編寫(xiě)一段程序,將運算分步完成,最后合成起來(lái)得到一個(gè)正確的結果。而如果采用16位單片機來(lái)運算的話(huà),那么一次運算就夠了,顯然分步完成所需要的時(shí)間要遠遠大于單步完成所需要的時(shí)間。同樣道理,當某個(gè)運算的結果或者中間值大于65535時(shí),16位機也不能一次運算,要分步實(shí)現它,而32位機則可以一次運算完成。第二,商業(yè)因素。通常運算能力越高,表示這個(gè)單片機性能越強,當然,價(jià)格高一些人們也可以接受,有了價(jià)格空間,生產(chǎn)商通常都會(huì )在這些芯片中提供更多的其他的功能,使得芯片的整體性能得到更大的提升。
典型的單片機中,80C51系列,PIC系列,AVR系列都是8位單片機;80C196、MSP430系列是16位機;而目前非常熱門(mén)的ARM系列則是32位機。
5. 單片機編程器、仿真器、燒寫(xiě)器、下載線(xiàn)各是什么?有什么用處?
單片機編程器是用來(lái)將程序代碼寫(xiě)入存儲器芯片或者單片機內部的工具, 當芯片是雙列直插形式時(shí),直接插在座子上就可以燒寫(xiě)了。 另一種方法是使用下載線(xiàn)。隨著(zhù)技術(shù)的進(jìn)步,越來(lái)越多的單片機芯片開(kāi)始支持“ISP”功能,即In System Programmer,在線(xiàn)可編程技術(shù)。利用這種技術(shù),將空白的(尚未編程的)芯片直接焊在印刷線(xiàn)路板上,利用預先留下的幾個(gè)引腳即可對芯片進(jìn)行編程,不必將芯片拆下來(lái)放到編程器上,因此,這給小批量制作帶來(lái)了極大的方便,也省去了購買(mǎi)價(jià)格昂貴的適配器。
6.自學(xué)單片機必備的硬件設備有哪些?
學(xué)習單片機,除了需要電腦以外,還需要以下的一些器材。
1.實(shí)驗板
如果你對單片機還一無(wú)所知,那么自制或者購買(mǎi)一塊實(shí)驗板是比較好的選擇。通常在實(shí)驗板上會(huì )設計一些開(kāi)關(guān)、LED指示燈、數碼管、各種接口芯片等常用器件,通過(guò)對這些器件的編程練習,逐步掌握單片機的編程技術(shù)。
2.仿真機
仿真機的用途是替代電路板上的單片機芯片,仿真機通過(guò)串行口、USB接口等方式與與PC機聯(lián)機通信,接收PC端控制軟件發(fā)出的指令,以單步、過(guò)程單步、全速運行等各種方式來(lái)執行程序,以單步或過(guò)程單步方式執行程時(shí),每次執行完程序后可以將執行的結果反饋到PC端的控制軟件中顯示出來(lái)。由于單片機編程時(shí)必須要明確每一條指令執行完畢后會(huì )有什么樣的結果,弄清實(shí)際運行后的結果是否與設想的結果相符,因此,仿真功能對于單片機的學(xué)習和開(kāi)發(fā)可以起到很重要的幫助作用。
3.編程器或者下載線(xiàn)
其用途是將代碼寫(xiě)入單片機芯片內部。對于學(xué)習者來(lái)說(shuō),有了仿真機也可暫時(shí)不配編程器或下載線(xiàn),因為有了實(shí)驗板、仿真機就可以做實(shí)驗了。但是建議配置一臺,這樣可以對單片機開(kāi)發(fā)的各個(gè)環(huán)節都有所了解。
4.萬(wàn)用表、電烙鐵等電子制作工具
單片機開(kāi)發(fā),不是簡(jiǎn)單的編程,到目前為止,還少有純粹的“單片機程序員”,通常要求開(kāi)發(fā)者軟、硬件方面都要熟悉,因此,這些電子制作工作還是要配備的。
需要說(shuō)明的是,這里所說(shuō)的仿真機、實(shí)驗板、下載線(xiàn)或編程器等都是就一般概念而言的,并不涉及到具體的產(chǎn)品,市場(chǎng)上也有一些產(chǎn)品在設計時(shí)將實(shí)驗板、仿真功能、下載或編程功能等中的一部分或者全部都集成到一塊板上,構成一整套的實(shí)驗系統。
7.目前國內常用的單片機有哪些?
1.80C51及其兼容系列
(1)80C51系列,這是最基本的系列。包括80C31,80C51,87C51,80C32,80C52,87C52等芯片,雖然這些芯片已基本不再使用,但它們是后續發(fā)展的芯片的基礎。其中80C31單片機片內沒(méi)有ROM,80C51內部是一次性可寫(xiě)4K的PROM,87C51內部是4K的EEPROM,這幾種芯片內部RAM均為128字節。而后三種芯片其內部RAM均為8K,后兩種芯片的片內ROM為8K字節。
(2)80C51兼容系列
這些芯片通常都與51系列單片機在指令一級兼容,但都擴充了諸多的新功能。常見(jiàn)的主要有以下一些。
STC89系列單片機,其主要特點(diǎn)有:直接通過(guò)串口對單片機編程;可編程為倍速運行;超低功耗;內置看門(mén)狗;內部FLASH ROM可作為EEPROM作斷電保存數據之用。
評論