刪繁就簡(jiǎn):?jiǎn)纹瑱C(jī)入門到精通
定 價(jià):39 元
叢書(shū)名:博客藏經(jīng)閣叢書(shū)
- 作者:戴上舉 著
- 出版時(shí)間:2011/1/1
- ISBN:9787512402737
- 出 版 社:北京航空航天大學(xué)出版社
- 中圖法分類:TP368.1
- 頁(yè)碼:342
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
《刪繁就簡(jiǎn):?jiǎn)纹瑱C(jī)入門到精通》是作者過(guò)去十多年工作經(jīng)驗(yàn)的積淀,以實(shí)際應(yīng)用為基礎(chǔ),理論結(jié)合實(shí)際,用自己的理解來(lái)闡述單片機(jī)相關(guān)技術(shù)。全書(shū)立足單片機(jī)基本概念、開(kāi)發(fā)應(yīng)用技巧、單片機(jī)高端技術(shù)、C語(yǔ)言編程、問(wèn)題調(diào)試分析、產(chǎn)品設(shè)計(jì)這六方面,采用平實(shí)易懂的語(yǔ)言,把作者的個(gè)人理解和經(jīng)驗(yàn)積累匯集起來(lái)供讀者分享。
《刪繁就簡(jiǎn):?jiǎn)纹瑱C(jī)入門到精通》讀者范圍廣泛,無(wú)論是剛接觸單片機(jī)的新人,還是已經(jīng)具備一定經(jīng)驗(yàn)的工程師,都有針對(duì)性章節(jié)可供閱讀。
一直以來(lái),在我內(nèi)心都認(rèn)為傳道授業(yè)是一件無(wú)上光榮的事,只可惜生來(lái)不善言辭,自然無(wú)法從事教師這個(gè)職業(yè),而是走了一條電子技術(shù)工作的職業(yè)之路。寫書(shū)是許多技術(shù)工作者的夢(mèng)想,本人也不例外,然而由于受到時(shí)間、精力和觀念的影響,實(shí)現(xiàn)這個(gè)夢(mèng)想的一線技術(shù)開(kāi)發(fā)人員并不多,我也是偶然有機(jī)會(huì)才寫成了此書(shū)。
相對(duì)來(lái)說(shuō),我算是比較喜歡書(shū)的一類人,當(dāng)年南下廣東打工時(shí),隨身沒(méi)帶什么東西,書(shū)倒拖了一堆。對(duì)于專業(yè)方面的書(shū),我也和大家一樣常憤懣于作者的寫作態(tài)度,直到看到臺(tái)灣侯捷(侯俊杰)寫的《深入淺出MFC》,給了我震撼,不能說(shuō)是文采飛揚(yáng),但在用心程度方面,著實(shí)沒(méi)有可以挑剔的地方。
毫無(wú)疑問(wèn)侯捷前輩具有非常好的專業(yè)素養(yǎng),我相信VC程序員技能高于他的也是大有人在,但他憑借著嚴(yán)謹(jǐn)、認(rèn)真、求實(shí)的技術(shù)態(tài)度,每一點(diǎn)都自己進(jìn)行考證,終于寫出了這本我認(rèn)為可以奉為經(jīng)典的書(shū)。正是侯捷前輩的這本書(shū)觸動(dòng)了我,雖然我個(gè)人的技能水平和寫作能力有限,但如果我也能像侯捷前輩那般認(rèn)真,把自己以往的工作經(jīng)驗(yàn)加以總結(jié),是不是也有可能寫出一本能夠得到大家認(rèn)可的書(shū)呢?
我相信做事一定要有激情,否則就會(huì)在猶豫中放棄各種想法,于是在2009年7月開(kāi)始了本書(shū)的寫作。一開(kāi)始對(duì)書(shū)的寫作并沒(méi)有太多想法,只是想著這是興趣所在,應(yīng)盡量將書(shū)的內(nèi)容寫得全面和實(shí)用。最初大概有半個(gè)月時(shí)間,我隨身帶著一個(gè)小本子,只要一想到某個(gè)主題,就順手記錄到本子上,就這樣得到了書(shū)的提綱和目錄。
真沒(méi)想到寫書(shū)是如此辛苦,為了保證內(nèi)容正確,就不時(shí)需要進(jìn)行驗(yàn)證,往往只是一張簡(jiǎn)單的圖表,卻要另外花數(shù)小時(shí)寫程序驗(yàn)證,慢的時(shí)候一天只能寫一兩頁(yè)。開(kāi)始寫作后經(jīng)常是回家就窩到計(jì)算機(jī)前,一窩就是數(shù)小時(shí),南方的夏天比較長(zhǎng),就是光著膀子也是汗流浹背,現(xiàn)在回想起來(lái)還真有點(diǎn)詫異我當(dāng)時(shí)的耐心。
戴上舉 電子專業(yè)本科,長(zhǎng)期從事單片機(jī)產(chǎn)品研發(fā)工作。熱衷于技術(shù)鉆研在單片機(jī)和嵌入式領(lǐng)域?qū)I(yè)知識(shí)有著深刻理解,在同事和朋友眼里是一個(gè)有技術(shù)悟性的人。有國(guó)有、民營(yíng)和外資企業(yè)不同環(huán)境工作經(jīng)歷,歷任產(chǎn)品一線開(kāi)發(fā)技術(shù)指導(dǎo)、整體設(shè)計(jì)等職位,主導(dǎo)開(kāi)發(fā)過(guò)年產(chǎn)量達(dá)百萬(wàn)臺(tái)的消費(fèi)電子產(chǎn)品。
第1章 單片機(jī)基礎(chǔ)
1.1 什么是單片機(jī)
1.2 單片機(jī)是如何工作的
1.3 單片機(jī)與計(jì)算機(jī)的區(qū)別
1.4 晶振
1.5 系統(tǒng)時(shí)鐘和周期
1.6 單片機(jī)指令和匯編語(yǔ)言
1.7 RAM/ROM的作用
1.8 單片機(jī)接口
1.9 接口驅(qū)動(dòng)能力
1.10 方便實(shí)用的中斷
1.11 函數(shù)和堆棧
1.12 單片機(jī)PAGE/BANK概念
1.13 CISC與RISC
1.14 為什么DSP“跑得快”
1.15 單片機(jī)產(chǎn)品開(kāi)發(fā)常見(jiàn)用語(yǔ)
第2章 單片機(jī)應(yīng)用小技巧
2.1 用I/O模擬接口
2.2 交流特性顯神通
2.3 電阻網(wǎng)絡(luò)低成本高速AD
2.4 利用電容充放電測(cè)電阻
2.5 晶振也能控制電源
2.6 如何降低功耗
2.7 開(kāi)機(jī)請(qǐng)用NOP
2.8 查表與乘除法
2.9 RAM動(dòng)態(tài)裝載程序
2.10 程序也可被壓縮
2.11 累計(jì)誤差
2.12 讓定時(shí)更準(zhǔn)一些
2.13 寄存器也可當(dāng)RAM
2.14 清中斷標(biāo)志的位置
2.15 鍵盤掃描
2.16 視覺(jué)暫留
2.17 讓耳朵優(yōu)先
2.18 1000與1024
2.19 PWM
2.20 單片機(jī)與虛擬機(jī)
第3章 單片機(jī)高級(jí)特性
3.1 Cache
3.2 總線
3.3 DMA
3.4 存儲(chǔ)器管理
3.5 嵌入式與操作系統(tǒng)
第4章 單片機(jī)C語(yǔ)言
4.1 單片機(jī)C語(yǔ)言簡(jiǎn)介
4.2 for()/while()循環(huán)
4.3 循環(huán)里的i+q-與i
4.4 優(yōu)化的方法與效果
4.5 全局變量的風(fēng)險(xiǎn)
4.6 變量類型與代碼效率
4.7 慎用int
4.8 危險(xiǎn)的指針
4.9 循環(huán)延時(shí)
4.10 運(yùn)算表達(dá)式
4.11 溢出
4.12 強(qiáng)制轉(zhuǎn)換
4.13 高效實(shí)用位運(yùn)算
4.14 宏和register
4.15 手機(jī)里的計(jì)算器
4.16 函數(shù)設(shè)計(jì)
4.17 某產(chǎn)品函數(shù)編寫規(guī)則
第5章 問(wèn)題分析與調(diào)試
5.1 應(yīng)該具備基本硬件能力
5.2 使自己站在別人的角度來(lái)思考問(wèn)題
5.3 先找自己原因再假定他人出錯(cuò)
5.4 充分發(fā)掘IDE調(diào)試工具功能
5.5 IDE調(diào)試工具也會(huì)導(dǎo)致錯(cuò)誤產(chǎn)生
5.6 沒(méi)有IDE調(diào)試工具的測(cè)試
5.7 C語(yǔ)言要多查看匯編代碼
5.8 養(yǎng)成查看寄存器內(nèi)容的習(xí)慣
5.9 中斷的一些特殊情況
5.10 別迷信文檔與硬件
5.11 程序暫停不代表所有模塊暫停
5.12 幾種儀器好幫手
5.13 多用計(jì)算機(jī)工具軟件
5.14 串口通信不能使用隔離變壓器分析實(shí)例
5.15 Cache導(dǎo)致錄音有雜音分析實(shí)例
5.16 Cache導(dǎo)致RAM驗(yàn)證結(jié)果不對(duì)分析實(shí)例
5.17 雙口RAM讀/寫競(jìng)爭(zhēng)出錯(cuò)分析實(shí)例
第6章 實(shí)際產(chǎn)品開(kāi)發(fā)
6.1 如何開(kāi)發(fā)一個(gè)產(chǎn)品
6.2 學(xué)會(huì)看電氣參數(shù)表
6.3 接口的匹配
6.4 電源和地的影響
6.5 成本意識(shí)
6.6 別煩流程圖
6.7 功能的全面與實(shí)用
6.8 批量產(chǎn)品的替代方案
6.9 多了解新器件
6.10 盡可能讓生產(chǎn)更方便
6.11 性能預(yù)估
6.12 電磁兼容
6.13 上電與測(cè)試
6.14 程序版本發(fā)放記錄
參考文獻(xiàn)
大部分單片機(jī)都需要晶振才能工作起來(lái),晶振就像交響樂(lè)團(tuán)的指揮家一樣控制單片機(jī)的工作節(jié)奏。指揮家的指揮棒沒(méi)起,交響樂(lè)團(tuán)是不會(huì)開(kāi)始演奏的,同樣晶振沒(méi)開(kāi)始向單片機(jī)提供節(jié)奏信號(hào),單片機(jī)也不會(huì)工作起來(lái)。在1.2節(jié)中說(shuō)觸發(fā)是單片機(jī)的一個(gè)重要概念,晶振就是單片機(jī)所有工作觸發(fā)時(shí)序的信號(hào)源,單片機(jī)通過(guò)它所提供周期穩(wěn)定的觸發(fā)信號(hào)去觸發(fā)程序相應(yīng)操作。
不是所有的單片機(jī)都用晶振來(lái)做觸發(fā)信號(hào)源,有一些場(chǎng)合可以用RC振蕩器(有的單片機(jī)自身內(nèi)部有RC振蕩電路),外部接一個(gè)電阻來(lái)調(diào)節(jié)振蕩頻率。既然RC振蕩器也可以用,為什么還要用晶振呢?原因很簡(jiǎn)單,RC振蕩器所產(chǎn)生的頻率一致性和穩(wěn)定性都不好,會(huì)因?yàn)殡娮桦娙葜档恼`差出現(xiàn)比較大的偏差,電壓的高低變化也會(huì)產(chǎn)生一定影響,晶振雖然價(jià)格要高一些,但一致性和穩(wěn)定性比RC振蕩器要好許多。
實(shí)際應(yīng)用時(shí)應(yīng)根據(jù)產(chǎn)品特性選擇晶振或RC振蕩器。如果產(chǎn)品對(duì)控制性能的時(shí)間精度要求并不嚴(yán)格,比如是一個(gè)通過(guò)按鍵發(fā)光發(fā)聲的簡(jiǎn)單兒童玩具,就可以用RC振蕩器來(lái)降低成本;但如果一個(gè)產(chǎn)品需要顯示日期時(shí)間,用RC振蕩器顯然不能滿足要求,一天下來(lái)誤差有可能達(dá)到幾分鐘,所以必須用晶振,這個(gè)例子涉及累計(jì)誤差的概念,2.1節(jié)將會(huì)對(duì)累計(jì)誤差專門進(jìn)行闡述。
既然晶振只是起到觸發(fā)信號(hào)源的作用,那是不是可以用一個(gè)周期穩(wěn)定的信號(hào)源來(lái)替換晶振或RC振蕩器呢?適當(dāng)條件下確實(shí)可以,只是這樣一個(gè)信號(hào)源的實(shí)現(xiàn)會(huì)比用晶振的成本都要高。在我之前的產(chǎn)品開(kāi)發(fā)經(jīng)歷中,就做過(guò)多個(gè)單片機(jī)只用一個(gè)晶振的產(chǎn)品,但不建議這么做,因?yàn)榫д駥?duì)電路板走線有一定要求,控制不好容易導(dǎo)致晶振不起振。
是不是一個(gè)單片機(jī)想跑多快就需要晶振提供同樣快的周期觸發(fā)信號(hào)?無(wú)論是設(shè)計(jì)單片機(jī)芯片還是生產(chǎn)晶振的廠家都不希望這么做。我們知道,頻率越快越難控制,也越容易被干擾,晶振作為一個(gè)外接器件,自然不希望自己被要求提供非常高的頻率。頻率越高,對(duì)產(chǎn)品電路板布線的限制就越多,產(chǎn)品開(kāi)發(fā)、生產(chǎn)部門使用起來(lái)也就越麻煩,同樣也不希望外接晶振跑得太快。
設(shè)計(jì)單片機(jī)芯片的廠家為我們解決了這個(gè)煩擾,他們將一種叫PLL(鎖相環(huán))的技術(shù)應(yīng)用到單片機(jī)芯片內(nèi),通過(guò)這個(gè)技術(shù)將晶振的頻率在單片機(jī)內(nèi)部倍頻,這樣就可以讓單片機(jī)得到比晶振高幾倍甚至許多倍的工作頻率。除此以外,PLL還有一個(gè)優(yōu)點(diǎn),單片機(jī)可以在工作中動(dòng)態(tài)改變工作頻率,可以利用這個(gè)特性降低功耗來(lái)提升產(chǎn)品性能。