实验一 跑马灯实验 一、实验目的与要求 熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。 熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、照接线图编写程序:使用P1口控制F5区的8个指示灯,循环点亮,瞬间只有一个灯亮。 2、观察实验结果,验证程序是否正确。 四、实验原理图 U421234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5(WR)P3.6(RD)P3.7XTAL2XTAL1GND89C52VccP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VppALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)4039383736353433323130292827262524232221510510510510510510510510DS42DS41DS40DS39DS38DS37DS36DS3587654321VCC五、实验步骤 1、连线说明: A3区:JP51 —— F5区:JP65 2、编写程序或运行参考程序。 3、实验结果:通过F5区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。 六、演示程序 ORG 0000H LJMP START ORG 0100H START: MOV SP,#60H MOV A,#0FFH CLR C R118R117R116R115R114R113R112R111
START1: RLC A MOV P1,A
ACALL Delay
SJMP START1 Delay: MOV R5,#2 ;延时 Delay1: MOV R6,#0 Delay2: MOV R7,#0 DJNZ R7,$ DJNZ R6,Delay2 DJNZ R5,Delay1 RET END
如果读者使用星研集成环境软件,请考虑以下问题? 1、运行程序前,打开变量窗;
2、使用单步进入命令,运行到第六行后,运行过程中变量窗有何变化?将鼠标停留在A、SP上一秒后,出现什么?,它与变量窗使用场合的区别?
3、第九行是调用延时子程序,如何进入延时子程序(使用单步进入命令)?如何将延时子程序一下子运行完毕(使用单步命令;也可以将光标移到下一行,使用运行到光标处命令;)?单步进入命令与单步命令有何区别?
4、运行几次后,在第十行设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?
5、Delay是一个延时子程序,改变延时常数,使用全速运行命令,显示发生了什么变化?
6、观察寄存器,有哪几种方法?
1)在工作区窗的通用寄存器标签视中; 2)变量窗
3)鼠标停留在寄存器上 4)观察窗 5)寄存器窗
实验二 数据传送(RAM–>XRAM)
一、实验目的
熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。 熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。
二、实验内容
1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、编写程序,实现内外部数据段的传送、校验。 三、程序框图
开始 堆栈指针初始化计数器、地址初始化内部RAM数据传送外部RAM一次地址指针+1 计数器-1=0?Y计数器、地址指针复位传送错误结束数据传送程序框图N取内部RAM和对应的外部RAMN比较是否相等Y地址指针+1 计数器-1=0?Y传送正确N
四、实验步骤
在内部RAM 30H ~3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H ~100FH中的内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。
五、程序清单 ;将内部RAM Address1 开始的16个字节送到外部RAM从Address2开始的单元里,再作比较。 Address1 DATA 30H Address2 XDATA 1000H ORG 0000H LJMP STAR ORG 0100H STAR: MOV SP,#60H MOV R0,#Address1
MOV DPTR,#Address2 MOV R7,#10H STAR1: MOV A,@R0 ;传送 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,STAR1 MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10H STAR2: MOV B,@R0 ;比较 MOVX A,@DPTR CJNE A,B,STAR3 INC R0 INC DPTR DJNZ R7,STAR2 SJMP $ ;传送正确 STAR3: SJMP $ ;传送错误 END
如果读者使用星研集成环境软件,请考虑以下问题:
1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?;
2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?将鼠标停留在A、SP、@R0、@DPTR上一秒后,出现什么?,它与变量窗使用场合的区别?
3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。
4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?
5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?运行结果是否正确?它与全速断点运行命令有何区别? 6、观察寄存器,有哪几种方法?
1)在工作区窗的通用寄存器标签视中; 2)变量窗
3)鼠标停留在寄存器上
4)观察窗 5)寄存器窗
7、查看CPU内部数据RAM、CPU片外数据RAM: 1)存贮器窗 2)变量窗
3)鼠标停留在CPU内部数据RAM、CPU片外数据RAM的地址、@R0、@DPTR上 六、思考题
编写一个程序,将外部数据RAM中的数据传送到内部数据RAM中。

