📄 embed.src
字号:
; .\embed.SRC generated from: embed.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE embed.c BROWSE DEBUG OBJECTEXTEND SRC(.\embed.SRC)
$NOMOD51
NAME EMBED
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T1 BIT 0B0H.5
EA BIT 0A8H.7
T2 BIT 090H.0
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
FL BIT 0D0H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
CY BIT 0D0H.7
INT0 BIT 0B0H.2
INT1 BIT 0B0H.3
TI BIT 098H.1
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
EX1 BIT 0A8H.2
TB8 BIT 098H.3
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
T2MOD DATA 0C9H
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?initial?EMBED SEGMENT CODE
?PR?Delay?EMBED SEGMENT CODE
?PR?_delay10ms?EMBED SEGMENT CODE
?PR?getKey?EMBED SEGMENT CODE
?PR?_show?EMBED SEGMENT CODE
?PR?READ?EMBED SEGMENT CODE
?PR?_setplay?EMBED SEGMENT CODE
?PR?check?EMBED SEGMENT CODE
?DT?check?EMBED SEGMENT DATA OVERLAYABLE
?PR?main?EMBED SEGMENT CODE
?DT?main?EMBED SEGMENT DATA OVERLAYABLE
?PR?TIME0?EMBED SEGMENT CODE
?PR?TIME1?EMBED SEGMENT CODE
?PR?EX0INT?EMBED SEGMENT CODE
?PR?EX1INT?EMBED SEGMENT CODE
?PR?SERIAL?EMBED SEGMENT CODE
?C_INITSEG SEGMENT CODE
?CO?EMBED SEGMENT CODE
?DT?EMBED SEGMENT DATA
?BI?EMBED SEGMENT BIT
EXTRN CODE (?C?SCDIV)
EXTRN CODE (?C_STARTUP)
PUBLIC Num_Of_Circle
PUBLIC display
PUBLIC key_down
PUBLIC key
PUBLIC IRCODE
PUBLIC rbit
PUBLIC inkey
PUBLIC array
PUBLIC RED
PUBLIC CON
PUBLIC SEGNEG
PUBLIC SEGPOS
PUBLIC SERIAL
PUBLIC EX1INT
PUBLIC EX0INT
PUBLIC TIME1
PUBLIC TIME0
PUBLIC main
PUBLIC check
PUBLIC _setplay
PUBLIC READ
PUBLIC _show
PUBLIC getKey
PUBLIC _delay10ms
PUBLIC Delay
PUBLIC initial
DSEG AT 030H
inkey: DS 1
DSEG AT 07EH
key_down: DS 1
RSEG ?DT?check?EMBED
?check?BYTE:
i?750: DS 1
l?752: DS 1
temp1?753: DS 2
RSEG ?DT?main?EMBED
?main?BYTE:
LED?855: DS 2
RSEG ?DT?EMBED
array: DS 12
IRCODE: DS 2
key: DS 1
display: DS 2
Num_Of_Circle: DS 2
RSEG ?BI?EMBED
rbit: DBIT 1
RSEG ?CO?EMBED
SEGPOS:
DB 0C0H
DB 0F9H
DB 0A4H
DB 0B0H
DB 099H
DB 092H
DB 082H
DB 0F8H
DB 080H
DB 090H
DB 088H
DB 083H
DB 0C6H
DB 0A1H
DB 086H
DB 08EH
DB 0BFH
DB 0FFH
DB 040H
DB 079H
DB 024H
DB 030H
DB 019H
DB 012H
DB 002H
DB 078H
DB 000H
DB 010H
DB 008H
DB 003H
DB 046H
DB 021H
DB 006H
DB 00EH
SEGNEG:
DB 03FH
DB 006H
DB 05BH
DB 04FH
DB 066H
DB 06DH
DB 07DH
DB 007H
DB 07FH
DB 06FH
DB 077H
DB 07CH
DB 039H
DB 05EH
DB 079H
DB 071H
DB 040H
DB 000H
DB 0BFH
DB 086H
DB 0D4H
DB 0CFH
DB 0E6H
DB 0EDH
DB 0FDH
DB 087H
DB 0FFH
DB 0EFH
DB 0F7H
DB 0FCH
DB 0B9H
DB 0DEH
DB 0F9H
DB 0F1H
CON:
DB 0FEH
DB 0FDH
DB 0FBH
DB 0F7H
DB 0EFH
DB 0DFH
RED:
DW 0E200H
DW 0E210H
DW 0E208H
DW 0E218H
DW 0E204H
DW 0E214H
DW 0E20CH
DW 0E21CH
DW 0E280H
DW 0E288H
DW 0E298H
DW 0E250H
DW 0E248H
DW 0E244H
DW 0E254H
DW 0E2C4H
DW 0E2D4H
DW 0E2CCH
DW 0E2DCH
DW 0E25CH
DW 0E2F8H
DW 0E2D8H
DW 0E2D0H
DW 0E2E4H
DW 0E2F4H
DW 0E2E8H
DW 0E2ECH
DW 0E240H
DW 0E24CH
RSEG ?C_INITSEG
DB 00CH
DB array
DW 00001H
DW 00002H
DW 00003H
DW 00004H
DW 00005H
DW 00006H
; #include <AT89X52.H>
; #include "intrins.h"
; //#include "absacc.h"
;
; #define uchar unsigned char
; #define uint unsigned int
;
; bit rbit;//接收到脉冲
;
; uint Num_Of_Circle;
; uint array[6]={1,2,3,4,5,6}; //显示数据存储区
; uint display;
;
; //阳极段码
; uchar code SEGPOS[34]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF,0xFF,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0E};
; //"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F" "-" "空" "0." "1." "2." "3.""4." "5.""6." "7.""8." "9.""A." "B.""C." "D.""E." "F."
; //带点的比不带点的大18个位置
; //阴极段码
; uchar code SEGNEG[34]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x00,0xBF,0x86,0xD4,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0xF7,0xFC,0xB9,0xDE,0xF9,0xF1};
; //uchar code CON[6]={0x3E,0x3D,0x3B,0x37,0x2F,0x1F};//数据显示的位选信号00111110 到00011111
; uchar code CON[6]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//数据显示的位选信号11111110 到11011111
; uint code RED[29]={0xE200, //1
; 0xE210 , //2
; 0xE208 , //3
; 0xE218 , //4
; 0xE204 , //5
; 0xE214 , //6
; 0xE20C , //7
; 0xE21C , //8
; 0xE280, //9
; 0xE288 , //1-
; 0xE298 , //2-
; 0xE250 , //p v
; 0xE248 , //p ^
; 0xE244 , //v v
; 0xE254 , //v ^
; 0xE2C4 , //色度v
; 0xE2D4 , //色度^
; 0xE2CC , //亮度v
; 0xE2DC , //亮度^
; 0xE25C , //TV/AV
; 0xE2F8 , //TIM0xE
; 0xE2D8, //+
; 0xE2D0, //->。<-
; 0xE2E4 , //ON.T
; 0xE2F4, //S0xEL
; 0xE2E8 , //CLOCK
; 0xE2EC , //INC
; 0xE240 , //CLOSE
; 0xE24C , //QUITE
; };//M50462AP编码 低电平340us ,‘0’高电平730us ,‘1’高电平1.8ms
;
; uchar data inkey _at_ 0x30;//按键值
; uchar data key_down _at_ 0x7E;//按键次数
; uchar key;
; char IRCODE[2];
; void initial(void)
RSEG ?PR?initial?EMBED
initial:
; SOURCE LINE # 57
; {
; SOURCE LINE # 58
; /*
; //51系列的专用寄存器
; PC ACC B(乘除法) PSW(CY,AC,F0,RS1,RS2,OV,P) DPTR(16位) SP SBUF
;
; IE (EA,/,ET2,ES,ET1,EX1,ET0,EX0)
; IP (/,/,/,PS,PT1,PX1,PT0,PX0) //"0"位优先级低
; PCON //最高位控制波特率加倍
; SCON (SM0,SM1,SM2,REN,TB8,RB8,TI,RI)//方式0是移位;方式
; TCON (TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0)//IEx 外部中断请求;ITx 外中断请求触发方式(1是脉冲负跳,0是电平低);TFx 计数溢出
; TMOD (GATE1,C/~T,M1,M0,GATE0,C/~T,M1,M0)//方式0是13位;方式1是16位;方式2自动重载;
; T2CON (TF2,EXF2,RLCLK,TCLK,EXEN2,TR2,C/~T2,CP/~RL2)
; RCLK+TCLK CP/~RL2 TR2 MODE
; 0 0 1 16位自动重载(定时器1串口)
; 0 1 1 16位捕捉(定时器1串口)
; 1 x 1 波特率发生器
; x x 0 (不用)
; T2MOD (....,T2OE,DCEN) DCEN上计数
; //*/
;
; //*
; T2CON=0x30;//位C/T2(T2CON.1)必须清0,
; SOURCE LINE # 79
MOV T2CON,#030H
; T2MOD=0x02;//位T2OE(T2MOD.1)必须置1
; SOURCE LINE # 80
MOV T2MOD,#02H
; SCON=0x50;//方式1(8位数据),可接收
; SOURCE LINE # 81
MOV SCON,#050H
;
; PCON=0x00;//波特率不加倍
; SOURCE LINE # 83
CLR A
MOV PCON,A
; RCAP2L=0xB7;//时钟输出频率=晶振频率/{4 [65536-( RCAP2H,RCAP2L)]}
; SOURCE LINE # 84
MOV RCAP2L,#0B7H
; RCAP2H=0xFF;//定时器2编程时钟输出38K
; SOURCE LINE # 85
MOV RCAP2H,#0FFH
;
; //*/
; inkey=0;key_down=0;
; SOURCE LINE # 88
MOV inkey,A
MOV key_down,A
; rbit=1;IRCODE[0]=0x00;IRCODE[1]=0x00;
; SOURCE LINE # 89
SETB rbit
MOV IRCODE,A
MOV IRCODE+01H,A
; Num_Of_Circle=0;display=0;
; SOURCE LINE # 90
MOV Num_Of_Circle,A
MOV Num_Of_Circle+01H,A
MOV display,A
MOV display+01H,A
;
; TMOD=0x21;//T1 计时(方式2自动重载),T0 计时(方式1), GATE C/~T M1 M0
; SOURCE LINE # 92
MOV TMOD,#021H
; TH0=0xFF; TL0=0x83;//500us
; SOURCE LINE # 93
MOV TH0,#0FFH
MOV TL0,#083H
; TH1=0xFD; TL1=0xFD;//2400bps 11.0592M时钟晶振
; SOURCE LINE # 94
MOV TH1,#0FDH
MOV TL1,#0FDH
;
; TR0=1; TR1=1; TR2 = 1;
; SOURCE LINE # 96
SETB TR0
SETB TR1
SETB TR2
; ET0=1; ET1=0;
; SOURCE LINE # 97
SETB ET0
CLR ET1
; IT0 = 1; //INT0下降沿有效
; SOURCE LINE # 98
SETB IT0
; EX0 = 1; //开INT0中断;
; SOURCE LINE # 99
SETB EX0
; EX1=0;
; SOURCE LINE # 100
CLR EX1
; ES=1;
; SOURCE LINE # 101
SETB ES
; EA=1;
; SOURCE LINE # 102
SETB EA
; }
; SOURCE LINE # 103
RET
; END OF initial
; void Delay(void)
RSEG ?PR?Delay?EMBED
Delay:
USING 0
; SOURCE LINE # 104
; {
; SOURCE LINE # 105
; uint TempCyc;
; for (TempCyc=0; TempCyc<6; TempCyc++);//0.05ms 防抖动
; SOURCE LINE # 107
;---- Variable 'TempCyc?140' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0002:
INC R7
CJNE R7,#00H,?C0083
INC R6
?C0083:
MOV A,R7
XRL A,#06H
ORL A,R6
JNZ ?C0002
; }
; SOURCE LINE # 108
?C0005:
RET
; END OF Delay
;
; void delay10ms(uint s)//100 == 1second
RSEG ?PR?_delay10ms?EMBED
_delay10ms:
USING 0
; SOURCE LINE # 110
;---- Variable 'i?242' assigned to Register 'R4/R5' ----
;---- Variable 's?241' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 111
?C0006:
; uint i;
; while(s--)
; SOURCE LINE # 113
MOV A,R7
DEC R7
MOV R2,AR6
JNZ ?C0084
DEC R6
?C0084:
ORL A,R2
JZ ?C0011
; {
; SOURCE LINE # 114
; for(i=0;i<255;i++)
; SOURCE LINE # 115
CLR A
MOV R4,A
MOV R5,A
?C0008:
CLR C
MOV A,R5
SUBB A,#0FFH
MOV A,R4
SUBB A,#00H
JNC ?C0006
; {
; SOURCE LINE # 116
; _nop_();
; SOURCE LINE # 117
NOP
; _nop_();
; SOURCE LINE # 118
NOP
; _nop_();
; SOURCE LINE # 119
NOP
; _nop_();
; SOURCE LINE # 120
NOP
; _nop_();
; SOURCE LINE # 121
NOP
; _nop_();
; SOURCE LINE # 122
NOP
; _nop_();
; SOURCE LINE # 123
NOP
; _nop_();
; SOURCE LINE # 124
NOP
; _nop_();
; SOURCE LINE # 125
NOP
; _nop_();
; SOURCE LINE # 126
NOP
; _nop_();
; SOURCE LINE # 127
NOP
; _nop_();
; SOURCE LINE # 128
NOP
; _nop_();
; SOURCE LINE # 129
NOP
; _nop_();
; SOURCE LINE # 130
NOP
; _nop_();
; SOURCE LINE # 131
NOP
; _nop_();
; SOURCE LINE # 132
NOP
; _nop_();
; SOURCE LINE # 133
NOP
; _nop_();
; SOURCE LINE # 134
NOP
; _nop_();
; SOURCE LINE # 135
NOP
; _nop_();
; SOURCE LINE # 136
NOP
; _nop_();
; SOURCE LINE # 137
NOP
; _nop_();
; SOURCE LINE # 138
NOP
; _nop_();
; SOURCE LINE # 139
NOP
; _nop_();
; SOURCE LINE # 140
NOP
; _nop_();
; SOURCE LINE # 141
NOP
; _nop_();
; SOURCE LINE # 142
NOP
; _nop_();
; SOURCE LINE # 143
NOP
; }
; SOURCE LINE # 144
INC R5
CJNE R5,#00H,?C0085
INC R4
?C0085:
SJMP ?C0008
; }
; SOURCE LINE # 145
; }
; SOURCE LINE # 146
?C0011:
RET
; END OF _delay10ms
; void getKey()
RSEG ?PR?getKey?EMBED
getKey:
USING 0
; SOURCE LINE # 147
; {
; SOURCE LINE # 148
; P3=P3|0xF0;
; SOURCE LINE # 149
ORL P3,#0F0H
; delay10ms(1);
; SOURCE LINE # 150
MOV R7,#01H
MOV R6,#00H
LCALL _delay10ms
; key=P3&0xF0;
; SOURCE LINE # 151
MOV A,P3
ANL A,#0F0H
MOV key,A
; if(key!=0xF0 && key_down==0)
; SOURCE LINE # 152
XRL A,#0F0H
JZ ?C0019
MOV A,key_down
JNZ ?C0019
; {
; SOURCE LINE # 153
; key_down+=1;
; SOURCE LINE # 154
INC key_down
; switch(key)
; SOURCE LINE # 155
MOV A,key
ADD A,#050H
JZ ?C0015
ADD A,#0E0H
JZ ?C0016
ADD A,#0F0H
JZ ?C0017
ADD A,#070H
JNZ ?C0018
; {
; SOURCE LINE # 156
; case 0x70:
; SOURCE LINE # 157
?C0014:
; inkey=1;
; SOURCE LINE # 158
MOV inkey,#01H
; break;
; SOURCE LINE # 159
RET
; case 0xB0:
; SOURCE LINE # 160
?C0015:
; inkey=2;
; SOURCE LINE # 161
MOV inkey,#02H
; break;
; SOURCE LINE # 162
RET
; case 0xD0:
; SOURCE LINE # 163
?C0016:
; inkey=3;
; SOURCE LINE # 164
MOV inkey,#03H
; break;
; SOURCE LINE # 165
RET
; case 0xE0:
; SOURCE LINE # 166
?C0017:
; inkey=4;
; SOURCE LINE # 167
MOV inkey,#04H
; break;
; SOURCE LINE # 168
RET
; default:
; SOURCE LINE # 169
?C0018:
; key_down=0;
; SOURCE LINE # 170
CLR A
MOV key_down,A
; break;
; SOURCE LINE # 171
; }
; SOURCE LINE # 172
; }
; SOURCE LINE # 173
; }
; SOURCE LINE # 174
?C0019:
RET
; END OF getKey
;
; void show( uint bitCon,uint num)
RSEG ?PR?_show?EMBED
_show:
; SOURCE LINE # 176
;---- Variable 'num?444' assigned to Register 'R4/R5' ----
;---- Variable 'bitCon?443' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 177
; uchar seg =SEGPOS[num];
; SOURCE LINE # 178
MOV A,R5
MOV DPTR,#SEGPOS
MOVC A,@A+DPTR
;---- Variable 'seg?445' assigned to Register 'R5' ----
; P2=P2&0xC0;
; SOURCE LINE # 179
ANL P2,#0C0H
; P0=seg;
; SOURCE LINE # 180
MOV P0,A
; switch(bitCon)
; SOURCE LINE # 181
MOV A,R6
JNZ ?C0027
MOV A,R7
DEC A
JZ ?C0022
DEC A
JZ ?C0023
DEC A
JZ ?C0024
DEC A
JZ ?C0025
DEC A
JZ ?C0026
ADD A,#05H
JNZ ?C0027
; {
; SOURCE LINE # 182
; case 0:
; SOURCE LINE # 183
?C0021:
; P2=P2|CON[0];
; SOURCE LINE # 184
MOV DPTR,#CON
; break;
; SOURCE LINE # 185
SJMP ?C0097
; case 1:
; SOURCE LINE # 186
?C0022:
; P2=P2|CON[1];
; SOURCE LINE # 187
MOV DPTR,#CON+01H
?C0093:
; break;
; SOURCE LINE # 188
SJMP ?C0097
; case 2:
; SOURCE LINE # 189
?C0023:
; P2=P2|CON[2];
; SOURCE LINE # 190
MOV DPTR,#CON+02H
?C0094:
; break;
; SOURCE LINE # 191
SJMP ?C0097
; case 3:
; SOURCE LINE # 192
?C0024:
; P2=P2|CON[3];
; SOURCE LINE # 193
MOV DPTR,#CON+03H
?C0095:
; break;
; SOURCE LINE # 194
SJMP ?C0097
; case 4:
; SOURCE LINE # 195
?C0025:
; P2=P2|CON[4];
; SOURCE LINE # 196
MOV DPTR,#CON+04H
?C0096:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -