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
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
單片機應用技術選編(9) 目錄 第一章 專題論述1.1 集成電路進入片上系統時代(2)1.2 系統集成芯片綜述(10)1.3 Java嵌入技術綜述(18)1.4 Java的線程機制(23)1.5 嵌入式系統中的JTAG接口編程技術(29)1.6 EPAC器件技術概述及應用(37)1.7 VHDL設計中電路簡化問題的探討(42)1.8 8031芯片主要模塊的VHDL描述與仿真(48)1.9 ISP技術在數字系統設計中的應用(59)1.10 單片機單總線技術(64)1.11 智能信息載體iButton及其應用(70)1.12 基于單片機的高新技術產品加密方法探討(76)1.13 新一代私鑰加密標準AES進展與評述(80)1.14 基于單片機的實時3DES加密算法的實現(86)1.15 ATA接口技術(90)1.16 基于IDE硬盤的高速數據存儲器研究(98)1.17 模擬比較器的應用(102) 第二章 綜合應用技術2.1 閃速存儲器硬件接口和程序設計中的關鍵技術(126)2.2 51單片機節電模式的應用(131)2.3 分布式實時應用的兩個重要問題(137)2.4 分布式運算單元的原理及其實現方法(141)2.5 用PLD器件設計邏輯電路時的競爭冒險現象(147)2.6 IRIG?B格式時間碼解碼接口卡電路設計(150)2.7 一種基于單片機時頻信號處理的實用方法(155)2.8 射頻接收系統晶體振蕩電路的設計與分析(161)2.9 揭開ΣΔ ADC的神秘面紗(166)2.10 過采樣高階A/D轉換器的硬件實現(172)2.11 A/D轉換的計算與編程(176)2.12 一種提高單片機內嵌式A/D分辨力的方法(179)2.13 單片微型計算機多字節浮點快速相對移位法開平方運算的實現(182)2.14 單片微型計算機多字節浮點除法快速掃描運算的實現(186)2.15 DSP芯片與觸摸屏的接口控制(188)第三章 操作系統與軟件技術3.1 嵌入式系統中的實時操作系統(192)3.2 嵌入式系統的開發利器——Windows CE操作系統(197)3.3 介紹一種實時操作系統DSP/BIOS(203)3.4 實時操作系統用于嵌入式應用系統的設計(212)3.5 實時Linux操作系統初探(217)3.6 Linux網絡設備驅動程序分析與設計(223)3.7 在51系列單片機上實現非搶先式消息驅動機制的RTOS(229)3.8 用結構化程序設計思想指導匯編語言開發(236)3.9 單片機高級語言C51與匯編語言ASM51的通用接口(240)3.10 ASM51無參數化調用C51函數的實現(245)3.11 TMS320C3X的匯編語言和C語言及混合編程技術(249)3.12 TMS320C6000嵌入式系統優化編程的研究(254)3.13 TMS320C54X軟件模擬實現UART技術(260)3.14 W78E516及其在系統編程的實現(265)3.15 鍵盤鍵入信號軟件處理方法探討(272)3.16 單片機系統中數字濾波的算法(276)第四章 網絡、通信與數據傳送 4.1 實時單片機通信網絡中的內存管理(284)4.2 CRC16編碼在單片機數據傳輸系統中的實現(288)4.3 在VC++中用ActiveX控件實現與單片機的串行通信(293)4.4 利用Windows API函數構造C++類實現串行通信(298)4.5 用Win32 API實現PC機與多單片機的串行通信(304)4.6 GPS接收機與PC機串行通信技術的開發與應用(311)4.7 TCP/IP協議問題透析(316)4.8 單片機的MODEM通信(328)4.9 無線串行接口電路設計(335)4.10 通用無線數據傳輸電路設計(340)4.11 FX909在無線高速MODEM中的應用(343)4.12 藍牙——短距離無線連接新技術(348)4.13 藍牙技術——一種短距離的無線連接技術(351)4.14 藍牙芯片及其應用(357)4.15 BlueCoreTM01藍牙芯片的特性與應用(361)4.16 內嵌微控制器的無線數據發射器的特性及應用(365)第五章 新器件及其應用技術5.1 一種全新結構的微控制器——Triscend E5(372)5.2 PSD8XXF的在系統編程技術(376)5.3 PSD813F1及其接口編程技術(382)5.4 一種優越的可編程邏輯器件——ISP器件(387)5.5 ISPPLD原理及其設計應用(393)5.6 ispPAC10在系統可編程模擬電路及其應用(397)5.7 在系統可編程器件ispPAC80及其應用(404)5.8 采用ispLSI1016設計高精度光電碼盤計數器(408)5.9 基于ADμC812的一種儀表開發平臺(413)5.10 基于P87LPC764的ΣΔ ADC應用設計方法(418)5.11 MP3解碼芯片組及其應用(431)5.12 射頻IC卡E5550原理及應用(434)5.13 HD7279A鍵盤顯示驅動芯片及應用(439)5.14 基于SPI接口的ISD4104系列語音錄放芯片及其應用(444)5.15 解決DS1820通信誤碼問題的方法(450)5.16 數字電位器在測量放大器中的應用(455)第六章 總線及其應用技術6.1 按平臺模式設計的虛擬I2C總線軟件包VIIC(462)6.2 虛擬I2C總線軟件包的開發及其應用(470)6.3 RS485總線的理論與實踐(479)6.4 RS232至RS485/RS422接口的智能轉換器(484)6.5 實用隔離型RS485通信接口的設計(489)6.6 幾種RS485接口收發方向轉換方法(495)6.7 LonWorks總線技術及發展(498)6.8 LonWorks網絡監控的簡單實現(505)6.9 現場總線CANbus與RS485之間透明轉換的實現(509)6.10 居室自動化系統中的X10和CE總線(513)6.11 通用串行總線USB(519)6.12 USB2.0技術概述(524)6.13 帶通用串行總線USB接口的單片機EZUSB(530)6.14 嵌入式處理器中的慢總線技術應用(536)6.15 SPI串行總線在單片機8031應用系統中的設計與實現(540)第七章 可靠性及安全性技術7.1 軟件可靠性及其評估(546)7.2 網絡通信中的基本安全技術(554)7.3 數字語音混沌保密通信系統及硬件實現(560)7.4 偽隨機序列及PLD實現在程序和系統加密中的應用(565)7.5 增強單片機系統可靠性的若干措施(569)7.6 FPGA中的空間輻射效應及加固技術(573)7.7 一種雙機備份系統的軟實現(577)7.8 計算機系統容錯技術的應用(581)7.9 容錯系統中的自校驗技術及實現方法(585)7.10 基于MAX110的容錯數據采集系統的設計(589)7.11 冗余式時鐘源電路(593)7.12 微機控制系統的抗干擾技術應用(599)7.13 單片開關電源瞬態干擾及音頻噪聲抑制技術(604)7.14 單片機應用系統程序運行出軌問題研究(608)7.15 分布式系統故障卷回恢復技術研究與實踐(613)第八章 典型應用實例8.1 基于單片機系統采用DMA塊傳輸方式實現高速數據采集(620)8.2 GPS數據采集卡的設計(624)8.3 一種新型非接觸式IC卡識別系統研究(629)8.4 自適應調整增益的單片機數據采集系統(633)8.5 利用光纖發射/接收器對實現遠距離高速數據采集(639)8.6 一種頻率編碼鍵盤的設計與實現(645)8.7 高準確度時鐘程序算法(649)8.8 旋轉編碼器的抗抖動計數電路(652)8.9 利用X9241實現高分辨率數控電位器(656)8.10 基于AD2S80A的高精度位置檢測系統及其在機器人控制中的應用(661)第九章 文章摘要一、專題論述(670)1.1 微控制器的發展趨勢(670)1.2 系統微集成技術的發展(670)1.3 多芯片組件技術及其應用(671)1.4 MCS51和80C51系列單片機(671)1.5 PSD813器件在單片機系統中的應用(671)1.6 主輔單片機系統的設計及應用(671)1.7 一種雙單片機結構的微機控制器(671)1.8 用PC機直接開發單片機系統(672)1.9 單片機系統大容量存儲器擴展技術(672)1.10 高性能微處理器性能模型設計(672)1.11 閃速存儲器的選擇與接口(672)1.12 串行存儲器接口的比較及選擇(672)1.13 移位寄存器分析方法的研究(673)1.14 GPS的時頻系統(673)1.15 一種基于C語言的虛擬儀器系統實現方法(673)1.16 智能家庭網絡研究綜述(673)1.17 用C51實現電力部多功能電能表通信規約(674)1.18 測控系統中采樣數據的預處理(674)1.19 數據采集系統動態特性的總體評價(674)1.20 一個高速準確的手寫數字識別系統(674)1.21 日本理光實時時鐘集成電路發展歷史及現狀(675)1.22 單片開關電源的發展及其應用(675)二、綜合應用技術(676)2.1 MCS51系列單片機在SDH系統中的應用(676)2.2 公共閃存接口在Flash Memory程序設計中的應用(676)2.3 應用IA MMXTM技術的離散余弦變換(676)2.4 串行實時時鐘芯片DS1302程序設計中的問題與對策(676)2.5 數字傳感器及其應用(677)2.6 電阻式溫度傳感器的系列化設計及其應用(677)2.7 溫度傳感器及其與微處理器接口(677)2.8 AD7416數字溫度傳感器及其應用(677)2.9 隔離放大器及其應用(677)2.10 高速A/D轉換器動態參數(678)2.11 V/F變換在單片機系統中的應用(678)2.12 微處理器內嵌式模數轉換器在精密儀器中的應用研究(678)2.13 電子秤非線性自動修正方法(678)2.14 光耦傳輸的非線性校正(678)2.15 高斯濾波器在實時系統中的快速實現(679)2.16 用在系統可編程模擬器件實現雙二階型濾波器(679)2.17 最小二乘法在高精度溫度測量中的應用(679)2.18 提高實時頻率測量范圍和精度新方法(679)2.19 具有微控制器的智能儀表設計與應用(679)2.20 用C語言編程的數據采集系統(680)2.21 大動態范圍浮點A/D數據采集器的設計(680)2.22 基于PCI高速數據采集系統(680)2.23 一種基于PC機的高速16位并行數據采集接口(680)2.24 數據采集系統中增強型并行接口(EPP)電路的設計(681)2.25 用增強型并行接口EPP協議擴展計算機的ISA接口(681)2.26 基于增強型并行接口EPP的便攜式高速數據采集系統(681)2.27 增強型并行接口EPP協議及其在CAN監控節點中的應用(681)2.28 利用增強型并行接口協議傳輸圖像文件(681)2.29 用并行接口進行數據采集(682)2.30 高信噪比的VFC/DPLL數據采集裝置(682)2.31 高精度數字式轉速測量系統的研究(682)2.32 用單片機測量相位差的新方法(682)2.33 交流采樣在電力系統中應用(682)2.34 同步圖形存儲器IS42G32256的電源與應用(683)2.35 IBM?PC處理10MHz高速模擬信號的研究(683)2.36 MCS51系列單片機存儲容量擴展方法(683)2.37 用單片機實現數字相位變換器的設計方法(683)2.38 一種新的可重配置的串口擴展方案(683)2.39 VB環境下對雙端口RAM物理讀寫的實現(684)2.40 雙CPU實現遠程多鍵盤鼠標交互(684)2.41 兩種電阻時間變換器設計與分析(684)2.42 液晶顯示器的接口和編程技巧(684)2.43 一種簡單的電機變頻調速方案及其應用(684)2.44 基于單片機的火控系統符號產生器電路原理設計(685)2.45 A/D轉換器性能的改善方法(685)2.46 快速小波變換算法與信噪分離(685)2.47 80C196MC/MD單片機多個中斷程序的同步問題(685)三、操作系統及軟件技術(686)3.1 嵌入式軟件技術的現狀與發展動向(686)3.2 什么是嵌入式實時操作系統(686)3.3 實時多任務系統中的一些基本概念(686)3.4 一個源碼公開的實時內核(687)3.5 Windows CE的實時性分析(687)3.6 串口通信多線程實現的分析(687)3.7 基于中間件的開發研究(688)3.8 Windows 95下實時控制軟件設計的研究(688)3.9 Windows NT 4.0下設備驅動程序的開發與應用(688)3.10 Windows 98 下硬件中斷驅動程序的開發(688)3.11 Windows下實時數據采集的實現(688)3.12 Win 95 下虛擬設備驅動程序設計開發(689)3.13 Win 95 環境下測控軟件中端口讀寫的快速實現(689)3.14 Linux系統中ARP的編程實現技術(689)3.15 Linux中System V進程通信機制及訪問控制技術的改進(689)3.16 VC++6.0中動態創建MSComm控件的問題及對策(689)3.17 在Visual Basic下使用I/O接口程序(690)3.18 VB應用程序速度的優化技術(690)3.19 嵌入式實時操作系統在機車微機測控軟件開發中的應用(690)3.20 結構化程序方法在匯編語言中的應用(690)3.21 AVR單片機編程特性的應用研究(690)3.22 一種有效的51系列單片機軟件仿真器(691)3.23 PIC單片機軟件模擬仿真時輸入信號的激勵方式(691)3.24 基于LabVIEW的分布式VXI儀器教學實驗系統設計(691)四、網絡、通信及數據傳輸(692)4.1 單片機網絡的組成與控制(692)4.2 實現ARINC 429數字信息傳輸的方案設計(692)4.3 結合電力線載波和電話通信的報警網絡系統(692)4.4 網絡電子密碼鎖監控系統的設計與實現(692)4.5 IRIG?E標準FM?FM解調器的有關技術(693)4.6 基于TCP/IP的多媒體通信實現(693)4.7 基于TCP/IP的多線程通信及其在遠程監控系統中的應用(693)4.8 基于Internet的遠程測控技術(693)4.9 Windows 95串行通信的幾種方式及編程(693)4.10 在Windows 95下PC機和單片機的串行通信(693)4.11 基于80C196KC微處理器的高速串行通信(694)4.12 使用PC機并行口與下位單片機通信的方法(694)4.13 雙向并口通信的開發(694)4.14 DSP和計算機并口的高速數據通信(694)4.15 一種高可靠性的PC機與單片機間的串行通信方法(694)4.16 單片機與PC機串行通信的實現方法(695)4.17 89C51單片機I/O口模擬串行通信的實現方法(695)4.18 TMS320C50與PC機高速串行通信的實現(695)4.19 DSP和PC機的異步串行通信設計(695)4.20 基于MCS單片機與PC機串行通信電平轉換(695)4.21 一種簡單的光電隔離RS232電平轉換接口設計(695)4.22 ISA總線工業控制機與單片機系統的數據交換(696)4.23 RS232/422/485綜合接口(696)4.24 基于RS485接口的單片機串行通信(696)4.25 在VC++中利用ActiveX控件開發串行通信程序(696)4.26 上位機和多臺下位機的485通信(696)4.27 計算機與CAN通信的一種方法(697)4.28 用VB語言實現對端口I/O的訪問(697)4.29 異種單片機共享片外存儲器及其與微機通信的方法(697)4.30 單片機與MODEM接口技術及其在智能儀器中的應用研究(697)4.31 采用MCS51單片機實現CPFSK調制(697)4.32 一種新型編碼芯片及其驅動程序的設計方案(698)4.33 DTMF遠程通信的軟硬件實現技術(698)4.34 采用DTMF方式通信的電度表管理系統(698)4.35 基于TAPI的電話語音系統設計方法(698)4.36 語音芯片APR9600及其在電話遙控系統中的應用(699)4.37 串行紅外收發模塊及其控制器在紅外抄表系統中的應用(699)4.38 HSP50214B PDC及其在軟件無線電中的應用(699)4.39 變速率CDMA系統軟件無線電多用戶接收機(699)五、新器件及應用技術(700)5.1 全幀讀出型面陣CCD光電傳感器在圖像采集中的應用(700)5.2 光電碼盤四倍頻分析(700)5.3 H8/300H系列單片機及其應用(700)5.4 PIC 16F877單片機的鍵盤和LED數碼顯示接口(700)5.5 PIC16F877單片機實現D/A轉換的兩種方法(701)5.6 P89C51RX2 的PCA原理及設計(701)5.7 ADμC812中串口及其應用(701)5.8 INTEL96系列單片機中若干問題的討論(701)5.9 關于INTEL96系列單片機中HSO事件的設置(701)5.10 MAX3100與PIC16C5X系列單片機的接口設計(702)5.11 單片MODEM芯片在遠程數據通信中的應用(702)5.12 MX919在無線高速MODEM中的應用(702)5.13 高速串行數據收發器CY7B923/933及應用(702)5.14 雙口RAM與FIFO芯片在數據處理系統中應用的比較(702)5.15 MAX202E在串行通信中的應用(703)5.16 線性隔離放大器ISO122的原理及應用(703)5.17 AD606對數放大器的研究與應用(703)5.18 電流/電壓轉換芯片MAX472在永磁直流電動機虛擬測試系統中的應用… (703)5.19 高精度模數轉換器AD676的原理及應用(703)5.20 DS2450 A/D轉換器的特性與應用(704)5.21 80C196KC內部A/D轉換器的使用(704)5.22 一種16~24位分辨率D/A轉換器的設計(704)5.23 串行A/D轉換器TLC2543與TMS320C25的接口及編程(704)5.24 A/D轉換器ICL7135積分特性應用(704)5.25 高精度A/D轉換器AD7711A及應用(705)5.26 多路A/D轉換器AD7714及其與M68HC11單片機接口技術(705)5.27 用AD7755設計的低成本電能表(705)5.28 20位Σ?Δ立體聲ADA電路TLC320AD75C的接口電路設計(705)5.29 24位A/D轉換器ADS1210/1211及其應用(706)5.30 模數轉換器AD7705及其接口電路(706)5.31 串行A/D轉換器ADS7812與單片機的接口技術(706)5.32 串行A/D轉換器TLC548/549及其應用(706)5.33 采樣率可變16通道16位隔離A/D電路(706)5.34 TLC549在交流有效值測量中的應用(707)5.35 溫度傳感器DS18B20的特性及程序設計方法(707)5.36 DS1820及其高精度溫度測量的實現(707)5.37 采用DS1820的電弧爐爐底溫度監測系統(707)5.38 并行實時時鐘芯片DS12887及其應用(707)5.39 利用實時時鐘X1203開啟單片機系統(708)5.40 時鐘芯片DS1302及其在數據記錄中的應用(708)5.41 串行顯示驅動器PS7219及與單片機的接口技術(708)5.42 MAX7219在PLC中的應用(708)5.43 一種實用的LED光柱顯示器驅動方法(708)5.44 基于電能測量芯片ADE7756的智能電度表設計(709)5.45 TSS721A在自動抄表系統中的應用(709)5.46 電流傳感放大器MAX471/MAX472的原理及應用(709)5.47 8XC552模數轉換過程及其自動調零機制(709)5.48 旋轉變壓器數字轉換器AD2S83在伺服系統中的應用(709)5.49 具有串行接口的I/O擴展器EM83010及其應用(710)5.50 新型LED驅動器TEC9607及其應用(710)5.51 新型語音識別電路AP7003及其應用(710)六、總線技術(711)6.1 現場總線技術的發展及應用展望(711)6.2 CAN總線點對點通信應用研究(711)6.3 基于CAN總線的數據通信系統研究(711)6.4 基于CAN總線的分布式數據采集與控制系統(711)6.5 基于CAN總線的分布式鋁電解智能系統(711)6.6 CAN總線在通信電源監控系統中的應用(712)6.7 CAN總線在弧焊機器人控制系統中的應用(712)6.8 CAN總線及其在噴漿機器人中的應用(712)6.9 基于CAN控制器的單片機農業溫室控制系統的設計(712)6.10 現場總線國際標準與LonWorks在智能電器中的應用(712)6.11 基于LON總線技術的暖通空調控制系統(712)6.12 通用串行總線(USB)及其芯片的使用(713)6.13 USB在數據采集系統中的應用(713)6.14 用MC68HC05JB4開發USB外設(713)6.15 8x930Ax/Hx USB控制器芯片及其在數字音頻中的應用(713)6.16 基于MC68HC(9)08JB8芯片的USB產品——鍵盤設計(713)6.17 I2 C總線在LonWorks網絡節點上的應用(714)6.18 Neuron3150的并行I/O接口對象及其應用(714)6.19 新型串行E2PROM 24LC65在LonWorks節點中的應用(714)6.20 利用I2C總線實現DSP對CMOS圖像傳感器的控制(714)6.21 在I2C總線系統中擴展LCD顯示器(714)6.22 基于Windows環境的GPIB接口設計實現(714)6.23 微機PCI總線接口的研究與設計(715)6.24 通用串行總線(USB)原理及接口設計(715)6.25 CAN總線與1553B總線性能分析比較(715)6.26 利用USB接口實現雙機互聯通信(715)6.27 一種帶USB接口的便攜式語音采集卡的設計(715)七、可靠性技術(716)7.1 電磁干擾與電磁兼容設計(716)7.2 計算機的防電磁泄漏技術(716)7.3 低輻射計算機系統的設計實現(716)7.4 靜電測量及其程序設計(716)7.5 電子產品生產中的靜電防護技術(716)7.6 電子測控系統中的屏蔽與接地技術(717)7.7 微機控制系統的抗干擾技術(717)7.8 如何提高單片機應用產品的抗干擾能力(717)7.9 工業控制計算機系統中的常見干擾及處理措施(717)7.10 GPS用于軍用導航中的抗干擾和干擾對抗研究(717)7.11 基于開放式體系結構的數控機床可靠性及抗干擾設計(717)7.12 變頻器應用技術中的抗干擾問題(718)7.13 單片機的軟件可靠性編程(718)7.14 單片微機的軟件抑噪方案(718)7.15 SmartLock并口單片機軟件狗加密技術(718)7.16 單片機系統中復位電路可靠性設計(718)7.17 測控系統中實現數據安全存儲的實用技術(718)7.18 高精度儀表信號隔離電路設計(719)7.19 基于AT89C2051單片機的防誤操作智能鎖(719)7.20 Email的安全問題與保護措施(719)7.21 雙機容錯系統的一種實現途徑(719)7.22 單片機應用系統抗干擾設計綜述(719)7.23 微機控制系統中的干擾及其抑制方法(720)7.24 智能儀表的抗干擾和故障診斷(720)八、應用實踐(721)8.1 AT89C51在銀行利率顯示屏中的應用(721)8.2 基于8xC196MC實現的磁鏈軌跡跟蹤控制(721)8.3 基于80C196KC的開關磁阻電機測試系統(721)8.4 80C196KB單片機在繞線式異步電動機啟動控制中的應用(721)8.5 GPS時鐘系統(721)8.6 一種由AT89C2051單片微機實現的功率因數補償裝置(722)8.7 數據采集系統芯片ADμC812及其在溫度監測系統中的應用(722)8.8 用AVR單片機實現蓄電池剩余電量的測量(722)8.9 基于SA9604的多功能電度表(722)8.10 數字正交上變頻器AD9856的原理及其應用(722)8.11 基于MC628的可變參數PID控制方法的實現(723)8.12 Windows 98下遠程數據采集系統設計(723)8.13 一種新式微流量計的研究(723)8.14 一種便攜式多通道精密測溫儀(723)8.15 一種高精度定時器的設計及其應用(723)8.16 智能濕度儀設計(724)8.17 固態數字語音記錄儀的設計與實現(724)8.18 多功能語音電話答錄器的設計(724)8.19 白熾燈色溫測量裝置電路設計(724)8.20 交直流供電無縫連接電源控制系統設計(724)8.21 小型電磁輻射敏感度自動測試系統的設計(725)8.22 生物電極微電流動態檢測裝置(725)8.23 二種鉑電阻4~20 mA電流變送器電路(725)8.24 基于單片機的智能型光電編碼器計數器(725)8.25 嵌入式系統中利用RS232C串口擴展矩陣式鍵盤(725)8.26 電壓矢量控制PWM波的一種實時生成方法(725)8.27 便攜式電能表校驗裝置現場使用分析(726)8.28 用單片機實現大型電動機的在線監測(726)8.29 PLC在L型管彎曲機電控系統中的應用(726)8.30 用EPROM實現步進電機的控制(726)8.31 一種手持設備的智能卡實現技術(726)8.32 鈔票顏色識別系統的設計(727)8.33 數字鎖相環在位置檢測中的應用(727)九、DSP及其應用技術(728)9.1 數字信號處理器DSPs的發展(728)9.2 用TMS320C6201實現多路ITU?T G.728語音編碼標準(728)9.3 采用DSP內核技術進行語音壓縮開發(728)9.4 TMS320C80與存儲器接口分析(728)9.5 TMS320C32浮點DSP存儲器接口設計(728)9.6 TMS320VC5402 DSP的并行I/O引導裝載方法研究(729)9.7 TMS320C30系統與PC104進行雙向并行通信的方法(729)9.8 基于TMS320C6201的G.723.1多通道語音編解碼的實現(729)9.9 基于TMS320C6201的多通道信號處理平臺(729)9.10 基于兩片TMS320C40的高速數據采集系統(729)9.11 使用TMS320C542構成數據采集處理系統(730)9.12 基于TMS320C32的視覺圖像處理系統(730)9.13 用ADSP?2181和MC68302實現MPEG?2傳送復用器(730)9.14 基于DSP的PC加密卡(730)9.15 TMS320C2XX及其在寬帶恒定束寬波束形成器中的應用(730)9.16 DS80C320單片機在無人機測控數據采編器中的應用(731)9.17 基于TMS320F206 DSP的圖像采集卡設計(731)9.18 基于定點DSP的實時語音命令識別模塊(731)9.19 基于TMS320C50的語音頻譜分析儀(731)9.20 利用DSP實現的專用數字錄音機(731)9.21 基于DSP的全數字交流傳動系統硬件平臺設計(732)9.22 ADSP2106x中DMA的應用(732)9.23 軟件無線電中DSP應用模式的分析(732)9.24 快速小波變換在DSP中的實現方法(732)十、PLD及EDA技術應用(733)10.1 可編程器件實現片上系統(733)10.2 VHDL語言在現代數字系統中的應用(733)10.3 用VHDL設計有限狀態機的方法(733)10.4 ISP-PLD在數字系統設計中的應用(733)10.5 基于FPGA技術的新型高速圖像采集(734)10.6 Protel 99SE電路仿真(734)10.7 可編程邏輯器件(PLD)在電路設計中的應用(734)10.8 基于FPGA的全數字鎖相環路的設計(734)10.9 基于EPLD器件的一對多打印機控制器的研制(734)10.10 一種VHDL設計實現的有線電視機頂盒信源發生方案(735)10.11 一種并行存儲器系統的FPGA實現(735)10.12 SDRAM接口的VHDL設計(735)10.13 采用ISP器件設計可變格式和可變速率的通信數字信號源(735)10.14 利用FPGA技術實現數字通信中的交織器和解交織器(735)10.15 XC9500系列CPLD遙控編程的實現(736)10.16 PLD器件在紅外遙控解碼中的應用(736)10.17 利用XCS40實現小型聲納的片上系統集成(736)10.18 可編程邏輯器件的VHDL設計技術及其在航空火控電子設備中的應用… (736)10.19 DSP+FPGA實時信號處理系統(736)10.20 CPLD在IGBT驅動設計中的應用(737)10.21 基于FPGA的FIR濾波器的實現(737)10.22 用可編程邏輯器件取代BCD?二進制轉換器的設計方法(737)
上傳時間: 2014-04-14
上傳用戶:gtf1207
人民幣大寫金額轉換程序(修正版v0.0.3) =================================== 1.使用方法: ------------- 將Cash_RMB.dcu放入Delphi安裝目錄下的Lib中,在uses中加入Cash_RMB, 即可引用CashRMB方法. function CashRMB(CashAmount: Double): String 如: procedure TForm1.Button1Click(Sender: TObject) begin QRLabel1.Caption := CashRMB(Table1.FieldByName( 金額 ).AsFloat) end 結果將傳回人民幣金額大寫字符串. 如果 CashAmount = 0 或數值溢出(超出萬億位),結果返回空串. 2.說明: -------- A.本轉換程序最大程度只支持到萬億元(位)的金額數值轉換操作.如果你的 轉換數值超出此極限,你可以在調用前先行判斷數據的合法性,如果沒有作預 先判斷,轉換過程中將引發本單元中自帶的錯誤處理例程. b.該轉換結果符合標準金額大寫書寫格式,零角零分等字樣不存在于最終的 轉換結果中. c.本轉換程序自帶數據溢出等數據非法及轉換錯誤等處理例程. d.本程序適用于32位的Delphi版本.
上傳時間: 2013-12-31
上傳用戶:hebmuljb
Visual Basic 6.0可以通過調用API函數格式化一個磁盤,無論是軟盤還是硬盤。 打開一個新的項目(工程1) ,如果你沒有更改過缺省模式,那么Visual Basic 6.0會自動添加一個form1文件,在form1上添加一個命令控件,將下面的代碼拷入。 Option Explicit Private Declare Function SHFormatDrive Lib"shell32"( ByVal Hend AS Long,ByVal Drive AS Long,ByVal FormatID AS Long,ByVal Options AS Long) as Long Private Sub FormatDisk(intDrive as integer,blnQuickFormat as Boolean) dim lngReturn As Long if (blnQuickFormat) then lngReturn= SHFormatDrive(0,intDrive,0&,1&) else lngReturn= SHFormatDrive(0,intDrive,0&,0&) end if end Sub Private Sub Command1_Click() call FormatDisk(0,True) End Sub 運行此程序。 注意FormatDisk函數的第一個變量很重要,他的值是0,1,2時代表格式化的分別是:A、B、C盤。
上傳時間: 2015-10-05
上傳用戶:kytqcool
我用BASIC開發環境下的LED屏單顯示實驗程序,可以初步了解下B環境下SPI的簡單應用
上傳時間: 2016-10-01
上傳用戶:qb1993225
This is an example USB project showing how to interface an optical mouse sensor (the ADNS-2620) with a standard XP/Vista computer. The TD-USB-01 board with a PIC18F2550 communicates with: * the PC: USB 2.0 through a mini-B connector. * the mouse sensor board: SPI over 4-wire flatcable.
標簽: interface example project optical
上傳時間: 2017-05-25
上傳用戶:diets
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門狗?????? /**********全局常量************/ //寫卡的命令 #define write_command0 0//寫密碼 #define write_command1 1//寫配置字 #define write_command2 2//密碼寫數據 #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時間參數us #define ts_min 250//270*11.0592/12=249//取近似的整數 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢的方法讀卡時關所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測試綠燈 sbit led_light1 = P1^5;//測試紅燈 sbit led_light_ok = P1^1;//讀卡成功標志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲卡上用戶數據(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數組ram uchar command; //第一個命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時值,因用同一個定時器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時值,因用同一個定時器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數原型*****************/ //讀寫操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據命令寫不同的內容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數 void write_password(uchar data *data p);//寫初始密碼或數據 void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫位 /*子函數區*****************************************************/ void delay_2(uint x) //延時,時間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發,波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位) TCON = 0x40; //設定時器1 允許開始計時(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動定時器 WDT_CONTR = 0x3c;//使能看門狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關,防止影響跳變的定時器計時 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁 write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認時間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個穩定的低電平?超時判斷? while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時器晚啟動10個周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數據 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個位 { //等待下降沿的到來 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫數據位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫數據 { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_password(p);//發口令 write_bit(0);//寫鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫數據 } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時數據不停的循環傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫新配置參數:pwd=0 //密碼無效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數***********************************/ void write_bit(bit x)//寫一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫0 } } /*******************寫一個block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數據 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標簽: 12345
上傳時間: 2017-10-20
上傳用戶:my_lcs
隨著物聯網無線通信技術的日益發展, WiFi的網絡覆蓋范圍大,移動便捷。傳輸速度快,安裝簡單。健康安全等優勢。在生活中得到了廣泛應用。WiFi模塊是將WiFi無線網絡協議IEEE802.11.b.g.n協議棧以及TCP/IP協議棧功能集成于模塊中,并將多種接口引出。傳統的硬件設備嵌入WiFi模塊可以直接利用WiFi聯入互聯網,是實現無線智能家居,WiFi遠程控制等物聯網用的重要組成部分。 根據WiFi模塊引出的接口或集成的功能。WiFi模塊也就細分為了串口WiFi模塊,SDIOWiFi模塊,SPI接口WiFi模塊模塊,AP模塊,路由器WiFi模塊,WiFi控制模塊等。
上傳時間: 2021-12-19
上傳用戶:shjgzh
1概述SDIO(安全數字I/0)卡是一種以SD存儲卡為基礎并與之兼容的卡設備。這種兼容性包括機械特性,電子特性,電源,信號和軟件。SDI0卡的目標是為移動電子設備提供低功耗高速度的數據I/0。最起碼的使用條件下,SDI0卡插進非SDI0主設備時,不會造成設備的物理破壞或軟件的崩潰,因此SDI0卡應該被主設備忽略來處理這種情況。一旦插入SDI0主設備,將以帶有擴展SD規范闡述的正常方式進行卡檢測。在這種狀態下,SDI0卡將進入空閑狀態,功耗稍微下降(在超過1秒的時間內平均值可達15mA)。通常在主機初始化和查詢卡時,作為SDIO設備而言,卡將會自己認證自己。主機軟件將會在已連接列表格式中獲得卡信息,并由此決定卡的I/0功能是否可以接受和激活。卡對電源的要求或是否有相應的驅動軟件是判據。如果卡被接受,卡會完全上電并啟動內建的I/0功能。1.1SDIO特點·應用在移動設備和固定設備·SD物理總線無需改變或做最小限度的改變·存儲軟件做最小的改動·允許擴展物理形式來適應特殊的需求·支持即插即用·支持多功能,包括多I/0以及1/0與SD存儲卡結合方式·單卡支持多達7項1/0功能和一項存儲功能·允許卡中斷主機·初始化電壓:2.0到3.6V·操作電壓:3.1到3.5V1.2主要參考文檔本規范廣泛參考了SDA的文檔:SD卡規范第一部分《物理層規范》2000年9月版本號1.01讀者可以通過這篇文檔了解關于SD設備操作的更多信息,另外,其他文檔都參照了本文檔,完整列表在章節B.1中列出。2.1SDIO卡類型規范中定義了兩種類型的SDI0卡。全速卡支持SPI、1位SD和4位SD以0-25MHz的傳輸模式工作,全速SDI0卡完全可以使數據傳輸速度超過100M位/秒(10M字節/秒)。SDI0卡第二版本是低速SDI0卡,這種卡僅需要SPI和1位SD傳輸模式,支持4位是可選擇項。另外,低速SD10卡在0-400KHz時鐘的整個范圍,低速卡的使用也是一種以最小硬件資源支持低速I/0設備的引領趨勢。支持類似功能的低速卡包括MODEM卡,便攜式掃描儀,GPS接收機等。如果卡是“Combo card”(存儲加上SDI0),那么全速和4位操作的要求是強制性的。
上傳時間: 2022-05-27
上傳用戶:得之我幸78