Keil开发平台课案.docx
- 文档编号:28955061
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:87
- 大小:1.52MB
Keil开发平台课案.docx
《Keil开发平台课案.docx》由会员分享,可在线阅读,更多相关《Keil开发平台课案.docx(87页珍藏版)》请在冰豆网上搜索。
Keil开发平台课案
目录
实验一熟悉Keil开发平台1
实验二片内存储器及特殊功能寄存器实验4
实验三分支程序实验11
实验四数据块传送实验13
实验五流水灯输出控制实验14
实验六中断服务程序的实验21
实验七定时显示实验26
实验八显示实验28
实验九串行通信实验35
实验十键盘显示试验41
附录一keil51windows集成开发平台的使用45
附录二Keil程序调试52
附录三通用编程器的使用59
附录四最小系统原理图71
实验一熟悉Keil开发平台
一、实验目的
1.掌握KeilC51μVision2集成开发环境的基本使用方法;
2.学会使用汇编语言进行程序编辑、汇编与模拟仿真调试的过程。
3.学会在线下载,调试。
4.学会编程器的使用
二、实验设备
1.装有KeilC51μVision2集成开发环境、编程器软件、在线下载软件的计算机。
2.最小系统的实验板。
3.通用编程器
三、实验内容
1.断电,连接计算机、实验板
2.给计算机、实验板通电。
3.打开计算机,进入KeilC51开发环境。
4.正确设置通信口,连接好开发环境和实验板。
5.新建一个项目,并将该项目建立在指定的文件下。
6.新建一个文件,其路径与刚才建的项目相同。
7.将新建的文件添加到项目中,保存项目,观察项目窗口和编辑窗口的内容。
8.在编辑窗口编辑如下程序:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVA,#34H
MOVB,#34H
MOVP3,#00H
MOVP3,#0FH
MOVP3,#0F0H
SJMP$
END
9.对程序进行汇编,观察信息窗口的信息,如果正确,执行下一步;否则检查修改程序错误,重新汇编。
10.生成目标代码,观察消息窗口的信息,如果正确,执行下一步;否则检查修改程序错误,重新生成目标代码。
11.打开下载软件,将生成的目标代码下载到实验板上的CPU中。
12.打开查看窗口,8051SFR窗口和端口窗口。
观察A、B、P3的初值,并用万用表测试P3口各引脚电平。
13.单步运行程序,在计算机上观察特殊功能寄存器A、B、P3的变化,测试电路上P3口各引脚的电平变化,分析原因。
14.全速运行程序,观察调试环境的变化,观察A、B、P3的结果,分析原因。
15.操作流程如图1-1所示;
16.按下面实验一的程序,重新操作一遍,单步运行,并把观察的结果填在表中。
实验一记录
地址
代码
行号
标号
汇编(伪)指令
注释
1
ORG0000H
2
SE01:
MOVR0,#00H
3
MOVDPTR,#2000H
;(2000H)送DPTR
4
LOO1:
MOVA,#55H
5
MOVX@DPTR,A
;55送(DPTR)
6
INC R0
;字节数加1
7
INCDPTR
;字节数加1
8
CJNER0,#00H,LOO1
;不到FF个字节再清
9
LOOP:
SJMPLOOP
10
END
图1-1由源程序到十六进制机器代码的操作过程
实验二片内存储器及特殊功能寄存器实验
一、实验目的
1.掌握KeilC51μVision2集成开发环境进行汇编语言的编辑、汇编和生成的基本方法。
2.学会使用KeilC51μVision2集成开发环境下,观察存储器与修改的方法。
3.掌握不同存储器区的特点。
4.通过实验掌握51单片机的指令。
二、实验设备
1.装有KeilC51μVision2集成开发环境、编程器软件、在线下载软件的计算机。
2.最小系统的实验板。
3.通用编程器
三、实验内容
1.断电,连接计算机、实验板
2.给计算机、实验板通电。
3.打开计算机,进入KeilC51开发环境。
4.正确设置通信口,连接好开发环境和实验板。
5.新建一个项目,并将该项目建立在指定的文件下。
6.新建一个文件,其路径与刚才建的项目相同。
7.将新建的文件添加到项目中,保存项目,观察项目窗口和编辑窗口的内容。
8.在编辑窗口编辑如下程序,观察结果填入下表2-1。
表2—1机器码表
程序
在ROM中的地址
机器码
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#78H
MOVRl,#65H
LJMPMAIN
END
9.对程序进行汇编,观察信息窗口的信息,如果正确,执行下一步;否则检查修改程序错误,重新汇编。
10.生成目标代码,观察消息窗口的信息,如果正确,执行下一步;否则检查修改程序错误,重新生成目标代码。
四、实验观察记录填到表中
1.片内RAM工作寄存器区的观察与修改
内部RAM工作寄存器区地址为00H—1FH
(1)打开寄存器窗口、RAM窗口和SFR窗口观察。
(2)把观察结果填入下表2-2。
(3)在RAM区直接修改00H和01H单元内容为99H、78H,观察并记录寄存器R0,R1的变化,说明原因。
表2-2寄存器窗口和RAM窗口内容观察结果
程序
寄存器窗口
RAM窗口
SFR一8051窗口
执行前
执行后
执行前
执行后
执行前
执行后
LJMPMAIN
(R0)=
(R1)=
(R0)=
(R1)=
(00H)=
(01H)=
(00H)=
(01H)=
(PC)=
(PC)=
MAIN:
MOVR0,#78H
(R0)=
(R1)=
(R0)=
(R1)=
(00H)=
(0lH)=
(00H)=
(01H)=
(PC)=
(PC)=
MOVRl,#59H
(RO)=
(R1)=
(RO)=
(R1)=
(00H)=
(01H)=
(00H)=
(0lH)=
(PC)=
(PC)=
SJMPMAIN
(R0)=
(R1)=
(RO)=
(R1)=
(00H)=
(01H)=
(00H)=
(01H)=
(PC)=
(PC)=
END
(4)在MOVR0,#78H指令前加入2条指令,观察变化情况,填入表2—3
表2—3工作寄存器区观察结果
程序
寄存器窗口
RAM窗口
执行前
执行后
执行前
执行后
执行前
执行后
MAIN:
SETBRSO
(R0)=
(R1)=
(R0)=
(R1)=
(00H)=
(01H)=
(00H)=
(01H)=
(08H)=
(09H)=
(08H)=
(09H)=
CLRRSl
(R0)=
(R1)=
(R0)=
(R1)=
(00H)=
(01H)=
(00H)=
(OlH)=
(08H)=
(09H)=
(08H)=
(09H)=
MOVR0,#45H
(R0)=
(R1)=
(RO)=
(R1)=
(00H)=
(01H)=
(00H)=
(01H)=
(08H)=
(09H)=
(08H)=
(09H)=
MOVRl,#67H
(RO)=
(R1)=
(R0)=
(R1)=
(00H)=
(01H)=
(00H)=
(01H)=
(08H)=
(09H)=
(08H)=
(09H)=
LJMPMAIN
2.内部RAM位寻址区的观察结果与内容修改
内部RAM位寻址区的地址为20H—2FH
(1)建一个新项目,建一个新文件放在项目的目录中。
按表2—4输入程序、编译,打开寄存器窗口、RAM窗口和SFR窗口观察。
(2)观察调试观察结果,填入表2—4中
(3)执行MOVR0,20H前,将RAM窗口直接将20H单元内容修改为05H,在执行该指令,结果怎样?
表2—4位寻址区观察表结果
程序
RAM区预期结果
RAM区实际观察结果
寻址方式
执行前
执行后
位寻址
字节寻址
ORG0000H
LJMPMAIN
0RG0100H
MAIN:
MOV20H,#00H
(20H)=
(20H)=
(20H)=
MOV21H,#00H
(21H)=
(21H)=
(21H)=
SETB20H.0
(20H)=
(20H)=
(20H)=
CLR20H.0
(20H)=
(20H)=
(20H)=
SETB00H
(20H)=
(20H)=
(20H)=
CLROOH
(20H)=
(20H)=
(20H)=
SETB20H.1
(20H)=
(20H)=
(20H)=
CLR20H.1
(20H)=
(20H)=
(20H)=
SETB01H
(20H)=
(20H)=
(20H)=
CLR01H
(20H)=
(20H)=
(20H)=
SETB21H.7
(21H)=
(21H)=
(21H)=
CLR21H.7
(2lH)=
(21H)=
(21H)=
SETBOFH
(21H)=
(21H)=
(21H)=
CLROFH
(21H)=
(21H)=
(21H)=
MOVR0,20H
(Ro)=
(RO)=
(R0)=
LJMPMAIN
END
3.RAM间接与直接寄存器区的观察与修改
内部RAM直接和间接寻址区地址为30H—7FH
(1)在指定路径中建立一个新项目,新建一个文件,将文件添加到此项目中。
(2)按表2—5输入程序
(3)执行程序后,预期结果和寻址方式填入表2—5中
(4)程序经汇编、生成、下载后,打开RAM窗口,观察执行前和单步执行后的结果。
如果预期结果和实际执行后不一致,分析原因,体会直接寻址和间接寻址方法。
(5)在程序中添加指令,将数99H送地址为60H的RAM单元中,要求用直接寻址和间接寻址两种方法,并进行调试,验证程序的正确性。
表2--5直接和间接寻址区观察结果
程序
预期结果
实际观察结果
寻址方式
执行前
执行后
直接寻址
间接寻址
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOV30H,#00H
(30H)=
(30H)=
(30H)=
MOV30H,#87H
(30H)=
(30H)=
(30H)=
MOVR0,#30H
MOV@R0,#00H
(R0)=
(30H)=
(R0)=
(30H)=
(R0)=
(30H)=
MOV@R0,#87H
(RO)=
(30H)=
(RO)=
(30H)=
(R0)=
(30H)=
MOV7FH,#44H
(7FH)=
(7FH)=
(7FH)=
MOVR0,#7FH
MOV@R0,#55H
(R0)=
(7FH)=
(R0)=
(7FH)=
(RO)=
(7FH)=
LJMPMAIN
END
4.内部RAM间接寻址区地址为80H—0FFH。
(1)在指定路径中建立一个新项目,新建一个文件,将文件添加到此项目中。
(2)按表2—6输入程序
(3)执行程序后,预期结果和寻址方式填入表2—6中
(4)程序经汇编、生成、下载后,打开RAM窗口,观察执行前和单步执行后的结果。
如果预期结果和实际执行后不一致,分析原因,体会直接寻址和间接寻址方法。
(5)在程序中添加指令,用间接寻址方式将数99H送地址为90H的RAM单元中,进行调试,验证程序的正确性
表2—6间接寻址区观察结果
程序
预期结果
实际观察结果
寻址方式
执行前
执行后
直接寻址
间接寻址
0RG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#0EOH
MOV@R0,#00H
(RO)=
(OEOH)=
(RO)=
(0EOH)=
(R0)=
(0EoH)=
MOV@R0,#87H
(R0)=
(0EOH)=
(R0)=
(OEOH)=
(RO)=
(0EOH)=
MOVR0,#0FFH
MOV@R0,#00H
(RO)=
(0FFH)=
(R0)=
(OFFH)=
(R0)=
(OFFH)=
MOV@R0,#87H
(RO)=
(OFFH)=
(RO)=
(OFFH)=
(RO)=
(OFFH)=
LJMPMAIN
END
5.内部RAM特殊功能寄存器区的观察与内容修改
内部RAM特殊功能寄存器区地址也是80H~0FFH。
(1)在指定路径中建立一个新项目,新建一个文件,将文件添加到此项目中。
(2)按表2—7输入程序
(3)执行程序后,预期结果和寻址方式填入表2—7中
(4)程序经汇编、生成、下载后,打开RAM窗口,寄存器窗口、观察每条指令执行前和单步执行后的结果。
如果预期结果和实际执行后不一致,分析原因,体会直接寻址和间接寻址方法。
(5)执行加法指令后,PSW各个位的变化规律掌握否?
(6)是否所有指令都影响PSW的C、AC、OV、P?
(7)在程序中添加写指令“MOVOFOH,#66H”和“MOVR0,#0FOH”、“MOV@R0,
#66H”,判断这两组指令的执行结果有何不同。
表2—7SFR区观察结果
程序
预期结果
执行后结果
寻址方式
SFR区
RAM区
SFR区
RAM区
直接
间接
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVA,#81H
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
(0DOH)=
MOV0EOH,#82H
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
(0DOH)=
MOVR0,#0EOH
MOV@R0,#45H
(R0)=
(A)=
(PSW)=
(00H)=
(0EOH)=
(0DOH)=
(R0)=
(A)=
(PSW)=
(00H)=
(0EOH)=
(0DOH)=
MOVB,#00H
(B)=
(PSW)=
(0FOH)=
(0DOH)=
(B)=
(PSW)=
(0FOH)=
(0DOH)=
MOV0FOH,#02H
(B)=
(PSW)=
(0FOH)=
(ODOH)=
(B)=
(PSW)一
(OFOH)=
(0DOH)=
MOVDPTR,#1234H
(DPTR)=
(PSW)=
(83H)=
(82H)=
(0DOH)=
(DPTR)=
(PSW)=
(83H)=
(82H)=
(0DOH)=
MOVDPH,#05H
(DPH)=
(PSW)=
(83H)=
(0DOH)=
(DPH)=
(PSW)=
(83H)=
(0DOH)=
MOVDPL,#48H
(DPL)=
(PSW)=
(82H)=
(0DOH)=
(DPL)=
(PSW)=
(82H)=
(0DOH)=
ADDA,#81H
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
(0DOH)=
MOVA,#48H
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
(0DOH)=
ADDA,#59H
(A)=
(PSW)=
(OEOH)=
(0DOH)=
(A)=
(PSW)=
(OEOH)=
(ODOH)=
SETBACC.5
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
(ODOH)=
CLRACC.5
(A)=
(PSW)=
(0EOH)=
(0DOH)=
(A)=
(PSW)=
(0EOH)=
0DOH)=
LJMPMAIN
END
6.外部RAM区(XRAM)的观察与内容修改
(1)指定路径中新建一个项目,新建一个文件名,将该文件添加到此项中。
(2)按照表2—8输入程序。
(3)程序经汇编、生成、下载后,打开SFR—8051窗口、寄存器窗口、RAM窗口,观察每条指令执行前和单步执行后的结果。
(4)将XRAM的1001H单元内容预置为65H,写出每条指令执行后的预期结果。
(5)观察指令执行前和单步执行后的实际结果并记录在表2--8中。
(6)为什么第2条指令“MOVA,#81H’’和第3条指令“MOVOEOH,#82H”都修改A
的内容和PSW内容,却不修改0EOHRAM单元的内容?
表2—8XRAM区观察结果
程序
预期结果
执行后结果
寻址方式
SFR区和寄存器区
XRAM区
SFR区和寄存器区
XRAM区
直接
间接
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVA,#81H
MOVDPTR,#1000H
MOVX@DPTR,A
_
MOVDPTR,#1001H
MOVXA,@DPTR
r
LJMPMAIN
END
实验三分支程序实验
一、实验目的:
1.熟悉指令系统,正确选择编程指令,掌握分支程序结构流程图的画法,正确使用(转移)条件;
2.掌握分支程序设计的基本方法和技巧。
二、实验要求:
1.实验前,按要求画出流程图;
2.按要求使用汇编语言独立编写源程序;
3.使用单步方法运行程序,观察程序运行前、运行中和运行后相关寄存器的变化(尤其三、实验相关知识:
程序状态字是一个8位寄存器,用来存放程序的状态信息,表征指令的执行状态,供程序查询和判别之用。
其格式如下:
进/借位
辅助进位
标志0
工作寄存器区选择
溢出
不用
奇偶
CY
AC
F0
RS1
RS0
OV
--
P
各位说明如下:
1.CY:
(PSW.7)进/借位标志
在执行加/减法指令时,如果操作结果D7位有进/借位,CY置“1”,否则清“0”。
2.AC:
(PSW.6)辅助进位标志
或称为半进位,当进行加法操作而产生由低4位数(十进数的1位数)向高4位数进位时,AC将被硬件置“1”,否则被清“0”。
AC被用于BCD码加法调整(详见DA指令)。
3.F0:
(PSW.5)标志0
由用户定义的一个状态标志。
可以用软件来使它置“1”或清“0”,也可以由软件测试F0来控制程序流向。
RS1、RS0:
(PSW.4、PSW.3)工作寄存器区选择控制位
可由软件来改变RS1和RS0的组合以确定当前工作寄存器区。
4.OV:
(PSW.2)溢出标志
用于补码运算,以指示溢出状态。
溢出标志常用于对有符号补码数作加减运算。
OV=1表示加减运算的结果己超出一个字节所能表示的范围(-128~+127)。
在MCS-51中,无符号数乘法指令MUL的执行结果也会影响溢出标志,若累加器A和寄存器B的乘积超过255时,OV=1,否则OV=0。
此积的高8位放在B中,低8位放在A中,故OV=0意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积。
除法指令DIV也会影响溢出标志,当除数为0时,OV=1,否则OV=0。
5.P:
(PSW.0)奇偶标志
每个指令周期都由硬件来置位或清零,以表示累加器A中值为“1”的位数的奇偶性。
若P=1,则A中“1”的位数为奇数,否则P=0。
该标志对串行数据通讯中的信息传输有重要意义。
在串行通讯中,常用奇偶校验的方法来检验数据传输的可靠性。
在发送时可根据P值对数据的奇偶位置位或清除。
四、实验内容
设X存放在内部RAM的40单元中,判断X的值大于0,结果送1,X小于0送-1,X等于0送0,要求画出流程图,观察结果。
五、实验步骤
1.指定路径中新建一个项目,新建一个文件名,将该文件添加到此项中。
2.程序经汇编、生成、下载后,打开SFR—8051窗口、寄存器窗口、RAM窗口,观察每条指令执行前和单步执行后的结果。
3.在40H单元输入一个小于20的数,单步运行程序,观察寄存器是否为分析结果;程序跳向哪个分支。
4.在40H单元输入一个大于20的数,单步运行程序,观察寄存器是否为分析结果;程序跳向哪个分支。
六、参考程序
ORG0000H
START:
MOVA,40H
JZCOMP
JNBACC.7,POST
MOVA,#81H
SJMPCOMP
POST:
MOVA,#01H
COMP:
MOV41H,A
END
实验四数据块传送实验
一、实验目的
1.熟悉指令系统,正确选择编程指令。
2.掌握循环程序设计的基本方法和技巧。
3.掌握单步、断点调试程序的方法和技巧。
二、实验内容
将内部数据区30H—3FH单元内容,传送到外部1000H为首的外部数据区XRAM中。
三、实验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Keil 开发 平台