日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《單片機原理與應(yīng)用》 > 第9章 PIC單片機簡介

第4節(jié) PIC16F84A單片機的指令系統(tǒng)

  9.4.1 PIC16F84A單片機指令集

  9.4.2 PIC16F84A單片機偽指令

  偽指令在源程序中的作用是為完成匯編程序作各種準(zhǔn)備工作的(實際上是給PC機匯編的注釋),這些偽指令僅在匯編過程中起作用,一旦匯編結(jié)束,偽指令的使命就完成。

  在匯編程序MPASM中,有四類偽指令:數(shù)據(jù)偽指令、列表偽指令、控制偽指令和宏匯編指令。

  現(xiàn)在,我們將對前兩類中的常用偽指令予以說明,后兩類偽指令等到在具體程序中出現(xiàn)時,再加以說明。

  (1)ORG 存放單元起始地址

  格式:<標(biāo)號>ORG<地址表達式>

  說明:ORG用于指定該偽指令后面的源程序存放的起始地址,也就是匯編后的目標(biāo)機器碼存放的首地址。若ORG后面不帶地址參數(shù),則默認為0。若ORG帶標(biāo)號,則地址參數(shù)也賦值給該標(biāo)號。在一個源程序中,可以根據(jù)需要多次使用ORG偽指令來定位。

  例:ORG 1FFH      DELAY

  GOTO MAIN        MOVLM 2

  ;……          ……

  ORG 0         END

  右排接左

  說明:指令末的偽指令END是通知匯編程序MPASM結(jié)束對源程序(ASM)的匯編,即使后面還有語句,也不再予以匯編。在一個源程序中必須有END偽指令,而且只能有一個END,且放在整個程序的最后。

  (2)EQU 是對寄存器f和標(biāo)號賦值

  格式:<標(biāo)號>EQU<表達式>

  說明:給標(biāo)號或寄存器賦值,標(biāo)號一旦由EQU賦值,其值便不能再重新定義。

  舉例:label EQU 0x20

  注意:這里操作數(shù)中的0x表示十六進制,即0x20相當(dāng)于20H。

  (3)LIST 列表選擇指令

  格式:LIST<選擇項>,…,<選擇項>

  說明:用來設(shè)置各種匯編參數(shù)以控制匯編過程,或?qū)α斜砦募M行格式化。此偽指令的所有參數(shù)只能在一行內(nèi)完成,參數(shù)的數(shù)值都用十進制數(shù)設(shè)置。

  LIST列表選擇偽指令可以選用的部分參數(shù)如下。

  參數(shù)名  默認值    作  用

  f=<格式> 1NHX8M;規(guī)定固化編程文件格式(INHX16,INHX32或INHX8M)1NHX8M適于把目標(biāo)碼輸入到大多數(shù)的EPROM編程器中。

  P=<類型> 無  設(shè)置單片機類型,如16F84

  r=<基數(shù)> HEX 設(shè)置常數(shù)數(shù)制的基數(shù)(如hex十六進制;dec十進制等)

  例:LIST f=1NHX8M,r=DEC,P=16F84

  (4)PROCESSOR<處理器類型>

  說明:用于選擇所用單片機的型號。

  (5)INCLUDE 包含其它外部源文件

  格式:INCLUDE “文件名”

  INCLUDE <文件名>

  說明:用于把指定文件讀入源程序中作為源程序代碼的一部分,直到檢測到文件結(jié)束符時為止,再恢復(fù)到原源程序中的代碼處。此偽指令可允許嵌套使用,最多可嵌套6層。文件名必須用雙引號或尖括號給出。

  舉例:include “c:\PIC\sysdefs.inc”

  include

  9.4.3 PIC16F84A單片機程序設(shè)計的基本格式

  為了快速掌握PIC單片機源程序的基本結(jié)構(gòu),這里給出一個典型的程序結(jié)構(gòu)框架。建立源程序時首先用偽指令TITLE提供程序的標(biāo)題,接著給出整個程序的總說明,并用列表偽指令LIST指定所用單片機型號和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84AINC》,然后對片內(nèi)常用資源進行定義,再給出一般程序的基本結(jié)構(gòu)框架?,F(xiàn)舉例如下。

  TITLE“This is……” ;程序標(biāo)題

  ;程序說明

  LIST P=16F84,F(xiàn)=1NHX8M

  ;

  include

  -config_RC_Qsc &_WDT_0FF…

  ;資源定義和變量定義

  STATUS EQU 03

  FSR EQU 04

  PORTA EQU 05

  PORTB EQU 06

  J EQU 01F

  K EQU 01E

  ;…………………

  ORG 0000 ;

  goto MAIN ;跳過中斷矢量

  ORG 0004

  goto INTSRV ;子程序入口地址

  ;……………………………………

  MAIN        ;從0005H開始放主程序

  call Initports ;端口初始化

  call InitTimers ;定時器初始化

  …

  INTSRV …     ;中斷服務(wù)程序區(qū)

  SVBRTH …     ;子程序區(qū)

  END      ;程序結(jié)束符

  當(dāng)然,在編寫程序時可根據(jù)實際情況加以調(diào)整。下面是一份實際程序清單,要求將數(shù)據(jù)88H寫入PIC16F84A單片機內(nèi)部EEPROM的20H單元,而后再從20H單元將其讀出。

  LIST P=16F84,F(xiàn)=INHX8M

  ;……………………………

  STATUS EQU  03  ;定義寄存器

  EEDATA EQU  08

  EEADR EQU  09

  INTCON EQU  0BH

  EECON1 EQU  88H

  EECON2 EQU  89H

  ;…………………………

  RD    EQU  0    ;定義位

  WR  EQU  1

  RP0   EQU  5

  GIE  EQU  7

  ;…………………………

  ORG  0

  GOTO WRSTART

  ;……………………………

  ORG  10H

  WRSTART         ;寫入操作開始

  CLRW      ;清W,使W=0

  BCF STATUS,RP0 ;選BANK0

  MOVLW 20H

  MOVWF EEADR   ;地址→EEADR

  MOVLW 88H

  MOVWF EEDATA  ;寫入數(shù)據(jù)→

  ;EEDATA

  BSF STATUS,RP0 ;選BANK1

  BSF EECON1,2 ;寫操作使能允許

  BCF INTCON,GIE ;關(guān)閉所有的中斷

  MOVLW 0X55

  MOVWF EECON2  ;55H→EECON2

  MOVLW 0XAA

  MOVWF EECON2  ;AAH→EECON2

  BSF EECON1,WR ;啟動寫操作

  BSF INTCON,GIE ;恢復(fù)開中斷

  RDSTART          ;讀出操作開始

  BCF STATUS,RP0

  MOVLW 20H

  MOVWF EEADR   ;地址→EEADR

  BSF STATUS,RP0

  BSF EECON1,RD ;啟動讀操作

  BCF STATUS,RP0

  MOVF EEDATA,W ;將EEPROM

  ;數(shù)據(jù)讀入W

  END

  附:在閱讀PIC 8位單片機有關(guān)資料時,常遇到一些字母符號和功能,也簡介如下:

  1) OTP 一次性編程。OTP是One Time Program的縮寫。

  2) RISC 簡稱精簡指令集。RISC是Reduced Instruction Set Computer的縮寫。

  3) SSP 同步串行口。SSP是Synchronous Serial Port的縮寫。

  4) SCI 串行通信接口。SCI是Serial Communication Interface的縮寫。

  5) USART 全雙工通用串行異步接收發(fā)送系統(tǒng)。USART是Universal Serial Aosynchronous Receiver Transmitter的縮寫。

  6) UART 通用異步接收發(fā)送器。

  7) POR 上電復(fù)位功能。POR是Power On Reset的縮寫。

  8) OST 振蕩器起振定時器。OST是Oscillator Start-up Timer的縮寫。

  9) PWRT 上電延時定時器。PWRT是Power-up Timer的縮寫。

  10) SFR 專用寄存器。SFR是Special Function Register的縮寫。

  11) PWM 脈寬調(diào)制器。PWM是Pulse Width Modulation的縮寫。

  12) MIPS 每秒可執(zhí)行百萬條指令。MIPS是Million Instructions Per Second的縮寫

?
四会市| 黄浦区| 凤山县| 江山市| 蕲春县| 大理市| 墨脱县| 广灵县| 西平县| 昌都县| 苍溪县| 衡南县| 普宁市| 鄂托克旗| 金昌市| 南乐县| 元谋县| 尼木县| 黄冈市| 涿州市| 信宜市| 辉南县| 杭锦旗| 崇左市| 郴州市| 大庆市| 永安市| 江陵县| 衡阳县| 民乐县| 卢龙县| 农安县| 镇巴县| 珠海市| 兴化市| 大姚县| 出国| 浮山县| 海阳市| 林芝县| 琼中|