📄 tran.lst
字号:
A51 MACRO ASSEMBLER TRAN 03/29/2007 08:43:30 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN tran.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE tran.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
00B2 2 tran_bit equ p3.2
0030 3 addr equ 30h
0004 4 N equ 4
00A0 5 key equ p2.0
00A2 6 green equ p2.2
7
0000 8 org 0000h
0000 020030 9 ljmp main
000B 10 org 000bh
000B 020096 11 ljmp t0_sev
0030 12 org 0030h
13
14
15
0030 1184 16 main:call g_data
0032 114A 17 call ini
0034 C2AF 18 loop:clr ea
0036 D2B2 19 setb tran_bit
0038 20A0FD 20 jb key,$
003B 1191 21 call delay
003D 20A0F4 22 jb key,loop
0040 D2AF 23 setb ea
0042 116F 24 call tran
0044 C2AF 25 clr ea
0046 D2B2 26 setb tran_bit
0048 80EA 27 sjmp loop
28
29
30
31
004A 75814F 32 ini:mov sp ,#4fh ;设置堆栈
004D D2A0 33 setb key ;将按键的端口设置为输入状态
004F C2B2 34 clr tran_bit ;确定红外发射口的初始状态
0051 53877F 35 anl pcon ,#7fh ;取消波特率倍增位
0054 759850 36 mov scon ,#50h ;串口工作在模式2
0057 758922 37 mov tmod ,#22h ;T0/T1都工作在方式2(自重装)
005A 758AF4 38 mov tl0 ,#0f4h ;产生40KHz的载波
005D 758CF4 39 mov th0 ,#0f4h
0060 758BE8 40 mov tl1 ,#0e8h ;波特率1200
0063 758DE8 41 mov th1 ,#0e8h
0066 D2A9 42 setb et0 ;允许T0中断
0068 D2AF 43 setb ea ;开中断
006A D28C 44 setb tr0 ;启动T0
006C D28E 45 setb tr1 ;启动T1
006E 22 46 ret
47
48
49
50
006F A804 51 tran:mov r0 ,N ;一组命令需要发送的字节蔔
0071 A930 52 mov r1 ,addr ;将示莼捍娴氖椎刂犯鴕1
0073 E7 53 re_tran:mov a ,@r1 ;将示荽
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -