?? 5.lst
字號(hào):
頁 1
01-29-03
01:31:31
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機(jī)器碼 源程序
; *************************************
; * 單鍵遙控碼學(xué)習(xí)控制器 *
; * 2001.11.29 *
; *************************************
;
;
;**********************************************************************
;* *
;* P1.0 1 40 VCC *
;* P1.1 2 39 P0.0 *
;* P1.2 3 38 P0.1 *
;* P1.3 4 37 P0.2 *
;* P1.4 5 36 P0.3 *
;* P1.5 6 35 P0.4 *
;* STUDYLAMP P1.6 7 34 P0.5 *
;* LAMP P1.7 8 33 P0.6 *
;* RST 9 32 P0.7 *
;* RXD P3.0 10 MCS-51 31 EA VDD *
;* TXD P3.1 11 30 ALE *
;* STUDYKEY INT0 P3.2 12 29 PSEN *
;* INT1 P3.3 13 28 P2.7 *
;* REMOTEIN T0 P3.4 14 27 P2.6 *
;* REMOTEOUT T1 P3.5 15 26 P2.5 *
;* WR P3.6 16 25 P2.4 *
;* RD P3.7 17 24 P2.3 *
;* XTAL2 18 23 P2.2 *
;* XTAL1 19 22 P2.1 *
;* VSS 20 21 P2.0 *
;* *
;**********************************************************************
;
SPBASE EQU 70H ;堆棧基址
IEVAL EQU 00H ;關(guān)所有中斷
MEMBASE EQU 08H ;工作寄存器基址
MEMS EQU 67H ;工作寄存器個(gè)數(shù)
;
BITNMB EQU 08H ;一個(gè)字節(jié)包含八個(gè)位
;
KEYFUNFLAG EQU 80H ; 鍵功能索引
KEYFUNNMB EQU 81H ;鍵功能號(hào)
KEYFUNRW EQU 82H ;遙控信號(hào)讀寫標(biāo)志
READFLAG EQU 88H ;讀標(biāo)記
WITERFLAG EQU 99H ;寫標(biāo)記
;
TMPHADDR EQU 08H ;讀入高電平存放首址
TMPLADDR EQU 90H ;讀入低電平存放首址
READTIME EQU 00H ;讀入數(shù)據(jù)指令時(shí)間
; LOWH EQU R4 ;起始位存放高地址
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實(shí)例5\5.ASM
頁 2
01-29-03
01:31:31
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機(jī)器碼 源程序
; LOWL EQU R5 ;起始位存放低地址
STUDYLAMP EQU P1.6 ;學(xué)習(xí)指示燈
LAMP EQU P1.7 ;未定義指示燈
STUDYKEY EQU P3.2 ;學(xué)習(xí)鍵
;
REMOTEIN EQU P3.4 ;遙控輸入
REMOTEOUT EQU P3.5 ;遙控輸出
DELAYCONUT EQU 30H ;延時(shí)值
DELAYCONUT0 EQU 0FFH ;延時(shí)值
T1COUNT EQU 0F3H ;T1計(jì)數(shù)初值
TMODVAL EQU 22H ;計(jì)數(shù)模式控制字
TCONVAL EQU 41H ;計(jì)數(shù)控制寄存器值
PCONVAL EQU 00H ;電源控制寄存器值
T2CONVAL EQU 00H ;T2控制寄存器值
SCONVAL EQU 0F8H ;串口控制寄存器值
IPVAL EQU 01H ;中斷優(yōu)先級(jí)控制值
;
;
;*************************************
;* *
;* 主程序和中斷程序入口 *
;* *
;*************************************
ORG 0000H ;程序執(zhí)行開始地址
0000 0164 AJMP START ;跳至START執(zhí)行
ORG 0003H ;外中斷0中斷入口地址
0003 01D6 AJMP INTEX0 ;跳至INTEX0中斷服務(wù)程序
ORG 000BH ;定時(shí)器T0中斷入口地址
000B 32 RETI ;中斷返回(不開中斷)
ORG 0013H ;外中斷1中斷入口地址
0013 32 RETI ;中斷返回(不開中斷)
ORG 001BH ;定時(shí)器T1中斷入口地址
001B 0173 AJMP INTT1 ;跳至INTT1中斷服務(wù)程序
ORG 0023H ;串行口中斷入口地址
0023 32 RETI ;中斷返回(不開中斷)
ORG 002BH ;定時(shí)器T2中斷入口地址
002B 32 RETI ;中斷返回(不開中斷)
;
;*************************************
;* *
;* 初始化程序中的各變量 *
;* *
;*************************************
002C E4 CLEARMEMIO: CLR A ;A清0
002D 14 DEC A ;A為#FFH
002E F580 MOV P0,A ;P0口置1
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實(shí)例5\5.ASM
頁 3
01-29-03
01:31:31
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機(jī)器碼 源程序
0030 F5B0 MOV P3,A ;P3口置1
0032 F590 MOV P1,A ;P1口置1
0034 E4 CLR A ;清A(為0)
0035 F5A0 MOV P2,A ;P2口為0
0037 C296 CLR STUDYLAMP ;關(guān)學(xué)習(xí)燈
0039 C297 CLR LAMP ;關(guān)操作燈
003B C2B5 CLR REMOTEOUT ;關(guān)遙控碼輸出
003D D2B4 SETB REMOTEIN ;遙控接收為輸入狀態(tài)
003F 7808 MOV R0,#MEMBASE ;清工作寄存器,從08H開始
0041 7967 MOV R1,#MEMS ;清內(nèi)存?zhèn)€數(shù)(為103個(gè))
0043 F6 CLEARMEM: MOV @R0,A ;清0開始
0044 08 INC R0 ;地址加1
0045 D9FC DJNZ R1,CLEARMEM ;未清完轉(zhuǎn)CLEARMEM繼續(xù)
; MOV R0,#KEYFUNRW
; MOV @R0,#READFLAG
0047 758170 MOV SP,#SPBASE ;設(shè)堆?;罚?0H)
004A 75A800 MOV IE,#IEVAL ;關(guān)所有中斷
004D 75B801 MOV IP,#IPVAL ;置優(yōu)先級(jí)
0050 758922 MOV TMOD,#TMODVAL ;置計(jì)數(shù)器模式(8位自動(dòng)重裝初值模式)
0053 758700 MOV PCON,#PCONVAL ;波特率不加倍
0056 7598F8 MOV SCON,#SCONVAL ;串口中斷不開
0059 758DF3 MOV TH1,#T1COUNT ;T1定時(shí)器初值(定時(shí)值為13微秒)
005C 758BF3 MOV TL1,#T1COUNT ; T1定時(shí)器初值
005F D2A8 SETB EX0 ;允許外中斷0中斷
0061 D2AF SETB EA ;開總中斷允許
0063 22 RET ;子程序結(jié)束
;
;*************************************
;* *
;* 主 程 序 *
;* *
;*************************************
0064 12002C START: LCALL CLEARMEMIO ;調(diào)用上電初始化子程序
; 主體程序
0067 120185 MAIN: LCALL KEYWORK ;調(diào)用讀鍵子程序
006A 020067 LJMP MAIN ;跳回MAIN循環(huán)
006D 00 NOP ;PC值出錯(cuò)處理
006E 00 NOP ;空操作
006F 00 NOP ;
0070 020064 LJMP START ;重新初始化
;
;*************************************
;* *
;* T1中斷服務(wù)程序 *
;* *
;*************************************
0073 B2B5 INTT1: CPL REMOTEOUT ;40kHZ方波輸出(紅外線調(diào)制波)
0075 32 RETI ;中斷返回
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實(shí)例5\5.ASM
頁 4
01-29-03
01:31:31
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機(jī)器碼 源程序
;
;*************************************
;* *
;* 載波合成 *
;* *
;*************************************
0076 7808 REMOTETX: MOV R0,#TMPHADDR ;取遙控碼高電平存放首址
0078 7990 MOV R1,#TMPLADDR ;取遙控碼低電平存放首址
007A D297 SETB LAMP ;開操作燈
007C EC MOV A,R4 ;起始位高8位放入A
007D FB MOV R3,A ;放入R3暫存
007E 6011 JZ LOWBACK ;高8位為0轉(zhuǎn)LOWBACK處理低8位
0080 E4 CLR A ;高8位非0處理
0081 14 DEC A ;A為#FFH
0082 FA LOWBACKTMP: MOV R2,A ;起始位復(fù)原,R2賦初值
0083 D28E LOWBACKTMP0: SETB TR1 ;開啟T1
0085 D2AB SETB ET1 ;允許T1中斷
0087 00 NOP ;用空操作延時(shí)
0088 00 NOP
0089 00 NOP
008A 00 NOP
008B 00 NOP
008C 00 NOP
008D DAF4 DJNZ R2,LOWBACKTMP0 ;計(jì)數(shù)值每減1循環(huán)時(shí)間為約21微秒
008F DBF1 DJNZ R3,LOWBACKTMP ;高8位計(jì)數(shù)值不為0轉(zhuǎn)LOWBACKTMP
0091 ED LOWBACK: MOV A,R5 ;起始位低8位處理
0092 FA MOV R2,A ; 起始位低8位數(shù)放入R2暫存
0093 D28E LOWBACKTMP1: SETB TR1 ; 開啟T1
0095 D2AB SETB ET1 ; 允許T1中斷
0097 00 NOP ;用空操作延時(shí)
0098 00 NOP
0099 00 NOP
009A 00 NOP
009B 00 NOP
009C 00 NOP
009D DAF4 DJNZ R2,LOWBACKTMP1 ;低8位計(jì)數(shù)值不為0轉(zhuǎn)LOWBACKTMP1
009F E6 TMP0: MOV A,@R0 ;高電平處理開始,取高電平數(shù)據(jù)
00A0 FA MOV R2,A ;放入R2
00A1 C28E TMP1: CLR TR1 ;關(guān)閉T1
00A3 C2AB CLR ET1 ;關(guān)閉T1中斷允許(關(guān)40KHZ紅外線)
00A5 C2B5 CLR REMOTEOUT ;關(guān)遙控輸出
00A7 00 NOP ;空操作延時(shí)
00A8 00 NOP
00A9 00 NOP
00AA 00 NOP
00AB 00 NOP
00AC 00 NOP
00AD 00 NOP
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實(shí)例5\5.ASM
頁 5
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -