亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

查表器

  • AVR系列單片機C語言編程與應用實例

    本書針對Atmel公司的AVR系列單片機和ImageCraft公司的ICC AVR開發(fā)環(huán)境,詳細地介紹了AT90LS8535的C語言程序設(shè)計。全書共有13章,其內(nèi)容既涉及到了單片機的結(jié)構(gòu)原理、指令系統(tǒng)、內(nèi)容資源和外部功能擴展,又包含了單片機的編程工具——ICC AVR C編程器的數(shù)據(jù)類型、控制流、函數(shù)和指針等。本書的特點是:深入淺出,從最基本的概念開始,循序漸進地講解單片機的應用開發(fā);列舉了大量實例,使讀者能從實際應用中掌握單片機的開發(fā)與應用技術(shù)。本書適合作為從事單片機開發(fā)人員的參考用書。書中先后講解了C語言基礎(chǔ)、AVR單片機基礎(chǔ),并舉了一些簡單的實例。本書非常適合初學者。 【目錄信息】 第1章 單片機系統(tǒng)概述 1. 1 AVR系列單片機的特點 1. 2 AT90系列單片機簡介 第2章 AT90LS8535單片機的基礎(chǔ)知識 2. 1 AT90LS8535單片機的總體結(jié)構(gòu) 2. 1. 1 AT90LS8535單片機的中央處理器 2. 1. 2 AT90LS8535單片機的存儲器組織 2. 1. 3 AT90LS8535單片機的I/O接口 2. 1. 4 AT90LS8535單片機的內(nèi)部資源 2. 1. 5 AT90LS8535單片機的時鐘電路 2. 1. 6 AT90LS8535單片機的系統(tǒng)復位 2. 1. 7 AT90LS8535單片機的節(jié)電方式 2. 1. 8 AT90LS8535單片機的芯片引腳 2. 2 AT90LS8535單片機的指令系統(tǒng) 2. 2. 1 匯編指令格式 2. 2. 2 尋址方式 2. 2. 3 偽指令 2. 2. 4 指令類型及數(shù)據(jù)操作方式 2. 3 應用程序設(shè)計 2. 3. 1 程序設(shè)計方法 2. 3. 2 應用程序舉例 第3章 AT90LS8535單片機的C編程 3. 1 支持高級語言編程的AVR系列單片機 3. 2 AVR的C編譯器 3. 3 ICCAVR介紹 3. 3. 1 安裝ICCAVR 3. 3. 2 設(shè)置ICCAVR 3. 4 用ICCAVR編寫應用程序 3. 5 下載程序文件 第4章 數(shù)據(jù)類型. 運算符和表達式 4. 1 ICCAVR支持的數(shù)據(jù)類型 4. 2 常量與變量 4. 2. 1 常量 4. 2. 2 變量 4. 3 AT90LS8535的存儲空間 4. 4 算術(shù)和賦值運算 4. 4. 1 算術(shù)運算符和算術(shù)表達式 4. 4. 2 賦值運算符和賦值表達式 4. 5 邏輯運算 4. 6 關(guān)系運算 4. 7 位操作 4. 7. 1 位邏輯運算 4. 7. 2 移位運算 4. 8 逗號運算 第5章 控制流 5. 1 C語言的結(jié)構(gòu)化程序設(shè)計 5. 1. 1 順序結(jié)構(gòu) 5. 1. 2 選擇結(jié)構(gòu) 5. 1. 3 循環(huán)結(jié)構(gòu) 5. 2 選擇語句 5. 2. 1 if語句 5. 2. 2 switch分支 5. 2. 3 選擇語句的嵌套 5. 3 循環(huán)語句 5. 3. 1 while語句 5. 3. 2 do…while語句 5. 3. 3 for語句 5. 3. 4 循環(huán)語句嵌套 5. 3. 5 break語句和continue語句 第6章 函數(shù) 6. 1 函數(shù)的定義 6. 1. 1 函數(shù)的定義的一般形式 6. 1. 2 函數(shù)的參數(shù) 6. 1. 3 函數(shù)的值 6. 2 函數(shù)的調(diào)用 6. 2. 1 函數(shù)的一般調(diào)用 6. 2. 2 函數(shù)的遞歸調(diào)用 6. 2. 3 函數(shù)的嵌套調(diào)用 6. 3 變量的類型及其存儲方式 6. 3. 1 局部變量 6. 3. 2 局部變量的存儲方式 6. 3. 3 全局變量 6. 3. 4 全局變量的存儲方式 6. 4 內(nèi)部函數(shù)和外部函數(shù) 6. 4. 1 內(nèi)部函數(shù) 6. 4. 2 外部函數(shù) 第7章 指針 7. 1 指針和指針變量 7. 2 指針變量的定義和引用 7. 2. 1 指針變量的定義 7. 2. 2 指針變量的引用 7. 2. 3 指針變量作為函數(shù)參數(shù) 7. 3 數(shù)組與指針 7. 3. 1 指向數(shù)組元素的指針變量 7. 3. 2 數(shù)組元素的引用 通過指針 7. 3. 3 數(shù)組名作為函數(shù)參數(shù) 7. 3. 4 指向多維數(shù)組的元素的指針變量 7. 4 字符串與指針 7. 4. 1 字符串的表示形式 7. 4. 2 字符串指針變量與字符數(shù)組的區(qū)別 7. 5 函數(shù)與指針 7. 5. 1 函數(shù)指針變量 7. 5. 2 指針型函數(shù) 7. 6 指向指針的指針 7. 7 有關(guān)指針數(shù)據(jù)類型和運算小結(jié) 7. 7. 1 有關(guān)指針的數(shù)據(jù)類型的小結(jié) 7. 7. 2 指針運算的小結(jié) 第8章 結(jié)構(gòu)體和共用體 8. 1 結(jié)構(gòu)體的定義和引用 8. 1. 1 結(jié)構(gòu)體類型變量的定義 8. 1. 2 結(jié)構(gòu)體類型變量的引用 8. 2 結(jié)構(gòu)類型的說明 8. 3 結(jié)構(gòu)體變量的初始化和賦值 8. 3. 1 結(jié)構(gòu)體變量的初始化 8. 3. 2 結(jié)構(gòu)體變量的賦值 8. 4 結(jié)構(gòu)體數(shù)組 8. 4. 1 結(jié)構(gòu)體數(shù)組的定義 8. 4. 2 結(jié)構(gòu)體數(shù)組的初始化 8. 5 指向結(jié)構(gòu)體類型變量的指針 8. 5. 1 指向結(jié)構(gòu)體變量的指針 8. 5. 2 指向結(jié)構(gòu)體數(shù)組的指針 8. 5. 3 指向結(jié)構(gòu)體變量的指針做函數(shù)參數(shù) 8. 6 共用體 8. 6. 1 共用體的定義 8. 6. 2 共用體變量的引用 第9章 A190LS8535的內(nèi)部資源 9. 1 I/O 口 9. 1. 1 端口A 9. 1. 2 端口B 9. 1. 3 端口C 9. 1. 4 端口D 9. 1. 5 I/O口的編程 9. 2 中斷 9. 2. 1 單片機的中斷功能 9. 2. 2 AT90LS8535單片機的中斷系統(tǒng) 9. 2. 3 1CCAVRC編譯器的中斷操作 9. 2. 4 中斷的編程 9. 3 串行數(shù)據(jù)通信 9. 3. 1 數(shù)據(jù)通信基礎(chǔ) 9. 3. 2 AT90LS8535的同步串行接口 9. 3. 3 AT90LS8535的異步串行接口 9. 4 定時/計數(shù)器 9. 4. 1 定時/計數(shù)器的分頻器 9. 4. 2 8位定時/計數(shù)器0 9. 4. 3 16位定時/計數(shù)器1 9. 4. 4 8位定時/計數(shù)器2 9. 5 EEPROM 9. 5. 1 與EEPROM有關(guān)的寄存器 9. 5. 2 EEPROM讀/寫操作 9. 5. 3 EEPROM的應用舉例 9. 6 模擬量輸入接口 9. 6. 1 模數(shù)轉(zhuǎn)換器的結(jié)構(gòu) 9. 6. 2 ADC的使用 9. 6. 3 與模數(shù)轉(zhuǎn)換器有關(guān)的寄存器 9. 6. 4 ADC的噪聲消除 9. 6. 5 ADC的應用舉例 9. 7 模擬比較器 9. 7. 1 模擬比較器的結(jié)構(gòu) 9. 7. 2 與模擬比較器有關(guān)的寄存器 9. 7. 3 模擬比較器的應用舉例 第10章 AT90LS8535的人機接口編程 10. 1 鍵盤接口 10. 1. 1 非矩陣式鍵盤 10. 1. 2 矩陣式鍵盤 10. 2 LED顯示輸出 10. 2. 1 LED的靜態(tài)顯示 10. 2. 2 LED的動態(tài)掃描顯示 10. 2. 3 動態(tài)掃描顯示專用芯片MC14489 10. 3 LCD顯示輸出 10. 3. 1 字符型LCD 10. 3. 2 點陣型LCD 10. 4 ISD2500系列語音芯片的編程 10. 4. 1 ISD2500的片內(nèi)結(jié)構(gòu)和引腳 10. 4. 2 ISD2500的操作 10. 4. 3 ISD2500和單片機的接口及編程 10. 5 TP-uP微型打印機 10. 5. 1 TP-uP打印機的接口和邏輯時序 10. 5. 2 P-uP打印機的打印命令和字符代碼 10. 5. 3 AT90LS8535與TP-uP系列打印機的接口及編程 10. 6 IC卡 10. 6. 1 IC卡讀寫裝置 10. 6. 2 IC卡軟件 第11章 AT90LS8535的外圍擴展 11. 1 簡單I/O擴展芯片 11. 1. 1 用74LS377擴展數(shù)據(jù)輸出接口 11. 1. 2 數(shù)據(jù)輸入接口 11. 2 模擬量輸出 11. 2. 1 D/A轉(zhuǎn)換器簡介 11. 2. 2 8位數(shù)模轉(zhuǎn)換器DAC0832 11. 2. 3 8位數(shù)模轉(zhuǎn)換器與單片機的接口及編程 11. 2. 4 12位數(shù)模轉(zhuǎn)換器DACl230 11. 2. 5 12位數(shù)模轉(zhuǎn)換器與單片機的接口及編程 11. 3 可編程I/O擴展芯片8255A 11. 3. 1 8255A的引腳和內(nèi)部結(jié)構(gòu) 11. 3. 2 8255A的工作方式 11. 3. 3 8255A的控制字 11. 3. 4 AT90LS8535和8255A的接口 11. 4 帶片內(nèi)RAM的I/O擴展芯片8155 11. 4. 1 8155的引腳和內(nèi)部結(jié)構(gòu). 11. 4. 2 8155的I/O口工作方式 11. 4. 3 8155的定時/計數(shù)器 11. 4. 4 8155的命令和狀態(tài)字 11. 4. 5 AT90LS8535與8155的接口及編程 11. 5 定時/計數(shù)器芯片8253 11. 5. 1 8253的信號引腳和邏輯結(jié)構(gòu) 11. 5. 2 8253的工作方式 11. 5. 3 8253的控制字 11. 5. 4 AT90LS8535與8253的接口及編程 11. 6 實時時鐘芯片DS1302 11. 6. 1 DS1302的引腳和內(nèi)部結(jié)構(gòu) 11. 6. 2 DS1302的控制方式 11. 6. 3 AT90LS8535與DS1302的接口與編程 11. 7 數(shù)字溫度傳感器DS18B20 11. 7. 1 DSl8B20的引腳和內(nèi)部結(jié)構(gòu) 11. 7. 2 DS18B20的溫度測量 11. 7. 3 AT90LS8535與DS18B20的接口與編程 第12章 AT90LS8535的通信編程 12. 1 串口通信 12. 1. 1 異步串口UART通信 12. 1. 2 同步串口SPI通信 12. 2 I2C總線 12. 2. 1 I2C總線協(xié)議 12. 2. 2 采用AT90LS8535的并行I/O口模擬I2C總線 12. 3 CAN總線 12. 3. 1 CAN總線的特點 12. 3. 2 CAN協(xié)議的信息格式 12. 3. 3 CAN控制器SJA1000 12. 3. 4 AT90LS8535與SJA1000的接口及編程 12. 4 AT90LS8535單片機與PC的串行通信 12. 4. 1 基于VC 6. 0的PC串口通信 12. 4. 2 應用實例 第13章 系統(tǒng)設(shè)計中的程序處理方法 13. 1 數(shù)字濾波處理 13. 1. 1 平滑濾波 13. 1. 2 中值濾波 13. 1. 3 程序判斷濾波 13. 2 非線性處理 13. 2. 1 查表法 13. 2. 2 線性插值法

    標簽: AVR 單片機 C語言編程 應用實例

    上傳時間: 2013-11-04

    上傳用戶:元宵漢堡包

  • 單片直接驅(qū)動數(shù)碼管的計數(shù)器程序

      a_bit equ 20h ;個位數(shù)存放處   b_bit equ 21h ;十位數(shù)存放處   temp equ 22h ;計數(shù)器寄存器   star: mov temp,#0 ;初始化計數(shù)器   stlop: acall display   inc temp   mov a,temp   cjne a,#100,next ;=100重來   mov temp,#0   next: ljmp stlop   ;顯示子程序   display: mov a,temp ;將temp中的十六進制數(shù)轉(zhuǎn)換成10進制   mov b,#10 ;10進制/10=10進制   div ab   mov b_bit,a ;十位在a   mov a_bit,b ;個位在b   mov dptr,#numtab ;指定查表啟始地址   mov r0,#4   dpl1: mov r1,#250 ;顯示1000次   dplop: mov a,a_bit ;取個位數(shù)   MOVC A,@A+DPTR ;查個位數(shù)的7段代碼   mov p0,a ;送出個位的7段代碼

    標簽: 直接驅(qū)動 數(shù)碼管 計數(shù)器 程序

    上傳時間: 2013-11-06

    上傳用戶:lx9076

  • 常用PIC系列單片機速查表

    常用PIC系列產(chǎn)品特性一覽表 器件  存儲器 類型 字數(shù) EEPROM 數(shù)據(jù) 存儲器 RAM I/O 引腳數(shù)  ADC (-Bit) 比較 器 運 放 定時器/WDT 串行接口 最高 速度 MHz 封裝 PDIP /SOIC ICSP CCP / ECCP 輸出電流 (per I/O) 振蕩器 頻率 (MHz) 參考 電壓 VREF LCD PWM 堆棧 深度 High Voltage Wakeup On Change PIC16C432 OTP 2048x14   128 12   2  1-8bit/1-WDT   20 20 √   25 mA  4       0 0 PIC16C433 OTP 2048x14   128 6 4/8    1-8bit/1-WDT   10 18 √   25 mA         0 0 PIC16C505 OTP 1024x12   72 12      1-8bit/1-WDT   20 14 √   25 mA  4       0 0 PIC16C54 OTP 512x12   25 12      1-8bit/1-WDT   20 18/20    20 mA          0 0 PIC16C54A OTP 512x12   25 12      1-8bit/1-WDT   20 18/20    20 mA         0 0 PIC16C54C OTP 512x12   25 12      1-8bit/1-WDT   40 18/20    20 mA          0 0 PIC16C55 OTP 512x12   24 20      1-8bit/1-WDT   20 28    20 mA          0 0 PIC16C554 OTP 512x14   80 13      1-8bit/1-WDT   20 18/20 √   25 mA          0 0 PIC16C558 OTP 2048x14   128 13      1-8bit/1-WDT   20 18/20 √   25 mA          0 0 PIC16C55A OTP 512x12   24 20      1-8bit/1-WDT   40 28    20 mA          0 0 PIC16C56 OTP 1024x12   25 12      1-8bit/1-WDT   20 18/20    20 mA          0 0 PIC16C56A OTP 1024x12   25 12      1-8bit/1-WDT   40 18/20    20 mA         0 0 PIC16C57 OTP 2048x12   72 20      1-8bit/1-WDT   20 28    20 mA          0 0 PIC16C57C OTP 2048x12   72 20      1-8bit/1-WDT   40 28    20 mA          0 0 PIC16C58B OTP 2048x12   73 12      1-8bit/1-WDT   40 18/20    20 mA          0 0 PIC16C620 OTP 512x14   80 13   2  1-8bit/1-WDT   20 18/20 √   25 mA   √      0 0 PIC16C620A OTP 512x14   96 13   2  1-8bit/1-WDT   40 18/20 √   25 mA   √      0 0 PIC16C621 OTP 1024x14   80 13   2  1-8bit/1-WDT   20 18/20 √   25 mA    √      0 0 PIC16C621A OTP 1024x14   96 13   2  1-8bit/1-WDT   40 18/20 √   25 mA   √      0 0 PIC16C622 OTP 2048x14   128 13   2  1-8bit/1-WDT   20 18/20 √   25 mA   √      0 0 PIC16C622A OTP 2048x14   128 13   2  1-8bit/1-WDT   40 18/20/40 √   25 mA   √      0 0 PIC16C62A OTP 2048x14   128 22      2-8bit/1-16bit/1-WDT I²C/ SPI 20 28/ √ 1 25 mA     1   0 0 PIC16C62B OTP 2048x14   128 22      2-8bit/1-16bit/1-WDT I²C /SPI 20 28 √ 1 25 mA     1   0 0 PIC16C63 OTP 4096x14   192 22      2-8bit/1-16bit/1-WDT USART/I²C /SPI 20 28 √ 2 25 mA     2   0 0 PIC16C63A OTP 4096x14   192 22      2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 28 √ 2 25 mA     2   0 0 PIC16C642 OTP 4096x14   176 22   2  1-8bit/1-WDT   20 28 √   25 mA   √      0 0 PIC16C64A OTP 2048x14   128 33      2-8bit/1-16bit/1-WDT I²C /SPI 20 40/44 √ 1 25 mA     1   0 0 PIC16C65A OTP 4096x14   192 33      2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 40/44 √ 2 25 mA     2   0 0 PIC16C65B OTP 4096x14   192 33      2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 40/44 √ 2 25 mA     2   0 0 PIC16C66 OTP 8192x14   368 22      2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 28 √ 2 25 mA     2   0 0 PIC16C662 OTP 4096x14   176 33   2  1-8bit/1-WDT   20 40/44 √   25 mA   √      0 0 PIC16C67 OTP 8192x14   368 33      2-8bit/1-16bit/1-WDT USART/I²C /SPI 20 40/44 √ 2 25 mA     2   0 0 PIC16C71 OTP 1024x14   36 13 4/8    1-8bit/1-WDT   20 18 √   25 mA         0 0 PIC16C710 OTP 512x14   36 13 4/8    1-8bit/1-WDT   20 18/20 √   25 mA         0 0 PIC16C711 OTP 1024x14   68 13 4/8    1-8bit/1-WDT   20 18/20 √   25 mA         

    標簽: PIC 單片機 速查

    上傳時間: 2013-10-12

    上傳用戶:xjy441694216

  • PIC16F877 單片機的鍵盤和LED 數(shù)碼顯示接口

    PIC16F877 單片機的鍵盤和LED 數(shù)碼顯示接口 1 PIC16F877單片機與鍵盤和LED數(shù)碼顯示的硬件接口電路單片機的許多應用都需要進行人機對話,最簡單的人機對話需要LED 數(shù)碼管顯示數(shù)字和少量字符;鍵盤是解決計算機輸入的簡單手段;借此可以向計算機輸入程序、置數(shù)、送操作命令、控制程序的執(zhí)行等等,所以使用非常廣泛。圖1 鍵盤、LED數(shù)碼顯示與PIC16F877 單片機的接口電路本例中采用8 個按鍵組成的小鍵盤,4 只共陰極的LED 數(shù)碼管,采用4 片74LS373 驅(qū)動數(shù)碼管,采用的驅(qū)動方法是靜態(tài)方式。使用1 片74LS245 作為鍵盤的接口;這些外圍器件與PIC16F877 單片機的接口電路如圖1 所示,這種連接方法與51 系列的單片機連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機的鍵盤輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤通過74LS245 與單片機相連,鍵盤按鍵狀態(tài)的數(shù)據(jù)輸入由RC3 輸出腳控制;當RC3=“0”時,鍵盤狀態(tài)從74LS245 的A 端輸出到單片機的PORTB口,此時讀PORTB口的數(shù)據(jù)即為鍵盤狀態(tài)。為了及時地響應鍵盤操作,需要經(jīng)常對鍵盤進行掃描;掃描的方式有許多種,我們將鍵盤的掃描程序安排在主程序的循環(huán)執(zhí)行過程中的方式,并采用20ms延遲來消除按鍵的抖動問題,此外,為了實現(xiàn)每按鍵一次只響應一次的功能,在執(zhí)行相應的按鍵程序之前,必須確保按鍵已經(jīng)松開;在本例中這一措施有效的防止了數(shù)據(jù)抖動過快的問題。LED 數(shù)碼顯示有動態(tài)掃描和靜態(tài)顯示兩種方式(圖1 采取的方式為靜態(tài)方式),在動態(tài)掃描方式中,各數(shù)碼顯示是輪流點亮的,即控制數(shù)碼顯示的位選信號和相應的要顯示的數(shù)碼的字形代碼同時逐一送出,反復不已,由于視覺的暫留現(xiàn)象,卻好象全都點亮著,這種電路的接法以后再介紹。在靜態(tài)方式中,只要將數(shù)據(jù)送出鎖存以后,各數(shù)碼顯示的數(shù)據(jù)不需要刷新,只要數(shù)據(jù)不需改變,就可以不去管他,所以稱為靜態(tài)顯示。在圖1 電路中,輸出顯示的操作簡化為對74LS373 的并口操作而已。由于靜態(tài)方式的工作原理比較簡單,編程也比較直觀簡單,程序間的相互關(guān)聯(lián)很少。因此編程容易,但要增加硬件,成本較高;與之相比,動態(tài)掃描的編程雖然要復雜一些,但因其所用硬件少,成本低。由數(shù)碼轉(zhuǎn)化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數(shù)碼的字形代碼構(gòu)成一個表格存儲于內(nèi)存之中,在顯示數(shù)碼時,通過執(zhí)行查表程序而得到相應的字形代碼,再將之送入數(shù)碼顯示輸出電路進行顯示,本例即采用這種方式,這種方式的編程與單片機有關(guān),在程序中給出了PIC16F877 的編程例程,對需要熟悉PIC16F877 單片機的人員有一定的參考價值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅(qū)動芯片直接譯出字形代碼,點亮LED。74LS373 由LE 端對要顯示的數(shù)據(jù)進行鎖存控制,實現(xiàn)LED 的靜態(tài)顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數(shù)據(jù)鎖存時序,即由軟件實現(xiàn)數(shù)據(jù)鎖存,這種方法可以十分容易的改變時序和延遲長短,使高速設(shè)備可以與低速設(shè)備聯(lián)系配合好,設(shè)計簡單方便,不好的地方是編程較長和稍微復雜一點。這種編程方法在下面的程序中有很好的體現(xiàn)。

    標簽: F877 PIC 16F 877

    上傳時間: 2013-10-29

    上傳用戶:cuiyashuo

  • I/O 型單片機使用手冊

    I/O 型單片機使用手冊 目錄 間接尋址寄存器 – IAR, IAR0, IAR1 .............................................35間接尋址指針 – MP, MP0, MP1 ......................................................35存儲區(qū)指針 – BP .........................................................................36累加器 – ACC...................................................................................37程序計數(shù)器低字節(jié)寄存器 – PCL....................................................37表格寄存器 – TBLP,TBHP,TBLH....................................................37看門狗定時寄存器 – WDTS............................................................38狀態(tài)寄存器 – STATUS.....................................................................38中斷控制寄存器 – INTC,INTC0,INTC1 .........................................39定時/計數(shù)寄存器...............................................................................39輸入/輸出端口和控制寄存器...........................................................40UART 寄存器 .USR,UCR1,UCR2,TXR/RXR,BRG.......................40輸入/輸出端口..........................................................................................41上拉電阻............................................................................................41PA 口的喚醒......................................................................................41輸入/輸出端口控制寄存器...............................................................41引腳共享功能....................................................................................42編程注意事項....................................................................................45定時/計數(shù)器..............................................................................................46配置定時/計數(shù)器輸入時鐘源...........................................................47定時/計數(shù)寄存器 – TMR, TMR0,TMR0L/TMR0H,TMR1L/TMR1H,TMR2.....................................................................49定時/計數(shù)控制寄存器 – TMRC,TMR0C,TMR1C,TMR2C............50定時器模式........................................................................................53事件計數(shù)器模式................................................................................53脈沖寬度測量模式............................................................................54可編程分頻器(PFD)和蜂鳴器的應用..............................................55預分頻器(Prescaler)...........................................................................56輸入/輸出接口...................................................................................56編程注意事項....................................................................................57定時/計數(shù)器應用范例.......................................................................57中斷............................................................................................................59中斷寄存器........................................................................................59中斷優(yōu)先權(quán)........................................................................................62外部中斷............................................................................................63定時/計數(shù)器中斷...............................................................................64UART 中斷........................................................................................64編程注意事項....................................................................................65復位和初始化............................................................................................66復位....................................................................................................66目錄iii異步串行口——UART............................................................................74UART 特性..........................................................................................74UART 外部引腳..................................................................................74數(shù)據(jù)發(fā)送.............................................................................................75UART 狀態(tài)控制寄存器......................................................................75波特率發(fā)生器.....................................................................................79UART 設(shè)置與控制..............................................................................81UART 發(fā)送器......................................................................................83UART 接收器......................................................................................84接收錯誤處理.....................................................................................85接收中斷圖解.....................................................................................86地址檢測模式.....................................................................................86暫停模式下的UART 功能.................................................................87UART 應用范例.................................................................................87振蕩器........................................................................................................89系統(tǒng)時鐘配置....................................................................................89系統(tǒng)晶體/陶瓷振蕩器.......................................................................89系統(tǒng)電阻電容振蕩器........................................................................90內(nèi)部系統(tǒng)電阻電容振蕩器................................................................90RTC 振蕩器........................................................................................91看門狗定時振蕩器............................................................................91暫停和喚醒................................................................................................92暫停.....................................................................................................92進入暫停.............................................................................................92靜態(tài)電流.............................................................................................92喚醒....................................................................................................92看門狗定時器............................................................................................94掩膜選項....................................................................................................96應用電路....................................................................................................97第二部份 程序語言.....................................................................99第二章 指令集介紹.................................................................................101指令集......................................................................................................101指令周期..........................................................................................101數(shù)據(jù)的傳送......................................................................................101算術(shù)運算..........................................................................................102邏輯和移位運算..............................................................................102分支和控制的轉(zhuǎn)換..........................................................................102位運算..............................................................................................102查表運算..........................................................................................103其它運算..........................................................................................103指令設(shè)定一覽表......................................................................................104慣例..................................................................................................104I/O 型單片機使用手冊iv第三章 指令定義.....................................................................................107第四章 匯編語言和編譯器.....................................................................121常用符號..................................................................................................121語句語法..................................................................................................122名稱..................................................................................................122操作項..............................................................................................122操作數(shù)項..........................................................................................122注解..................................................................................................122編譯偽指令..............................................................................................123條件編譯偽指令..............................................................................123文件控制偽指令..............................................................................124程序偽指令......................................................................................126數(shù)據(jù)定義偽指令..............................................................................130宏指令..............................................................................................132匯編語言指令..........................................................................................136名稱..................................................................................................136助記符..............................................................................................136操作數(shù)、運算子和表達式..............................................................136其它..........................................................................................................139前置引用..........................................................................................139局部標號..........................................................................................139匯編語言保留字..............................................................................140編譯器選項..............................................................................................141編譯列表文件格式..................................................................................141源程序列表......................................................................................141編譯總結(jié)..........................................................................................142其它..................................................................................................142第三部份 開發(fā)工具................................................................... 145第五章 單片機開發(fā)工具.........................................................................147HT-IDE 集成開發(fā)環(huán)境............................................................................147盛群單片機仿真器(HT-ICE) ..................................................................149HT-ICE 接口卡.................................................................................149OTP 燒寫器.....................................................................................149OTP 適配卡.....................................................................................149系統(tǒng)配置..................................................................................................150HT-ICE 接口卡設(shè)置........................................................................151安裝..........................................................................................................153系統(tǒng)要求..........................................................................................153硬件安裝..........................................................................................153軟件安裝..........................................................................................154目錄v第六章 快速開始.....................................................................................159步驟一:建立一個新項目..............................................................159步驟二:將源程序文件加到項目中..............................................159步驟三:編譯項目..........................................................................159步驟四:燒寫OTP 單片機.............................................................160步驟五:傳送程序與掩膜選項單至Holtek ..................................160附錄............................................................................................... 161附錄A 特性曲線圖...................................................................................163附錄B 封裝信息.......................................................................................173

    標簽: 單片機 使用手冊

    上傳時間: 2013-10-18

    上傳用戶:blacklee

  • 單片機指令系統(tǒng)原理

    單片機指令系統(tǒng)原理 51單片機的尋址方式 學習匯編程序設(shè)計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數(shù)的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV  DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項給出的是參加運算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV  A,30H  這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nèi)部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV  65H,A       ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內(nèi)容送入A中MOV  direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV  IE,#85H      ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學習中我產(chǎn)應可以理解到,其實寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設(shè)為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進行賦值。我們再看指令MOVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC   A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC   A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數(shù)據(jù)位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結(jié)構(gòu)時,我們已知道在單片機的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統(tǒng)學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示   MOV  C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說明下列指令中源操作數(shù)采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯題   請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。   MOV R0,@R3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運算指令中目的操作數(shù)必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數(shù)應在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標簽: 單片機指令 系統(tǒng)原理

    上傳時間: 2013-11-11

    上傳用戶:caozhizhi

  • 單片機入門基礎(chǔ)知識大全免費下載

    單片機入門基礎(chǔ)知識大全免費下載 單片機第八課(尋址方式與指令系統(tǒng)) 通過前面的學習,我們已經(jīng)了解了單片機內(nèi)部的結(jié)構(gòu),并且也已經(jīng)知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數(shù)字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數(shù)字的形式。但這種形式實在是為難我們?nèi)肆耍y記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關(guān)系呢,我們不難理解,本質(zhì)上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉(zhuǎn)換為機器碼格式,這種轉(zhuǎn)換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數(shù)據(jù)送到相應的位置中去,為什么要送數(shù)據(jù)呢?第一個因為送入的數(shù)可以讓燈全滅掉,第二個是為了要實現(xiàn)延時,從這里我們可以看出來,在用單片機的編程語言編程時,經(jīng)常要用到數(shù)據(jù)的傳遞,事實上數(shù)據(jù)傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數(shù)據(jù)傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結(jié)論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規(guī)定做什么事情,后面還有一些參數(shù),分析一下,數(shù)據(jù)傳遞必須要有一個“源”也就是你要送什么數(shù),必須要有一個“目的”,也就是你這個數(shù)要送到什么地方去,顯然在上面那條指令中,要送的數(shù)(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數(shù)本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數(shù)本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0     ;(1)    LCALL DELAY ;(2)     CLR P1.0      ;(3)    LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,#250   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11)     表1  MAIN: SETB P1.0     ;(1)    MOV 30H,#255     LCALL DELAY ;     CLR P1.0      ;(3)     MOV 30H,#200     LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,30H   ;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1   ;(9)    RET        ;(10)    END        ;(11) 表2    這樣一來,我每次調(diào)用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環(huán),這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調(diào)用則見表2中的主程,也就是先把一個數(shù)送入30H,在子程序中R7中的值并不固定,而是根據(jù)30H單元中傳過來的數(shù)確定。這樣就可以滿足要求。 從這里我們可以得出結(jié)論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時候,這個數(shù)并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。在這里我們直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。提一個問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結(jié)果是完全相同的,都是將00H單元中的內(nèi)容送到A中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(jié)(E5H 00H),而第二條則只要一個字節(jié)(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節(jié)又能有多少? 不對,如果這條指令只執(zhí)行一次,也許無所謂,但一條指令如果執(zhí)行上1000次,就是1毫秒,如果要執(zhí)行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節(jié)數(shù)同樣如此。 再來提一個問題,現(xiàn)在我們已知,尋找操作數(shù)可以通過直接給的方式(立即尋址)和直接給出數(shù)所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數(shù),分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數(shù),就用MOV A,30H,那么下一個數(shù)呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數(shù),不是得20條指令才能寫完嗎?這里只有20個數(shù),如果要送200個或2000個數(shù),那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現(xiàn)這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據(jù)這個寄存器單元中的數(shù)值決定該到哪個單元中取數(shù)據(jù),比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發(fā)生變化,比如取完一個數(shù)后,將這個寄存器單元中的值加1,還是執(zhí)行同一條指令,可是取數(shù)的對象卻不一樣了,不是嗎。通過例子來說明吧。    MOV R7,#20    MOV R0,#30H LOOP:MOV A,@R0    INC R0    DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數(shù)20送到R7中,執(zhí)行完后R7中的值應當是20。第二句是將立即數(shù)30H送入R0工作寄存器中,所以執(zhí)行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內(nèi)容送入A中,此時,執(zhí)行這條指令的結(jié)果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執(zhí)行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉(zhuǎn)到標號LOOP處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行MOV A,@R0這句話,此時相當于執(zhí)行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環(huán)20次為止,就實現(xiàn)了我們的要求:從30H單元開始將20個數(shù)據(jù)送入A中。 這也是一種尋找數(shù)據(jù)的方法,由于數(shù)據(jù)是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數(shù)據(jù)。 二、指令 數(shù)據(jù)傳遞類指令 1) 以累加器為目的操作數(shù)的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數(shù)data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內(nèi)存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執(zhí)行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數(shù)34H送入A中,執(zhí)行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A   MOV Rn,direct   MOV Rn,#data 這組指令功能是把源地址單元中的內(nèi)容送入工作寄存器,源操作數(shù)不變。

    標簽: 單片機 免費下載 基礎(chǔ)知識

    上傳時間: 2013-10-13

    上傳用戶:3294322651

  • 單片機指令系統(tǒng)

    單片機指令系統(tǒng) 3.1 MCS-51指令簡介 3.2 指令系統(tǒng) 3.1  MCS-51指令簡介 二、MCS-51系列單片機指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址         1、數(shù)據(jù)傳送指令位操 2、直接尋址             2、算術(shù)運算指令 3、寄存器尋址           3、邏輯運算指令 4、寄存器間接尋址指令   4、控制轉(zhuǎn)移類指令 5、相對尋址             5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址    MOV A, @R1        操作數(shù)是通過寄存器間接得到的。 4、立即尋址               MOV  A, #40H        操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址        以DPTR或PC為基址寄存器,以A為變址寄存器,        以兩者相加形成的16位地址為操作數(shù)的地址。                   MOVC A, @A+DPTR                   MOVC A, @A+PC 四、指令中常用符號說明 Rn——當前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7); Ri——當前寄存器區(qū)可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數(shù)的指令 2.  以Rn為目的操作數(shù)的指令 3.  以直接地址為目的操作數(shù)的指令 4.  以寄存器間接地址為目的操作數(shù)指令 應用舉例1 8段數(shù)碼管顯示 應用舉例2 3.2  指令系統(tǒng) 2、堆棧操作指令  3.  累加器A與外部數(shù)據(jù)傳輸指令 4.  查表指令    MOVC  A,   @A+PC  例子: 5.  字節(jié)交換指令 6.  半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2.  帶進位加法指令 3.  加1指令 4.  十進制調(diào)整指令 5.  帶借位減法指令(Subtraction) 6.  減1指令(Decrease) 7.   乘法指令(Multiplication) 8.  除法指令(Division)        三、邏輯運算指令 1.  簡單邏輯操作指令 2.  循環(huán)指令 帶進位左循環(huán)指令(Rotate  Accumulator Left   through  Carry  flag)      右循環(huán)指令(Rotate  Accumulator  Right) 帶進位右循環(huán)指令(Rotate  A  Right  with  C) 3.   邏輯與指令 4.  邏輯或指令 5.  邏輯異或指令 四、控制轉(zhuǎn)移類指令 1.  跳轉(zhuǎn)指令 相對轉(zhuǎn)移指令   SJMP   rel           PC←(PC)+2                                                                                                                            PC←(PC)+rel 程序中標號與地址之間的關(guān)系 2.  條件轉(zhuǎn)移指令 3.  比較不相等轉(zhuǎn)移指令 4.  減 1 不為 0 轉(zhuǎn)移指令 5.  調(diào)用子程序指令 7.  中斷返回指令 五、位操作指令 1.  數(shù)據(jù)位傳送指令 2.  位變量邏輯指令 3.  條件轉(zhuǎn)移類指令

    標簽: 單片機 指令系統(tǒng)

    上傳時間: 2013-10-27

    上傳用戶:xuanjie

  • 單片機實用接口技術(shù)

    單片機實用接口技術(shù)介紹了MCS-51系列單片機應用系統(tǒng)的各種實用接口技術(shù)及其配置。內(nèi)容包括:MCS-51系列單片機組成原理:應用系統(tǒng)擴展、開發(fā)與調(diào)試;鍵盤輸入接口的設(shè)計及調(diào)試;打印機和顯示器接口及設(shè)計實例;模擬輸入通道接口技術(shù);A/D、D/A、接口技術(shù)及在控制系統(tǒng)中的應用設(shè)計;V/F轉(zhuǎn)換器接口技術(shù)、串行通訊接口技術(shù)以及其它與應用系統(tǒng)設(shè)計有關(guān)的實用技術(shù)等。本書是為滿足廣大科技工作者從事單片機應用系統(tǒng)軟件、硬件設(shè)計的需要而編寫的,具有內(nèi)容新穎、實用、全面的特色。所有的接口設(shè)計都包括詳細的設(shè)計步驟、硬件線路圖及故障分析,并附有測試程序清單。書中大部分接口軟、硬件設(shè)計實例都是作者多年來從事單片機應用和開發(fā)工作的經(jīng)驗總結(jié),實用性和工程性較強,尤其是對應用系統(tǒng)中必備的鍵盤、顯示器、打印機、A/D、D/A通訊接口設(shè)計、模擬信號處理及開發(fā)系統(tǒng)應用舉例甚多,目的是讓將要開始和正在從事單片機應用開發(fā)的科研人員根據(jù)自己的實際需要來選擇應用,一書在手即可基本完成單片機應用系統(tǒng)的開發(fā)工作。 MCS-51系列單片機實用接口技術(shù)目錄 第一章 MCS51系列單片機組成原理第二章 MCS-51單片機系統(tǒng)擴展第三章 MCS-51單片機應用系統(tǒng)的開發(fā)第四章 鍵盤及其按口技術(shù)第五章 顯示器接口設(shè)計第六章 打印機接口設(shè)計第七章 模擬輸入通道接口技術(shù)第八章 D/A轉(zhuǎn)換器與MSC-51單片機的接口設(shè)計與實踐第九章 A/D轉(zhuǎn)換器與MCS-51單片機的接口設(shè)計與實踐 第十章 V/F轉(zhuǎn)換器接口技術(shù) 第十一章 串行通訊按日技術(shù)第十二章應用系統(tǒng)設(shè)計中的實用技術(shù)附錄AMCS51單片機指令速查表附錄一常用EPROM固化電壓參考表

    標簽: 單片機實用 接口技術(shù)

    上傳時間: 2013-11-24

    上傳用戶:hfnishi

  • MCS-51系列單片機實用接口技術(shù)

    MCS-51系列單片機實用接口技術(shù)全面、系統(tǒng)地介紹了MCS-51系列單片機應用系統(tǒng)的各種實用接口技術(shù)及其配置。內(nèi)容包括:MCS-51系列單片機組成原理:應用系統(tǒng)擴展、開發(fā)與調(diào)試;鍵盤輸入接口的設(shè)計及調(diào)試;打印機和顯示器接口及設(shè)計實例;模擬輸入通道接口技術(shù);A/D、D/A、接口技術(shù)及在控制系統(tǒng)中的應用設(shè)計;V/F轉(zhuǎn)換器接口技術(shù)、串行通訊接口技術(shù)以及其它與應用系統(tǒng)設(shè)計有關(guān)的實用技術(shù)等。本書是為滿足廣大科技工作者從事單片機應用系統(tǒng)軟件、硬件設(shè)計的需要而編寫的,具有內(nèi)容新穎、實用、全面的特色。所有的接口設(shè)計都包括詳細的設(shè)計步驟、硬件線路圖及故障分析,并附有測試程序清單。書中大部分接口軟、硬件設(shè)計實例都是作者多年來從事單片機應用和開發(fā)工作的經(jīng)驗總結(jié),實用性和工程性較強,尤其是對應用系統(tǒng)中必備的鍵盤、顯示器、打印機、A/D、D/A通訊接口設(shè)計、模擬信號處理及開發(fā)系統(tǒng)應用舉例甚多,目的是讓將要開始和正在從事單片機應用開發(fā)的科研人員根據(jù)自己的實際需要來選擇應用,一書在手即可基本完成單片機應用系統(tǒng)的開發(fā)工作。 MCS-51系列單片機實用接口技術(shù)目錄 第一章 MCS51系列單片機組成原理第二章 MCS-51單片機系統(tǒng)擴展第三章 MCS-51單片機應用系統(tǒng)的開發(fā)第四章 鍵盤及其按口技術(shù)第五章 顯示器接口設(shè)計第六章 打印機接口設(shè)計第七章 模擬輸入通道接口技術(shù)第八章 D/A轉(zhuǎn)換器與MSC-51單片機的接口設(shè)計與實踐第九章 A/D轉(zhuǎn)換器與MCS-51單片機的接口設(shè)計與實踐 第十章 V/F轉(zhuǎn)換器接口技術(shù) 第十一章 串行通訊按日技術(shù)第十二章應用系統(tǒng)設(shè)計中的實用技術(shù)附錄AMCS51單片機指令速查表附錄一常用EPROM固化電壓參考表

    標簽: MCS 51 單片機實用 接口技術(shù)

    上傳時間: 2013-11-04

    上傳用戶:3294322651

主站蜘蛛池模板: 九江市| 尼勒克县| 太仆寺旗| 温州市| 邹平县| 瓮安县| 河东区| 屏东县| 闽侯县| 东乌珠穆沁旗| 基隆市| 乌拉特前旗| 涞水县| 云和县| 余姚市| 资源县| 洞口县| 缙云县| 图木舒克市| 青冈县| 娄烦县| 青田县| 尼木县| 襄樊市| 江孜县| 宁河县| 黄冈市| 清流县| 社会| 武隆县| 冀州市| 长乐市| 延津县| 漳州市| 翼城县| 临桂县| 田东县| 扶风县| 沐川县| 蓝田县| 石嘴山市|