| |
《单片机原理及应用》实验指导
控制技术实验室
实验一
熟悉Keil c51集成开发环境及常用指令实验
(2课时,验证型)
一、实验目的
1)
了解8051典型应用系统的开发过程,熟悉Keil
C51集成开发环境。
2) 掌握单步执行程序,查看专用寄存器和单片机RAM的执行结果。
3) 掌握8051的寻址方式及常用指令的使用方法。
二、实验内容
1) 基本指令练习。
2) 数据传送(循环方式)。
3) 位操作指令。
4) 8051内部RAM的40H~4FH置初值A0H~AFH,然后将40H~4FH的内容传送到外部RAM中的C000H~C00FH单元,再把外部数据RAM中的C000H~C00FH单元的内容传送到8051内部RAM中的50H~5FH单元。
5) 调试下列程序,熟悉程序调试手段,观测程序运行结果。
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV SP,#6FH
MOV R0,#40H
MOV R1,#30H
MOV 30H,#40H
MOV A,#40H
MOV @R0,A ;哪一个存储单元的内容与A中内容相等
INC A
MOV A,@R1 ;A中的内容?哪一个存储单元的内容传给A
PUSH ACC
POP 32H ;SP指针的变化?32H中的内容
MOV A,#5FH
SWAP A ;A中的内容
;上面程序为顺序执行的程序
XUNHUAN1:
MOV R0,#30H
MOV R7,#10H
CLR A ;这3条指令的作用
LOOP1:
MOV @R0,A
INC A
INC R0
DJNZ R7,LOOP1 ;R7的作用
;循环程序执行完之后,指出32H,37H,3BH,3FH存储单元中的值,为什么?
XUNHUAN2:
MOV R0,#30H
MOV R1,#40H
MOV R2,#10H
LOOP2:
MOV A,@R0
MOV @R1,A
DJNZ R2,LOOP2 ;说明这段程序的功能
;上面程序为2个循环程序
;下面为2个数比较程序,最大值存放在30H,最小值存放在31H中
PANDUAN1:
MOV 30H,#10H
MOV 31H,#4BH
MOV R0,#30H
MOV R1,#31H
PAN0:
MOV A,@R0
CLR C
SUBB A,@R1
JNC PAN1
MOV A,@R0
MOV 40H,@R1
MOV @R0,40H
MOV @R1,A
PAN1:
NOP ;注意能不能继续往下运行,为什么
END
三、实验步骤
1) 启动计算机。
2) 进入Keil
C51集成开发环境。
3) 建立工程项目文件,选择单片机型号:PHILIPS
公司的P80/P87C52X2。
4) 在Keil
C51集成开发环境中,
编辑源程序;将源文件添加至工程项目的源文件组中。
5) 对源文件进行编译,生成目标代码。
6) 运行、调试程序和查看执行结果。
7) 分别采用单步、宏单步、执行到光标处等调试手段,调试用户程序,观察有关存储器单元中的内容。
8) 修改有关单元中的内容,再观察有关单元中的内容。
四、思考题
1) 说明每段程序分别完成哪些任务。
2) 若比较程序为3个数比较,数据从大到小排列,最大值放在30H,最小值放在32H。如果是16个数排序,如何排序,提出编程思路。
五、预习要求
1) 阅读教科书中8051的指令系统,重点掌握的指令有数据传送、判断跳转指令的使用方法。
2) 阅读Keil
C51集成开发软件说明书,掌握集成开发软件的进入、退出、源文件的编辑和编译等方法。熟悉各种调试手段。
六、实验报告
1) 将程序加上注释语句,写出程序执行的结果。
2) 回答思考题(第2题的第2个问题选作)。
实验二 8051程序设计实验
(3课时,设计型)
一、实验目的
1)
掌握8051汇编语言程序设计基本方法。
2) 掌握8051汇编语言程序的调试方法。
二、实验内容
1)
完成二字节加法程序的设计与调试。
要求:
加数首地址由R0指出,被加数和结果的存贮单元首地址由R1指出,字节数由R2指出,地址可以任意指定。
2)
完成2个存储单元中的四位BCD码十进制数拆分为4个存储单元的四位BCD码十进制数,如下图所示:
要求:
将30H、31H中四位BCD码十进制数拆分为4个存储单元的四位BCD码十进制数,分别存放在40H(个位),41H(十位),42H(百位),43H(千位)中。
或者由R0指出四位BCD码十进制数存放个位和十位的首地址,R1指出拆分后4个存储单元的四位BCD码十进制数的个位首地址。
三、实验步骤
1) 针对2个实验内容提出的要求设计相应的程序。
2)
写出实验步骤及调试方法。
四、预习要求
1) 阅读教科书中8051的指令系统及程序的设计方法,重点掌握算术运算,转移等指令。
2) 熟悉Keil C51开发环境,重点掌握连续运行程序的方法和设置断点运行程序的方法。
3) 写出预习报告。
五、思考题
如何将8位二进制数转换为BCD码十进制数以及双字节二进制数转换成BCD码?
六、实验报告
1) 写出实验步骤及调试方法。
2) 整理好执行正确的程序和数据。
3) 对思考题提出自己的基本思路。
第1页
第一页
下一页
最后页
|
|