⼀.实验⽬的:
1.熟悉仿真器的软件使⽤环境及单⽚机汇编语⾔编程;
2.掌握多字节⼗进制加法的程序设计及实现⽅法。
⼆.实验内容:
编写多字节⼗进制加法程序,实现下式运算:
4574+6728=11302
要求:被加数在⽚内RAM区20H、21H单元;分别为学号(7),学号+1(8);
加数在⽚内RAM区30H、31H单元;分别为学号+2(9),学号+3(10);
结果在⽚内RAM区20H(最⾼位进位)、21H(⾼位)、22H(低位)单元。
铁水预处理
三.实验步骤:
1.开机启动Keil C51软件进⼊µVision2 集成开发环境,确认89C51处于软件仿真状态。
2.完成程序的设计、编辑、编译、连接。
3.进⼊DEBUG⽅式,打开存储器Memory 1窗⼝,在窗⼝Address栏键⼊D:20H;点击⿏标右键,选择最后⼀项Modify Memory ,输⼊被加数;在窗⼝Address栏键⼊D:30H;点击⿏标右键,选择最后⼀项Modify Memory ,输⼊加数。
4.调试和运⾏程序并记录存储器Memory 1窗⼝实验结果。
四.实验参考程序:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV A,20H
ADD A,30H
DA A
MOV 22H,A
MOV A,21H
ADDC A,31H
DA A
MOV 21H,A
CLR A
MOV R3,00H
ADDC A,R3
MOV 20H,A
SJMP $
END
开幅机五.实验截图:
实验总结:学会了多字节⼗进制加法程序设计,对keilc51有了更为熟练地掌握,也对程序有了更为深⼊的了解,课堂所学的理论以及⼀些不清楚的地⽅在实验中得到了答案。
⼀.实验⽬的:
2.加深I/O端⼝对外部电路驱动原理的理解。
⼆.实验内容:
P1⼝做输出,驱动8只发光⼆极管,编写程序,以1s的时间间隔使得⼀个发光⼆极管从左到右循环点亮。
三.实验步骤:
1.理解P1⼝内部结构,掌握P1⼝输出⾼低电平的原理。
2.看懂实验电路,完成接⼝连线(注意,接线时需要关闭实验箱电源)。
3.编写控制程序,注意延时循环的时间控制在1s
4.进⼊DEBUG⽅式,打开I/O⼝查看⼯具,监视P1⼝的输出变化。调试程序并观察发光⼆极管点亮情况。
。
四.实验参考程序:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN: MOV P2,#0FEH
LOOP: ACALL DELAY
MOV A,P2
RL A
MOV P2,A
AJMP LOOP
DELAY:
氧氟沙星甘露醇
MOV R3,#100
DELAY2: MOV R4,#100
DELAY3: MOV R5,#100
dc资源
DELAY1: DJNZ R5,$
DJNZ R4,DELAY3
DJNZ R3,DELAY2
RET
END
;说明:P1⼝接发光⼆极管
实验结果:输⼊代码调试好,通过烧写器可以看见单⽚机上的⼆极管呈周期性点亮,改动数据能改变它点亮的时间间隔。实验结果如下图所⽰: 实验总结:这次实验中花了很多时间去看电路图以及去理解代码,调整代码,对keil uVision软件的使⽤并不是很熟练,初次使⽤烧写器没到要烧⼊的⽂件忘记调芯⽚类型以及波特率,通过这次试验掌握了P1⼝输出端⼝的原理,也熟悉了代码程序的编写。
实验四 P⼝输⼊实验
⼀.实验⽬的:
kkrrrr1.掌握P3⼝输⼊端⼝的使⽤原理及编程⽅法;
2.加深I/O端⼝对外部电路驱动原理的理解。
⼆.实验内容:
通过⼿动按键K1-K3,循环读取P3.0-P3.3,并将结果显⽰在P2.0-P2.3的LED上,按键观察读⼊的值变化。
三.实验步骤:
1.理解I/O⼝读取外部电平原理.
2.进⼊DEBUG⽅式,打开I/O⼝查看⼯具,监视P3⼝的输出变化。
4.⽣成HEX⽂件,烧⼊实验板,按键并观察发光⼆极管闪烁情况。
。
四.实验参考程序:
ORG 0000H
SJMP 0030H
ORG 0030H
START:
抛丸处理LOOP: MOV C,P3.1
MOV P2.0,C ;读按键K1显⽰在D1 MOV C,P3.0
MOV P2.1,C ;读按键K2显⽰在D2
MOV C,P3.2
MOV P2.2,C ;读按键K3显⽰在D3
MOV C,P3.3
MOV P2.3,C ;读按键K4显⽰在D4
SJMP LOOP
END
;
说明:P2⼝接发光⼆极管