<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      8位單片機體系的直接軟件構架(C51系列)

      8位單片機體系的直接軟件構架C51系列)

      1.啟動文件的編制

      $ NOMOD51                      ;Ax51宏匯編器控制命令:禁止預定義的8051

      ;自定義上電后需要初始化的儲存區域

      ;間接尋址區IDATA起始地址固定為0

      IDATALEN       EQU  8OH       ;指定需要初始化的IDATA區長度(以字節為單位)

      XDATASTART    EQU   OH       ;需要初始化的外部直接尋址區XDATA的起始地址

      XDATALEN      EQU   OH       ;指定需要初始化的XDATA區長度(以字節為單位)

      PDATASTART    EQU   OH       ;指定需要初始化的頁尋址區PDATA起始地址

      PDATALEN      EQU  OH        ;指定需要初始化的PDATA區長度(以字節為單位)

      ;重入堆棧初始化,下面的EQU語句定義并初始化重入函數的堆棧指針

      ;SMALL模式下重入函數的堆??臻g

      IBPSTACK        EQU    O         SMALL模式下使用重入則設為1

      EBPSTACKTOP    EQU    OFFH+1   ;設置堆棧頂為最高位置+1

      ;LARGE模式下重入函數的堆??臻g

      XBPSTACK        EQU    O         ;LARGE模式下使用重入則設為1

      XBPSTACKTOP    EQU    OFFFFH+1   ;設置堆棧頂為最高位置+1

      ;COMPACT模式下重入函數的堆??臻g

      PBPSTACK        EQU    O         ;COMPACT模式下使用重入則設為1

      PBPSTACKTOP    EQU    OFFFFH+1   ;設置堆棧頂為最高位置+1

      ;使用COMTACT模式是為64KBXDATA  RAM定義頁

      PPAGEENABLE    EQU   O           ;使用PDATA也則設為1

      PPAGE            EQU   O           ;定義頁號

      PPAGE_SFR        DATAOAOH        SFR的最高地址字節

      ;標準SFR符號

      ACC              DATA    OEOH

      B                 DATA    OFOH

      SP                 DATA   81H

      DPL                DATA   82H

      DPH               DATA    83H

      ******************************************************************************

               NAME     ?  C_STARTUP

      C_C51STARTUP      SEGMENT      CODE

      STACK              SEGMENT      IDATA

               RSEG   ?  STACK

               DS      1

               EXTRN  CODE ( ? C_STAR ;外部代碼(這個標號將代表用戶程序的起始地址)

               PUBLIC  ?  STARTUP     ;給外部使用的符號

               CSEG     AT      O      ;在code0地址處放以下代碼(絕對地址定位)

      ?C_STARTUP

                   LJMP    STARTUP1

                   RSEG    ? C_C51STARTUP

      STARTUP1

      IF  IDATALEN  <>                   ;若長度大于1,則初始化IDATA

                    MOV    RO,# IDATALEN-1

                    CLR     A

      IDATALOOP

                   MOV  @RO,A

                   DJNZ    RO,IDATALOOP

      ENDIF

      IF XDATALEN  <>   0                ;若長度大于1,則初始化XDATA

                     MOV   DPTR,#  XDATASTART

                     MOV   R7; # LOW (XDATALEN)

      IF (LOW(XDATALEN))   <>  0         ;預置初始化的外循環次數為R6

                     MOV    R6;# (HIGH (XDATALEN ) )+1

      ELSE           MOV   R6;# HIGH (XDATALEN ) 

      ENDIF

                      CLR  A

      XDATALOOP

                   MOVX   @DPTA,A

                   INC     DPTR

                   DJNZ   R7XDATALOOP

                   DJNZ   R6XDATALOOP

      ENDIF

      IF PPAGEENABLE  <>   0

                   MOV       PPAGE_SFR,  # PPAGE

      ENDIF

      IF PDATALEN   <>   0                  ;若長度大于1,則初始化PDATA

                    MOV    R0,  #  LOW (PDATASTART)

                    MOV     R7, #  LOW (PDATALEN)

                    CLR      A

      PDATALOOP

                    MOVX      @R0,A

                    INC          R0

                    DJNZ         R7PDATALOOP

      ENDIF

      IF IBPSTACK  <>  0              SMALL模式下使用重入函數是要設置的堆棧

      EXTRN  DATA  ( ?  C_IBP)

                     MOV     ? C_IBP # LOW IBPSTACKTOP

      ENDIF

      IF XBPSTACK  <> 0               ;COMPACT模式下使用重入函數是要設置的堆棧

      EXTRN  DATA  ( ? C_XBP)

                     MOV     ? C_XBP,# HIGH XBPSTACKTOP

                     MOV      ? C_XBP + 1,# HIGH XBPSTACKTOP

      ENDIF

      IF PBPSTACK  <>  0              ;LARGE 模式下使用重入函數是要設置的堆棧

      EXTRN  DATA  ( ? C_PBP)

                    MOV        ? C_PBP, # LOW  PBPSTACKTOP

      ENDIF

                     MOV        SP# ?  STACK – 1

      ;如果使用了Mode 4 程序分組技術 ( BANKING )請啟用下面的程序代碼

      ;         CALL     ? B_SWITCHO       ;程序從第一個塊 (bank0)開始執行

                 LJMP      ? C_START          ;從這里跳到C程序入口

                 END

      2.主程序的文件構架:

      # include “main.h”                

      void Project_Initvoid)     /該函數初始化微控制器

      {   

      USART_vInit();      //初始化異步串行接口器件

      T01__vInit();        //初始化定時器T0T1

      INT__vInit();       //初始化外部觸發中斷ET0ET1

      IP  =  0x15;        //設置中斷優先級:T2、T1T0為低,串口、ET1、ET1為高

      //用戶可以加入的代碼

      EA = 1;              //開放全局中斷

      }

      //用戶可以加入的自定義函數

      void main ( void)          //主程序函數,由Keil PK51內定函數C_START調用

      {   

      //用戶可以加入的自定義變量

      Project_Init();       //初始化項目核心微控制器

      //用戶可以加入的全局初始變量賦值

      while(1)             //無限循環體,完成后臺事務處理

      {

         //用戶可以加入的代碼

      }

      }

      3.中斷處理文件的構架

      中斷處理文件interrupt.c 的框架格式如下:

      #include”interrupt.h

      //外部中斷0服務處理程序

      void INT_viIsrEx0(void)interrupt EXOINT

      {

      //用戶可以加入的代碼

      }

      //定時器T1服務處理程序

      void T1_viIsrT1(void) interrupt  T1 INT

      {

      //用戶可以加入的代碼

      }

      // 串行收發中斷服務處理程序

      void USART_ viIsr (void)interrupt USARTINT

      USART_Interrupt();    //在串行接口設備驅動程序中的串行收發中斷處理函數

      //用戶可以加入的代碼

      }

      posted @ 2010-08-09 00:31  薔薇理想人生  閱讀(1001)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻中文字幕精品系列| 日韩精品一区二区三区日韩| 久久天天躁夜夜躁一区| 国内精品久久久久影视| 国产最新AV在线播放不卡| 久爱www人成免费网站| 色婷婷综合久久久中文字幕| 日本亚洲色大成网站www久久| 国产成人综合在线观看不卡| 国产农村老太xxxxhdxx| 亚洲AV国产福利精品在现观看| 国产视色精品亚洲一区二区| 国产在线中文字幕精品| 777米奇影视第四色| 日本高清不卡一区二区三| 国产精品国产三级国快看| 日韩在线观看精品亚洲| 又黄又爽又色的少妇毛片| 97av麻豆蜜桃一区二区| 人妻系列无码专区69影院| 97人妻无码一区| 少妇粗大进出白浆嘿嘿视频| 阆中市| 99国产午夜福利在线观看| 成人午夜福利免费专区无码| 国产乱码1卡二卡3卡四卡5| 久久爱在线视频在线观看| 亚洲成在人线AV品善网好看| 大田县| 婷婷99视频精品全部在线观看| 日本免费最新高清不卡视频| 临泉县| 亚洲欧美综合一区二区三区| 饥渴少妇高潮正在播放| 亚洲V天堂V手机在线| 91麻豆视频国产一区二区| 成人免费A级毛片无码网站入口| 极品无码国模国产在线观看| 亚洲综合伊人五月天中文| 另类 专区 欧美 制服丝袜| 国产AV影片麻豆精品传媒|