單片機(jī)編程軟件的選擇常以使用的單片機(jī)為準(zhǔn),目前較為流行的單片機(jī)編程軟件為keil和IAR,這兩款單片機(jī)編程軟件的應(yīng)用對(duì)象存在一些不同。本文,主要向大家介紹IAR單片機(jī)編程軟件的完整安裝過程,并對(duì)每個(gè)過程進(jìn)行講解。
單片機(jī)編程軟件有多種,而對(duì)于單片機(jī)編程軟件的選擇往往基于單片機(jī)類型,如51單片機(jī)應(yīng)當(dāng)選擇keil作為主要的單片機(jī)編程軟件。本文,將向大家簡(jiǎn)單介紹兩種單片機(jī)編程軟件——keil和IAR。
單片機(jī)編程軟件有很多,如IAR和Keil便是兩個(gè)比較知名的單片機(jī)編程軟件。那么,這兩款單片機(jī)編程軟件在應(yīng)用過程中誰更便利呢?這兩款編程軟件之間又有何區(qū)別呢?如果你想有所了解,不妨繼續(xù)往下看。
單片機(jī)中去耦電容在電路中的應(yīng)用
標(biāo)準(zhǔn)的 51 單片機(jī)內(nèi)部有 T0 和 T1 這兩個(gè)定時(shí)器,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機(jī)還會(huì)增加額外的定時(shí)器,在這里我們先講定時(shí)器 0 和 1。前邊提到過,對(duì)于單片機(jī)的每一個(gè)功能模塊,都是由它的 SFR,也就是特殊功能寄存器來控制。與定時(shí)器有關(guān)的特殊功能寄存器,有以下幾個(gè),大家不需要去記憶這些寄存器的名字和作用,你只要大概知道就行,用的時(shí)候,隨時(shí)可以查手冊(cè),找到每個(gè)寄存器的名字和每個(gè)寄存器所起到的作用。
常用的按鍵電路有兩種形式,獨(dú)立式按鍵和矩陣式按鍵,獨(dú)立式按鍵比較簡(jiǎn)單,它們各自與獨(dú)立的輸入線相連接
蜂鳴器從結(jié)構(gòu)區(qū)分分為壓電式蜂鳴器和電磁式蜂鳴器。壓電式為壓電陶瓷片發(fā)音,電流比較小一些,電磁式蜂鳴器為線圈通電震動(dòng)發(fā)音,體積比較小。
為了讓大家充分理解 UART 串口通信的原理,我們先把 P3.0 和 P3.1 當(dāng)做 IO 口來進(jìn)行模擬實(shí)際串口通信的過程,原理搞懂后,我們?cè)偈褂眉拇嫫髋渲脤?shí)現(xiàn)串口通信過程。
我們學(xué)習(xí)串口通信主要是要實(shí)現(xiàn)單片機(jī)和電腦之間的信息交互,可以用電腦控制單片機(jī)的一些信息,可以把單片機(jī)的一些信息狀況發(fā)給電腦上的軟件。下面我們就做一個(gè)簡(jiǎn)單的例程,實(shí)現(xiàn)單片機(jī)串口調(diào)試助手發(fā)送的數(shù)據(jù),在我們開發(fā)板上的數(shù)碼管上顯示出來。
在硬件上,I2C 總線是由時(shí)鐘總線 SCL 和數(shù)據(jù)總線 SDA 兩條線構(gòu)成,連接到總線上的所有器件的 SCL 都連到一起,所有 SDA 都連到一起。
我們知道,打電話的時(shí)候,當(dāng)撥通電話,接聽方撿起電話肯定要回一個(gè)“喂”,這就是告訴撥電話的人,這邊有人了。同理,這個(gè)第九位 ACK 實(shí)際上起到的就是這樣一個(gè)作用。當(dāng)我們發(fā)送完了這 7 位地址和 1 位方向后,如果發(fā)送的這個(gè)地址確實(shí)存在,那么這個(gè)地址的器件應(yīng)該回應(yīng)一個(gè) ACK(拉低 SDA 即輸出“0”),如果不存在,就沒“人”回應(yīng) ACK(SDA將保持高電平即“1”)。
在向 EEPROM 連續(xù)寫入多個(gè)字節(jié)的數(shù)據(jù)時(shí),如果每寫一個(gè)字節(jié)都要等待幾 ms 的話,整體上的寫入效率就太低了。因此 EEPROM 的廠商就想了一個(gè)辦法,把 EEPROM 分頁管理。24C01、24C02 這兩個(gè)型號(hào)是 8 個(gè)字節(jié)一個(gè)頁,而 24C04、24C08、24C16 是 16 個(gè)字節(jié)一頁。我們開發(fā)板上用的型號(hào)是 24C02,一共是 256 個(gè)字節(jié),8 個(gè)字節(jié)一頁,那么就一共有 32 頁。
有了 D/A 這個(gè)武器,我們就不僅僅可以輸出方波信號(hào)了,可以輸出任意波形了,比如正弦波、三角波、鋸齒波等等。以正弦波為例,首先我們要建立一個(gè)正弦波的波表。這些不需要大家去逐一計(jì)算,可以通過搜索找到正弦波數(shù)據(jù)表,然后可以根據(jù)時(shí)間參數(shù)自己選取其中一定量數(shù)據(jù)作為我們程序的正弦波表
RS232 標(biāo)準(zhǔn)是誕生于 RS485 之前的,但是 RS232 有幾處不足的地方:接口的信號(hào)電平值較高,達(dá)到十幾 V,使用不當(dāng)容易損壞接口芯片,電平標(biāo)準(zhǔn)也與TTL 電平不兼容。傳輸速率有局限,不可以過高,一般到一兩百千比特每秒(Kb/s)就到極限了。接口使用信號(hào)線和 GND 與其它設(shè)備形成共地模式的通信,這種共地模式傳輸容易產(chǎn)生干擾,并且抗干擾性能也比較弱。傳輸距離有限,最多只能通信幾十米。通信的時(shí)候只能兩點(diǎn)之間進(jìn)行通信,不能夠?qū)崿F(xiàn)多機(jī)聯(lián)網(wǎng)通信。針對(duì) RS232 接口的不足,就不斷出現(xiàn)了一些新的接口標(biāo)準(zhǔn),RS485 就是其中之一
在使用KEIL的時(shí)候,我們習(xí)慣上在一個(gè).c的文件中把自己要寫的東西按照自己思路的順序進(jìn)行順序書寫。這樣是很普遍的寫法,當(dāng)程序比較短的時(shí)候比如幾十行或者一百多行,是沒有什么問題的。但是當(dāng)程序很長(zhǎng)的時(shí)候,比如你要用到LCD顯示數(shù)據(jù),就有幾個(gè)LCD相關(guān)的函數(shù),然后你想在LCD上顯示溫度,那么就要有DS18B20相關(guān)的操作,這又有幾個(gè)相關(guān)的函數(shù),如果你還想加上去DS1302的時(shí)間顯示功能,那么又要多很多函數(shù)。這樣的話一個(gè)程序下來幾百行是很正常的事情,對(duì)于自己寫的程序可能在自己的腦海中比較清晰,不會(huì)太亂,但是當(dāng)把自己寫的程序交給別人來看的時(shí)候,別人往往會(huì)看的云里霧里,經(jīng)常會(huì)看著看著就不知道你寫的是什么了。