标题: 跪求大神帮忙 [打印本页]
作者: 轻狂书生 时间: 2016-12-28 20:10
标题: 跪求大神帮忙
基于51单片机的八路抢答器程序,求大神帮忙把c语言转换为汇编语言,感激不尽啊。
#include<reg51.h>
#include<intrins.h>
sbit smg1=P2^0; //定义数码管第一位
sbit smg2=P2^1; //定义数码管第二位
sbit smg3=P2^2; //定义数码管第三位
sbit keyks=P3^0; //定义开始按键
sbit keytz=P3^1; //定义停止按键
sbit keyqc=P3^2; //定义清除按键
sbit key1=P1^0; //定义1号抢答选手
sbit key2=P1^1; //定义2号抢答选手
sbit key3=P1^2; //定义3号抢答选手
sbit key4=P1^3; //定义4号抢答选手
sbit key5=P1^4; //定义5号抢答选手
sbit key6=P1^5; //定义6号抢答选手
sbit key7=P1^6; //定义7号抢答选手
sbit key8=P1^7; //定义8号抢答选手
sbit spk=P3^7; //定义蜂鸣器
int djs=60,js=0; //djs和bt是初始倒计时时间,可修改
//int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40};
void delayms(int x) //延时函数
{
char i;
while(x--)
{
for(i=500;i>0;i--);
}
}
void Timer0_init() //定时器0初始化
{
js=0;
TMOD=0x01; //T0为定时器方式1
TH0=0x3c;
TL0=0xb0;
//TR0=1;//IT1=1;
ET0=1;//EX1=1;
EA=1;
}
void timer0() interrupt 1 using 1 //定时器0中断服务函数
{
// TF0=0;
TH0=0x3c;
TL0=0xb0; //赋初值
js++;
if(js>=20)
{ js=0;
djs--; //产生1s的倒计时
//led1=~led1;
}
}
void djsxs() //显示倒计时函数
{ int b1,b2;
b1=djs/10;
b2=djs%10; // 将倒计时时间分成高低位
P0=table[b1];
smg2=0;
delayms(3);
smg2=1; //显示十位数字
P0=table[b2];
smg3=0;
delayms(3); //显示个位数字
smg3=1;
}
void djsxs22()
{
P0=0x40;
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示-
P0=0x40;
smg2=0;
delayms(3); //第三位数码管显示-
smg2=1;
P0=0x40;
smg3=0;
delayms(3);
smg3=1; //第四位数码管显示-
}
void djsxs1()
{
P0=table[1];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示1
}
void djsxs2()
{
P0=table[2];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示2
}
void djsxs3()
{
P0=table[3];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示3
}
void djsxs4()
{
P0=table[4];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示4
}
void djsxs5()
{
P0=table[5];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示5
}
void djsxs6()
{
P0=table[6];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示6
}
void djsxs7()
{
P0=table[7];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示7
}
void djsxs8()
{
P0=table[8];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示8
}
void main()
{
int djs1=60;
Timer0_init(); //初始化定时器中断
spk=1; //蜂鸣器不响
djs=60; //倒计时赋值
while(1)
{
LOOP1: djs=djs1;
djsxs22(); //LOOP1是标号,显示 - --
if(key1==0) //在定时器运行状态下,key1==0 则说明1号选手按下按键
{
delayms(300);
if(key1==0)
{
while(!key1); //去除按键抖动后,重新在判断,是否确实按下
djs=60;
while(1)
{
TR0=0; //定时器停止
djsxs();
if(key2==0)
{
delayms(300); //去除抖动
if(key2==0) //再次判断是否按下
{
while(!key2); //如果按下
djs++;
djs1=djs;
}
}
if(key3==0)
{
delayms(300); //去除抖动
if(key3==0) //再次判断是否按下
{
while(!key3); //如果按下
djs--;
djs1=djs;
}
}
if(key1==0)
{
delayms(100); //去除抖动
if(key1==0) //再次判断是否按下
{
while(!key1); //如果按下
goto LOOP1; //goto语句,回到loop1表号处
}
}
}
}
}
if(keyks==0)
{
//spk=0;
delayms(300); //去除按键抖动
if(keyks==0)
{
while(!keyks); //以上表示按下开始按键
//spk=1; //蜂鸣器不响
TR0=1; //启动定时器 开始倒计时
while(1)
{
djsxs();
if(keytz==0)
{
delayms(300); //此处表示出去抖动, 以后不一一标出
if(keytz==0)
{
while(!keytz); //以上表示按下停止按键后
TR0=0; //定时器停止
}
}
if(keyks==0)
{
//spk=0;
delayms(300);
if(keyks==0)
{
while(!keyks); //以上表示按下清楚按键后
//spk=1; //蜂鸣器不响
TR0=1; //定时器启动
}
}
/***************************以下是八个选手抢答,key1表示1号选手,依次类推,注释只写第一位选手,其他和第一个完全一致,************************************/
if((key1==0)&&(TR0==1)) //在定时器运行状态下,key1==0 则说明1号选手按下按键
{
spk=0; //蜂鸣器响
delayms(3);
if(key1==0)
{
while(!key1); //去除按键抖动后,重新在判断,是否确实按下
spk=1; //蜂鸣器不响
while(1)
{
TR0=0; //定时器停止
djsxs1(); //显示选手编号
djsxs(); //显示剩余倒计时时间
if(keyqc==0)
{
delayms(3); //去除抖动
if(keyqc==0)
{
while(!keyqc); //如果按下清楚键,则回到- --状态
goto LOOP1; //goto语句,回到loop1表号处
}
}
}
}
}
if((key2==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key2==0)
{
while(!key2);
spk=1;
while(1)
{
TR0=0;
djsxs2();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key3==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key3==0)
{
while(!key3);
spk=1;
while(1)
{
TR0=0;
djsxs3();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key4==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key4==0)
{
while(!key4);
spk=1;
while(1)
{
TR0=0;
djsxs4();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key5==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key5==0)
{
while(!key5);
spk=1;
while(1)
{
TR0=0;
djsxs5();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key6==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key6==0)
{
while(!key6);
spk=1;
while(1)
{
TR0=0;
djsxs6();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key7==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key7==0)
{
while(!key7);
spk=1;
while(1)
{
TR0=0;
djsxs7();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if((key8==0)&&(TR0==1))
{
spk=0;
delayms(3);
if(key8==0)
{
while(!key8);
while(1)
{
TR0=0;
spk=1;
djsxs8();
djsxs();
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
goto LOOP1;
}
}
}
}
}
if(djs<=5) spk=0; //到倒计时小于5是,蜂鸣器响
if(djs==0) //当倒计时时间等于0后,需要按清楚键恢复
{
while(1)
{
if(keyqc==0)
{
delayms(3);
if(keyqc==0)
{
while(!keyqc);
spk=1;
goto LOOP1;
}
}
}
}
}
}
}
}
}
作者: ahshmj 时间: 2016-12-28 21:23
揣摩别人的,不如自己写一个来的省力。
作者: angmall 时间: 2016-12-28 23:44
- ;ASSEMBLY LISTING OF GENERATED OBJECT CODE
- org 00h
- ; FUNCTION main (BEGIN)
- main:
- ; SOURCE LINE # 37
- ; SOURCE LINE # 38
- ; SOURCE LINE # 39
- R MOV djs1,#00H
- R MOV djs1+01H,#03CH
- ; SOURCE LINE # 40
- R LCALL Timer0_init
- ; SOURCE LINE # 41
- SETB spk
- ; SOURCE LINE # 42
- R MOV djs,#00H
- R MOV djs+01H,#03CH
- ; SOURCE LINE # 43
- ; SOURCE LINE # 44
- ; SOURCE LINE # 46
- LOOP1:
- R MOV djs,djs1
- R MOV djs+01H,djs1+01H
- ; SOURCE LINE # 47
- R LCALL djsxs22
- ; SOURCE LINE # 49
- JB key1,?C0004
- ; SOURCE LINE # 50
- ; SOURCE LINE # 51
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 52
- JB key1,?C0004
- ; SOURCE LINE # 53
- ?C0006:
- ; SOURCE LINE # 54
- JNB key1,?C0006
- ?C0007:
- ; SOURCE LINE # 55
- R MOV djs,#00H
- R MOV djs+01H,#03CH
- ?C0008:
- ; SOURCE LINE # 56
- ; SOURCE LINE # 57
- ; SOURCE LINE # 58
- CLR TR0
- ; SOURCE LINE # 59
- R LCALL djsxs
- ; SOURCE LINE # 60
- JB key2,?C0010
- ; SOURCE LINE # 61
- ; SOURCE LINE # 62
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 63
- JB key2,?C0010
- ; SOURCE LINE # 64
- ?C0012:
- ; SOURCE LINE # 65
- JNB key2,?C0012
- ?C0013:
- ; SOURCE LINE # 66
- R INC djs+01H
- R MOV A,djs+01H
- JNZ ?C0144
- R INC djs
- ?C0144:
- ; SOURCE LINE # 67
- R MOV djs1,djs
- R MOV djs1+01H,A
- ; SOURCE LINE # 68
- ; SOURCE LINE # 69
- ?C0010:
- ; SOURCE LINE # 70
- JB key3,?C0014
- ; SOURCE LINE # 71
- ; SOURCE LINE # 72
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 73
- JB key3,?C0014
- ; SOURCE LINE # 74
- ?C0016:
- ; SOURCE LINE # 75
- JNB key3,?C0016
- ?C0017:
- ; SOURCE LINE # 76
- R MOV A,djs+01H
- R DEC djs+01H
- JNZ ?C0145
- R DEC djs
- ?C0145:
- ; SOURCE LINE # 77
- R MOV djs1,djs
- R MOV djs1+01H,djs+01H
- ; SOURCE LINE # 78
- ; SOURCE LINE # 79
- ?C0014:
- ; SOURCE LINE # 80
- JB key1,?C0008
- ; SOURCE LINE # 81
- ; SOURCE LINE # 82
- MOV R7,#064H
- MOV R6,#00H
- R LCALL _delayms
- ; SOURCE LINE # 83
- JB key1,?C0008
- ; SOURCE LINE # 84
- ?C0020:
- ; SOURCE LINE # 85
- JB key1,LOOP1
- SJMP ?C0020
- ; SOURCE LINE # 86
- ; SOURCE LINE # 87
- ; SOURCE LINE # 88
- ; SOURCE LINE # 89
- ; SOURCE LINE # 90
- ; SOURCE LINE # 91
- ?C0004:
- ; SOURCE LINE # 92
- JB keyks,LOOP1
- ; SOURCE LINE # 93
- ; SOURCE LINE # 95
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 96
- JB keyks,LOOP1
- ; SOURCE LINE # 97
- ?C0024:
- ; SOURCE LINE # 98
- JNB keyks,?C0024
- ?C0025:
- ; SOURCE LINE # 100
- SETB TR0
- ?C0026:
- ; SOURCE LINE # 101
- ; SOURCE LINE # 102
- ; SOURCE LINE # 103
- R LCALL djsxs
- ; SOURCE LINE # 104
- JB keytz,?C0028
- ; SOURCE LINE # 105
- ; SOURCE LINE # 106
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 107
- JB keytz,?C0028
- ; SOURCE LINE # 108
- ?C0030:
- ; SOURCE LINE # 109
- JNB keytz,?C0030
- ?C0031:
- ; SOURCE LINE # 110
- CLR TR0
- ; SOURCE LINE # 111
- ; SOURCE LINE # 112
- ?C0028:
- ; SOURCE LINE # 113
- JB keyks,?C0032
- ; SOURCE LINE # 114
- ; SOURCE LINE # 116
- MOV R7,#02CH
- MOV R6,#01H
- R LCALL _delayms
- ; SOURCE LINE # 117
- JB keyks,?C0032
- ; SOURCE LINE # 118
- ?C0034:
- ; SOURCE LINE # 119
- JNB keyks,?C0034
- ?C0035:
- ; SOURCE LINE # 121
- SETB TR0
- ; SOURCE LINE # 122
- ; SOURCE LINE # 123
- ?C0032:
- ; SOURCE LINE # 125
- JB key1,?C0036
- JNB TR0,?C0036
- ; SOURCE LINE # 126
- ; SOURCE LINE # 127
- CLR spk
- ; SOURCE LINE # 128
- R LCALL L?0151
- ; SOURCE LINE # 129
- JB key1,?C0036
- ; SOURCE LINE # 130
- ?C0038:
- ; SOURCE LINE # 131
- JNB key1,?C0038
- ?C0039:
- ; SOURCE LINE # 132
- SETB spk
- ?C0040:
- ; SOURCE LINE # 133
- ; SOURCE LINE # 134
- ; SOURCE LINE # 135
- CLR TR0
- ; SOURCE LINE # 136
- R LCALL djsxs1
- ; SOURCE LINE # 137
- R LCALL djsxs
- ; SOURCE LINE # 138
- JB keyqc,?C0040
- ; SOURCE LINE # 139
- ; SOURCE LINE # 140
- R LCALL L?0151
- ; SOURCE LINE # 141
- JB keyqc,?C0040
- ; SOURCE LINE # 142
- ?C0044:
- ; SOURCE LINE # 143
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0044
- ; SOURCE LINE # 144
- ; SOURCE LINE # 145
- ; SOURCE LINE # 146
- ; SOURCE LINE # 147
- ; SOURCE LINE # 148
- ; SOURCE LINE # 149
- ?C0036:
- ; SOURCE LINE # 150
- JB key2,?C0046
- JNB TR0,?C0046
- ; SOURCE LINE # 151
- ; SOURCE LINE # 152
- CLR spk
- ; SOURCE LINE # 153
- R LCALL L?0151
- ; SOURCE LINE # 154
- JB key2,?C0046
- ; SOURCE LINE # 155
- ?C0048:
- ; SOURCE LINE # 156
- JNB key2,?C0048
- ?C0049:
- ; SOURCE LINE # 157
- SETB spk
- ?C0050:
- ; SOURCE LINE # 158
- ; SOURCE LINE # 159
- ; SOURCE LINE # 160
- CLR TR0
- ; SOURCE LINE # 161
- R LCALL djsxs2
- ; SOURCE LINE # 162
- R LCALL djsxs
- ; SOURCE LINE # 163
- JB keyqc,?C0050
- ; SOURCE LINE # 164
- ; SOURCE LINE # 165
- R LCALL L?0151
- ; SOURCE LINE # 166
- JB keyqc,?C0050
- ; SOURCE LINE # 167
- ?C0054:
- ; SOURCE LINE # 168
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0054
- ; SOURCE LINE # 169
- ; SOURCE LINE # 170
- ; SOURCE LINE # 171
- ; SOURCE LINE # 172
- ; SOURCE LINE # 173
- ; SOURCE LINE # 174
- ?C0046:
- ; SOURCE LINE # 175
- JB key3,?C0056
- JNB TR0,?C0056
- ; SOURCE LINE # 176
- ; SOURCE LINE # 177
- CLR spk
- ; SOURCE LINE # 178
- R LCALL L?0151
- ; SOURCE LINE # 179
- JB key3,?C0056
- ; SOURCE LINE # 180
- ?C0058:
- ; SOURCE LINE # 181
- JNB key3,?C0058
- ?C0059:
- ; SOURCE LINE # 182
- SETB spk
- ?C0060:
- ; SOURCE LINE # 183
- ; SOURCE LINE # 184
- ; SOURCE LINE # 185
- CLR TR0
- ; SOURCE LINE # 186
- R LCALL djsxs3
- ; SOURCE LINE # 187
- R LCALL djsxs
- ; SOURCE LINE # 188
- JB keyqc,?C0060
- ; SOURCE LINE # 189
- ; SOURCE LINE # 190
- R LCALL L?0151
- ; SOURCE LINE # 191
- JB keyqc,?C0060
- ; SOURCE LINE # 192
- ?C0064:
- ; SOURCE LINE # 193
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0064
- ; SOURCE LINE # 194
- ; SOURCE LINE # 195
- ; SOURCE LINE # 196
- ; SOURCE LINE # 197
- ; SOURCE LINE # 198
- ; SOURCE LINE # 199
- ?C0056:
- ; SOURCE LINE # 200
- JB key4,?C0066
- JNB TR0,?C0066
- ; SOURCE LINE # 201
- ; SOURCE LINE # 202
- CLR spk
- ; SOURCE LINE # 203
- R LCALL L?0151
- ; SOURCE LINE # 204
- JB key4,?C0066
- ; SOURCE LINE # 205
- ?C0068:
- ; SOURCE LINE # 206
- JNB key4,?C0068
- ?C0069:
- ; SOURCE LINE # 207
- SETB spk
- ?C0070:
- ; SOURCE LINE # 208
- ; SOURCE LINE # 209
- ; SOURCE LINE # 210
- CLR TR0
- ; SOURCE LINE # 211
- R LCALL djsxs4
- ; SOURCE LINE # 212
- R LCALL djsxs
- ; SOURCE LINE # 213
- JB keyqc,?C0070
- ; SOURCE LINE # 214
- ; SOURCE LINE # 215
- R LCALL L?0151
- ; SOURCE LINE # 216
- JB keyqc,?C0070
- ; SOURCE LINE # 217
- ?C0074:
- ; SOURCE LINE # 218
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0074
- ; SOURCE LINE # 219
- ; SOURCE LINE # 220
- ; SOURCE LINE # 221
- ; SOURCE LINE # 222
- ; SOURCE LINE # 223
- ; SOURCE LINE # 224
- ?C0066:
- ; SOURCE LINE # 225
- JB key5,?C0076
- JNB TR0,?C0076
- ; SOURCE LINE # 226
- ; SOURCE LINE # 227
- CLR spk
- ; SOURCE LINE # 228
- R LCALL L?0151
- ; SOURCE LINE # 229
- JB key5,?C0076
- ; SOURCE LINE # 230
- ?C0078:
- ; SOURCE LINE # 231
- JNB key5,?C0078
- ?C0079:
- ; SOURCE LINE # 232
- SETB spk
- ?C0080:
- ; SOURCE LINE # 233
- ; SOURCE LINE # 234
- ; SOURCE LINE # 235
- CLR TR0
- ; SOURCE LINE # 236
- R LCALL djsxs5
- ; SOURCE LINE # 237
- R LCALL djsxs
- ; SOURCE LINE # 238
- JB keyqc,?C0080
- ; SOURCE LINE # 239
- ; SOURCE LINE # 240
- R LCALL L?0151
- ; SOURCE LINE # 241
- JB keyqc,?C0080
- ; SOURCE LINE # 242
- ?C0084:
- ; SOURCE LINE # 243
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0084
- ; SOURCE LINE # 244
- ; SOURCE LINE # 245
- ; SOURCE LINE # 246
- ; SOURCE LINE # 247
- ; SOURCE LINE # 248
- ; SOURCE LINE # 249
- ?C0076:
- ; SOURCE LINE # 250
- JB key6,?C0086
- JNB TR0,?C0086
- ; SOURCE LINE # 251
- ; SOURCE LINE # 252
- CLR spk
- ; SOURCE LINE # 253
- R LCALL L?0151
- ; SOURCE LINE # 254
- JB key6,?C0086
- ; SOURCE LINE # 255
- ?C0088:
- ; SOURCE LINE # 256
- JNB key6,?C0088
- ?C0089:
- ; SOURCE LINE # 257
- SETB spk
- ?C0090:
- ; SOURCE LINE # 258
- ; SOURCE LINE # 259
- ; SOURCE LINE # 260
- CLR TR0
- ; SOURCE LINE # 261
- R LCALL djsxs6
- ; SOURCE LINE # 262
- R LCALL djsxs
- ; SOURCE LINE # 263
- JB keyqc,?C0090
- ; SOURCE LINE # 264
- ; SOURCE LINE # 265
- R LCALL L?0151
- ; SOURCE LINE # 266
- JB keyqc,?C0090
- ; SOURCE LINE # 267
- ?C0094:
- ; SOURCE LINE # 268
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0094
- ; SOURCE LINE # 269
- ; SOURCE LINE # 270
- ; SOURCE LINE # 271
- ; SOURCE LINE # 273
- ; SOURCE LINE # 274
- ; SOURCE LINE # 275
- ?C0086:
- ; SOURCE LINE # 276
- JB key7,?C0096
- JNB TR0,?C0096
- ; SOURCE LINE # 277
- ; SOURCE LINE # 278
- CLR spk
- ; SOURCE LINE # 279
- R LCALL L?0151
- ; SOURCE LINE # 280
- JB key7,?C0096
- ; SOURCE LINE # 281
- ?C0098:
- ; SOURCE LINE # 282
- JNB key7,?C0098
- ?C0099:
- ; SOURCE LINE # 283
- SETB spk
- ?C0100:
- ; SOURCE LINE # 284
- ; SOURCE LINE # 285
- ; SOURCE LINE # 286
- CLR TR0
- ; SOURCE LINE # 287
- R LCALL djsxs7
- ; SOURCE LINE # 288
- R LCALL djsxs
- ; SOURCE LINE # 289
- JB keyqc,?C0100
- ; SOURCE LINE # 290
- ; SOURCE LINE # 291
- R LCALL L?0151
- ; SOURCE LINE # 292
- JB keyqc,?C0100
- ; SOURCE LINE # 293
- ?C0104:
- ; SOURCE LINE # 294
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0104
- ; SOURCE LINE # 295
- ; SOURCE LINE # 296
- ; SOURCE LINE # 297
- ; SOURCE LINE # 298
- ; SOURCE LINE # 299
- ; SOURCE LINE # 300
- ?C0096:
- ; SOURCE LINE # 301
- JB key8,?C0106
- JNB TR0,?C0106
- ; SOURCE LINE # 302
- ; SOURCE LINE # 303
- CLR spk
- ; SOURCE LINE # 304
- R LCALL L?0151
- ; SOURCE LINE # 305
- JB key8,?C0106
- ; SOURCE LINE # 306
- ?C0108:
- ; SOURCE LINE # 307
- JNB key8,?C0108
- ?C0110:
- ; SOURCE LINE # 309
- ; SOURCE LINE # 310
- ; SOURCE LINE # 311
- CLR TR0
- ; SOURCE LINE # 312
- SETB spk
- ; SOURCE LINE # 313
- R LCALL djsxs8
- ; SOURCE LINE # 314
- R LCALL djsxs
- ; SOURCE LINE # 315
- JB keyqc,?C0110
- ; SOURCE LINE # 316
- ; SOURCE LINE # 317
- R LCALL L?0151
- ; SOURCE LINE # 318
- JB keyqc,?C0110
- ; SOURCE LINE # 319
- ?C0114:
- ; SOURCE LINE # 320
- JNB keyqc,$ + 6H
- R LJMP LOOP1
- SJMP ?C0114
- ; SOURCE LINE # 321
- ; SOURCE LINE # 322
- ; SOURCE LINE # 323
- ; SOURCE LINE # 324
- ; SOURCE LINE # 325
- ; SOURCE LINE # 326
- ?C0106:
- ; SOURCE LINE # 327
- SETB C
- R MOV A,djs+01H
- SUBB A,#05H
- R MOV A,djs
- XRL A,#080H
- SUBB A,#080H
- JNC ?C0116
- CLR spk
- ?C0116:
- ; SOURCE LINE # 328
- R MOV A,djs+01H
- R ORL A,djs
- JZ $ + 5H
- R LJMP ?C0026
- ; SOURCE LINE # 329
- ?C0118:
- ; SOURCE LINE # 330
- ; SOURCE LINE # 331
- ; SOURCE LINE # 332
- JB keyqc,?C0118
- ; SOURCE LINE # 333
- ; SOURCE LINE # 334
- R LCALL L?0151
- ; SOURCE LINE # 335
- JB keyqc,?C0118
- ; SOURCE LINE # 336
- ?C0122:
- ; SOURCE LINE # 337
- JNB keyqc,?C0122
- ?C0123:
- ; SOURCE LINE # 338
- SETB spk
- ; SOURCE LINE # 339
- R LJMP LOOP1
- ; FUNCTION main (END)
- ; FUNCTION L?0149 (BEGIN)
- L?0150:
- CLR smg1
- L?0151:
- MOV R7,#03H
- MOV R6,#00H
- ; FUNCTION _delayms (BEGIN)
- _delayms:
- ; SOURCE LINE # 350
- ;---- Variable 'i' assigned to Register 'R5' ----
- ;---- Variable 'x' assigned to Register 'R6/R7' ----
- ; SOURCE LINE # 351
- ?C0125:
- ; SOURCE LINE # 353
- MOV A,R7
- DEC R7
- MOV R2,AR6
- JNZ ?C0146
- DEC R6
- ?C0146:
- ORL A,R2
- JZ ?C0130
- ; SOURCE LINE # 354
- ; SOURCE LINE # 355
- MOV R5,#0F4H
- ?C0127:
- SETB C
- MOV A,R5
- XRL A,#080H
- SUBB A,#080H
- JC ?C0125
- DEC R5
- SJMP ?C0127
- ; SOURCE LINE # 356
- ; SOURCE LINE # 357
- ?C0130:
- RET
- ; FUNCTION _delayms (END)
- ; FUNCTION Timer0_init (BEGIN)
- Timer0_init:
- ; SOURCE LINE # 358
- ; SOURCE LINE # 359
- ; SOURCE LINE # 360
- CLR A
- R MOV js,A
- R MOV js+01H,A
- ; SOURCE LINE # 361
- MOV TMOD,#01H
- ; SOURCE LINE # 362
- MOV TH0,#03CH
- ; SOURCE LINE # 363
- MOV TL0,#0B0H
- ; SOURCE LINE # 365
- SETB ET0
- ; SOURCE LINE # 366
- SETB EA
- ; SOURCE LINE # 367
- RET
- ; FUNCTION Timer0_init (END)
- ; FUNCTION timer0 (BEGIN)
- PUSH ACC
- PUSH PSW
- ; SOURCE LINE # 368
- ; SOURCE LINE # 371
- MOV TH0,#03CH
- ; SOURCE LINE # 372
- MOV TL0,#0B0H
- ; SOURCE LINE # 373
- R INC js+01H
- R MOV A,js+01H
- JNZ ?C0147
- R INC js
- ?C0147:
- ; SOURCE LINE # 374
- CLR C
- SUBB A,#014H
- R MOV A,js
- XRL A,#080H
- SUBB A,#080H
- JC ?C0133
- ; SOURCE LINE # 375
- R MOV js,#00H
- R MOV js+01H,#00H
- ; SOURCE LINE # 376
- R MOV A,djs+01H
- R DEC djs+01H
- JNZ ?C0148
- R DEC djs
- ?C0148:
- ; SOURCE LINE # 378
- ; SOURCE LINE # 379
- ?C0133:
- POP PSW
- POP ACC
- RETI
- ; FUNCTION timer0 (END)
- ; FUNCTION djsxs (BEGIN)
- djsxs:
- ; SOURCE LINE # 380
- ; SOURCE LINE # 381
- ; SOURCE LINE # 382
- R MOV R6,djs
- R MOV R7,djs+01H
- MOV R4,#00H
- MOV R5,#0AH
- E LCALL ?C?SIDIV
- ;---- Variable 'b1' assigned to Register 'R2/R3' ----
- MOV R3,AR7
- ; SOURCE LINE # 383
- R MOV R6,djs
- R MOV R7,djs+01H
- MOV R4,#00H
- MOV R5,#0AH
- E LCALL ?C?SIDIV
- ;---- Variable 'b2' assigned to Register 'DPTR' ----
- MOV DPL,R5
- ; SOURCE LINE # 384
- MOV A,R3
- ADD A,ACC
- R ADD A,#LOW table
- MOV R0,A
- INC R0
- MOV A,@R0
- MOV P0,A
- ; SOURCE LINE # 385
- CLR smg2
- ; SOURCE LINE # 386
- R LCALL L?0151
- ; SOURCE LINE # 387
- SETB smg2
- ; SOURCE LINE # 388
- MOV R7,DPL
- MOV A,R7
- ADD A,ACC
- R ADD A,#LOW table
- MOV R0,A
- INC R0
- MOV A,@R0
- MOV P0,A
- ; SOURCE LINE # 389
- CLR smg3
- ; SOURCE LINE # 390
- R LCALL L?0151
- ; SOURCE LINE # 391
- SETB smg3
- ; SOURCE LINE # 392
- RET
- ; FUNCTION djsxs (END)
- ; FUNCTION djsxs22 (BEGIN)
- djsxs22:
- ; SOURCE LINE # 393
- ; SOURCE LINE # 394
- ; SOURCE LINE # 395
- MOV P0,#040H
- ; SOURCE LINE # 396
- ; SOURCE LINE # 397
- R LCALL L?0149
- ; SOURCE LINE # 398
- SETB smg1
- ; SOURCE LINE # 399
- MOV P0,#040H
- ; SOURCE LINE # 400
- CLR smg2
- ; SOURCE LINE # 401
- R LCALL L?0151
- ; SOURCE LINE # 402
- SETB smg2
- ; SOURCE LINE # 403
- MOV P0,#040H
- ; SOURCE LINE # 404
- CLR smg3
- ; SOURCE LINE # 405
- R LCALL L?0151
- ; SOURCE LINE # 406
- SETB smg3
- ; SOURCE LINE # 407
- RET
- ; FUNCTION djsxs22 (END)
- ; FUNCTION djsxs1 (BEGIN)
- djsxs1:
- ; SOURCE LINE # 408
- ; SOURCE LINE # 409
- ; SOURCE LINE # 410
- R MOV P0,table+03H
- ; SOURCE LINE # 411
- ; SOURCE LINE # 412
- R LCALL L?0149
- ; SOURCE LINE # 413
- SETB smg1
- ; SOURCE LINE # 414
- RET
- ; FUNCTION djsxs1 (END)
- ; FUNCTION djsxs2 (BEGIN)
- djsxs2:
- ; SOURCE LINE # 415
- ; SOURCE LINE # 416
- ; SOURCE LINE # 417
- R MOV P0,table+05H
- ; SOURCE LINE # 418
- ; SOURCE LINE # 419
- R LCALL L?0150
- ; SOURCE LINE # 420
- SETB smg1
- ; SOURCE LINE # 421
- RET
- ; FUNCTION djsxs2 (END)
- ; FUNCTION djsxs3 (BEGIN)
- djsxs3:
- ; SOURCE LINE # 422
- ; SOURCE LINE # 423
- ; SOURCE LINE # 424
- R MOV P0,table+07H
- ; SOURCE LINE # 425
- ; SOURCE LINE # 426
- R LCALL L?0150
- ; SOURCE LINE # 427
- SETB smg1
- ; SOURCE LINE # 428
- RET
- ; FUNCTION djsxs3 (END)
- ; FUNCTION djsxs4 (BEGIN)
- djsxs4:
- ; SOURCE LINE # 429
- ; SOURCE LINE # 430
- ; SOURCE LINE # 431
- R MOV P0,table+09H
- ; SOURCE LINE # 432
- ; SOURCE LINE # 433
- R LCALL L?0150
- ; SOURCE LINE # 434
- SETB smg1
- ; SOURCE LINE # 435
- RET
- ; FUNCTION djsxs4 (END)
- ; FUNCTION djsxs5 (BEGIN)
- djsxs5:
- ; SOURCE LINE # 436
- ; SOURCE LINE # 437
- ; SOURCE LINE # 438
- R MOV P0,table+0BH
- ; SOURCE LINE # 439
- ; SOURCE LINE # 440
- R LCALL L?0150
- ; SOURCE LINE # 441
- SETB smg1
- ; SOURCE LINE # 442
- RET
- ; FUNCTION djsxs5 (END)
- ; FUNCTION djsxs6 (BEGIN)
- djsxs6:
- ; SOURCE LINE # 443
- ; SOURCE LINE # 444
- ; SOURCE LINE # 445
- R MOV P0,table+0DH
- ; SOURCE LINE # 446
- ; SOURCE LINE # 447
- R LCALL L?0150
- ; SOURCE LINE # 448
- SETB smg1
- ; SOURCE LINE # 449
- RET
- ; FUNCTION djsxs6 (END)
- ; FUNCTION djsxs7 (BEGIN)
- djsxs7:
- ; SOURCE LINE # 450
- ; SOURCE LINE # 451
- ; SOURCE LINE # 452
- R MOV P0,table+0FH
- ; SOURCE LINE # 453
- ; SOURCE LINE # 454
- R LCALL L?0150
- ; SOURCE LINE # 455
- SETB smg1
- ; SOURCE LINE # 456
- RET
- ; FUNCTION djsxs7 (END)
- ; FUNCTION djsxs8 (BEGIN)
- djsxs8:
- ; SOURCE LINE # 457
- ; SOURCE LINE # 458
- ; SOURCE LINE # 459
- R MOV P0,table+011H
- ; SOURCE LINE # 460
- ; SOURCE LINE # 461
- R LCALL L?0150
- ; SOURCE LINE # 462
- SETB smg1
- ; SOURCE LINE # 463
- RET
- ; FUNCTION djsxs8 (END)
- TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴字码表
- END
复制代码
-
-
OctalContestResponder.zip
39 KB, 下载次数: 2
作者: 轻狂书生 时间: 2016-12-30 13:10
多谢大神帮忙啊~~~~
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |