計算機的指令系統是表征計算機性能的重要指標,每種計算機都有自己的指令系統。MCS—51單片機的指令系統是一個具有255種代碼的集合,絕大多數指令包含兩個基本部分:操作碼和操作數。操作碼表明指令要執行的操作的性質;操作數說明參與操作的數據或數據所存放的地址。MCS—51指令系統中所有程序指令是以機器語言形式表示,可分為單字節、雙字節、三字節3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區段,如下所示: 標號: 操作碼目的操作數,源源操作數;注釋 標號與操作碼之間“:”隔開; 操作碼與操作數之間用“空格”隔開; 目的操作數和源源操作數之間有“,”分隔; 操作數與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統中共有42種助記符,代表了33種不同的功能。例如MOV是數據傳送的助記符。 操作數是指令要操作的數據信息。根據指令的不同功能,操作數的個數有3、2、1或沒有操作數。例如MOV A,#20H,包含了兩個操作數A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調試程序時將會帶來很多方便。
上傳時間: 2013-11-04
上傳用戶:kr770906
單片機指令系統 3.1 MCS-51指令簡介 3.2 指令系統 3.1 MCS-51指令簡介 二、MCS-51系列單片機指令系統分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數據傳送指令位操 2、直接尋址 2、算術運算指令 3、寄存器尋址 3、邏輯運算指令 4、寄存器間接尋址指令 4、控制轉移類指令 5、相對尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數是通過寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號說明 Rn——當前寄存器區的8個工作寄存器R0~R7(n=0~7); Ri——當前寄存器區可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內部數據存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(立即數); #datal6——表示16位常數; add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內容 (( ))——表示間接尋址的內容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數的指令 2. 以Rn為目的操作數的指令 3. 以直接地址為目的操作數的指令 4. 以寄存器間接地址為目的操作數指令 應用舉例1 8段數碼管顯示 應用舉例2 3.2 指令系統 2、堆棧操作指令 3. 累加器A與外部數據傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節交換指令 6. 半字節交換指令 二、算術操作類指令 PSW寄存器 2. 帶進位加法指令 3. 加1指令 4. 十進制調整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運算指令 1. 簡單邏輯操作指令 2. 循環指令 帶進位左循環指令(Rotate Accumulator Left through Carry flag) 右循環指令(Rotate Accumulator Right) 帶進位右循環指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉移類指令 1. 跳轉指令 相對轉移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標號與地址之間的關系 2. 條件轉移指令 3. 比較不相等轉移指令 4. 減 1 不為 0 轉移指令 5. 調用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數據位傳送指令 2. 位變量邏輯指令 3. 條件轉移類指令
上傳時間: 2013-10-27
上傳用戶:xuanjie
82C55A是高性能,工業標準,并行I/O的LSI外圍芯片;提供24條I/O腳線。 在三種主要的操作方式下分組進行程序設計82C88A的幾個特點:(1)與所有Intel系列微處理器兼容;(2)有較高的操作速度;(3)24條可編程I/O腳線;(4)底功耗的CHMOS;(5)與TTL兼容;(6)擁有控制字讀回功能;(7)擁有直接置位/復位功能;(8)在所有I/O輸出端口有2.5mA DC驅動能力;(9)適應性強。方式0操作稱為簡單I/O操作,是指端口的信號線可工作在電平敏感輸入方式或鎖存輸出。所以,須將控制寄存器設計為:控制寄存器中:D7=1; D6 D5=00; D2=0。D7位為1代表一個有效的方式。通過對D4 D3 D1和D0的置位/復位來實現端口A及端口B是輸入或輸出。P56表2-1列出了操作方式0端口管腳功能。
上傳時間: 2013-10-26
上傳用戶:brilliantchen
《現代微機原理與接口技術》實驗指導書 TPC-H實驗臺C語言版 1.實驗臺結構1)I / O 地址譯碼電路如上圖1所示地址空間280H~2BFH共分8條譯碼輸出線:Y0~Y7 其地址分別是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根譯碼輸出線在實驗臺I/O地址處分別由自鎖緊插孔引出供實驗選用(見圖2)。 2) 總線插孔采用“自鎖緊”插座在標有“總線”區引出數據總線D7~D0;地址總線A9~A0,讀、寫信號IOR、IOW;中斷請求信號IRQ ;DMA請求信號DRQ1;DMA響應信號DACK1 及AEN信號,供學生搭試各種接口實驗電路使用。3) 時鐘電路如圖-3所示可以輸出1MHZ 2MHZ兩種信號供A/D轉換器定時器/計數器串行接口實驗使用。圖34) 邏輯電平開關電路如圖-4所示實驗臺右下方設有8個開關K7~K0,開關撥到“1”位置時開關斷開,輸出高電平。向下打到“0”位置時開關接通,輸出低電平。電路中串接了保護電阻使接口電路不直接同+5V 、GND相連,可有效地防止因誤操作誤編程損壞集成電路現象。圖 4 圖 55) L E D 顯示電路如圖-5所示實驗臺上設有8個發光二極管及相關驅動電路(輸入端L7~L0),當輸入信號為“1” 時發光,為“0”時滅6) 七段數碼管顯示電路如圖-6所示實驗臺上設有兩個共陰極七段數碼管及驅動電路,段碼為同相驅動器,位碼為反相驅動器。從段碼與位碼的驅動器輸入端(段碼輸入端a、b、c、d、e、f、g、dp,位碼輸入端s1、 s2)輸入不同的代碼即可顯示不同數字或符號。
上傳時間: 2013-11-22
上傳用戶:sssnaxie
[學習要求] 掌握MCS-51單片機的基本應用。[重點與難點]重點:動態掃描LED顯示電路編程范例;定時/計數器軟件編程范例;A/D接口電路;矩陣式鍵盤接口技術及編程。難點:動態掃描LED顯示電路編程范例;定時/計數器軟件編程范例。[理論內容]一、并行I/O口編程范例單片機I/O的應用最典型的是通過I/O口與7段LED數碼管構成顯示電路,下面從常用的LED顯示原理開始,詳盡講解利用單片機驅動LED數碼管的電路及編程原理,目的在于通過這一編程范例,讓初學者了解I/O口的編程原理,意在起舉一反三,拋磚引玉的作用。LED的發光原理,稍有電子技術基礎的人士都很清楚,這里不想作過多的介紹,7段LED數碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數碼管,分別引出它們的電極,點亮相應的點劃來顯示出0-9的數字。LED數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖1是共陰和共陽極數碼管的內部電路,它們的發光原理是一樣的,只是它們的電源極性不同而已。
上傳時間: 2013-10-19
上傳用戶:linlin
#include <at24c01a.h>/*************************************************向24C01A寫入一個字節輸入:E2ROM地址,字節數據******************************************************/void write24c01a(uchar uadd_1,uchar udata_1){sendbyte=0xa0;start();send(sendbyte);if (!ack())continue;send(uadd_1);if (!ack())continue;send(udata_1)if (!ack())continue;stop();}/**********************************發送開始*****************************************/void start(void){a_scl=1;a_sda=1;a_sda=0;a_scl=0;a_scl=1;}/********************************************發送停止*******************************************/void stop(void){a_scl=0;a_sda=0;a_scl=1;a_sda=1;} /*********************************************發送反饋************************************************/bit ack(void){int a_acka_scl=0;a_scl=0;a_scl=0;a_scl=1;a_ack=a_sda;a_scl=0;return(a_ack)}/**************************************發送無反饋********************************************/bit noack(void){int a_ack;a_scl=1;a_scl=1;a_scl=0;}/*******************************************發送****************************************************/void send(uchar undata){uchar i;sendbyte=undatafor(i=8;i>0;i--){a_sda=sendbyte7;a_scl=0;a_scl=1;sendbyte=sendbyte<<1}}/********************************************接受****************************************************/ void receive(void){int i;uchar data;for(i=8;i>0;i--){ a_scl=1;receivebyte7=a_sda;a_scl=0;receivebyte=receivebyte>>1}receivedata=receivebyte;}/********************************************向 24c01a讀一個字節;輸入:EEROM地址;輸出:EEROM數據;********************************************/void read24c01a(uchar counter){receivebyte=0xa1;start();send(receivebyte);if (!ack())continue;send(counter);if (!ack())continue;receive()noack();stop();}
上傳時間: 2013-12-23
上傳用戶:wxhwjf
1、程序的基本格式先介紹二條偽指令:EQU ——標號賦值偽指令ORG ——地址定義偽指令PIC16C5X在RESET后指令計算器PC被置為全“1”,所以PIC16C5X幾種型號芯片的復位地址為:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般來說,PIC的源程序并沒有要求統一的格式,大家可以根據自己的風格來編寫。但這里我們推薦一種清晰明了的格式TITLE This is ⋯⋯ ;程序標題;--------------------------------------;名稱定義和變量定義;--------------------------------------F0 EQU 0RTCC EQU 1PC EQU 2STATUS EQU 3FSR EQU 4RA EQU 5RB EQU 6RC EQU 7┋PIC16C54 EQU 1FFH ;芯片復位地址PIC16C56 EQU 3FFHPIC16C57 EQU 7FFH;-----------------------------------------ORG PIC16C54 GOTO MAIN ;在復位地址處轉入主程序ORG 0 ;在0000H開始存放程序;-----------------------------------------;子程序區;-----------------------------------------DELAY MOVLW 255┋RETLW 0;------------------------------------------;主程序區;------------------------------------------MAINMOVLW B‘00000000’TRIS RB ;RB已由偽指令定義為6,即B口┋LOOPBSF RB,7 CALL DELAYBCF RB,7 CALL DELAY┋GOTO LOOP;-------------------------------------------END ;程序結束注:MAIN標號一定要處在0頁面內。2、程序設計基礎
上傳時間: 2013-11-14
上傳用戶:cjf0304
過程通道與人機接口 過程通道是在計算機和生產過程之間設置的信息傳送和轉換的連接通道,它包括模擬量輸入通道、模擬量輸出通道、數字量(開關量)輸入通道、數字量(開關量)輸出通道。計算機和操作人員之間常常需要互通信息 ,為此計算機和操作人員之間應設置顯示器和操作器,其中一種是CRT顯示器和鍵盤,另外一種是針對某個生產過程控制的特點而設計的操作控制臺等。通常把上述兩類設備簡稱為人機接口。 作用:顯示生產過程的狀況;供操作人員操作;三是顯示操作結果。數字量輸入輸出通道模擬量輸出通道模擬量輸入通道人機接口
上傳時間: 2013-10-16
上傳用戶:l銀幕海
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
pic單片機實用教程以介紹PIC16F877型號單片機為主,并適當兼顧PIC全系列,共分10章,內容包括:基本概念;PIC16F87X硬件概況;指令系統;匯編程序設計;集成開發環境;在線調試工具;I/O端口;定時器;中斷;安全措施和降耗設計。突出特點:通俗易懂、可讀性強、系統全面、學練結合、學用并重、實例豐富、習題齊全。本教程全書共分2篇,即基礎篇和提高篇,分2冊出版,以適應不同課時和不同專業的需要,也為教師和讀者增加了一種可選方案。pic單片機實用教程目錄第1章 單片機的基本概念第2章 PIC16F87X硬件系統概況第3章 指令系統第4章 PIC匯編語言程序設計基礎第5章 MPLAB集成開發環境軟件包第6章 MPLAB-ICD在線調試工具套件及其應用第7章 輸入/輸出端口的基本功能第8章 定時器/計數器TMR0第9章 中斷系統第10章 安全生產、可靠運行措施和降耗設計附錄
上傳時間: 2013-10-12
上傳用戶:lyson