C语言转汇编语言(把下面的C语言转成单片机汇编语言) 把下面的C语言转换成c51汇编语言

\u6c42\u628a\u4e0b\u9762\u7684C\u8bed\u8a00 \u8f6c\u53d8\u6210\u5355\u7247\u673a\u6c47\u7f16\u8bed\u8a00

\u5728KEIL\u4e2d\u7f16\u8bd1\u901a\u8fc7\u540e\uff0c\u70b9\u51fb\u201cDebug\u201d\u83dc\u5355\u201cStart\u201d\u547d\u4ee4\uff0c\u7136\u540e\uff0c\u70b9\u51fb\u201cView\u201d\u83dc\u5355\u201cDisassembly Windows\u201d\u547d\u4ee4\uff0c\u5c31\u53ef\u4ee5\u770b\u5230\u6c47\u7f16\u4ee3\u7801\u4e86\u3002
C:0x0000 020014 LJMP C:0014
4: void main()
5: {
6: IN=1;OUT=0;
C:0x0003 D295 SETB IN(0x90.5)
C:0x0005 C2B5 CLR OUT(0xB0.5)
7: while(1)
8: {
9: if(!IN)
C:0x0007 209506 JB IN(0x90.5),C:0010
10: {
11: OUT=1;IN=1;
C:0x000A D2B5 SETB OUT(0xB0.5)
C:0x000C D295 SETB IN(0x90.5)
12: }
13: else
C:0x000E 80F7 SJMP C:0007
14: {
15: OUT=0;
C:0x0010 C2B5 CLR OUT(0xB0.5)
16: }
C:0x0012 80F3 SJMP C:0007
C:0x0014 787F MOV R0,#0x7F
C:0x0016 E4 CLR A
C:0x0017 F6 MOV @R0,A
C:0x0018 D8FD DJNZ R0,C:0017
C:0x001A 758107 MOV SP(0x81),#0x07
C:0x001D 020003 LJMP main(C:0003)
\u624b\u5de5\u7f16\u5199\u7684\u6c47\u7f16\u7a0b\u5e8f\u5982\u4e0b\uff1a
ORG 0
LJMP START
ORG 30H
START: SETB P1.5
CLR P3.5
L1: JB P1.5,L2
SETB P3.5
SETB P1.5
SJMP L1
L2: CLR P3.5
SJMP L1
END

\u70b9\u51fb\u5de5\u5177\u680f\u4e0a\u4e00\u4e2a\u7ea2\u8272\u7684"D"\uff0c\u8fdb\u5165\u8c03\u8bd5\u72b6\u6001\uff0c\u518d\u628a\u9f20\u6807\u70b9\u5230c\u4ee3\u7801\u5904\uff0c\u53f3\u952e\u67e5\u770b\u6c47\u7f16\u4ee3\u7801\uff0c\u5c31\u53ef\u4ee5\u770b\u5230\u6240\u4ee5c\u7f16\u8bd1\u540e\u7684\u6c47\u7f16\u4ee3\u7801\u4e86\u3002\u4f46\u8fd9\u4e2a\u4ee3\u7801\u548c\u7528\u6c47\u7f16\u5199\u7684\u7a0b\u5e8f\u4e0d\u4e00\u6837

org 0000h
sjmp main
_mDelay:
; SOURCE LINE # 9
;---- Variable 'Delay?040' assigned to Register 'R6/R7' ----
; { unsigned int i;
; SOURCE LINE # 10
; for(;Delay>0;Delay--)
; SOURCE LINE # 11
?C0001:
SETB C
MOV A,R7
SUBB A,#00H
MOV A,R6
SUBB A,#00H
JC ?C0007
; {for(i=0;i<10000;i++);}//200ms
; SOURCE LINE # 12
;---- Variable 'i?041' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0004:
INC R5
CJNE R5,#00H,?C0013
INC R4
?C0013:
CJNE R4,#027H,?C0004
CJNE R5,#010H,?C0004
?C0003:
MOV A,R7
DEC R7
JNZ ?C0001
DEC R6
?C0014:
SJMP ?C0001
; }
; SOURCE LINE # 13
?C0007:
RET
; END OF _mDelay

; void main()

main:
USING 0
; SOURCE LINE # 14
; {
; SOURCE LINE # 15
?C0008:
; unsigned int x;
; while(1) /*while语句,后面括号里1,表示无终止执行循环语句*/
; SOURCE LINE # 17
; {
; SOURCE LINE # 18
; P1=0xFF;//P1口作为输入口省. /*把0xFF这个数赋值给P1这个变量*/
; SOURCE LINE # 19
MOV P1,#0FFH
; x=P1&&0x0F; /*P1&&0x0F的运算结果是1,再把1赋值给x */
; SOURCE LINE # 20
MOV A,P1
MOV R6,#00H
JZ ?C0010
MOV R7,#01H
SJMP ?C0011
?C0010:
MOV R7,#00H
?C0011:
;---- Variable 'x?142' assigned to Register 'R2/R3' ----
MOV R3,AR7
MOV R2,AR6
; P1=0x00; /*把0赋值给P1,这时P1的值就变成0啦*/
; SOURCE LINE # 21
CLR A
MOV P1,A
; //P0=0xFF;//P0口的特殊之处就是需要先初始化然后再读入正确的值
; P1_7=1; /*电磁阀2开启*/
; SOURCE LINE # 23
SETB P1^7
; P1_6=0; /*电磁阀1关闭*/
; SOURCE LINE # 24
CLR P1^6
; mDelay(x+1); /*调用mDelay这个函数,相当于把这边括号里的x+1代入到上面mDelay函数里的Delay变量*/
; SOURCE LINE # 25
MOV A,R3
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R2
MOV R6,A
LCALL _mDelay
; P1_7=0; /*电磁阀2关闭*/
; SOURCE LINE # 26
CLR P1^7
; mDelay(16-x); /*又一次调用mDelay函数*/
; SOURCE LINE # 27
CLR C
MOV A,#010H
SUBB A,R3
MOV R7,A
CLR A
SUBB A,R2
MOV R6,A
LCALL _mDelay
; P1_6=1; /*电磁阀1开启*/
; SOURCE LINE # 28
SETB P1^6
; mDelay(16); /*再一次调用mDelay函数*/
; SOURCE LINE # 29
MOV R7,#010H
MOV R6,#00H
LCALL _mDelay
; P1_7=1; /*电磁阀2开启*/
; SOURCE LINE # 30
SETB P1^7
; P1_6=0; /*电磁阀1关闭*/
; SOURCE LINE # 31
CLR P1^6
; }
; SOURCE LINE # 32
SJMP ?C0008
; END OF main

END

看着累,你直接告诉我各个口及需要达到的指标,延时多少就行

#include <reg52.h>
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
#define DAC0800 P0 //DAC0800数据总线接P3
uchar code led[]={ 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,
0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x00 }; //数码管码表
uchar code scan[]={ 0xf7,0xfb,0xfd,0xfe }; //键盘行扫描码
uchar code sin[256]=
{ 127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,
176,179,182,184,187,190,193,195,198,200,203,205,208,210,213,215,
217,219,221,224,226,228,229,231,233,235,236,238,239,241,242,244,
245,246,247,248,249,250,251,251,252,253,253,254,254,254,254,254,
254,254,254,254,254,254,253,253,252,251,251,250,249,248,247,246,
245,244,242,241,239,238,236,235,233,231,229,228,226,224,221,219,
217,215,213,210,208,205,203,200,198,195,193,190,187,184,182,179,
176,173,170,167,164,161,158,155,152,149,146,143,139,136,133,130,
127,124,121,118,115,111,108,105,102,99,96,93,90,87,84,81,
78,75,72,70,67,64,61,59,56,54,51,49,46,44,41,39,
37,35,33,30,28,26,25,23,21,19,18,16,15,13,12,10,
9,8,7,6,5,4,3,3,2,1,1,0,0,0,0,0,
0,0,0,0,0,0,1,1,2,3,3,4,5,6,7,8,
9,10,12,13,15,16,18,19,21,23,25,26,28,30,33,35,
37,39,41,44,46,49,51,54,56,59,61,64,67,70,72,75,
78,81,84,87,90,93,96,99,102,105,108,111,115,118,121,124 };
uchar disp[4]={16,16,16,16}; //数码管显示缓冲区
//数码管位选接P1低四位,段选接P0
//键盘接P2
sbit LOCK=P1^4; //74573锁存端
uchar keyval=16; //键值
uchar keydigitcount=0; //数字键计数
uchar keyselcount=0; //选择键计数
uint x,freq; //频率参数
void Delay(uint x);
void Display();
void Keyscan();
void Keydisp();
void RecWave(uchar t);
void ZigWave(uint t);
void TriWave(uchar t);
void SinWave(uchar t);
/*------------------ 主函数 --------------------*/
void main()
{
x = 0;
freq = 2;
while(1)
{
Display(); //调用数码管显示函数
// Keyscan(); //调用键盘扫描函数
TriWave(2);
}
}
/*------------------ 方波产生 ------------------*/
void RecWave(uchar t)
{
uchar i;
DAC0800 = 0xff;
for(i=0;i<255;i++)
Delay(t);
DAC0800 = 0x00;
for(i=0;i<255;i++)
Delay(t);
}
/*----------------- 锯齿波产生 -----------------*/
void ZigWave(uint t)
{
uchar i;
for(i=0;i<255;i++)
{
DAC0800 = i;
Delay(t);
}
DAC0800=255;
Delay(t);
}
/*----------------- 三角波产生 -----------------*/
void TriWave(uchar t)
{
uchar i;
for(i=0;i<255;i++)
{
DAC0800 = i;
Delay(t);
}
for(i=255;i>0;i--)
{
DAC0800 = i;
Delay(t);
}
}
/*----------------- 正弦波产生 -----------------*/
void SinWave(uchar t)
{
uchar i;
for(i=0;i<255;i++)
{
DAC0800 = sin[i];
Delay(t);
}
DAC0800=124;
Delay(t);
}
/*-------------------- 延时 --------------------*/
void Delay(uint x)
{
uint i;
for(i=x;i>0;i--);
}
/*----------------- 数码管显示 -----------------*/
void Display()
{
uchar i,j;
j=0x08;
for(i=0;i<4;i++)
{
P1=j; //数码管位码输出
LOCK=1; //打开锁存
P0=led[disp[i]]; //数码管段码输出
LOCK=0; //关闭锁存
j=j>>1; //调整位码
Delay(125);
P0=0x00;
}
}
/*------------------ 键盘扫描 ------------------*/
void Keyscan()
{
uchar col,i;
P2=0xf0; //行线输出全低
col=P2&0xf0;
if(col==0xf0) return; //无键,返回
Delay(20); //延时消抖
P2=0xf0; //重新检测有键按下否
col=P2&0xf0;
if(col==0xf0) return; //无键,返回
switch(col) //判断按键所在的列
{
case 0xe0: keyval=0; break;
case 0xd0: keyval=1; break;
case 0xb0: keyval=2; break;
case 0x70: keyval=3; break;
}
for(i=0;i<4;i++)
{
P2=scan[i]; //输出键盘扫描码
col=P2&0xf0;
if(col!=0xf0) break; //有键按下
}
keyval+=i*4; //计算键值
while(col!=0xf0) //等待按键松开
{
Display();
col=P2&0xf0;
}
Keydisp(); //调用键盘处理函数
}
/*------------------ 键盘处理 ------------------*/
void Keydisp()
{
if(keyval==10) //选择键处理
{
keyselcount++;
switch(keyselcount) //选择信号波形
{
case 1:
RecWave(freq); //调用方波产生函数
break;
case 2:
ZigWave(freq); //调用锯齿波产生函数
break;
case 3:
TriWave(freq); //调用三角波产生函数
break;
case 4:
SinWave(freq); //调用正弦波产生函数
break;
}
if(keyselcount==4) keyselcount=1;
}
if(keyval<10) //数字键处理
{
keydigitcount++;
disp[keydigitcount-1] = keyval;
x = x*10 + x; //计算信号频率
if(keydigitcount==4)
{
keydigitcount=1;
freq = x;
x = 0;
}
}
}
如何转换

NAME
MAIN
P0
DATA
080H
P1
DATA
090H
P2
DATA
0A0H
P3
DATA
0B0H
T0
BIT
0B0H.4
AC
BIT
0D0H.6
T1
BIT
0B0H.5
EA
BIT
0A8H.7
IE
DATA
0A8H
RD
BIT
0B0H.7
P1_6
BIT
090H.6
P1_7
BIT
090H.7
ES
BIT
0A8H.4
IP
DATA
0B8H
RI
BIT
098H.0
INT0
BIT
0B0H.2
CY
BIT
0D0H.7
TI
BIT
098H.1
INT1
BIT
0B0H.3
PS
BIT
0B8H.4
SP
DATA
081H
OV
BIT
0D0H.2
WR
BIT
0B0H.6
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
ACC
DATA
0E0H
ET0
BIT
0A8H.1
ET1
BIT
0A8H.3
TF0
BIT
088H.5
TF1
BIT
088H.7
RB8
BIT
098H.2
TH0
DATA
08CH
EX0
BIT
0A8H.0
IT0
BIT
088H.0
TH1
DATA
08DH
TB8
BIT
098H.3
EX1
BIT
0A8H.2
IT1
BIT
088H.2
P
BIT
0D0H.0
SM0
BIT
098H.7
TL0
DATA
08AH
SM1
BIT
098H.6
TL1
DATA
08BH
SM2
BIT
098H.5
PT0
BIT
0B8H.1
PT1
BIT
0B8H.3
RS0
BIT
0D0H.3
TR0
BIT
088H.4
RS1
BIT
0D0H.4
TR1
BIT
088H.6
PX0
BIT
0B8H.0
PX1
BIT
0B8H.2
DPH
DATA
083H
DPL
DATA
082H
REN
BIT
098H.4
RXD
BIT
0B0H.0
TXD
BIT
0B0H.1
F0
BIT
0D0H.5
PSW
DATA
0D0H
?PR?_mDelay?MAIN
SEGMENT
CODE
?PR?main?MAIN
SEGMENT
CODE
EXTRN
CODE
(?C_STARTUP)
PUBLIC
main
PUBLIC
_mDelay
;
#include
<reg51.h>
;
;
sbit
P1_7
=
P1^7;
;
sbit
P1_6
=
P1^6;
;
;
void
mDelay(unsigned
int
Delay)
RSEG
?PR?_mDelay?MAIN
_mDelay:
USING
0
;
SOURCE
LINE
#
6
;----
Variable
'Delay?040'
assigned
to
Register
'R6/R7'
----
;
{
unsigned
int
i;
;
SOURCE
LINE
#
7
;
for(;Delay>0;Delay--)
;
SOURCE
LINE
#
8
?C0001:
SETB
C
MOV
A,R7
SUBB
A,#00H
MOV
A,R6
SUBB
A,#00H
JC
?C0007
;
{for(i=0;i<10000;i++);}//200ms
;
SOURCE
LINE
#
9
;----
Variable
'i?041'
assigned
to
Register
'R4/R5'
----
CLR
A
MOV
R5,A
MOV
R4,A
?C0004:
INC
R5
CJNE
R5,#00H,?C0013
INC
R4
?C0013:
CJNE
R4,#027H,?C0004
CJNE
R5,#010H,?C0004
?C0003:
MOV
A,R7
DEC
R7
JNZ
?C0001
DEC
R6
?C0014:
SJMP
?C0001
;
}
;
SOURCE
LINE
#
10
?C0007:
RET
;
END
OF
_mDelay
;
void
main()
RSEG
?PR?main?MAIN
main:
USING
0
;
SOURCE
LINE
#
11
;
{
;
SOURCE
LINE
#
12
?C0008:
;
unsigned
int
x;
;
while(1)
/*while语句,后面括号里1,表示无终止执行循环语句*/
;
SOURCE
LINE
#
14
;
{
;
SOURCE
LINE
#
15
;
P1=0xFF;//P1口作为输入口省.
/*把0xFF这个数赋值给P1这个变量*/
;
SOURCE
LINE
#
16
MOV
P1,#0FFH
;
x=P1&&0x0F;
/*P1&&0x0F的运算结果是1,再把1赋值给x
*/
;
SOURCE
LINE
#
17
MOV
A,P1
MOV
R6,#00H
JZ
?C0010
MOV
R7,#01H
SJMP
?C0011
?C0010:
MOV
R7,#00H
?C0011:
;----
Variable
'x?142'
assigned
to
Register
'R2/R3'
----
MOV
R3,AR7
MOV
R2,AR6
;
P1=0x00;
/*把0赋值给P1,这时P1的值就变成0啦*/
;
SOURCE
LINE
#
18
CLR
A
MOV
P1,A
;
//P0=0xFF;//P0口的特殊之处就是需要先初始化然后再读入正确的值
;
P1_7=1;
/*电磁阀2开启*/
;
SOURCE
LINE
#
20
SETB
P1_7
;
P1_6=0;
/*电磁阀1关闭*/
;
SOURCE
LINE
#
21
CLR
P1_6
;
mDelay(x+1);
/*调用mDelay这个函数,相当于把这边括号里的x+1代入到上面mDelay函数里的Delay变量*/
;
SOURCE
LINE
#
22
MOV
A,R3
ADD
A,#01H
MOV
R7,A
CLR
A
ADDC
A,R2
MOV
R6,A
LCALL
_mDelay
;
P1_7=0;
/*电磁阀2关闭*/
;
SOURCE
LINE
#
23
CLR
P1_7
;
mDelay(16-x);
/*又一次调用mDelay函数*/
;
SOURCE
LINE
#
24
CLR
C
MOV
A,#010H
SUBB
A,R3
MOV
R7,A
CLR
A
SUBB
A,R2
MOV
R6,A
LCALL
_mDelay
;
P1_6=1;
/*电磁阀1开启*/
;
SOURCE
LINE
#
25
SETB
P1_6
;
mDelay(16);
/*再一次调用mDelay函数*/
;
SOURCE
LINE
#
26
MOV
R7,#010H
MOV
R6,#00H
LCALL
_mDelay
;
P1_7=1;
/*电磁阀2开启*/
;
SOURCE
LINE
#
27
SETB
P1_7
;
P1_6=0;
/*电磁阀1关闭*/
;
SOURCE
LINE
#
28
CLR
P1_6
;
}
;
SOURCE
LINE
#
29
SJMP
?C0008
;
END
OF
main
END

NAME
MAIN
P0
DATA
080H
P1
DATA
090H
P2
DATA
0A0H
P3
DATA
0B0H
T0
BIT
0B0H.4
AC
BIT
0D0H.6
T1
BIT
0B0H.5
EA
BIT
0A8H.7
IE
DATA
0A8H
RD
BIT
0B0H.7
P1_6
BIT
090H.6
P1_7
BIT
090H.7
ES
BIT
0A8H.4
IP
DATA
0B8H
RI
BIT
098H.0
INT0
BIT
0B0H.2
CY
BIT
0D0H.7
TI
BIT
098H.1
INT1
BIT
0B0H.3
PS
BIT
0B8H.4
SP
DATA
081H
OV
BIT
0D0H.2
WR
BIT
0B0H.6
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
ACC
DATA
0E0H
ET0
BIT
0A8H.1
ET1
BIT
0A8H.3
TF0
BIT
088H.5
TF1
BIT
088H.7
RB8
BIT
098H.2
TH0
DATA
08CH
EX0
BIT
0A8H.0
IT0
BIT
088H.0
TH1
DATA
08DH
TB8
BIT
098H.3
EX1
BIT
0A8H.2
IT1
BIT
088H.2
P
BIT
0D0H.0
SM0
BIT
098H.7
TL0
DATA
08AH
SM1
BIT
098H.6
TL1
DATA
08BH
SM2
BIT
098H.5
PT0
BIT
0B8H.1
PT1
BIT
0B8H.3
RS0
BIT
0D0H.3
TR0
BIT
088H.4
RS1
BIT
0D0H.4
TR1
BIT
088H.6
PX0
BIT
0B8H.0
PX1
BIT
0B8H.2
DPH
DATA
083H
DPL
DATA
082H
REN
BIT
098H.4
RXD
BIT
0B0H.0
TXD
BIT
0B0H.1
F0
BIT
0D0H.5
PSW
DATA
0D0H
?PR?_mDelay?MAIN
SEGMENT
CODE
?PR?main?MAIN
SEGMENT
CODE
EXTRN
CODE
(?C_STARTUP)
PUBLIC
main
PUBLIC
_mDelay
;
#include
<reg51.h>
;
;
sbit
P1_7
=
P1^7;
;
sbit
P1_6
=
P1^6;
;
;
void
mDelay(unsigned
int
Delay)
RSEG
?PR?_mDelay?MAIN
_mDelay:
USING
0
;
SOURCE
LINE
#
6
;----
Variable
'Delay?040'
assigned
to
Register
'R6/R7'
----
;
{
unsigned
int
i;
;
SOURCE
LINE
#
7
;
for(;Delay>0;Delay--)
;
SOURCE
LINE
#
8
?C0001:
SETB
C
MOV
A,R7
SUBB
A,#00H
MOV
A,R6
SUBB
A,#00H
JC
?C0007
;
{for(i=0;i<10000;i++);}//200ms
;
SOURCE
LINE
#
9
;----
Variable
'i?041'
assigned
to
Register
'R4/R5'
----
CLR
A
MOV
R5,A
MOV
R4,A
?C0004:
INC
R5
CJNE
R5,#00H,?C0013
INC
R4
?C0013:
CJNE
R4,#027H,?C0004
CJNE
R5,#010H,?C0004
?C0003:
MOV
A,R7
DEC
R7
JNZ
?C0001
DEC
R6
?C0014:
SJMP
?C0001
;
}
;
SOURCE
LINE
#
10
?C0007:
RET
;
END
OF
_mDelay
;
void
main()
RSEG
?PR?main?MAIN
main:
USING
0
;
SOURCE
LINE
#
11
;
{
;
SOURCE
LINE
#
12
?C0008:
;
unsigned
int
x;
;
while(1)
/*while语句,后面括号里1,表示无终止执行循环语句*/
;
SOURCE
LINE
#
14
;
{
;
SOURCE
LINE
#
15
;
P1=0xFF;//P1口作为输入口省.
/*把0xFF这个数赋值给P1这个变量*/
;
SOURCE
LINE
#
16
MOV
P1,#0FFH
;
x=P1&&0x0F;
/*P1&&0x0F的运算结果是1,再把1赋值给x
*/
;
SOURCE
LINE
#
17
MOV
A,P1
MOV
R6,#00H
JZ
?C0010
MOV
R7,#01H
SJMP
?C0011
?C0010:
MOV
R7,#00H
?C0011:
;----
Variable
'x?142'
assigned
to
Register
'R2/R3'
----
MOV
R3,AR7
MOV
R2,AR6
;
P1=0x00;
/*把0赋值给P1,这时P1的值就变成0啦*/
;
SOURCE
LINE
#
18
CLR
A
MOV
P1,A
;
//P0=0xFF;//P0口的特殊之处就是需要先初始化然后再读入正确的值
;
P1_7=1;
/*电磁阀2开启*/
;
SOURCE
LINE
#
20
SETB
P1_7
;
P1_6=0;
/*电磁阀1关闭*/
;
SOURCE
LINE
#
21
CLR
P1_6
;
mDelay(x+1);
/*调用mDelay这个函数,相当于把这边括号里的x+1代入到上面mDelay函数里的Delay变量*/
;
SOURCE
LINE
#
22
MOV
A,R3
ADD
A,#01H
MOV
R7,A
CLR
A
ADDC
A,R2
MOV
R6,A
LCALL
_mDelay
;
P1_7=0;
/*电磁阀2关闭*/
;
SOURCE
LINE
#
23
CLR
P1_7
;
mDelay(16-x);
/*又一次调用mDelay函数*/
;
SOURCE
LINE
#
24
CLR
C
MOV
A,#010H
SUBB
A,R3
MOV
R7,A
CLR
A
SUBB
A,R2
MOV
R6,A
LCALL
_mDelay
;
P1_6=1;
/*电磁阀1开启*/
;
SOURCE
LINE
#
25
SETB
P1_6
;
mDelay(16);
/*再一次调用mDelay函数*/
;
SOURCE
LINE
#
26
MOV
R7,#010H
MOV
R6,#00H
LCALL
_mDelay
;
P1_7=1;
/*电磁阀2开启*/
;
SOURCE
LINE
#
27
SETB
P1_7
;
P1_6=0;
/*电磁阀1关闭*/
;
SOURCE
LINE
#
28
CLR
P1_6
;
}
;
SOURCE
LINE
#
29
SJMP
?C0008
;
END
OF
main
END

  • 鎶婁笅闈㈢殑c璇█鏀逛负姹囩紪璇█
    绛旓細浣犺嚜宸卞厛鐢ㄧ紪璇戝櫒灏嗕笂杩C绋嬪簭缂栬瘧鎴愪簩杩涘埗鏂囦欢锛岀劧鍚庣敤鐩稿叧鐨勫弽缂栬瘧杞欢锛堝浼熺锛夊氨鍙互鎴姹囩紪锛岃嚜宸卞灏濊瘯鍚с
  • c璇█杞崲鎴愭眹缂栬瑷
    绛旓細濡備笅鍗冲彲锛歄RG 0000H LJMP START ORG 0003H LJMP X0_INT ORG 0013H LJMP X1_INT ORG 0030H START:SETB IT0 SETB IT1 SETB EX0 SETB EX1 SETB EA ;--- MOV A, #0FEH LOOP:MOV P1, A CALL DELAY RL A SJMP LOOP ;--- X0_INT:PUSH ...
  • 姹鎶奵璇█杞崲鎴愭眹缂栬瑷
    绛旓細鐢 Keil uVision3 缂栬瘧璋冭瘯 鏃, 鍚姩 璋冭瘯鍚 锛屽彲浠ユ煡鐪嬪搴旂殑姹囩紪绋嬪簭 濡傚浘 绾㈤鑹茬殑鏄 C 婧愮▼搴忥紝姹囩紪鎸囦护鍓嶉潰 鏄 51鏈哄櫒浠g爜銆
  • 鎬庝箞鎶婁笅闈㈢殑c璇█绋嬪簭鏀规垚姹囩紪璇█,鐢ㄧ殑鏄痗28x鑺墖
    绛旓細0x寮澶达紝琛ㄧず鏄崄鍏繘鍒讹紝鎵浠0x28af鏄崄鍏繘鍒讹紝鍗佸叚杩涘埗鐢╝琛ㄧず10锛宐琛ㄧず11...f琛ㄧず15锛0x28af杞寲鎴愬崄杩涘埗涓175
  • 璇灏嗕笅闈璇█杞崲鎴愭眹缂栬瑷 if(a==0||b==1) c=d+e;(鏄湪ARM鐘舵...
    绛旓細鎴戜笉鎳C璇█鍙細姹囩紪涓嶇煡閬撶紪鐨勫涓嶅銆俵dr r0, = a ldr r1, = b ldr r2, = c ldr r3, = d ldr r4, = e cmp r0, # 0 beq yunsuan cmp r1, # 1 beq yunsuan b tiaochu yuansuan:add r2, r3, r4 tiaochu:b tiaochu ...
  • C璇█鍙互鏀规垚姹囩紪璇█鍚?
    绛旓細鐞嗚涓婃潵璇碈璇█鏀规垚姹囩紪鏄畬鍏ㄥ彲浠ョ殑锛屽綋鐒跺疄闄呬笂杩樻槸鏈変竴瀹氶毦搴︺1銆佸畬鍏ㄦ墜宸ユ牴鎹C璇█鐨娴佺▼鍜岀洰鐨勶紝鏀圭紪鎴姹囩紪璇█锛岃繖鏍峰仛宸ヤ綔閲忓緢澶 2銆佸埄鐢ㄤ豢鐪熻蒋浠讹紝鍦ㄤ豢鐪熺幆澧冧笅锛屾槸鏈夌浉搴旂殑姹囩紪浠g爜鐨锛岃繖鏍峰仛宸ヤ綔閲忕浉瀵硅緝灏忥紝浣嗗彲璇绘ц緝宸
  • 濡備綍灏哻璇█绋嬪簭杞垚姹囩紪璇█绋嬪簭銆
    绛旓細濡傛灉鏄疺C鍒欏湪缂栬瘧鍣ㄥ懡浠よ鍙傛暟鍐嶅姞 /FA 鍒欎細鐢熸垚姹囩紪浠g爜銆傚鏋滃弬鏁版槸 /FAs 鍒欎細鍚屾椂灏嗘簮鐮佸拰姹囩紪浠g爜銆/FA 绋嬪簭闆嗕唬鐮侊紱.asm /FAc 鏈哄櫒鐮佸拰绋嬪簭闆嗕唬鐮侊紱.cod /FAs 婧愪唬鐮佸拰绋嬪簭闆嗕唬鐮侊紱.asm /FAcs 鏈哄櫒鐮併佹簮浠g爜鍜岀▼搴忛泦鐮侊紱.cod /Fa鐨勭敤娉 /Fa 涓虹紪璇戜腑鐨勬瘡涓簮浠g爜鏂囦欢鍒涘缓涓涓簮鏂囦欢....
  • 璇峰ぇ绁炲府蹇鎶奀璇█绋嬪簭鏀瑰啓鎴姹囩紪璇█,璋㈣阿浜
    绛旓細鎮ㄥソ锛岃繖鏍风殑锛歩nclude<REG52.H> sbit P10 = P1^0;sbit P11 = P1^1;void ONE(void)interrupt 1 { TL0 = 0xB0;TH0 = 0x3C;P11 = !P11;} void COU(void)interrupt 3 { P10 = !P10;} void main(void){ P1 = 0xff;TMOD = 0x61;TL0 = 0xb0;TH0 = 0x3C;TL1 = 0xF6;...
  • 姹傚ぇ绁灏嗕笅闈璇█绋嬪簭鐢8086姹囩紪璇█瀹炵幇
    绛旓細涓涓竴涓潵銆俤seg segment a db 'Hello ',0 b db 'World!',0 c db 13 dup(0) db '$'dseg endsassume cs:cseg, ds:dsegcseg segmentstart: mov ax, dseg mov ds, ax mov es, ax lea si, a lea di, c mov cx, b-a dec cx repnz movsb lea si, b ...
  • 璇峰摢浣嶉珮浜哄府鎴戞妸杩欐C璇█浠g爜杞崲鎴MIPS姹囩紪璇█
    绛旓細1 .file "6.c"2 .section .rodata 3 .LC0:4 .string "\350\257\267\350\276\223\345\205\245\344\270\200\344\270\252\345\255\227\347\254\246\344\270\262:"5 .align 8 6 .LC1:8 .text 9 .globl main 10 .type main, @function 11 main...
  • 扩展阅读:多国语言转换器 ... 万能文字转换器 ... c#语言翻译器 ... c语言转汇编在线 ... 下面属于高级语言的是 ... m下面两个点是什么语言 ... 各国语言在线转换器 ... c语言 汇编语言转换 ... c语言必背100代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网