EZ-USB FX系列單片機USB外圍設備設計與應用:PART 1 USB的基本概念第1章 USB的基本特性1.1 USB簡介21.2 USB的發展歷程31.2.1 USB 1.131.2.2 USB 2.041.2.3 USB與IEEE 1394的比較41.3 USB基本架構與總線架構61.4 USB的總線結構81.5 USB數據流的模式與管線的概念91.6 USB硬件規范101.6.1 USB的硬件特性111.6.2 USB接口的電氣特性121.6.3USB的電源管理141.7 USB的編碼方式141.8 結論161.9 問題與討論16第2章 USB通信協議2.1 USB通信協議172.2 USB封包中的數據域類型182.2.1 數據域位的格式182.3 封包格式192.4 USB傳輸的類型232.4.1 控制傳輸242.4.2 中斷傳輸292.4.3 批量傳輸292.4.4 等時傳輸292.5 USB數據交換格式302.6 USB描述符342.7 USB設備請求422.8 USB設備群組442.9 結論462.10 問題與討論46第3章 設備列舉3.1注冊表編輯器473.2設備列舉的步驟493.3設備列舉步驟的實現--使用CATC分析工具513.4結論613.5問題與討論61第4章 USB芯片與EZUSB4.1USB芯片的簡介624.2USB接口芯片644.2.1Philips接口芯片644.2.2National Semiconductor接口芯片664.3內含USB單元的微處理器684.3.1Motorola694.3.2Microchip694.3.3SIEMENS704.3.4Cypress714.4USB芯片總攬介紹734.5USB芯片的選擇與評估744.6問題與討論80第5章 設備與驅動程序5.1階層式的驅動程序815.2主機的驅動程序835.3驅動程序的選擇865.4結論865.5問題與討論87第6章 HID群組6.1HID簡介886.2HID群組的傳輸速率886.3HID描述符906.3.1報告描述符936.3.2主要 main 項目類型966.3.3整體 global 項目卷標976.3.4區域 local 項目卷標986.3.5簡易的報告描述符996.3.6Descriptor Tool 描述符工具 1006.3.7兼容測試程序1016.4HID設備的基本請求1026.5Windows通信程序1036.6問題與討論106PART 2 硬件技術篇第7章 EZUSB FX簡介7.1簡介1097.2EZUSB FX硬件框圖1097.3封包與PID碼1117.4主機是個主控者1137.4.1從主機接收數據1137.4.2傳送數據至主機1137.5USB方向1137.6幀1147.7EZUSB FX傳輸類型1147.7.1批量傳輸1147.7.2中斷傳輸1147.7.3等時傳輸1157.7.4控制傳輸1157.8設備列舉1167.9USB核心1167.10EZUSB FX單片機1177.11重新設備列舉1177.12EZUSB FX端點1187.12.1EZUSB FX批量端點1187.12.2EZUSB FX控制端點01187.12.3EZUSB FX中斷端點1197.12.4EZUSB FX等時端點1197.13快速傳送模式1197.14中斷1207.15重置與電源管理1207.16EZUSB 2100系列1207.17FX系列--從FIFO1227.18FX系列--GPIF 通用型可程序化的接口 1227.19AN2122/26各種特性的摘要1227.20修訂ID1237.21引腳描述123第8章 EZUSB FX CPU8.1簡介1308.28051增強模式1308.3EZUSB FX所增強的部分1318.4EZUSB FX寄存器接口1318.5EZUSB FX內部RAM1318.6I/O端口1328.7中斷1328.8電源控制1338.9特殊功能寄存器 SFR 1348.10內部總線1358.11重置136第9章 EZUSB FX內存9.1簡介1379.28051內存1389.3擴充的EZUSB FX內存1399.4CS#與OE#信號1409.5EZUSB FX ROM版本141第10章 EZUSB FX輸入/輸出端口10.1簡介14310.2I/O端口14310.3EZUSB輸入/輸出端口寄存器14610.3.1端口配置寄存器14710.3.2I/O端口寄存器14710.4EZUSB FX輸入/輸出端口寄存器14910.5EZUSB FX端口配置表15110.6I2C控制器15610.78051 I2C控制器15610.8控制位15810.8.1START位15810.8.2STOP位15810.8.3LASTRD位15810.9狀態位15910.9.1DONE位15910.9.2ACK位15910.9.3BERR位15910.9.4ID1, ID015910.10送出 WRITE I2C數據16010.11接收 READ I2C數據16010.12I2C激活加載器16010.13SFR尋址 FX 16210.14端口A~E的SFR控制165第11章 EZUSB FX設備列舉與重新設備列舉11.1簡介16711.2預設的USB設備16911.3USB核心對于EP0設備請求的響應17011.4固件下載17111.5設備列舉模式17211.6沒有存在EEPROM17311.7存在著EEPROM, 第一個字節是0xB0 0xB4, FX系列11.8存在著EEPROM, 第一個字節是0xB2 0xB6, FX系列11.9配置字節0,FX系列17711.10重新設備列舉 ReNumerationTM 17811.11多重重新設備列舉 ReNumerationTM 17911.12預設描述符179第12章 EZUSB FX批量傳輸12.1簡介18812.2批量輸入傳輸18912.3中斷傳輸19112.4EZUSB FX批量IN的例子19112.5批量OUT傳輸19212.6端點對19412.7IN端點對的狀態19412.8OUT端點對的狀態19512.9使用批量緩沖區內存19512.10Data Toggle控制19612.11輪詢的批量傳輸的范例19712.12設備列舉說明19912.13批量端點中斷19912.14中斷批量傳輸的范例20112.15設備列舉說明20512.16自動指針器205第13章 EZUSB控制端點013.1簡介20913.2控制端點EP021013.3USB請求21213.3.1取得狀態 Get_Status 21413.3.2設置特性(Set_Feature)21713.3.3清除特性(Clear_Feature)21813.3.4取得描述符(Get_Descriptor)21913.3.5設置描述符(Set Descriptor)22313.3.6設置配置(Set_Configuration)22513.3.7取得配置(Get_Configuration)22513.3.8設置接口(Set_Interface)22513.3.9取得接口(Get_Interface)22613.3.10設置地址(Set_Address)22713.3.11同步幀22713.3.12固件加載228第14章 EZUSB FX等時傳輸14.1簡介22914.2等時IN傳輸23014.2.1初始化設置23014.2.2IN數據傳輸23014.3等時OUT傳輸23114.3.1初始化設置23114.3.2數據傳輸23214.4設置等時FIFO的大小23214.5等時傳輸速度23414.5.1EZUSB 2100系列23414.5.2EZUSB FX系列23514.6快速傳輸 僅存于2100系列 23614.6.1快速寫入23614.6.2快速讀取23714.7快速傳輸的時序 僅存于2100系列 23714.7.1快速寫入波形23814.7.2快速讀取波形23914.8快速傳輸速度(僅存于2100系列)23914.9其余的等時寄存器24014.9.1除能等時寄存器24014.9.20字節計數位24114.10以無數據來響應等時IN令牌24214.11使用等時FIFO242第15章 EZUSB FX中斷15.1簡介24315.2USB核心中斷24415.3喚醒中斷24415.4USB中斷信號源24515.5SUTOK與SUDAV中斷24815.6SOF中斷24915.7中止 suspend 中斷24915.8USB重置中斷24915.9批量端點中斷25015.10USB自動向量25015.11USB自動向量譯碼25115.12I2C中斷25215.13IN批量NAK中斷 僅存于AN2122/26與FX系列 25315.14I2C STOP反相中斷 僅存于AN2122/26與FX系列 25415.15從FIFO中斷 INT4 255第16章 EZUSB FX重置16.1簡介25716.2EZUSB FX打開電源重置 POR 25716.38051重置的釋放25916.3.1RAM的下載26016.3.2下載EEPROM26016.3.3外部ROM26016.48051重置所產生的影響26016.5USB總線重置26116.6EZUSB脫離26216.7各種重置狀態的總結263第17章 EZUSB FX電源管理17.1簡介26517.2中止 suspend 26617.3回復 resume 26717.4遠程喚醒 remote wakeup 269第18章 EZUSB FX系統18.1簡介27118.2DMA寄存器描述27218.2.1來源. 目的. 傳輸長度地址寄存器27218.2.2DMA起始與狀態寄存器27518.2.3DMA同步突發使能寄存器27518.2.4虛擬寄存器27818.3RD/FRD與WR/FWR DMA閃控的選擇27818.4DMA閃控波形與延伸位的交互影響27918.4.1DMA外部寫入27918.4.2DMA外部讀取280第19章 EZUSB FX寄存器19.1簡介28219.2批量數據緩沖區寄存器28319.3等時數據FIFO寄存器28419.4等時字節計數寄存器28519.5CPU寄存器28719.6I/O端口配置寄存器28819.7I/O端口A~C輸入/輸出寄存器28919.8230 Kbaud UART操作--AN2122/26寄存器29119.9等時控制/狀態寄存器29119.10I2C寄存器29219.11中斷29419.12端點0控制與狀態寄存器29919.13端點1~7的控制與狀態寄存器30019.14整體USB寄存器30519.15快速傳輸30919.16SETUP數據31119.17等時FIFO的容量大小31119.18通用I/F中斷使能31219.19通用中斷請求31219.20輸入/輸出端口寄存器D與E31319.20.1端口D輸出31319.20.2輸入端口D腳位31319.20.3端口D輸出使能31319.20.4端口E輸出31319.20.5輸入端口E腳位31419.20.6端口E輸出使能31419.21端口設置31419.22接口配置31419.23端口A與端口C切換配置31619.23.1端口A切換配置#231619.23.2端口C切換配置#231719.24DMA寄存器31919.24.1來源. 目的. 傳輸長度地址寄存器31919.24.2DMA起始與狀態寄存器32019.24.3DMA同步突發使能寄存器32019.24.4選擇8051 A/D總線作為外部FIFO321PART 3 固件技術篇第20章 EZUSB FX固件架構與函數庫20.1固件架構總覽32320.2固件架構的建立32520.3固件架構的副函數鉤子32520.3.1工作分配器32620.3.2設備請求 device request 32620.3.3USB中斷服務例程32920.4固件架構整體變量33220.5描述符表33320.5.1設備描述符33320.5.2配置描述符33420.5.3接口描述符33420.5.4端點描述符33520.5.5字符串描述符33520.5.6群組描述符33520.6EZUSB FX固件的函數庫33620.6.1包含文件 *.H 33620.6.2子程序33620.6.3整體變量33820.7固件架構的原始程序代碼338第21章 EZUSB FX固件范例程序21.1范例程序的簡介34621.2外圍I/O測試程序34721.3端點對, EP_PAIR范例35221.4批量測試, BulkTest范例36221.5等時傳輸, ISOstrm范例36821.6問題與討論373PART 4 實驗篇第22章 EZUSB FX仿真器22?1簡介37522?2所需的工具37622?3EZUSB FX框圖37722.4EZUSB最終版本的系統框圖37822?5第一次下載程序37822.6EZUSB FX開發系統框圖37922.7設置開發環境38022.8EZUSB FX開發工具組的內容38122.9EZUSB FX開發工具組軟件38222.9.1初步安裝程序38222.9.2確認主機 個人計算機 是否支持USB38222.10安裝EZUSB控制平臺. 驅動程序以及文件38322.11EZUSB FX開發電路板38522.11.1簡介38522.11.2開發電路板的瀏覽38522.11.3所使用的8051資源38622.11.4詳細電路38622.11.5LED的顯示38722.11.6Jumper38722.11.7連接器39122.11.8內存映象圖39222.11.9PLD信號39422.11.10PLD源文件文件39522.11.11雛形板的擴充連接器P1~P639722.11.12Philips PCF8574 I/O擴充IC40022.12DMA USB FX I/O LAB開發工具介紹40122.12.1USBFX簡介40122.12.2USBFX及外圍整體環境介紹40322?12?3USBFX與PC連接軟件介紹40422.12.4USBFX硬件功能介紹404第23章 LED顯示器輸出實驗23.1硬件設計與基本概念40923.2固件設計41023.3.1固件架構文件FW.C41123.3.2描述符文件DESCR.A5141223.3.3外圍接口文件PERIPH.C41723.4固件程序代碼的編譯與鏈接42123.5Windows程序, VB設計42323.6INF文件的編寫設計42423.7結論42623.8問題與討論427第24章 七段顯示器與鍵盤的輸入/輸出實驗24.1硬件設計與基本概念42824.2固件設計43124.2.1七段顯示器43124.2.24×4鍵盤掃描43324.3固件程序代碼的編譯與鏈接43424.4Windows程序, VB設計43624.5問題與討論437第25章 LCD文字型液晶顯示器輸出實驗25.1硬件設計與基本概念43825.1.1液晶顯示器LCD43825.2固件設計45225.3固件程序代碼的編譯與鏈接45625.4Windows程序, VB設計45725.5問題與討論458第26章 LED點陣輸出實驗26.1硬件設計與基本概念45926.2固件設計46326.3固件程序代碼的編譯與鏈接46326.4Windows程序, VB設計46526.5問題與討論465第27章 步進電機輸出實驗27.1硬件設計與基本概念46627.1.11相激磁46727.1.22相激磁46727.1.31-2相激磁46827?1?4PMM8713介紹46927.2固件設計47327.3固件程序代碼的編譯與鏈接47427.4Windows程序, VB設計47627.5問題與討論477第28章 I2C接口輸入/輸出實驗28.1硬件設計與基本概念47828.2固件設計48128.3固件程序代碼的編譯與鏈接48328.4Windows程序, VB設計48428.5問題與討論485第29章 A/D轉換器與D/A轉換器的輸入/輸出實驗29.1硬件設計與基本概念48629.1.1A/D轉換器48629.1.2D/A轉換器49029.2固件設計49329.2.1A/D轉換器的固件設計49329.2.2D/A轉換器的固件設計49629.3固件程序代碼的編譯與鏈接49729.4Windows程序, VB設計49829.5問題與討論499第30章 LCG繪圖型液晶顯示器輸出實驗30.1硬件設計與基本概念50030.1.1繪圖型LCD50030.1.2繪圖型LCD控制指令集50330.1.3繪圖型LCD讀取與寫入時序圖50530.2固件設計50630.2.1LCG驅動程序50630.2.2USB固件碼51330.3固件程序代碼的編譯與鏈接51630.4Windows程序, VB設計51730.5問題與討論518附錄A Cypress控制平臺的操作A.1EZUSB控制平臺總覽519A.2主畫面520A.3熱插拔新的USB設備521A.4各種工具欄的使用524A.5故障排除526A.6控制平臺的進階操作527A.7測試Unary Op工具欄上的按鈕功能528A.8測試制造商請求的工具欄 2100 系列的開發電路板 529A.9測試等時傳輸工具欄532A.10測試批量傳輸工具欄533A.11測試重置管線工具欄535A.12測試設置接口工具欄537A.13測試制造商請求工具欄 FX系列開發電路板A.14執行Get Device Descriptor 操作來驗證開發板的功能是否正確539A.15從EZUSB控制平臺中, 加載dev_io的范例并且加以執行540A.16從Keil偵錯應用程序中, 加載dev_io范例程序代碼, 然后再加以執行542A.17將dev_io 目標文件移開, 且使用Keil IDE 集成開發環境 來重建545A.18在偵錯器下執行dev_io目標文件, 并且使用具有偵錯能力的IDE547A.19在EZUSB控制平臺下, 執行ep_pair目標文件A.20如何修改fw范例, 并在開發電路板上產生等時傳輸550附錄BEZUSB 2100系列及EZUSB FX系列引腳表B.1EZUSB 2100系列引腳表555B?2EZUSB FX系列引腳圖表561附錄C EZUSB FX寄存器總覽附錄D EEPROM燒錄方式
上傳時間: 2013-11-21
上傳用戶:努力努力再努力
單片機C語言應用程序設計針對目前最通用的單片機8051和最流行的程序設計語言——C語言,以KEII。公司8051單片機開發套件講解單片機的C語言應用程序設計。該套件的編譯器有支持經典8051及8051派生產品的版本,統稱為Cx51。Windows集成開發環境μVision2把μVisionl用的模擬調試器dScope與集成環境無縫結合起來,使用更方便,支持的單片機品種更多。 本書的特點是取材于原文資料,總結實際教學和應用經驗,實例較多,實用性強。本書中C語言是針對8051特有結構描述的,這樣,即使無編程基礎的人,也可通過本書學習單片機的c編程。單片機C語言應用程序設計目錄第1章 單片機基礎知識 1.1 8051單片機的特點 1.2 8051的內部知識 1.3 8051的系統擴展 習題一第2章 C與8051 2.1 8051的編程語言 2.2 Cx51編譯器 2.3 KEIL 8051開發工具 2.4 KEIL Cx51編程實例 2.5 Cx51程序結構 習題二第3章 Cx51 數據與運算 3.1 數據與數據類型 3.2 常量與變量 3.3 Cx51數據存儲類型與8051存儲器結構 3.4 8051特殊功能寄存器(SFR)及其Cx51定義 3.5 8051并行接口及其Cx51定義 3.6 位變量(BIT)及其Cx51定義 3.7 Cx51運算符、表達式及其規則 習題三第4章 Cx51 流程控制語句 4.1 C語言程序的基本結構及其流程圖 4.2 選擇語句 4.3 循環語句 習題四第5章 Cx51 構造數據類型 5.1 數組 5.2 指針 5.3 結構 5.4 共用體 5.5 枚舉 習題五第6章 Cx51 函數第7章 模塊化程序設計第8章 8051內部資源的C編輯第9章 8051擴展資源的C編輯第10章 8051輸出控制的C編程第11章 8051數據采集的C編程第12章 8051機間通信的C編程第13章 8051人機交互的C編程附錄A μVision2集成開發環境使用附錄B KEIL Cx51 上機制南
上傳時間: 2013-10-21
上傳用戶:行者Xin
MSP430系列flash型超低功耗16位單片機MSP430系列單片機在超低功耗和功能集成等方面有明顯的特點。該系列單片機自問世以來,頗受用戶關注。在2000年該系列單片機又出現了幾個FLASH型的成員,它們除了仍然具備適合應用在自動信號采集系統、電池供電便攜式裝置、超長時間連續工作的設備等領域的特點外,更具有開發方便、可以現場編程等優點。這些技術特點正是應用工程師特別感興趣的。《MSP430系列FLASH型超低功耗16位單片機》對該系列單片機的FLASH型成員的原理、結構、內部各功能模塊及開發方法與工具作詳細介紹。MSP430系列FLASH型超低功耗16位單片機 目錄 第1章 引 論1.1 MSP430系列單片機1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結構概述2.1 引 言2.2 CPU2.3 程序存儲器2.4 數據存儲器2.5 運行控制2.6 外圍模塊2.7 振蕩器與時鐘發生器第3章 系統復位、中斷及工作模式3.1 系統復位和初始化3.1.1 引 言3.1.2 系統復位后的設備初始化3.2 中斷系統結構3.3 MSP430 中斷優先級3.3.1 中斷操作--復位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應用的要點23第4章 存儲空間4.1 引 言4.2 存儲器中的數據4.3 片內ROM組織4.3.1 ROM 表的處理4.3.2 計算分支跳轉和子程序調用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲器4.5.1 FLASH存儲器的組織4.5.2 FALSH存儲器的數據結構4.5.3 FLASH存儲器的控制寄存器4.5.4 FLASH存儲器的安全鍵值與中斷4.5.5 經JTAG接口訪問FLASH存儲器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計數器PC5.1.2 系統堆棧指針SP5.1.3 狀態寄存器SR5.1.4 常數發生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令組概述5.3.1 雙操作數指令5.3.2 單操作數指令5.3.3 條件跳轉5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號數相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號數相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號數乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號數乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎時鐘模塊7.1 基礎時鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調整器7.4 時鐘與運行模式7.4.1 由PUC啟動7.4.2 基礎時鐘調整7.4.3 用于低功耗的基礎時鐘特性7.4.4 選擇晶振產生MCLK7.4.5 時鐘信號的同步7.5 基礎時鐘模塊控制寄存器7.5.1 DCO時鐘頻率控制7.5.2 振蕩器與時鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時器WDT9.1 看門狗定時器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時器模式控制10.2.2 時鐘源選擇和分頻10.2.3 定時器啟動10.3 定時器模式10.3.1 停止模式10.3.2 增計數模式10.3.3 連續模式10.3.4 增/減計數模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應用 第11章 16位定時器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時器長度11.2.2 定時器模式控制11.2.3 時鐘源選擇和分頻11.2.4 定時器啟動11.3 定時器模式11.3.1 停止模式11.3.2 增計數模式11.3.3 連續模式11.3.4 增/減計數模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發生器12.1.3 異步通信格式12.1.4 線路空閑多機模式12.1.5 地址位多機通信格式12.2 中斷和中斷允許12.2.1 USART接收允許12.2.2 USART發送允許12.2.3 USART接收中斷操作12.2.4 USART發送中斷操作12.3 控制和狀態寄存器12.3.1 USART控制寄存器UCTL12.3.2 發送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調整控制寄存器12.3.5 USART接收數據緩存URXBUF12.3.6 USART發送數據緩存UTXBUF12.4 UART模式,低功耗模式應用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART的波特率12.4.3 多處理機模式對節約MSP430資源的支持12.5 波特率計算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發送允許位及接收操作13.2.2 USART接收/發送允許位及發送操作13.2.3 USART接收中斷操作13.2.4 USART發送中斷操作13.3 控制與狀態寄存器13.3.1 USART控制寄存器13.3.2 發送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調制控制寄存器13.3.5 USART接收數據緩存URXBUF13.3.6 USART發送數據緩存UTXBUF第14章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應用14.4.1 模擬信號在數字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個獨立電阻元件的測量系統14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補償14.4.8 增加比較器A的回差第15章 模數轉換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號15.3.3 熱敏二極管的使用15.4 轉換存儲15.5 轉換模式15.5.1 單通道單次轉換模式15.5.2 序列通道單次轉換模式15.5.3 單通道重復轉換模式15.5.4 序列通道重復轉換模式15.5.5 轉換模式之間的切換15.5.6 低功耗15.6 轉換時鐘與轉換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉換存儲寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發16.1 開發系統概述16.1.1 開發技術16.1.2 MSP430系列的開發16.1.3 MSP430F系列的開發16.2 FLASH型的FET開發方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標準復位過程和進入BSL過程16.3.2 BSL的UART協議16.3.3 數據格式16.3.4 退出BSL16.3.5 保護口令16.3.6 BSL的內部設置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機參數表附錄D MSP430系列單片機封裝形式附錄E MSP430系列器件命名
上傳時間: 2014-04-28
上傳用戶:sssnaxie
含原理圖+電路圖+程序的波形發生器:在工作中,我們常常會用到波形發生器,它是使用頻度很高的電子儀器。現在的波形發生器都采用單片機來構成。單片機波形發生器是以單片機核心,配相應的外圍電路和功能軟件,能實現各種波形發生的應用系統,它由硬件部分和軟件部分組成,硬件是系統的基礎,軟件則是在硬件的基礎上,對其合理的調配和使用,從而完成波形發生的任務。 波形發生器的技術指標:(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設計1、 機器通電后,系統進行初始化,LED在面板上顯示6個0,表示系統處于初始狀態,等待用戶輸入設置命令,此時,無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進入頻率,幅值波形設置,使系統進入設置狀態,相應的數碼管顯示“一”,此時,按其它鍵,無效;3、 在進入某一設置狀態后,輸入0~9等數字鍵,(數字鍵僅在設置狀態時,有效)為欲輸出的波形設置相應參數,LED將參數顯示在面板上;4、 如果在設置中,要改變已設定的參數,可按下“CL”鍵,清除所有已設定參數,系統恢復初始狀態,LED顯示6個0,等待重新輸入命令;5、 當必要的參數設定完畢后,所有參數顯示于LED上,用戶按下“EN”鍵,系統會將各波形參數傳遞到波形產生模塊中,以便控制波形發生,實現不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發生器開始輸出滿足參數的波形信號,面板上相應類型的運行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數;7、 波形發生器在輸出信號時,按下任意一個鍵,就停止波形信號輸出,等待重新設置參數,設置過程如上所述,如果不改變參數,可按下“EN”鍵,繼續輸出原波形信號;8、 要停止波形發生器的使用,可按下復位按鈕,將系統復位,然后關閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應用,性能價格高的常用芯片來構成硬件電路。單片機采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅動器 ULN2803A(一塊),運算放大器 LM324(一塊) 波形發生器的硬件電路由單片機、鍵盤顯示器接口電路、波形轉換(D/ A)電路和電源線路等四部分構成。1.單片機電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數設置;形成顯示段碼,向LED顯示接口電路輸出;產生定時中斷;形成波形的數字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機尋址外設,采用存儲器映像方式,外部接口芯片與內部存儲器統一編址,89C51提供16根地址線P0(分時復用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時還要負責與8255,0832的數據傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經過74LS373鎖存后,送到8255的A1、A2作,片內A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機89C51內部有兩個定時器/計數器,在波形發生器中使用T0作為中斷源。不同的頻率值對應不同的定時初值,定時器的溢出信號作為中斷請求。控制定時器中斷的特殊功能寄存器設置如下:定時控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅動6位數碼管動態顯示; 提供響應界面; 掃面鍵盤; 提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅動器ULN2803A,6位共陰極數碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態,按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內部的4個寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A電路功能:將波形樣值的數字編碼轉換成模擬值;完成單極性向雙極性的波形輸出;構成由兩片0832和一塊LM324運放組成。0832(1)是參考電壓提供者,單片機向0832(1)內的鎖存器送數字編碼,不同的編碼會產生不同的輸出值,在本發生器中,可輸出1V、2V、3V、4V、5V等五個模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時,其幅度是可調的。0832(2)用于產生各種波形信號,單片機在波形產生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經過D/A轉換,得到波形的模擬樣值點,假如N個點就構成波形的一個周期,那么0832(2)輸出N個樣值點后,樣值點形成運動軌跡,就是波形信號的一個周期。重復輸出N個點后,由此成第二個周期,第三個周期……。這樣0832(2)就能連續的輸出周期變化的波形信號。運放A1是直流放大器,運放A2是單極性電壓放大器,運放A3是雙極性驅動放大器,使波形信號能帶得起負載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發生器提供直流能量;構成由變壓器、整流硅堆,穩壓塊7805組成。220V的交流電,經過開關,保險管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩定,使用7805進行穩壓。最后,+5V電源配送到各用電負載。
上傳時間: 2013-11-08
上傳用戶:685
單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。 升C調:1=#C,也就是降D調:1=BD;277(頻率)升D調:1=#D,也就是降E調:1=BE;311升F調:1=#F,也就是降G調:1=BG;369升G調:1=#G,也就是降A調:1=BA;415升A調:1=#A,也就是降B調:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節拍的確定方法 經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例: A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。 音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 : C調音符 頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時間: 2013-10-20
上傳用戶:哈哈haha
pic單片機實用教程(提高篇)以介紹PIC16F87X型號單片機為主,并適當兼顧PIC全系列,共分9章,內容包括:存儲器;I/O端口的復位功能;定時器/計數器TMR1;定時器TMR2;輸入捕捉/輸出比較/脈寬調制CCP;模/數轉換器ADC;通用同步/異步收發器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點:通俗易懂、可讀性強、系統全面、學練結合、學用并重、實例豐富、習題齊全。<br>本書作為Microchip公司大學計劃選擇用書,可廣泛適用于初步具備電子技術基礎和計算機知識基礎的學生、教師、單片機愛好者、電子制作愛好者、電器維修人員、電子產品開發設計者、工程技術人員閱讀。本教程全書共分2篇,即基礎篇和提高篇,分2冊出版,以適應不同課時和不同專業的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數據存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導體存儲器的種類和特點1.1.2 PIC單片機內部的程序存儲器1.1.3 PIC單片機內部的EEPROM數據存儲器1.1.4 PIC16F87X內部EEPROM和FIASH操作方法1.2 與EEPROM相關的寄存器1.3 片內EEPROM數據存儲器結構和操作原理1.3.1 從EEPROM中讀取數據1.3.2 向EEPROM中燒寫數據1.4 與FLASH相關的寄存器1.5 片內FLASH程序存儲器結構和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗方法1.6.2 預防意外寫操作的保障措施1.7 EEPROM和FLASH應用舉例1.7.1 EEPROM的應用1.7.2 FIASH的應用思考題與練習題第2章 輸入/輸出端口的復合功能2.1 RA端口2.1.1 與RA端口相關的寄存器2.1.2 電路結構和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關的寄存器2.2.2 電路結構和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關的寄存器2.3.2 電路結構和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關的寄存器2.4.2 電路結構和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關的寄存器2.5.2 電路結構和工作原理2.5.3 編程方法2.6 PSP并行從動端口2.6.1 與PSP端口相關的寄存器2.6.2 電路結構和工作原理2.7 應用舉例思考題與練習題第3章 定時器/計數器TMR13.1 定時器/計數器TMR1模塊的特性3.2 定時器/計數器TMR1模塊相關的寄存器3.3 定時器/計數器TMR1模塊的電路結構3.4 定時器/計數器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時器工作方式3.4.3 計數器工作方式3.4.4 TMR1寄存器的賦值與復位3.5 定時器/計數器TMR1模塊的應用舉例思考題與練習題第4章 定時器TMR24.1 定時器TMR2模塊的特性4.2 定時器TMR2模塊相關的寄存器4.3 定時器TMR2模塊的電路結構4.4 定時器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復位4.4.4 TMR2模塊的初始化編程4.5 定時器TMR2模塊的應用舉例思考題與練習題第5章 輸入捕捉/輸出比較/脈寬調制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關的寄存器5.1.2 輸入捕捉模式的電路結構5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關的寄存器5.2.2 輸出比較模式的電路結構5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應用舉例5.3 脈寬調制輸出工作模式5.3.1 脈寬調制模式相關的寄存器5.3.2 脈寬調制模式的電路結構5.3.3 脈寬調制模式的工作原理5.3.4 脈定調制模式的應用舉例5.4 兩個CCP模塊之間相互關系思考題與練習題第6章 模/數轉換器ADC6.1 背景知識6.1.1 ADC種類與特點6.1.2 ADC器件的工作原理6.2 PIC16F87X片內ADC模塊6.2.1 ADC模塊相關的寄存器6.2.2 ADC模塊結構和操作原理6.2.3 ADC模塊操作時間要求6.2.4 特殊情況下的A/D轉換6.2.5 ADC模塊的轉換精度和分辨率6.2.6 ADC模塊的內部動作流程和傳遞函數6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內ADC模塊的應用舉例思考題與練習題第7章 通用同步/異步收發器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數據傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結構7.1.5 串行通信中的檢錯和糾錯方式7.1.6 串行通信組網方式7.1.7 串行通信接口電路和參數7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內通用同步/異步收發器USART模塊7.2.1 與USART模塊相關的寄存器7.2.2 USART波特率發生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動工作方式7.3 通用同步/異步收發器USART的應用舉例思考題與練習題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統構成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關的寄存器8.2.2 SPI接口的結構和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動方式8.3 SPI接口的應用舉例思考題與練習題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術語9.1.2 I(平方)C總線的技術特點9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術參數9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關的寄存器9.3 典型信號時序的產生方法9.3.1 波特率發生器9.3.2 啟動信號9.3.3 重啟動信號9.3.4 應答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結構9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發送——被控發送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結構9.5.2 主控器發送——主控發送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發送和應答過程中的總線沖突9.6.2 啟動過程中的總線沖突9.6.3 重啟動過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應用舉例思考題與練習題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻
上傳時間: 2013-12-14
上傳用戶:xiaoyuer
微處理器及微型計算機的發展概況 第一代微處理器是以Intel公司1971年推出的4004,4040為代表的四位微處理機。 第二代微處理機(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。 第三代微處理機 第三代微機是以16位機為代表,基本上是在第二代微機的基礎上發展起來的。其中Intel公司的8088。8086是在8085的基礎發展起來的;M68000是Motorola公司在M6800 的基礎發展起來的; 第四代微處理機 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU為代表, 第五代微處理機的發展更加迅猛,1993年3月被命名為PENTIUM的微處理機面世,98年PENTIUM 2又被推向市場。 INTEL CPU 發展歷史Intel第一塊CPU 4004,4位主理器,主頻108kHz,運算速度0.06MIPs(Million Instructions Per Second, 每秒百萬條指令),集成晶體管2,300個,10微米制造工藝,最大尋址內存640 bytes,生產曰期1971年11月. 8085,8位主理器,主頻5M,運算速度0.37MIPs,集成晶體管6,500個,3微米制造工藝,最大尋址內存64KB,生產曰期1976年 8086,16位主理器,主頻4.77/8/10MHZ,運算速度0.75MIPs,集成晶體管29,000個,3微米制造工藝,最大尋址內存1MB,生產曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主頻25/33/50/66/75/100MHZ,總線頻率33/50/66MHZ,運算速度20~60MIPs,集成晶體管1.2M個,1微米制造工藝,168針PGA,最大尋址內存4GB,緩存8/16/32/64KB,生產曰期1989年4月 Celeron一代, 主頻266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 總線頻率66MHz,0.25微米制造工藝,生產曰期1998年4月) Pentium 4 (478針),至今分為三種核心:Willamette核心(主頻1.5G起,FSB400MHZ,0.18微米制造工藝),Northwood核心(主頻1.6G~3.0G,FSB533MHZ,0.13微米制造工藝, 二級緩存512K),Prescott核心(主頻2.8G起,FSB800MHZ,0.09微米制造工藝,1M二級緩存,13條全新指令集SSE3),生產曰期2001年7月. 更大的緩存、更高的頻率、 超級流水線、分支預測、亂序執行超線程技術 微型計算機組成結構單片機簡介單片機即單片機微型計算機,是將計算機主機(CPU、 內存和I/O接口)集成在一小塊硅片上的微型機。 三、計算機編程語言的發展概況 機器語言 機器語言就是0,1碼語言,是計算機唯一能理解并直接執行的語言。匯編語言 用一些助記符號代替用0,1碼描述的某種機器的指令系統,匯編語言就是在此基礎上完善起來的。高級語言 BASIC,PASCAL,C語言等等。用高級語言編寫的程序稱源程序,它們必須通過編譯或解釋,連接等步驟才能被計算機處理。 面向對象語言 C++,Java等編程語言是面向對象的語言。 1.3 微型計算機中信息的表示及運算基礎(一) 十進制ND有十個數碼:0~9,逢十進一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加權展開式以10稱為基數,各位系數為0~9,10i為權。 一般表達式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二進制NB兩個數碼:0、1, 逢二進一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加權展開式以2為基數,各位系數為0、1, 2i為權。 一般表達式: NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六進制NH十六個數碼0~9、A~F,逢十六進一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展開式以十六為基數,各位系數為0~9,A~F,16i為權。 一般表達式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同進位計數制之間的轉換 (二)二進制與十六進制數之間的轉換 24=16 ,四位二進制數對應一位十六進制數。舉例:(三)十進制數轉換成二、十六進制數整數、小數分別轉換 1.整數轉換法“除基取余”:十進制整數不斷除以轉換進制基數,直至商為0。每除一次取一個余數,從低位排向高位。舉例: 2. 小數轉換法“乘基取整”:用轉換進制的基數乘以小數部分,直至小數為0或達到轉換精度要求的位數。每乘一次取一次整數,從最高位排到最低位。舉例: 三、帶符號數的表示方法 機器數:機器中數的表示形式。真值: 機器數所代表的實際數值。舉例:一個8位機器數與它的真值對應關系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 機器數:[X1]機= 01010100 [X2]機= 11010100(二)原碼、反碼、補碼最高位為符號位,0表示 “+”,1表示“-”。 數值位與真值數值位相同。 例 8位原碼機器數: 真值: x1 = +1010100B x2 =- 1010100B 機器數: [x1]原 = 01010100 [x2]原 = 11010100原碼表示簡單直觀,但0的表示不唯一,加減運算復雜。 正數的反碼與原碼表示相同。 負數反碼符號位為 1,數值位為原碼數值各位取反。 例 8位反碼機器數: x= +4: [x]原= 00000100 [x]反= 00000100 x= -4: [x]原= 10000100 [x]反= 111110113、補碼(Two’s Complement)正數的補碼表示與原碼相同。 負數補碼等于2n-abs(x)8位機器數表示的真值四、 二進制編碼例:求十進制數876的BCD碼 876= 1000 0111 0110 BCD 876= 36CH = 1101101100B 2、字符編碼 美國標準信息交換碼ASCII碼,用于計算 機與計算機、計算機與外設之間傳遞信息。 3、漢字編碼 “國家標準信息交換用漢字編碼”(GB2312-80標準),簡稱國標碼。 用兩個七位二進制數編碼表示一個漢字 例如“巧”字的代碼是39H、41H漢字內碼例如“巧”字的代碼是0B9H、0C1H1·4 運算基礎 一、二進制數的運算加法規則:“逢2進1” 減法規則:“借1當2” 乘法規則:“逢0出0,全1出1”二、二—十進制數的加、減運算 BCD數的運算規則 循十進制數的運算規則“逢10進1”。但計算機在進行這種運算時會出現潛在的錯誤。為了解決BCD數的運算問題,采取調整運算結果的措施:即“加六修正”和“減六修正”例:10001000(BCD)+01101001(BCD) =000101010111(BCD) 1 0 0 0 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 0 1 1 0 ……調整 1 0 1 0 1 0 1 1 1 進位 例: 10001000(BCD)- 01101001(BCD)= 00011001(BCD) 1 0 0 0 1 0 0 0 - 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 - 0 1 1 0 ……調整 0 0 0 1 1 0 0 1 三、 帶符號二進制數的運算 1.5 幾個重要的數字邏輯電路編碼器譯碼器計數器微機自動工作的條件程序指令順序存放自動跟蹤指令執行1.6 微機基本結構微機結構各部分組成連接方式1、以CPU為中心的雙總線結構;2、以內存為中心的雙總線結構;3、單總線結構CPU結構管腳特點 1、多功能;2、分時復用內部結構 1、控制; 2、運算; 3、寄存器; 4、地址程序計數器堆棧定義 1、定義;2、管理;3、堆棧形式
上傳時間: 2013-10-17
上傳用戶:erkuizhang
關于3g無線網優的:WCDMA無線基本原理 課程目標: ? 掌握3G移動通信的基本概念 ? 掌握3G的標準化過程 ? 掌握WCDMA的基本網絡結構以及各網元功能 ? 掌握無線通信原理 ? 掌握WCDMA的關鍵技術 參考資料: ? 《3G概述與概況》 ? 《中興通訊WCDMA基本原理》 ? 《ZXWR RNC(V3.0)技術手冊》 ? 《ZXWR NB09技術手冊》 第1章 概述 1 1.1 移動通信的發展歷程 1 1.1.1 移動通信系統的發展 1 1.1.2 移動通信用戶及業務的發展 1 1.2 3G移動通信的概念 2 1.3 為什么要發展第三代移動通信 2 1.4 3G的標準化過程 3 1.4.1 標準組織 3 1.4.2 3G技術標準化 3 1.4.3 第三代的核心網絡 4 1.4.4 IMT-2000的頻譜分配 6 1.4.5 2G向3G移動通信系統演進 7 1.4.6 WCDMA核心網絡結構的演進 11 第2章 WCDMA系統介紹 13 2.1 系統概述 13 2.2 R99網元和接口概述 14 2.2.1 移動交換中心MSC 16 2.2.2 拜訪位置寄存器VLR 16 2.2.3 網關GMSC 16 2.2.4 GPRS業務支持節點SGSN 16 2.2.5 網關GPRS支持節點GGSN 17 2.2.6 歸屬位置寄存器與鑒權中心HLR/AuC 17 2.2.7 移動設備識別寄存器EIR 17 2.3 R4網絡結構概述 17 2.3.1 媒體網關MGW 19 2.3.2 傳輸信令網關T-SGW、漫游信令網關R-SGW 20 2.4 R5網絡結構概述 20 2.4.1 媒體網關控制器MGCF 22 2.4.2 呼叫控制網關CSCF 22 2.4.3 會議電話橋分MRF 22 2.4.4 歸屬用戶服務器HSS 22 2.5 UTRAN的一般結構 22 2.5.1 RNC子系統 23 2.5.2 Node B子系統 25 第3章 擴頻通信原理 27 3.1 擴頻通信簡介 27 3.1.1 擴頻技術簡介 27 3.1.2 擴頻技術的現狀 27 3.2 擴頻通信原理 28 3.2.1 擴頻通信的定義 29 3.2.2 擴頻通信的理論基礎 29 3.2.3 擴頻與解擴頻過程 30 3.2.4 擴頻增益和抗干擾容限 31 3.2.5 擴頻通信的主要特點 32 第4章 無線通信基礎 35 4.1 移動無線信道的特點 35 4.1.1 概述 35 4.1.2 電磁傳播的分析 37 4.2 編碼與交織 38 4.2.1 信道編碼 39 4.2.2 交織技術 42 4.3 擴頻碼與擾碼 44 4.4 調制 47 第5章 WCDMA關鍵技術 49 5.1 WCDMA系統的技術特點 49 5.2 功率控制 51 5.2.1 開環功率控制 51 5.2.2 閉環功率控制 52 5.2.3 HSDPA相關的功率控制 55 5.3 RAKE接收 57 5.4 多用戶檢測 60 5.5 智能天線 62 5.6 分集技術 64 第6章 WCDMA無線資源管理 67 6.1 切換 67 6.1.1 切換概述 67 6.1.2 切換算法 73 6.1.3 基于負荷控制原因觸發的切換 73 6.1.4 基于覆蓋原因觸發的切換 74 6.1.5 基于負荷均衡原因觸發的切換 77 6.1.6 基于移動臺移動速度的切換 79 6.2 碼資源管理 80 6.2.1 上行擾碼 80 6.2.2 上行信道化碼 83 6.2.3 下行擾碼 84 6.2.4 下行信道化碼 85 6.3 接納控制 89 6.4 負荷控制 95 第7章 信道 97 7.1 UTRAN的信道 97 7.1.1 邏輯信道 98 7.1.2 傳輸信道 99 7.1.3 物理信道 101 7.1.4 信道映射 110 7.2 初始接入過程 111 7.2.1 小區搜索過程 111 7.2.2 初始接入過程 112
上傳時間: 2013-11-21
上傳用戶:tdyoung
本書介紹Linux環境下的編程方法,內容包括Linux系統命令、 Shell腳本、編程語言(gawk、Perl)、系統內核、安全體系、X Window等,內容豐富、論述全面,涵蓋了Linux系統的方方面面。本書附帶光盤包括了RedHat Linux系統的最新版本,及安裝方法,還包括本書的大量程序代碼,極大地方便了讀者,為使用和將要使用Linux系統的技術人員提供了較全面的參考。 目 錄前言第一篇 Linux系統介紹第1章 Linux簡介 …11.1 Linux 的起源 11.2 自由軟件基金會的GNU計劃 11.3 Linux 的發音 21.4 Linux 的特點 21.5 基本硬件要求 31.6 如何獲得Linux 31.6.1 從網上下載Linux 31.6.2 從光盤獲得Linux 31.7 涉及Linux 的Web 網址和新聞討論組 61.8 Linux 的不足之處 7第2章 外殼及常用命令 82.1 登錄和退出 82.2 Linux 系統的外殼 82.3 外殼的常用命令 92.3.1 更改帳號密碼 92.3.2 聯機幫助 92.3.3 遠程登錄 92.3.4 文件或目錄處理 92.3.5 改變工作目錄 102.3.6 復制文件 102.3.7 移動或更改文件、目錄名稱 102.3.8 建立新目錄 102.3.9 刪除目錄 112.3.10 刪除文件 112.3.11 列出當前所在的目錄位置 112.3.12 查看文件內容 112.3.13 分頁查看文件內容 112.3.14 查看目錄所占磁盤容量 112.3.15 文件傳輸 112.3.16 文件權限的設定 122.3.17 檢查自己所屬的工作組名稱 132.3.18 改變文件或目錄工作組所有權 132.3.19 改變文件或目錄的最后修改時間 132.3.20 文件的鏈接 132.3.21 文件中字符串的查尋 142.3.22 查尋文件或命令的路徑 142.3.23 比較文件或目錄的內容 142.3.24 文件打印輸出 142.3.25 一般文件的打印 142.3.26 troff 文件的打印 142.3.27 打印機控制命令 142.3.28 進程控制 152.3.29 外殼變量 162.3.30 環境變量 162.3.31 別名 162.3.32 歷史命令 172.3.33 文件的壓縮 172.3.34 管道命令的使用 172.3.35 輸入/輸出控制 182.3.36 查看系統中的用戶 182.3.37 改變用戶名 182.3.38 查看用戶名 182.3.39 查看當前系統上所有工作站 的用戶 192.3.40 與某工作站上的用戶交談 192.3.41 檢查遠程系統是否正常 192.3.42 電子郵件的使用簡介 19第3章 Linux系統的網絡功能 213.1 Linux支持的網絡協議 213.1.1 TCP/IP 213.1.2 TCP/IP 版本 6 213.1.3 IPX/SPX 213.1.4 AppleTalk 協議集 213.1.5 廣域網 223.1.6 ISDN 223.1.7 PPP、SLIP及PLIP 223.1.8 業余無線電 223.1.9 ATM 223.2 Linux系統下的文件共享和打印共享 223.2.1 Machintosh 環境 223.2.2 Windows 環境 223.2.3 Novell 環境 233.2.4 UNIX 環境 233.3 Linux系統中的Internet/Intranet功能 233.3.1 郵件 233.3.2 Web 服務器 243.3.3 Web 瀏覽器 243.3.4 FTP 服務器和客戶機 243.3.5 新聞服務 243.3.6 域名系統 243.3.7 DHCP和 bootp 243.3.8 NIS 243.4 Linux系統下應用程序的遠程執行 243.4.1 Telnet 253.4.2 遠程命令 253.4.3 X Window 253.5 Linux系統的網絡互連功能 253.5.1 路由器 253.5.2 網橋 253.5.3 IP偽裝 253.5.4 IP統計 263.5.5 IP 別名 263.5.6 流量限制器 263.5.7 防火墻 263.5.8 端口下傳 263.5.9 負載平衡 263.5.10 EQL 273.5.11 代理服務器 273.5.12 按需撥號 273.5.13 管道、移動IP和虛擬個人網絡 273.6 Linux系統中的網絡管理 273.6.1 Linux系統下的網絡管理應用程序 273.6.2 SNMP 283.7 企業級Linux網絡 283.7.1 高可用性 283.7.2 RAID 283.7.3 冗余網絡 28第4章 Linux系統管理簡介 294.1 root 帳號 294.2 啟動和關閉系統 294.2.1 從軟盤啟動 294.2.2 使用LILO 啟動 294.2.3 關閉Linux系統 304.3 掛接文件系統 304.3.1 掛接軟盤 304.3.2 創建新的文件系統 304.3.3 卸載文件系統 314.4 檢查文件系統 314.5 使用文件作為交換區 314.6 系統和文件的備份 324.7 設置系統 334.7.1 設置系統名 334.7.2 使用維護磁盤 334.7.3 重新設置root 帳號口令 334.7.4 設置登錄信息 33第二篇 Linux高級語言及管理編程第5章 外殼編程 355.1 創建和運行外殼程序 355.1.1 創建外殼程序 355.1.2 運行外殼程序 355.2 使用外殼變量 365.2.1 給變量賦值 365.2.2 讀取變量的值 375.2.3 位置變量和其他系統變量 375.2.4 引號的作用 375.3 數值運算命令 385.4 條件表達式 405.4.1 if 表達式 405.4.2 case 表達式 415.5 循環語句 425.5.1 for 語句 435.5.2 while 語句 435.5.3 until 語句 445.6 shift 命令 445.7 select 語句 455.8 repeat 語句 465.9 子函數 46第6章 gawk語言編程 486.1 gawk的主要功能 486.2 如何執行gawk程序 486.3 文件、記錄和字段 486.4 模式和動作 496.5 比較運算和數值運算 506.6 內部函數 506.6.1 隨機數和數學函數 516.6.2 字符串的內部函數 516.6.3 輸入輸出的內部函數 526.7 字符串和數字 526.8 格式化輸出 526.9 改變字段分隔符 546.10 元字符 546.11 調用gawk程序 556.12 BEGIN和END 556.13 變量 566.14 內置變量 566.15 控制結構 576.15.1 if 表達式 576.15.2 while 循環 576.15.3 for 循環 586.15.4 next 和 exit 586.16 數組 586.17 用戶自定義函數 586.18 幾個實例 59第7章 Perl語言編程 607.1 什么是Perl 607.2 Perl的現狀 607.3 初試Perl 607.4 Perl變量 607.4.1 標量 607.4.2 數組 637.4.3 相關數組 657.5 文件句柄和文件操作 657.6 循環結構 667.6.1 foreach循環 667.6.2 判斷運算 667.6.3 for循環 677.6.4 while 和 until循環 677.7 條件結構 677.8 字符匹配 687.9 替換和翻譯 697.9.1 替換 697.9.2 翻譯 707.10 子過程 707.10.1 子過程的定義 707.10.2 參數 707.10.3 返回值 707.11 Perl程序的完整例子 71第三篇 Linux系統內核分析第8章 Linux內核簡介 738.1 系統初始化 738.2 系統運行 738.3 內核提供的各種系統調用 748.3.1 進程的基本概念和系統 的基本數據結構 748.3.2 創建和撤消進程 748.3.3 執行程序 748.4 存取文件系統 75第9章 系統進程 769.1 什么是進程 769.2 進程的結構 769.3 進程調度 789.4 進程使用的文件 799.5 進程使用的虛擬內存 809.6 創建進程 819.7 進程的時間和計時器 819.7.1 實時時鐘 819.7.2 虛擬時鐘 819.7.3 形象時鐘 819.8 程序的執行 829.8.1 ELF文件 829.8.2 腳本文件 82第10章 內存管理 8310.1 內存管理的作用 8310.2 虛擬內存的抽象模型 8310.3 按需裝入頁面 8410.4 交換 8510.5 共享虛擬內存 8510.6 存取控制 8510.7 高速緩存 8610.7.1 緩沖區高速緩存 8610.7.2 頁面高速緩存 8610.7.3 交換高速緩存 8610.7.4 硬件高速緩存 8610.8 系統頁面表 8610.9 頁面的分配和釋放 8710.9.1 頁面的分配 8810.9.2 頁面的釋放 8810.10 內存映射 8810.11 請求調頁 8910.12 頁面高速緩存 8910.13 內核交換守護進程 90第11章 進程間通信 9111.1 信號機制 9111.2 管道機制 9211.3 System V IPC 機制 9311.3.1 信息隊列 9311.3.2 信號量 9411.3.3 共享內存 96第12章 PCI 9812.1 PCI 系統 9812.2 PCI地址空間 9812.3 PCI設置頭 9912.4 PCI I/O 和 PCI 內存地址 10012.5 PCI-ISA橋 10012.6 PCI-PCI 橋 10012.7 PCI初始化 10112.7.1 Linux系統內核有關PCI的 數據結構 10112.7.2 PCI 設備驅動程序 10212.7.3 PCI BIOS 函數 10512.7.4 PCI Fixup 105第13章 中斷和中斷處理 10613.1 中斷 10613.2 可編程中斷控制器 10613.3 初始化中斷處理的數據結構 10713.4 中斷處理 108第14章 設備驅動程序 10914.1 硬件設備的管理 10914.2 輪詢和中斷 11014.3 直接內存存取 11014.4 內存 11114.5 設備驅動程序和內核之間的接口 11114.5.1 字符設備 11214.5.2 塊設備 11314.6 硬盤 11314.6.1 IDE 硬盤 11514.6.2 初始化IDE 硬盤子系統 11514.6.3 SCSI 硬盤 11514.6.4 初始化 SCSI 磁盤子系統 11614.6.5 傳遞塊設備請求 11814.7 網絡設備 11814.7.1 網絡設備文件名 11814.7.2 總線信息 11814.7.3 網絡接口標記 11914.7.4 協議信息 11914.7.5 初始化網絡設備 119第15章 文件系統 12115.1 Linux文件系統概述 12115.2 ext2文件系統 12215.2.1 ext2的索引節點 12215.2.2 ext2超級塊 12415.2.3 ext2 數據塊組描述符 12415.2.4 ext2 中的目錄 12515.2.5 在ext2 文件系統中查找文件 12515.2.6 改變ext2 文件系統中文件 的大小 12615.3 VFS 12715.3.1 VFS 超級塊 12815.3.2 VFS 索引節點 12915.3.3 登記文件系統 12915.3.4 掛接文件系統 13015.3.5 在VFS中查找文件 13115.3.6 撤消文件系統 13115.3.7 VFS 索引節點緩存 13215.3.8 VFS目錄緩存 13215.4 緩沖區緩存 13315.5 /proc 文件系統 135第16章 網絡系統 13616.1 TCP/IP 網絡簡介 13616.2 TCP/IP網絡的分層 13716.3 BSD 套接口 13816.4 INET套接口層 14016.4.1 創建BSD 套接口 14116.4.2 給INET BSD 套接口指定地址 14116.4.3 在INET BSD套接口上創建連接 14216.4.4 監聽INET BSD 套接口 14216.4.5 接收連接請求 14316.5 IP 層 14316.5.1 套接口緩沖區 14316.5.2 接收IP數據包 14416.5.3 發送IP數據包 14416.5.4 數據碎片 14416.6 地址解析協議 145第17章 系統內核機制 14717.1 Bottom Half處理 14717.2 任務隊列 14817.3 計時器 14917.4 等待隊列 14917.5 信號量 150第四篇 Linux系統高級編程第18章 Linux內核模塊編程 15118.1 一個簡單程序Hello World 15118.2 設備文件 15218.3 /proc文件系統 15618.4 使用/proc輸入 15818.5 與設備文件通信 16218.6 啟動參數 16918.7 系統調用 17018.8 阻塞進程 17218.9 替換printk 17718.10 調度任務 178第19章 有關進程通信的編程 18119.1 進程間通信簡介 18119.2 半雙工UNIX管道 18119.2.1 基本概念 18119.2.2 使用C語言創建管道 18219.2.3 創建管道的簡單方法 18519.2.4 使用管道的自動操作 18719.2.5 使用半雙工管道時的注意事項 18819.3 命名管道 18819.3.1 基本概念 18819.3.2 創建FIFO 18819.3.3 FIFO操作 18919.3.4 FIFO的阻塞 19019.3.5 SIGPIPE信號 19019.4 System V IPC 19019.4.1 基本概念 19019.4.2 消息隊列基本概念 19119.4.3 系統調用msgget() 19419.4.4 系統調用msgsnd() 19519.4.5 系統調用msgctl() 19719.4.6 一個msgtool的實例 19919.5 使用信號量編程 20119.5.1 基本概念 20119.5.2 系統調用semget() 20219.5.3 系統調用semop() 20319.5.4 系統調用semctl() 20419.5.5 使用信號量集的實例:semtool 20519.6 共享內存 20919.6.1 基本概念 20919.6.2 系統內部用戶數據結構 shmid_ds 20919.6.3 系統調用shmget() 21019.6.4 系統調用shmat() 21119.6.5 系統調用shmctl() 21119.6.6 系統調用shmdt() 21219.6.7 使用共享內存的實例:shmtool 212第20章 高級線程編程 21520.1 線程的概念和用途 21520.2 一個簡單的例子 21520.3 線程同步 21720.4 使用信號量協調程序 21820.5 信號量的實現 22020.5.1 Semaphore.h 22020.5.2 Semaphore.c 221第21章 Linux系統網絡編程 22521.1 什么是套接口 22521.2 兩種類型的Internet套接口 22521.3 網絡協議分層 22521.4 數據結構 22521.5 IP地址和如何使用IP地址 22621.5.1 socket() 22621.5.2 bind() 22621.5.3 connect() 22721.5.4 listen() 22821.5.5 accept() 22821.5.6 send() 和 recv() 22921.5.7 sendto() 和 recvfrom() 23021.5.8 close() 和 shutdown() 23021.5.9 getpeername() 23121.5.10 gethostname() 23121.6 DNS 23121.7 客戶機/服務器模式 23221.8 簡單的數據流服務器程序 23221.9 簡單的數據流客戶機程序 23421.10 數據報套接口 23521.11 阻塞 237第22章 Linux I/O端口編程 24022.1 如何在 C 語言下使用I/O端口 24022.1.1 一般的方法 24022.1.2 另一個替代方法: /dev/port 24122.2 硬件中斷 與 DMA 存取 24122.3 高精確的時間 24122.3.1 延遲時間 24122.3.2 時間的量測 24322.4 使用其他程序語言 24322.5 一些有用的 I/O 端口 24322.5.1 并行端口 24322.5.2 游戲端口 24422.5.3 串行端口 245第五篇 Linux系統安全分析第23章 系統管理員安全 24723.1 安全管理 24723.2 超級用戶 24723.3 文件系統安全 24723.3.1 Linux文件系統概述 24723.3.2 設備文件 24823.3.3 /etc/mknod命令 24923.3.4 安全考慮 24923.3.5 find命令 25023.3.6 secure程序 25023.3.7 ncheck命令 25023.3.8 安裝和拆卸文件系統 25023.3.9 系統目錄和文件 25123.4 作為root運行的程序 25123.4.1 啟動系統 25123.4.2 init進程 25123.4.3 進入多用戶 25223.4.4 shutdown命令 25223.4.5 系統V的cron程序 25223.4.6 系統V版本2之后的cron程序 25223.4.7 /etc/profile 25323.5 /etc/passwd文件 25323.5.1 口令時效 25323.5.2 UID和GID 25423.6 /etc/group文件 25423.7 增加、刪除和移走用戶 25423.7.1 增加用戶 25423.7.2 刪除用戶 25523.7.3 將用戶移到另一個系統 25523.8 安全檢查 25523.8.1 記帳 25523.8.2 其他檢查命令 25623.8.3 安全檢查程序的問題 25623.8.4 系統泄密后怎么辦 25723.9 加限制的環境 25823.9.1 加限制的外殼 25823.9.2 用chroot()限制用戶 25823.10 小系統安全 25923.11 物理安全 25923.12 用戶意識 26023.13 系統管理員意識 26123.13.1 保持系統管理員個人的 登錄安全 26123.13.2 保持系統安全 261第24章 系統程序員安全 26324.1 系統子程序 26324.1.1 I/O子程序 26324.1.2 進程控制 26324.1.3 文件屬性 26424.1.4 UID和GID的處理 26524.2 標準C程序庫 26524.2.1 標準I/O 26524.2.2 /etc/passwd的處理 26624.2.3 /etc/group的處理 26724.2.4 加密子程序 26824.2.5 運行外殼 26824.3 編寫安全的C程序 26824.3.1 需要考慮的安全問題 26824.3.2 SUID/SGID程序指導準則 26924.3.3 編譯、安裝SUID/SGID程序 的方法 26924.4 root用戶程序的設計 270第25章 Linux系統的網絡安全 27225.1 UUCP系統概述 27225.1.1 UUCP命令 27225.1.2 uux命令 27225.1.3 uucico程序 27325.1.4 uuxqt程序 27325.2 UUCP的安全問題 27325.2.1 USERFILE文件 27325.2.2 L.cmds文件 27425.2.3 uucp登錄 27425.2.4 uucp使用的文件和目錄 27425.3 HONEYDANBER UUCP 27525.3.1 HONEYDANBER UUCP與 老UUCP的差別 27525.3.2 登錄名規則 27625.3.3 MACHINE規則 27725.3.4 組合MACHINE和LOGNAME 規則 27825.3.5 uucheck命令 27825.3.6 網關 27825.3.7 登錄文件檢查 27925.4 其他網絡 27925.4.1 遠程作業登錄 27925.4.2 NSC網絡系統 28025.5 通信安全 28025.5.1 物理安全 28025.5.2 加密 28125.5.3 用戶身份鑒別 28225.6 SUN OS系統的網絡安全 28325.6.1 確保NFS的安全 28325.6.2 NFS安全性方面的缺陷 28425.6.3 遠程過程調用鑒別 28425.6.4 Linux鑒別機制 28425.6.5 DES鑒別系統 28525.6.6 公共關鍵字的編碼 28625.6.7 網絡實體的命名 28625.6.8 DES鑒別系統的應用 28725.6.9 遺留的安全問題 28725.6.10 性能 28825.6.11 啟動和setuid程序引起的問題 28825.6.12 小結 289第26章 Linux系統的用戶安全性 29026.1 口令安全 29026.2 文件許可權 29026.3 目錄許可 29126.4 umask命令 29126.5 設置用戶ID和同組用戶ID許可 29126.6 cp mv ln和cpio命令 29126.7 su和newgrp命令 29226.7.1 su命令 29226.7.2 newgrp命令 29226.8 文件加密 29226.9 其他安全問題 29326.9.1 用戶的.profile文件 29326.9.2 ls -a 29326.9.3 .exrc文件 29326.9.4 暫存文件和目錄 29326.9.5 UUCP和其他網絡 29326.9.6 特洛伊木馬 29426.9.7 誘騙 29426.9.8 計算機病毒 29426.9.9 要離開自己已登錄的終端 29426.9.10 智能終端 29426.9.11 斷開與系統的連接 29426.9.12 cu命令 29526.10 保持帳戶安全的要點 295第六篇 X window系統的內部結構和使用第27章 X Window系統的基本知識 29727.1 X Window系統介紹 29727.1.1 X的特點 29727.1.2 什么是窗口系統 29827.1.3 X發展的歷史 29927.1.4 X的產品 29927.1.5 MIT發行的X 29927.2 X的基本結構 30227.2.1 X 的基本元素 30327.2.2 服務程序和客戶程序如何 交互通信 30427.2.3 X 的網絡概況 30627.3 從用戶界面的角度概觀X 30727.3.1 管理界面:窗口管理器 30727.3.2 應用程序界面和工具箱 30927.3.3 其他系統角度 30927.4 術語和符號 31027.4.1 術語 31027.4.2 符號 31127.5 啟動和關閉X 31227.5.1 啟動X 31227.5.2 執行X程序的方式 31327.5.3 關閉X 31427.6 窗口管理器基礎—uwm 31527.6.1 什么是窗口管理器 31527.6.2 啟動uwm 31527.6.3 基本窗口操作 —uwm 的菜單 31527.6.4 移動窗口 31627.6.5 重定窗口大小 31627.6.6 建立新窗口 31627.6.7 管理屏幕空間 31827.6.8 中止應用程序窗口 32027.6.9 激活uwm菜單的其他方式 32027.7 使用 x的網絡設備 32027.7.1 指定遠程終端機—display 選項 32127.7.2 實際使用遠程的顯示器 32227.7.3 控制存取顯示器—xhost 32227.8 終端機模擬器—詳細介紹xterm 32327.8.1 選擇xterm功能—菜單與 命令行選項 32327.8.2 滾動xterm屏幕 32427.8.3 記錄與終端機的交互過程—寫 記錄 32527.8.4 剪貼文本 32527.8.5 使用Tektronix模擬功能 32627.8.6 使用不同的字體 32727.8.7 使用顏色 32727.8.8 其他xterm選項 32727.8.9 設定終端機鍵盤 328第28章 實用程序和工具 32928.1 實用程序 32928.2 保存、顯示和打印屏幕圖像 33028.3 使用X的應用程序 33228.3.1 文字編輯器—Xedit 33328.3.2 郵件/信息處理系統—xmh 33628.4 示例和游戲程序 33628.4.1 找出通過隨機迷宮的 路徑—maze 33628.4.2 擔任鼠標指針的大眼睛— xeyes 33628.4.3 智慧盤游戲—puzzle 33728.4.4 打印一個大X標志—xlogo 33728.4.5 跳動的多面體—ico 33728.4.6 動態幾何圖案—muncher與 plaid 33728.7 顯示信息和狀態的程序 33728.7.1 列出X服務程序的特征— xdpyinfo 33828.7.2 獲取有關窗口的信息 33828.7.3 觀察X的事件—xev 340第29章 定制X Window系統 34129.1 使用X的字體和顏色 34129.1.1 字體初步 34129.1.2 字體命名 34229.1.3 觀察特定字體的內容—xfd 34329.1.4 保存字體和位置 34329.1.5 例子:在你的服務程序中 增加新字體 34529.1.6 使用X的顏色 34629.2 定義和使用圖形 34729.2.1 系統圖形程序庫 34729.2.2 交互編輯圖形—bitmap 34729.2.3 編輯圖形的其他方法 34929.2.4 定制根窗口—xsetroot 34929.3 定義應用程序的缺省選項— Resources 35029.3.1 什么是資源 35029.3.2 XToolkit 35129.3.3 管理資源—資源管理器 35329.3.4 資源的類型—如何指定值 35829.4 實際使用資源 35929.4.1 在何處保存資源的缺省值 35929.4.2 在服務程序上保存缺省值— xrdb 36329.4.3 常見的錯誤和修正 36629.5 定制鍵盤和鼠標 36729.5.1 實際使用轉換 36829.5.2 轉換—格式和規則 37429.5.3 轉換規范中常見的問題 37729.6 鍵盤和鼠標—對應和參數 37929.6.1 鍵盤和鼠標映射—xmodmap 37929.6.2 鍵盤和鼠標參數設定—xset 38229.7 進一步介紹和定制uwm 38429.7.1 uwm的新特征 38429.7.2 定制uwm 38629.8 顯示器管理器—xdm 39029.8.1 需要做些什么 39029.8.2 xdm 39129.8.3 xdm的更多信息 39229.8.4 uwm配置 395附錄A Gcc使用介紹 396附錄B 安裝X Window窗口系統 410
上傳時間: 2013-11-10
上傳用戶:changeboy
1. 汽車輪渡口,過江渡船每次能載10輛車過江,過江車輛分為客車類和貨車類,上渡船有如下規定:同類車先到先上船,客車先于貨車上渡船,且每上4輛客車,才允許上一輛貨車。若等待客車不足4輛,則從貨車代替,若無貨車等待允許客車上船。試寫一個算法模擬渡口管理。 算法設計: 1客車和貨車均建立一個鏈式隊列,初始均為空。以后來一輛車不是貨車就是客車,因此可以說整個程序的事件驅動event就是這兩個,客車表示1,貨車表示0. 2輪船還沒有到達時客車和貨車均按次序排在各自隊列中。 3輪船到達時,根據兩個隊列的情況,分別處理。處理如下: a 客車數不滿4輛,則將排在前面的貨車上船,但總數不能超過10,若沒有貨車等待,客車直接上船。 b 客車數滿4,但不滿8輛,客車先上,排在前面的只有一輛貨車可以上船,若沒有貨車等待則貨車不上。 c 客車滿8輛但不滿10,客車上船,排在前面的貨車最多可以上2輛,但總數不能超過10。 d 客車滿10,則全上客車,但總數不能超過10。
標簽: 汽車
上傳時間: 2015-04-25
上傳用戶:CHENKAI