出版時(shí)間:2012-5 出版社:科學(xué) 作者:中尾真治 頁數(shù):283 字?jǐn)?shù):300000 譯者:盧伯英
Tag標(biāo)簽:無
內(nèi)容概要
本書以小型PIC單片機(jī)——PIC16F688為例,詳細(xì)介紹C語言的基礎(chǔ)知識、PIC單片機(jī)的基本構(gòu)成和工作原理、PIC單片機(jī)的主要外圍設(shè)備和功能,以及PIC單片機(jī)的開發(fā)工具使用方法。最后,作為PIC單片機(jī)的應(yīng)用實(shí)例,具體介紹了PIC單片機(jī)在USB、LCD、溫度、時(shí)間和聲音等開發(fā)方面的具體應(yīng)用。
作者簡介
中尾真治
1964年出生于東京,國立工業(yè)??茖W(xué)校畢業(yè)。曾在富士通程序研究部門、京銷售公司和摩托羅拉公司工作。其后在日本微芯技術(shù)公司(Microchip
Technology Japan)從事PIC單片機(jī)的FAE工作達(dá)7年。
主要著作
《C言語ではじめるPICマイコン》(OHM社)
《おもしろいPICマイコン》(OHM社)
《はじめてのPICマイコン》 (OHM社)
《PICマイコン活用ハンドブック》(CQ出版社,合著)新編電子技術(shù)講座活學(xué)活用PIC單片機(jī)
C語言編程
書籍目錄
第1章 C語言入門
1.1C語言的基本知識
1.1.1程序的組成要素
1.1.2源文件
1.1.3頭文件
1.1.4預(yù)處理程序
1.1.5main函數(shù)
1.1.6匯編程序
1.2常量、數(shù)據(jù)類型和變量
1.2.1轉(zhuǎn)義字符
1.2.2枚舉常數(shù)
1.2.3數(shù)據(jù)類型
1.2.4變量聲明
1.2.5Const
1.2.6Volatile
1.3數(shù)組和指針
1.3.1數(shù)組
1.3.2數(shù)組與字符串
1.3.3指針
1.3.4指針和字符串常數(shù)
1.3.5指針和數(shù)組
1.4結(jié)構(gòu)體和共用體
1.4.1結(jié)構(gòu)體
1.4.2共用體
1.5運(yùn)算
1.5.1簡單賦值運(yùn)算
1.5.2算術(shù)運(yùn)算
1.5.3自增和自減
1.5.4關(guān)系運(yùn)算
1.5.5位操作運(yùn)算
1.5.6復(fù)合賦值運(yùn)算
1.5.7取地址運(yùn)算
1.5.8代入不同的數(shù)據(jù)類型變量中
1.5.9不同數(shù)據(jù)型變量的一同計(jì)算
1.5.10運(yùn)算的優(yōu)先級和結(jié)合規(guī)則
1.6分支語句與循環(huán)語句
1.6.1基于關(guān)系真假的分支語句
1.6.2基于計(jì)算結(jié)果的多分支語句
1.6.3邊計(jì)算邊循環(huán)
1.6.4如果關(guān)系為真則進(jìn)行循環(huán)
1.6.5無限循環(huán)
1.7函數(shù)
1.7.1函數(shù)的結(jié)構(gòu)
1.7.2函數(shù)返回值數(shù)據(jù)類型
1.7.3函數(shù)的參數(shù)
1.7.4函數(shù)的原型聲明
1.7.5使用函數(shù)
1.7.6實(shí)際參數(shù)與形式參數(shù)
1.7.7main函數(shù)和中斷函數(shù)
1.7.8函數(shù)的嵌套
1.7.9不使用遞推調(diào)用
1.7.10庫函數(shù)
1.8作用域
1.8.1局部變量和自動(dòng)變量
1.8.2全局變量
1.8.3static
1.8.4作用域
1.8.5persistent
1.8.6在匯編程序中使用變量
第2章 PIC單片機(jī)的基本知識
2.1PIC單片機(jī)的基本知識
2.1.18位PIC單片機(jī)
2.1.2引腳位置
2.1.3工作電壓范圍
2.1.44個(gè)時(shí)鐘脈沖對應(yīng)1個(gè)周期
2.1.5PIC12F683的引腳配置
2.2配置位
2.2.1執(zhí)行程序前的設(shè)定
2.2.2配置位
2.2.3代碼保護(hù)與校驗(yàn)
2.2.4代碼保護(hù)的解除
2.2.5代碼未被保護(hù)的領(lǐng)域
2.2.6配置位的書寫方法
2.2.7LD存儲單元的書寫方法
2.2.8編程器的操作順序
2.3振蕩電路
2.3.1構(gòu)建系統(tǒng)時(shí)鐘
2.3.2振蕩電路的種類
2.3.3使用內(nèi)部振蕩器
2.3.4使用外部加裝的振子
2.3.5使用外部加裝的振蕩器
2.3.6用外部加裝的R和C制作
2.3.7振蕩電路的轉(zhuǎn)換
2.3.82速啟動(dòng)模式
2.3.9使用故障保險(xiǎn)時(shí)鐘監(jiān)視器
2.4復(fù)位
2.4.1復(fù)位后的狀態(tài)
2.4.2不使用外部復(fù)位的場合
2.4.3接通電源時(shí)的復(fù)位工作情況
2.4.4加電復(fù)位
2.4.5加電定時(shí)器
2.4.6振蕩器啟動(dòng)定時(shí)器
2.4.7電壓過低復(fù)位
2.4.8監(jiān)視定時(shí)器復(fù)位
2.4.9MCLR復(fù)位
2.4.10復(fù)位狀態(tài)位
2.5存儲器
2.5.1存儲器的類型
2.5.2程序存儲器
2.5.3能寫入程序存儲器中的次數(shù)
2.5.4程序存儲器中內(nèi)容的讀出
2.5.5數(shù)據(jù)存儲器
2.5.6PIC12F683的情況
2.6中斷
2.6.1在中斷中執(zhí)行
2.6.2選擇中斷事件
2.6.3GIE位
2.6.4中斷允許位
2.6.5PEIE位
2.6.6中斷標(biāo)志位
2.6.7使用中斷設(shè)定
2.6.8中斷函數(shù)
2.6.9暫時(shí)不進(jìn)行中斷處理的場合
2.6.10PIC12F683的場合
2.7監(jiān)視定時(shí)器
2.7.1超時(shí)和復(fù)位
2.7.2使用31kHz的內(nèi)部振蕩器
2.7.3監(jiān)視定時(shí)器的寄存器
2.7.416位預(yù)換算器
2.7.5與定時(shí)器0共用的預(yù)換算器
2.7.6監(jiān)視定時(shí)器的超時(shí)時(shí)間
2.7.7使用監(jiān)視定時(shí)器的設(shè)定
2.7.8把監(jiān)視定時(shí)器的內(nèi)容設(shè)置成
2.7.9超時(shí)時(shí)的動(dòng)作
2.7.10TO位
2.7.11PIC12F683的場合
2.8休眠方式
2.8.1什么也不做時(shí)節(jié)省電力
2.8.2使PIC單片機(jī)進(jìn)入休眠方式
2.8.3即使休眠方式中也不能停止的功能
2.8.4從休眠方式中蘇醒的功能
2.8.5利用中斷從休眠方式中蘇醒的情況
2.8.6在實(shí)施進(jìn)入休眠方式之前設(shè)置
2.8.7在從休眠方式蘇醒之后執(zhí)行程序地址
2.8.8從休眠方式中蘇醒時(shí)花費(fèi)的時(shí)間
2.8.9使用中斷從休眠方式中蘇醒的例子
2.8.10復(fù)位狀態(tài)位
第3章 PIC單片機(jī)的外圍功能
3.1I/O端口
3.1.1輸入輸出數(shù)字?jǐn)?shù)據(jù)
3.1.2I/O端口的寄存器
3.1.3I/O引腳的輸入電壓范圍
3.1.4輸入緩沖器的種類
3.1.5VIL和VIH
3.1.6輸出電路
3.1.7灌電流和拉電流
3.1.8I/O引腳的輸入輸出設(shè)定
3.1.9模擬輸入模式和數(shù)字I/O模式
3.1.10構(gòu)成數(shù)字I/O模式的方法
3.1.11I/O引腳的輸入輸出設(shè)定舉例
3.1.12從外部電路輸入數(shù)據(jù)
3.1.13從外部電路輸入數(shù)據(jù)舉例
3.1.14把數(shù)據(jù)輸出到外部電路
3.1.15把數(shù)據(jù)輸出到外部電路舉例
3.1.16I/O引腳的輸入輸出設(shè)定和輸出數(shù)據(jù)的覆蓋
3.1.17進(jìn)入休眠方式后怎樣變化?
3.1.18空閑引腳的處理
3.1.19使用I/O端口舉例
3.1.20PIC12F683的場合
3.2弱上拉電路
3.2.1上拉輸入信號
3.2.2弱上拉電路的寄存器
3.2.3設(shè)定使用弱上拉電路
3.2.4使用弱上拉電路設(shè)定舉例
3.2.5外附加電阻的方法是一種好方案
3.2.6進(jìn)入休眠方式時(shí)有什么變化嗎?
3.2.7使用弱上拉電路舉例
3.2.8PIC12F683的場合
3.3I/O端口輸入電平變化檢測功能
3.3.1能判明輸入數(shù)據(jù)是否發(fā)生了變化
3.3.2I/O端口輸入電平變化檢測功能的寄存器
3.3.3怎樣做才能檢測出變化?
3.3.4能檢測出變化的最小脈沖幅度
3.3.5使用I/O端口輸入電平變化檢測功能的設(shè)定
3.3.6把RAIF位的內(nèi)容設(shè)置成0
3.3.7設(shè)定使用I/O端口輸入電平變化檢測功能舉例
3.3.8不能檢測變化的定時(shí)
3.3.9I/O端口輸入電平變化中斷
3.3.10當(dāng)進(jìn)入休眠方式時(shí)會(huì)怎樣變化?
3.3.11超低功率喚醒電路
3.3.12使用I/O端口輸入電平變化檢測功能舉例
3.3.13PIC12F683的場合
3.4INT引腳輸入邊沿檢測功能
3.4.1可以檢測出輸入信號的邊沿
3.4.2INT引腳輸入邊沿檢測功能的寄存器
3.4.3使用INT引腳輸入邊沿檢測功能設(shè)定
3.4.4把INTF位的內(nèi)容設(shè)置成0
3.4.5使用INT引腳輸入邊沿檢測功能設(shè)定舉例
3.4.6INT引腳輸入邊沿中斷
3.4.7當(dāng)進(jìn)入休眠方式時(shí)怎樣變化?
3.4.8使用INT引腳輸入邊沿檢測功能舉例
3.5定時(shí)器0
3.5.1附有預(yù)換算器的8位定時(shí)器
3.5.2定時(shí)器0的寄存器
3.5.3選擇輸入時(shí)鐘
3.5.4把外部時(shí)鐘設(shè)置成輸入時(shí)鐘的場合
3.5.5定時(shí)器0的預(yù)換算器
3.5.6對TOIF位和TMRO寄存器的內(nèi)容進(jìn)行初始化
3.5.7使用定時(shí)器0設(shè)定舉例
3.5.8讀出定時(shí)器0的內(nèi)容
3.5.9把數(shù)據(jù)寫入定時(shí)器0中
3.5.10在定時(shí)器中使用預(yù)換算器場合中的注意事項(xiàng)
3.5.11定時(shí)器0溢出中斷
3.5.12當(dāng)進(jìn)入休眠方式時(shí),會(huì)如何變化?
3.5.13當(dāng)進(jìn)行復(fù)位時(shí),會(huì)如何變化?
3.5.14使用定時(shí)器0舉例
3.6定時(shí)器1
3.6.1附帶有預(yù)換算器的16位定時(shí)器
3.6.2定時(shí)器1的寄存器
3.6.3選擇輸入時(shí)鐘
3.6.4設(shè)置外部時(shí)鐘為輸入時(shí)鐘的場合
3.6.5使外部時(shí)鐘與系統(tǒng)時(shí)鐘同步的場合
3.6.6使外部時(shí)鐘與系統(tǒng)時(shí)鐘不同步的場合
3.6.7最初是從外部時(shí)鐘信號下降后開始遞增過程
3.6.8定時(shí)器1的預(yù)換算器
3.6.9使定時(shí)器1工作
3.6.10利用外部信號終止定時(shí)器1的工作
3.6.11對TMR1IF位或TMR1H寄存器和TMR1L寄存器的內(nèi)容進(jìn)行初始化
3.6.12使用定時(shí)器1設(shè)定舉例
3.6.13讀取定時(shí)器1的內(nèi)容
3.6.14把數(shù)據(jù)寫進(jìn)定時(shí)器1中
3.6.15定時(shí)器1溢出中斷
3.6.16若進(jìn)入休眠方式會(huì)如何變化?
3.6.17當(dāng)實(shí)施復(fù)位時(shí),會(huì)如何變化?
3.6.18使用定時(shí)器1舉例
3.7比較器
3.7.1比較兩個(gè)模擬信號
3.7.2比較器的寄存器
3.7.3模擬輸入信號的源阻抗
3.7.4共模輸入電壓范圍
3.7.5選擇比較器的輸入輸出構(gòu)成方案
3.7.6比較器的模擬輸入引腳設(shè)定
3.7.7比較器的運(yùn)行
3.7.8輸入偏移電壓
3.7.9響應(yīng)時(shí)間
3.7.10讀出比較器的輸出
3.7.11把比較器的輸出從引腳輸出
3.7.12使用比較器設(shè)定舉例
3.7.13檢測比較器的輸出變化
3.7.14把C1IF位或C2IF位的內(nèi)容設(shè)置成0
3.7.15不能檢測變化的定時(shí)
3.7.16比較器輸出變化中斷
3.7.17使比較器的輸出變化與定時(shí)器1的輸入時(shí)鐘同步
3.7.18利用比較器的輸出終止定時(shí)器1工作
3.7.19若進(jìn)入休眠方式會(huì)怎樣變化?
3.7.20若進(jìn)行復(fù)位時(shí)會(huì)怎樣變化?
3.7.21使用比較器舉例
3.7.22PIC12F682的場合
3.8比較器參考值
3.8.1構(gòu)建比較器用的參考電壓
3.8.2比較器參考值的寄存器
3.8.3比較器參考電壓的運(yùn)作
3.8.4比較器參考電壓的輸出電壓
3.8.5輸出電壓的整定時(shí)間
3.8.6輸出電壓的精度
3.8.7使用比較器參考值設(shè)定舉例
3.8.8若進(jìn)入休眠方式會(huì)怎樣變化?
3.8.9當(dāng)進(jìn)行復(fù)位時(shí),會(huì)如何變化?
3.8.10使用比較器參考值舉例
3.9EEPROM存儲器
3.9.1即使斷開電源也能保存數(shù)據(jù)
3.9.2EEPROM存儲器的寄存器
3.9.3EEPROM存儲器或程序存儲器的地址
3.9.4EEPROM存儲器或程序存儲器的初值
3.9.5讀出EEPROM存儲器或程序存儲器的內(nèi)容
3.9.6把數(shù)據(jù)寫入EEPROM存儲器
3.9.7未發(fā)生中斷期間
3.9.8寫入中需要花費(fèi)的時(shí)間
3.9.9在寫入過程中可以進(jìn)行EEPROM存儲器以外的操作
3.9.10在EEPROM存儲器中能進(jìn)行寫入的次數(shù)
3.9.11寫入錯(cuò)誤
3.9.12EEPROM存儲器寫入結(jié)束中斷
3.9.13把EEIF位的內(nèi)容設(shè)置成0
3.9.14即使在休眠方式中,也能寫入
3.9.15使用EEPROM存儲器舉例
3.9.16PIC12F683的場合
3.10EUSART
3.10.1串行通信
3.10.2EUSART的寄存器
3.10.3傳送格式
3.10.4數(shù)據(jù)位長度
3.10.5奇偶性
3.10.6停止位
3.10.7數(shù)據(jù)流控制
3.10.8傳送速度
3.10.9發(fā)送接收引腳
3.10.10發(fā)送
3.10.11接收
3.10.12成幀誤差
3.10.13超限誤差
3.10.14EUSART發(fā)送中斷
3.10.15EUSART接收中斷
3.10.16使用EUSART舉例
3.11A/D轉(zhuǎn)換器
3.11.1用數(shù)字?jǐn)?shù)據(jù)表示模擬輸入電壓
3.11.2A/D轉(zhuǎn)換器的寄存器
3.11.3模擬輸入信號的源阻抗
3.11.4模擬輸入電壓范圍
3.11.5A/D轉(zhuǎn)換器的模擬輸入引腳設(shè)定
3.11.6選擇進(jìn)行A/D變換的模擬輸入引腳
3.11.7參考電壓
3.11.8A/D變換時(shí)鐘
3.11.9把FRC設(shè)置成A/D變換時(shí)鐘的場合
3.11.10把FRC以外的時(shí)鐘設(shè)置成A/D變換時(shí)鐘的場合
3.11.11A/D變換結(jié)果數(shù)據(jù)的右對齊和左對齊
3.11.12向保持電容器充電
3.11.13開始執(zhí)行A/D變換
3.11.14A/D變換結(jié)束
3.11.15讀取A/D變換結(jié)果數(shù)據(jù)
3.11.16A/D變換的誤差
3.11.17進(jìn)行A/D變換花費(fèi)的時(shí)間
3.11.18把ADIF位的內(nèi)容設(shè)置成0
3.11.19A/D轉(zhuǎn)換器使用舉例
3.11.20A/D變換結(jié)束中斷
3.11.21即使在休眠方式中,也能進(jìn)行A/D變換
3.11.22A/D轉(zhuǎn)換器使用舉例
3.11.23PIC12F683的場合
第4章 開發(fā)工具
4.1在個(gè)人計(jì)算機(jī)中安裝
4.1.1開發(fā)工具軟件
4.1.2獲取方法
4.1.3安裝方法
4.1.4MPLAB IDE的畫面構(gòu)成
4.2編寫程序
4.2.1頭文件
4.2.2源文件
4.2.3編輯器
4.2.4制作新文件等
4.2.5編輯器選項(xiàng)
4.3制定項(xiàng)目
4.3.1制作新項(xiàng)目
4.3.2表示使用中的文件
4.3.3項(xiàng)目的編輯和保存等
4.3.4工作區(qū)
4.4建立項(xiàng)目
4.4.1建立項(xiàng)目
4.4.2出現(xiàn)錯(cuò)誤的場合
4.5用模擬器調(diào)試
4.5.1模擬器的啟動(dòng)
4.5.2寄存器的表示
4.5.3通過選擇變量或寄存器的表示
4.5.4EEPROM存儲器的表示
4.5.5寄存器、變量、EEPROM存儲器的內(nèi)容變更
4.5.6程序的執(zhí)行
4.5.7斷點(diǎn)
4.5.8停表(秒表)
4.5.9外部數(shù)據(jù)的輸入
4.6用編程器寫入
4.6.1編程器
4.6.2配置位和ID位置的表示
4.6.3PICkit 3的啟動(dòng)
4.6.4程序的寫入
第5章 PIC單片機(jī)的應(yīng)用電路
5.1USB
5.1.1與個(gè)人計(jì)算機(jī)的USB端口進(jìn)行通信
5.1.2電源
5.1.3引腳
5.1.4轉(zhuǎn)移設(shè)定
5.1.5VCP驅(qū)動(dòng)器
5.1.6串行通信應(yīng)用
5.1.7向個(gè)人計(jì)算機(jī)發(fā)送信息
5.2LCD
5.2.1表示字符
5.2.2電源
5.2.3引腳
5.2.4字符的表示位置
5.2.5能表示的字符
5.2.6把信息表示于LCD中
5.3溫度
5.3.1測量溫度
5.3.2形成表示溫度的模擬電壓
5.3.3把室溫傳送到個(gè)人計(jì)算機(jī)
5.4時(shí)間
5.4.1時(shí)鐘用晶體振子
5.4.2用由晶體振子作成的系統(tǒng)時(shí)鐘進(jìn)行工作
5.4.3計(jì)量時(shí)間
5.5聲音
5.5.1把電信號變成聲音
5.5.2哆來咪的頻率
5.5.3用PIC單片機(jī)形成聲音
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁: 插圖: 表達(dá)式 表達(dá)式是由變量、常量和運(yùn)算符組合后構(gòu)成的。例如,a=100,a++,abc() 分別為一種表達(dá)式。 語句 a=100; /*這是一個(gè)語句*/ a++; /*這也是一個(gè)語句*/ abc(); /*這還是一個(gè)語句*/ 程序塊 用{}圍起若干個(gè)語句,就可以構(gòu)成程序塊(程序1.3)。對于程序塊,當(dāng)書 寫函數(shù)時(shí),與if、if~else、else if、switch~case、for、while、do while一起使用。 程序1.3 程序塊 a=100; a++; abc(); 1.1.2 源文件 編寫程序用的文件,稱為源文件。源文件的后綴要加. c。源文件可以由若干部分構(gòu)成。 1.1.3 頭文件 把寄存器和位的名稱等的定義,與函數(shù)的原型語句匯集在一起形成的文件,稱為頭文件。頭文件的后綴要加. h。頭文件也可以由若干部分構(gòu)成。 在HI-CH PRO中,帶有htc.h這類頭文件。htc.h定義了PIC單片機(jī)寄存器和位的名稱。 1.1.4 預(yù)處理程序 預(yù)處理程序是在把源代碼轉(zhuǎn)換機(jī)器語言的程序。在本書中,采用的預(yù)處理程序是#define和#include。它們都不帶分號。 當(dāng)采用#define時(shí),標(biāo)識符、常量和表達(dá)式,均用另外的標(biāo)識符表示(程序1.4)。在#define中,還采用了在程序1.4中表示的CDF(x)那樣的自變量。
編輯推薦
《活學(xué)活用PIC單片機(jī)C語言編程》可供PIC單片機(jī)C語言開發(fā)應(yīng)用的技術(shù)人員參考,也可供工科院校相關(guān)專業(yè)師生閱讀?!痘顚W(xué)活用PIC單片機(jī)C語言編程》闡述了利用C語言的PIC單片機(jī)和使用方法。這里的PIC單片機(jī),采用了比較小型的14引腳的PIC16F688,它與8引腳的PIC12F683的差別,也在《活學(xué)活用PIC單片機(jī)C語言編程》中進(jìn)行了說明。綜合開發(fā)環(huán)境軟件和C編譯器,采用了免費(fèi)提供使用的MPLAB IDE和HI-TECH C PRO Lite模式。編程器采用了與個(gè)人計(jì)算機(jī)USB連接的PICkit3。因?yàn)槭褂昧嗽囼?yàn)電路板,所以除了LCD模塊的附帶引腳以外,均不需要使用焊錫焊接組裝。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
活學(xué)活用PIC單片機(jī)C語言編程 PDF格式下載