DJNZ R7,A2
MOV R0,#60H MOV DPTR,#1000H MOV R7,#10H A3:MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,A3 HERE:AJMP HERE END
4、思考题:试编写程序:求N的平方(0≤N≤9),并将结果送RAM的30H单元中
实验一 熟悉实验系统及51 指令练习
一. 实验要求
本实验包含三个程序:
1. 指定存储器中某块的起始地址和长度,要求能将其内容清零。 2. 将给定的一个二进制数转换成二十进制(BCD)码。 3. 给出一个十六进制数,将其转换成ASCⅡ码值。 二. 实验目的
1.熟练运用Keil 开发软件调试汇编语言程序。 2.掌握存储器读写方法。 3.掌握简单的数值转换算法。
4.了解十六进制数和ASCⅡ值的区别。 三. 实验说明
1.首先进入Keil 开发环境,输入相应的程序,编译后运行,查看结果是否正确。
2.程序1 学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程、调试方法,如
何将存储器块的内容置成某固定值(例全填充为0FFH)?请修改程序,完成此操作。 3.程序2 是计算机中数值的各种表达方法,这是计算机的基础。掌握各种数制之间的转换是一种基
本功,有兴趣的同学可以试试将BCD 码转换成二进制码。 4.程序3 主要让是使学生了解数值的BCD 码和ASCⅡ码的区别,利用查表功能可快速地进行数值转
换,进一步了解数值的各种表达方式。
要求独立编程,程序不能完全相同。上机调试通过方可获得成绩,否则按不及格处理,
实验报告的填写,字迹清晰、条理分明、不准抄袭、雷同!要求独立思考,独立撰写!
实验三 MCS-51 内部接口实验
一.实验要求
本实验包含三部分内容: (一)P1 口输入、输出实验
1. p1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 2. P1 口既做输入又做输出,将两个开关的状态在四个发光二极管上显示出来。 (二)外部中断实验
用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。 (三)定时器实验 用8031 内部定时器,每0.1 秒钟T1 溢出中断一次。P1 口的P1.0~P1.7 分别接发光二极管的L1~
L8。要求编写程序模拟一循环彩灯。 二.实验目的
1.掌握p1 口的使用方法和延时子程序的编写及使用。 2.进一步学习多分支结构程序的编程方法。
3.学习外部中断技术的基本使用及中断处理程序的编程方法。
4.学习8031 内部计数器的使用和编程方法,掌握中断处理程序的编写方法。 三. 实验说明
(一)P1 口输入、输出实验
1.连线:P1.0~P1.7 接发光二极管L1~L8(见图23)
P1 口为准双向口,P1 口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器
相应位写入“1”,该位才能作为输入。
为使发光二极管循环点亮,需要有一定的延时,现常用的有两种方法,一是用定时器中断来实现,一
是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us 即1÷0.512us。现要写一个延时0.1s
的程序,可大致写出如下: MOV R7,#X (1)
DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4) RET
上面MOV、DJNZ 指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X 值: 1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10? 指令(1) 指令(2) 指令(3) 指令(4) 所需时间 所需时间 所需时间 所需时间
X=(0.1××10?-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH 经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。
实验一、清零程序(2学时)
1、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作 2、实验内容
把7000H~70FF的内容清零
3、思考如何将3500~35FF单元内容清零
实验二、数据传送子程序(2学时)
1、实验目的
掌握RAM中的数据操作 2、实验内容
把(R2、R3)源RAM区内的(R6、R7)字节数据,传送到(R4、R5)目的RAM区
3、思考如何将(40H、50H)源RAM区内的(20H、30H)字节数据,传送到(10H、60H)目的RAM区
实验三、数据排序实验(2学时)
1、实验目的
熟悉8051指令系统,掌握程序设计方法 2、实验内容
编写并调试一个排序子程序,将内存RAM中几个单元字节无符号的正整数,按从大到小的次序重新排列
3、思考如何编写并调试一个排序子程序,将内存RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列
实验四、多分支程序设计(2学时)
1、实验目的 掌握汇编语言的编程 2、实验内容
编写散转程序,根据8032片内20H中的内容(00或01或02或03)进行散转
实验五、定时器/计数器 8253A的应用(3学时)
1、实验目的
(1)、学会8253A芯片和微机接口原理和方法
(2)、掌握8253A定时器/计数器的工作方式和编程原理 2、实验内容
8253A的0通道工作在方式3产生方波 3、实验步骤
①用插针把8253的CLK0插孔和分频输出端T2插孔相连 ②8253的GATE0插孔和+5V插孔相连
③8253的片选信号8253CS和译码输出端Y4相连 ④KBB拨在左边OFF位置
⑤用排线将SIO区的D0—D7连到BUS2区XD0—XD7
⑥在“P.....”状态下,从起始地址08C0H开始连续运行程序,
用示波器测8253的0通道输出端OUTO,应有方波产生。
实验六、P3.3输入、P1口输出(3学时)
1、实验目的
(1)、掌握P3口、P1口简单使用。
(2)、学习延时程序的编写和使用。? 2、实验内容
(1)、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口
按十六进制加一。
(2)、P1口做输出口,编写程序,使P1口接的8个发光二极
管L1—L8按16进制加一方式点亮发光二极管。
3、实验说明
(1)、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。?
(2)、延时子程序的延时计算问题。 对于延时程序
DELAY :MOV R6, #00H DELAY1:MOV R7, #80H DJNZ R7, $ DJNZ R6, DELAY1
查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms
4、实验步骤
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库《MCS-51单片机原理及应用》实验指导书涛(6)在线全文阅读。
相关推荐: