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

<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è)計(jì)應(yīng)用 > 學(xué)習(xí)型紅外遙控器匯編語言程序

        學(xué)習(xí)型紅外遙控器匯編語言程序

        作者: 時(shí)間:2012-10-27 來源:網(wǎng)絡(luò) 收藏

        ;************紅外線接收程序******************

        ;*********************************************
        ;器件地址
        EEPROM EQU 0A0H
        ;MODE EQU 070H ;高四位0111,是紅外線設(shè)備型號(hào)
        ;低四位 ,是紅外線設(shè)備的地址


        ;R2,R3 是延時(shí)計(jì)數(shù)器
        ;R4 :脈沖電平寬度計(jì)時(shí)器,算法,計(jì)數(shù)26次(也就是26US)R4加1
        ;R5 :脈沖個(gè)數(shù)計(jì)數(shù)器
        ;內(nèi)存數(shù)據(jù)定義
        SP_STATR EQU 01H
        SP_END EQU 00H
        ACK BIT 08H ;接收數(shù)據(jù)非應(yīng)答標(biāo)志
        BITCNT DATA 15H ;IIC數(shù)據(jù)計(jì)數(shù)器 ;SADDP:類型+地址
        BYTECNT DATA 16H ;IIC數(shù)據(jù)字節(jié)計(jì)數(shù)器 ;SCISTEP:串行通信進(jìn)程
        SLVADR DATA 14H ;被控器地址,EEPROM的地址 ;SCILEN:后4位數(shù)據(jù)長(zhǎng)度(幾個(gè)字節(jié))
        SUBADR DATA 17H ;被控器單元地址 ;SCICOM:前4位是命令
        RCVDAT DATA 18H ;接收數(shù)據(jù)緩沖區(qū) ;CRC :校驗(yàn)寄存器
        XMTDAT DATA 19H ;發(fā)送數(shù)據(jù)緩沖區(qū) ;SCODE :校驗(yàn)寄存器
        CYCLE DATA 22H ;循環(huán)計(jì)數(shù)器 ;RBUFSP:接收緩沖區(qū)指針
        DAT DATA 21H ;脈沖個(gè)數(shù)計(jì)數(shù)器 ;SCISP :發(fā)送數(shù)據(jù)緩沖區(qū)指針
        STU DATA 20H ;學(xué)習(xí)過的置0,沒有學(xué)習(xí)過的置1
        ER DATA 13H ;出錯(cuò)標(biāo)志位,為0則出錯(cuò),為1則是正確
        MODE DATA 09H ;高四位0111,是紅外線設(shè)備型號(hào)
        ;低四位 ,是紅外線設(shè)備的地址

        ;端口位定義
        IN BIT P1.4; P0.0 ;紅外線接收位
        BZ BIT P0.5 ;蜂鳴器輸出位
        OUT BIT P1.7 ;紅外線發(fā)射位
        WP BIT P0.0;P1.4 ;寫保護(hù),為0時(shí)可讀寫,為1時(shí)不能寫
        SDA BIT P1.3 ;模擬IIC數(shù)據(jù)傳送位
        SCL BIT P1.2 ;模擬IIC時(shí)鐘控制狀態(tài)標(biāo)志

        LED BIT P0.7 ;
        RECE BIT P0.6 ;串口接收發(fā)送位

        ORG 0000H
        AJMP MAIN
        ORG 000BH ;定時(shí)器TO0中斷入口地址
        AJMP LOPP
        ORG 0023H
        AJMP SINT ;串口中斷入口地址
        ORG 063H

        ;***************主程序******************************

        MAIN:
        MOV STU,#00H
        MOV SP,#0AH
        MOV P0M2,#080h
        CLR LED
        MOV DAT,#00H ;脈沖個(gè)數(shù)計(jì)數(shù)器清0
        MOV TMOD,#022H ;設(shè)置定時(shí)器0和1為方式2,定時(shí)控制方式,以運(yùn)行控制位TR0,TR1啟動(dòng)定時(shí)器
        MOV TH0,#00H ;加載計(jì)數(shù)初值
        MOV TL0,#00H ;保存計(jì)術(shù)數(shù)值,計(jì)時(shí)
        MOV TH1,#0FAH
        MOV TL1,#0FAH ;波特率為4800
        MOV SADEN,#0FFH
        MOV SCON,#0F0H ;串口工作方式3,多機(jī)通信控制,允許接收
        MOV TCON,#040H ;啟動(dòng)T1定時(shí)
        MOV PCON,#00H ;波特率加倍
        MOV IEN0,#092H ;允許定時(shí)T0中斷,
        ;中斷總充許
        ;允許串行中斷

        MOV WDCON,#017H
        ; MOV MODE,#70H ;高四位0111,是紅外線設(shè)備型號(hào)
        ;低四位 ,是紅外線設(shè)備的地址
        LCALL GETADDR ;調(diào)用,檢查地址子程式
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        MOV PT0AD,#010H ;禁止CIN1A(P0.4) 的數(shù)字輸入功能
        ANL P0M2,#0EFH ;CIN1A(P0.4)僅為輸入功能
        ORL P0M1,#010H
        MOV CMP1,#028H ;正向輸入為CIN1A
        ;選擇內(nèi)部1.23V作為參考電壓
        ;比較結(jié)果輸出到中斷
        ; SETB EC1 ;打開中比較器1中斷

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        SETB WP ;禁止寫EEPROM
        SETB TR1 ;啟動(dòng)串行中斷,啟動(dòng)TR1定時(shí)
        MOV ER,#00H
        ;;;;;;;;;@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;
        LCALL LOP
        AJMP MAIN
        ;;;;;;;;;@@@@@@@@@@@@@@@@@@@@;;;;;;;;;;;;;

        AFFL:
        JBC B.7,AFFL1 ;中斷返回時(shí),接受命令正確,則調(diào)用命令處理程式
        MOV WDRST,#01EH
        MOV WDRST,#0E1H
        AJMP AFFL ;等待中斷

        ;********************命令處理************************************************
        ;主機(jī)命令: 第1個(gè)字節(jié)(前4位是設(shè)備婁型,后4位是設(shè)備地址)
        ; 第2個(gè)字節(jié)(前4位是命令,后4位是數(shù)據(jù)字節(jié)數(shù))
        ; 第3~N個(gè)字節(jié)(EEPROM的地址)
        ; 最后一位是CRC
        ;接收前四位命令: 0111 7 是查詢?cè)O(shè)備狀態(tài)
        ; 0101 5 是學(xué)習(xí)紅外線指令命令
        ; 0110 6 是發(fā)送紅外線指令命令
        ;從機(jī)應(yīng)答:
        ;發(fā)射前4位命令: 0111 7 命令已接受
        ; 0101 5 紅外碼學(xué)習(xí)正確
        ; 0000 紅外碼學(xué)習(xí)錯(cuò)或超時(shí)
        ;接收后四位數(shù)據(jù)長(zhǎng)度為1個(gè)字節(jié)0001
        ;數(shù)據(jù)字節(jié):為學(xué)習(xí)或發(fā)送的按鍵值(就是EEPROM 的地址)
        ;設(shè)備婁型,地址是01000000


        AFFL1:
        CLR LED
        CLR ES ;串行中斷關(guān)閉
        CLR TR1
        MOV R5, SUBADR

        ;********************判斷紅外線碼學(xué)習(xí)還是發(fā)射**********************************

        ;取得EEPROM的高低字節(jié)地址
        MOV A,22H ;把數(shù)據(jù)中的按鍵值入A
        CJNE A,#04H,ORDER1 ;判斷是錯(cuò)誤碼,還是正常按鍵值
        AJMP TTMM ;命令=4,則轉(zhuǎn)發(fā)送紅外碼子程序
        ORDER1:
        JNC TTM3 ;命令大于4,則置錯(cuò)誤標(biāo)志返回等待中斷
        JC TTMM ;命令小于4, 則順繼執(zhí)行
        TTMM:
        MOV B,#60H ;把96放入乘數(shù)B中
        MUL AB ;把接收到的鍵碼乘以96,取得學(xué)習(xí)碼EEPROM
        ;的按鍵地址
        MOV SUBADR,A ;把乘積的低字節(jié)入EEPROM的低字節(jié)地址
        MOV A,B ;把B 存A中
        RL A ;把乘積的高字節(jié)左移一位
        MOV SLVADR,#EEPROM
        MOV B,SLVADR
        ADD A,B ;把乘積的高字節(jié)與EEPROM的芯片地址相加
        MOV SLVADR,A ;后放入高字節(jié)
        CLR F0 ;清出錯(cuò)標(biāo)志
        MOV A,R5 ;命令前四位入A
        CJNE A,#05H,ORDER ;是學(xué)習(xí)紅外碼和發(fā)射碼嗎?不是置錯(cuò)誤標(biāo)記
        AJMP TTM1 ;
        ORDER:
        CJNE A,#06H,TTM3 ;是學(xué)習(xí)紅外碼嗎?
        TTMM1:
        LCALL LOP ;SUBADR=0則調(diào)用學(xué)習(xí)紅外碼子程序
        AJMP TTM2
        TTM1:
        LCALL LDD ;調(diào)用紅外線發(fā)射子程式
        TTM2:
        JB F0,TTM3 ;調(diào)用子程序出錯(cuò),置錯(cuò)誤標(biāo)記
        SETB ES ;打開串行中斷
        SETB TR1
        MOV ER,#05H ;調(diào)用子程式正確,則置正確標(biāo)記
        AJMP AFFL ;返回等待中斷
        TTM3:
        MOV ER,#00H
        SETB ES ;串行中斷打開
        SETB TR1
        CLR LED
        AJMP AFFL ;出錯(cuò)返回等待中斷
        ;***********************************************************************
        ; 紅外線接收存EEPROM程序
        ;***********************************************************************

        由于程序太大,帖子無法全部貼出 請(qǐng)點(diǎn)這里下載程序的完整版本: http://www.51hei.com/ziliao/file/STC89C52學(xué)習(xí)型遙控器.rar

        塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
        蜂鳴器相關(guān)文章:蜂鳴器原理


        關(guān)鍵詞: 紅外遙控器 匯編語言

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉