出版時(shí)間:2010-4 出版社:科學(xué)出版社 作者:(日)光永法明,后田敏 著,王會(huì)芝 譯,秦曉平 審 頁(yè)數(shù):292 譯者:王會(huì)芝
前言
自己制作電子產(chǎn)品是一件很快樂的事情。我經(jīng)?;貞浧鹦W(xué)時(shí)代,當(dāng)時(shí)不懂過(guò)多的原理,只是會(huì)使用電烙鐵焊接電子產(chǎn)品套件的那種愉快情景。在制作電子產(chǎn)品時(shí),大多是由組裝套件開始起步的,每當(dāng)完成一件自制的電子產(chǎn)品,興奮之情油然而生。可是套件中元件往往不能滿足要求,這時(shí)就必須發(fā)揮自己的聰明才智來(lái)解決問題,其中比較復(fù)雜的是嘗試畫出電路圖,或者利用多種套件進(jìn)行組合。為了實(shí)現(xiàn)產(chǎn)品更加小型化,最簡(jiǎn)單的辦法就是使用微控制器。不用改變外部接線,只是改變內(nèi)部的程序,微控制器就可以完成不同的任務(wù)。例如,同一個(gè)微控制器既可以作為機(jī)器人的無(wú)線控制單元實(shí)現(xiàn)對(duì)伺服電機(jī)的控制,也可以作為紅外線遙控裝置的發(fā)送器、接收器,或者作為溫度計(jì)使用。只是改變微控制器的程序而不改變接線,這一優(yōu)越性特別適合于設(shè)備的改造。有時(shí)只需要對(duì)設(shè)備進(jìn)行少許改進(jìn),就可以靈活使用微處理器。目前已有多種類型的微控制器被開發(fā)出來(lái),并在市場(chǎng)上銷售。PIC微控制器是其中價(jià)格低廉、編程簡(jiǎn)單、使用靈便的產(chǎn)品之一。筆者是在晶體管技術(shù)雜志特集號(hào)上初次接觸PIC微控制器的,與此前使用過(guò)的z80單板機(jī)相比,微控制器的集成度高,程序?qū)懭肫鲀r(jià)格低廉,包括仿真器在內(nèi)的開發(fā)環(huán)境都是免費(fèi)提供的,這些特點(diǎn)對(duì)于使用者來(lái)說(shuō),具有強(qiáng)烈的吸引力。凡是實(shí)際應(yīng)用過(guò)這種微控制器的人,無(wú)不感到得心應(yīng)手,不愿舍棄。微控制器需要編程,說(shuō)到編程也許有人會(huì)感到束手無(wú)策,但是只要使用者的控制思路明晰,微控制器的編程工作就會(huì)得心應(yīng)手。本書是以從未接觸過(guò)微控制器的人為對(duì)象,把理解編程基本思路作為重點(diǎn)。本書第1章介紹PIC微控制器,第2章講述微控制器的內(nèi)部動(dòng)作。很多人對(duì)這些內(nèi)容已經(jīng)有所了解,這是因?yàn)閺奈⒖刂破鞯絺€(gè)人電腦,以至更大型的計(jì)算機(jī)中所使用的CPU,其基本結(jié)構(gòu)都是相同的。第3章通過(guò)使用仿真器加深對(duì)微控制器動(dòng)作的理解。第4章到第6章的內(nèi)容是制作實(shí)際電路并使之動(dòng)作的實(shí)踐例。第7章的內(nèi)容是更多PIC應(yīng)用實(shí)例。如果讀者通過(guò)閱讀本書,感到PIC微控制器編程并不神秘,能夠充滿自信地工作,筆者也將感到無(wú)比快樂。
內(nèi)容概要
本書是“圖解PIC單片機(jī)應(yīng)用技術(shù)”叢書之一。本書以從未接觸過(guò)微控制器的人為對(duì)象,把理解編程基本思路作為重點(diǎn),分別介紹PIC微控制器的內(nèi)部動(dòng)作,編程過(guò)程分析,PIC微控制器數(shù)字量接口的應(yīng)用,以及如何熟練使用內(nèi)置設(shè)備、驅(qū)動(dòng)電機(jī)等。附錄部分給出PIC的開發(fā)步驟、向PIC微控制器寫入程序、指令表、PIC16F877A等。本書圖文并茂,實(shí)例豐富,內(nèi)容循序漸進(jìn),具有很強(qiáng)的實(shí)用性。 本書可供PIC單片機(jī)愛好者、高等院校相關(guān)專業(yè)師生,以及從事PIC單片機(jī)項(xiàng)目開發(fā)制作的工程技術(shù)人員閱讀和參考。
書籍目錄
第1章 PIC微控制器概述 1.1 PIC的概念 1.2 編程的順序流程書 1.3 機(jī)器語(yǔ)言第2章 PIC微控制器編程的基礎(chǔ)知識(shí) 2.1 PIC微控制器的內(nèi)部結(jié)構(gòu) 2.2 程序計(jì)數(shù)器 2.3 匯編語(yǔ)言和機(jī)器語(yǔ)言 2.4 地址和標(biāo)簽地址 2.5 數(shù)字的表示方法(二進(jìn)制、十進(jìn)制、十六進(jìn)制) 2.5.1 二進(jìn)制數(shù) 2.5.2 十六進(jìn)制數(shù) 2.5.3 把二進(jìn)制數(shù)轉(zhuǎn)換成為十進(jìn)制數(shù) 2.5.4 把十六進(jìn)制數(shù)轉(zhuǎn)換成為十進(jìn)制數(shù) 2.5.5 把十進(jìn)制數(shù)轉(zhuǎn)換成為十六進(jìn)制數(shù) 2.6 二進(jìn)制的加法和減法 2.7 用2的補(bǔ)數(shù)表示負(fù)數(shù) 2.8 邏輯運(yùn)算 2.9 移位 2.10 PIC16F877A的文件寄存器 2.11 PIC中使用的數(shù)字 2.12 寄存器STATUS 2.13 PIC16F877A指令一覽 2.14 PIC16F877A的指令分類 2.15 PIC編程基礎(chǔ) 2.16 Bank切換 2.17 文件寄存器的間接訪問 2.18 匯編語(yǔ)言的編程規(guī)則 2.19 MPASM的常用功能 2.20 標(biāo)簽地址與通用寄存器的使用方法第3章 編程過(guò)程分析 3.1 模擬器的使用 3.2 熟練使用匯編語(yǔ)言 3.3 利用模擬器執(zhí)行加減運(yùn)算與邏輯運(yùn)算 3.4 數(shù)值的比較 3.5 循環(huán)操作 3.5.1 同一動(dòng)作重復(fù)執(zhí)行2次 3.5.2 同一動(dòng)作重復(fù)執(zhí)行10次 3.5.3 同一動(dòng)作重復(fù)執(zhí)行1000次 3.5.4 同一動(dòng)作重復(fù)執(zhí)行1111次 3.5.5 同一動(dòng)作重復(fù)執(zhí)行1 000 000次 3.6 子程序 3.6.1 用寄存器w傳遞參數(shù) 3.6.2 用特定的寄存器傳遞參數(shù) 3.6.3 用指針寄存器(FSR)傳遞參數(shù) 3.7 條件分支(寄存器PCL計(jì)算) 3.8 查表(讀取預(yù)先準(zhǔn)備的表) 3.9 計(jì)算過(guò)程分解 3.9.1 2字節(jié)的加法計(jì)算 3.9.2 2字節(jié)的減法計(jì)算 3.9.3 簡(jiǎn)單的乘法與除法計(jì)算 3.10 Bank切換的要點(diǎn) 3.10.1 直接訪問寄存器 3.10.2 使用FSR、INDF間接訪問第4章 PIC微控制器數(shù)字量接口的應(yīng)用 4.1 PIC微控制器的硬件介紹 4.1.1 PIC16F877A的引腳配置 4.1.2 電源和振蕩器的類型,動(dòng)作頻率 4.1.3 頻率和周期 4.1.4 配置位 4.1.5 外部電源 4.2 實(shí)驗(yàn)電路的構(gòu)成 4.3 熟練使用I/O接口 4.3.1 點(diǎn)亮LED的實(shí)驗(yàn) 4.3.2 PIC的初始化——最重要的是不要損壞PIC 4.3.3 確定輸人輸出的寄存器 4.3.4 點(diǎn)亮LED的程序 4.3.5 使LED閃爍(1) 4.3.6 程序的執(zhí)行速度 4.3.7 延長(zhǎng)閃爍時(shí)間間隔的方法 4.3.8 延時(shí)10μs 4.3.9 延時(shí)1ms 4.3.10 延時(shí)0.5 s 4.3.11 使LED閃爍(2) 4.3.12 改變閃爍的周期 4.3.13 改變點(diǎn)亮和熄滅時(shí)間之比 4.3.14 注意read modify write操作 4.4 讀取開關(guān)狀態(tài) 4.4.1 位測(cè)試和檢測(cè)開關(guān)狀態(tài) 4.4.2 開關(guān)的接點(diǎn)顫動(dòng) 4.4.3 防止開關(guān)的接點(diǎn)顫動(dòng)的對(duì)策 4.4.4 松開開關(guān)時(shí)使LED動(dòng)作 4.4.5 以固定周期讀取開關(guān)狀態(tài)第5章 熟練使用內(nèi)置設(shè)備 5.1 熟練使用A-D變換器 5.1.1 A-D變換的值 5.1.2 A-D變換時(shí)鐘周期的設(shè)定 5.1.3 選擇A-D變換結(jié)果的格式 5.1.4 輸入引腳的設(shè)定 5.1.5 A-D變換的精度和速度 5.1.6 A-D變換方法 5.1.7 A-D變換的實(shí)驗(yàn) 5.1.8 關(guān)于中斷 5.1.9 根據(jù)輸入電壓(電位器)改變閃爍間隔 5.1.10 利用查表法的實(shí)驗(yàn) 5.1.11 使用硫化鎘光電池的實(shí)驗(yàn) 5.1.12 光暗時(shí)LED閃爍 5.1.13 亮度記憶 5.2 熟練使用USART模塊 5.2.1 串行通信的基礎(chǔ)知識(shí) 5.2.2 異步串行通信的基礎(chǔ) 5.2.3 PIC16F877A串行通信的初始設(shè)定 5.2.4 利用PIC16F877A做串行通信(發(fā)送) 5.2.5 利用PIC16F877A做串行通信(接收) 5.2.6 按照串行通信發(fā)出的指示而動(dòng)作的程序 5.2.7 從初始化到主程序 5.2.8 發(fā)送子程序和字符變換子程序 5.2.9 發(fā)送A-D變換結(jié)果的子程序 5.2.10 LED的點(diǎn)亮/熄滅的子程序 5.2.11 查表的子程序 5.2.12 實(shí)際動(dòng)作 5.3 用字符型液晶顯示器顯示字符 5.3.1 液晶模塊的引腳配置 5.3.2 液晶模塊的內(nèi)部寄存器 5.3.3 液晶顯示器和并行通信 5.3.4 用4位格式發(fā)送8位數(shù)據(jù),液晶模塊的初始化 5.3.5 忙標(biāo)志位(busy flag) 5.3.6 用PC機(jī)串行通信向液晶模塊寫入字符的程序 5.3.7 液晶模塊初始化子程序 5.3.8 向液晶模塊寫入的子程序 5.3.9 從液晶模塊讀出的子程序 5.3.10 其他子程序 5.4 定時(shí)器0的使用方法 5.5 熟練使用中斷 5.5.1 編制中斷處理程序的方法 5.5.2 定時(shí)器0的中斷 5.5.3 使用定時(shí)器0中斷的程序 5.5.4 使用中斷的注意事項(xiàng)第6章 驅(qū)動(dòng)電動(dòng)機(jī) 6.1 驅(qū)動(dòng)無(wú)線伺服電動(dòng)機(jī)的實(shí)驗(yàn) 6.1.1 驅(qū)動(dòng)電動(dòng)機(jī)的實(shí)驗(yàn) 6.1.2 由PC計(jì)算機(jī)發(fā)出角度控制指令(利用中斷產(chǎn)生脈沖) 6.1.3 程序的結(jié)構(gòu) 6.1.4 利用2個(gè)定時(shí)器的中斷產(chǎn)生脈沖 6.1.5 定時(shí)器2的使用方法 6.1.6 利用中斷驅(qū)動(dòng)伺服電動(dòng)機(jī)的程序 6.1.7 中斷處理程序 6.1.8 接收PC計(jì)算機(jī)的命令(主程序) 6.1.9 把2個(gè)字符變換成為十六進(jìn)制數(shù)(子程序RCV—HEX) 6.1.10 與PC計(jì)算機(jī)相連接驅(qū)動(dòng)伺服電動(dòng)機(jī) 6.2 驅(qū)動(dòng)電動(dòng)機(jī)的實(shí)驗(yàn) 6.2.1 使用CCP模塊 6.2.2 使用CCP模塊控制電動(dòng)機(jī)的轉(zhuǎn)速 6.2.3 使用CCP模塊的程序第7章 熟練使用PIC 7.1 閱讀數(shù)據(jù)手冊(cè) 7.2 數(shù)據(jù)手冊(cè)的構(gòu)成 7.3 閱讀數(shù)據(jù)手冊(cè)(內(nèi)置EEPROM的使用方法) 7.3.1 內(nèi)容概要及關(guān)聯(lián)寄存器 7.3.2 程序?qū)嵗? 7.3.3 注意事項(xiàng)與總結(jié) 7.4 休眠 7.4.1 從休眠中喚醒 7.4.2 使用sleep指令時(shí)的注意事項(xiàng) 7.5 看門狗定時(shí)器 7.5.1 什么是看門狗定時(shí)器(WDT) 7.5.2 看門狗定時(shí)器的動(dòng)作時(shí)間 7.5.3 檢測(cè)看門狗定時(shí)器的動(dòng)作 7.6 匯編器的其他功能 7.6.1 條件匯編 7.6.2 宏功能 7.7 頭文件的閱讀方法 7.8 應(yīng)用指南的使用方法 7.8.1 AN617定點(diǎn)數(shù)的運(yùn)算程序 7.8.2 AN617的使用方法 7.8.3 定點(diǎn)數(shù) 7.8.4 計(jì)算程序應(yīng)用指南 7.9 其他14位PIC微控制器的使用 7.9.1 PIC12F675的使用 7.10 調(diào)試要點(diǎn) 7.11 本書結(jié)束語(yǔ)附錄A PIC的開發(fā)步驟附錄B 向PIC微控制器寫入程序附錄C 指令表附錄D PIC16F877A特殊功能寄存器一覽表
章節(jié)摘錄
插圖:程序存儲(chǔ)器(ROM:Read Only Memory)是專用的只讀存儲(chǔ)器,其中的內(nèi)容是預(yù)先寫入的,有適合于大規(guī)模生產(chǎn)的掩膜型,有一次性寫入型,有用紫外線擦除的uV-EPROM,有電擦除的EEPROM,還有被稱作閃存型(Flash)的存儲(chǔ)器。PIC16F877A所用的是閃存型程序存儲(chǔ)器和EEPR()M型的數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器中的程序如同樂譜或劇本(圖2.2),只不過(guò)是用數(shù)字和計(jì)算順序書寫而成的。數(shù)據(jù)存儲(chǔ)器(RAM:Random Access Memory)是指任意時(shí)刻都可以對(duì)任意地址實(shí)施存取的存儲(chǔ)器。通常使用的是按照一定順序執(zhí)行存取的順序存取存儲(chǔ)器。相對(duì)于ROM而言,RAM是可以隨時(shí)存取的存儲(chǔ)器。根據(jù)RAM的內(nèi)部結(jié)構(gòu),可分為DRAM和SRAM。數(shù)據(jù)存儲(chǔ)器相當(dāng)于一本日記臺(tái)賬,寫入的內(nèi)容不是條目而是數(shù)字,它可以不限次數(shù)地寫入和修改。計(jì)算單元相當(dāng)于一個(gè)計(jì)算器,它能夠做加減運(yùn)算和邏輯運(yùn)算,但不能做乘除運(yùn)算,也沒有存儲(chǔ)功能,并且位數(shù)也較少。外圍接口電路的輸入/輸出與數(shù)據(jù)存儲(chǔ)的內(nèi)容相關(guān)聯(lián),對(duì)接口電路實(shí)施讀寫操作,就實(shí)現(xiàn)與外部世界的聯(lián)系。在PIC中還應(yīng)當(dāng)有一個(gè)精靈,這是什么呢?請(qǐng)大家想一想。沒錯(cuò)!還應(yīng)當(dāng)有一個(gè)閱讀劇本,操作計(jì)算器,并把計(jì)算結(jié)果記錄在日記賬本上的精靈,只是在PIC外部看不到這個(gè)精靈在書寫日記臺(tái)賬。這個(gè)精靈位于外圍接口電路附近,根據(jù)日記臺(tái)賬的內(nèi)容,或者把日記臺(tái)賬中某些內(nèi)容對(duì)外部世界顯示,或者把外部世界的數(shù)據(jù)記錄于日記臺(tái)賬中。PIC之所以能夠發(fā)揮作用,這個(gè)精靈功不可沒。
編輯推薦
《PIC單片機(jī)編程》由科學(xué)出版社出版。
圖書封面
評(píng)論、評(píng)分、閱讀與下載