中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > EM78P153定時器的應(yīng)用

        EM78P153定時器的應(yīng)用

        作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        義隆單片機定時器的使用,以EM78P153為例,練習(xí)了下TCC內(nèi)部定時的使用。選了個現(xiàn)成的電路做調(diào)試來做練習(xí)。

        具體電路如下:

        本文引用地址:http://www.antipu.com.cn/article/201611/316076.htm

        源程序:

        /*******************************************************

        em78p153 TCC內(nèi)部定時器的學(xué)習(xí)

        DAT=P61 CLK=P60 KON=P62 K_UP K_DOWN LED1=P51 LED2=P52

        *******************************************************/

        ;*********************寄存器及變量定義****************************

        R0 EQU 0X00 ;間接地址寄存器

        TCC EQU 0X01 ;計時,計數(shù)器

        CONT EQU 0X01 ;控制寄存器

        PC EQU 0X02 ;程序計數(shù)器

        STATUS EQU 3 ;狀態(tài)寄存器

        Z_FLAG EQU 2 ;零標志位

        C_FLAG EQU 0 ;進位標志位

        ;***************************************************************

        IOC5 EQU 0X05

        PORT5 EQU 0x05

        ;**************************************************************

        IOC6 EQU 0X06

        PORT6 EQU 0x06

        ;**************************************************************

        IOCB EQU 0X0B ;下拉控制寄存器

        IOCC EQU 0X0C ;開漏控制寄存器

        IOCD EQU 0X0D ;上拉控制寄存器

        IOCE EQU 0X0E ;WDT控制寄存器

        RF EQU 0X0F ;中斷屏蔽寄存器

        IOCF EQU 0X0F

        NUM==0X20

        LP_CNT0==0X21

        LP_CNT1==0X22

        DATA==0X23

        SEND_BIT_NUM==0X24

        LEDH==0X26

        LEDL==0X25

        TCC_Count EQU 0X2F

        ;************************************************************

        BACC EQU 0X2D ;ACC備份寄存器

        BSTATUS EQU 0X2E ;STATUS備份寄存器

        ;**********************************************************

        ORG 00H

        JMP START

        ORG 0008H

        JMP INT_TCC ;進入中斷

        TABLE:

        ADD PC,A

        RETL 0X11;0

        RETL 0XDB;1

        RETL 0X23;2

        RETL 0X43;3

        RETL 0XC9;4

        RETL 0X45;5

        RETL 0X05;6

        RETL 0XD3;7

        RETL 0X01;8

        RETL 0X41;9

        RETL 0X11;9

        START:

        CALL INITAITE ;程序開始前的初始化

        BS PORT5,1

        BS PORT5,2

        MOV A,@0X00 ;give the first data to TB_NUM

        MOV LEDH ,A

        MOV LEDL ,A

        ;;;;;;;;;;;;;;;;;;;;;

        ST:

        BS PORT5,1

        BC PORT5,2

        MOV A,LEDH

        CALL TABLE

        MOV DATA,A

        CALL SEND

        CALL DELAYMS

        BS PORT5,2

        BC PORT5,1

        MOV A,LEDL

        CALL TABLE

        MOV DATA,A

        CALL SEND

        CALL DELAYMS

        BC STATUS,C_FLAG ;進位清零

        ;;;;;judge TB_NUMData;;;;;;;;

        MOV A,LEDL

        SUB A,@0x09

        JBS STATUS,C_FLAG

        JMP RESET

        JMP ST

        ;;;;;;;;;;;;;;;

        RESET:

        MOV A,@0X00 ;give the first data to TB_NUM

        MOV LEDL ,A

        INC LEDH

        JMP ST

        ;;***********************************************

        ;;***********74hc164 send*************************

        SEND: MOV A,@8 ;one data=8 Bit

        MOV SEND_BIT_NUM,A

        SEND_LOOP:

        RLC DATA ;Send The Data

        JBC STATUS,0 ;DATA=1

        BS PORT6,1

        JBS STATUS,0 ;DATA=0

        BC PORT6,1

        BC PORT6,0 ;do Clock

        NOP

        BS PORT6,0

        DJZ SEND_BIT_NUM ;for 8 loops

        JMP SEND_LOOP

        RET

        ;;*******************************************

        INITAITE:

        MOV A,@0B00000100 ;預(yù)分頻器分給TCC,分頻比為 1:8

        CONTW ;上升沿觸發(fā),內(nèi)部時鐘源,中斷屏蔽。

        ;P54當(dāng)I/O口用時,TS_bit5必須為0

        MOV A,@0B11111000 ;P5口定義為輸出,輸入口: 1為輸入 ,0為輸出

        IOW IOC5

        MOV A,@0B00111100 ;P6口定義為輸出口: 0為輸出 ,1為高阻狀態(tài)

        IOW IOC6

        MOV A,@0B11111111 ;設(shè)置P60口,為下拉: 0為下拉使能 1為下拉禁止

        IOW IOCB ;bit0_P50 bit1_P51 bit2_P52

        ;bit4_P60 bit5_P61 bit6_P62

        MOV A,@0B00000000 ;開漏控制寄存器: 1為使能 ,0為禁止

        IOW IOCC

        MOV A,@0B00110001 ;上拉控制寄存器: 0為使能 ,1為禁止

        IOW IOCD ;bit0=P60 ,bit1=P61 ,bit2=P62 ,bit3

        ;bit4=P64 ,bit5=P65 ,bit6=P66 ,bit7=P67

        MOV A,@0B00000000 ;WDT控制寄存器

        IOW IOCE ;WDTE_bit7 看門狗使能控制: 0為禁止,1為使能

        ;EIS_bit6 P60引腳功能定義: 0表示為P60為雙向IO口

        ; 1表示外部中斷輸入引腳,此時引腳必須設(shè)置為輸入狀態(tài)

        MOV A,@0B00000001 ;中斷屏蔽寄存器: 0禁止中斷,1允許中斷

        IOW IOCF

        ; EXIE_bit2=0 ICIE_bit1=0 TCIE_bit0=1

        ;開定時器中斷

        MOV A,@6

        MOV TCC,A

        BC RF,0 ;清零定時器中斷溢出標志位

        ENI ;開中斷

        ;DISI

        RET

        ;**********************TCC中斷處理**************************************

        INT_TCC: DISI ;先關(guān)閉中斷

        MOV BACC,A ;保護ACC和STATUS

        SWAPA STATUS

        MOV BSTATUS,A

        JBS RF,0 ;判斷是否為計數(shù)器中斷,如果是得話進入

        JMP INTQUIT ;計數(shù)器中斷服務(wù)程序,不是則退出

        MOV A,@6

        MOV TCC,A

        BC RF,0 ;清中斷標志位

        INC TCC_Count

        JBS STATUS,Z_FLAG

        JMP INTQUIT

        MOV A,@200

        MOV TCC_Count,A

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        MOV A,@001000000B

        XOR PORT6,A ;蜂鳴器取反

        INC LEDL ;LED加1

        INTQUIT: SWAPA BSTATUS ;恢復(fù)寄存器

        MOV STATUS,A

        SWAP BACC

        SWAPA BACC

        RETI

        ;;******************************************

        DELAYMS:

        MOV A, @200

        MOV LP_CNT0, A

        NOP

        P0_DLY:

        NOP

        MOV A, @20

        MOV LP_CNT1, A

        P0_LP:

        NOP

        NOP

        NOP

        DJZ LP_CNT1

        JMP P0_LP

        DJZ LP_CNT0

        JMP P0_DLY

        RET

        END



        關(guān)鍵詞: EM78P153定時

        評論


        技術(shù)專區(qū)

        關(guān)閉