- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Keil C51集成开发环境的应用
实验目的
熟悉Keil C51集成开发环境的基本操作。
掌握简单C51和汇编程序的编写、调试。
实验内容
掌握Keil C51集成开发环境的基本功能。
分别用汇编语言和C51编写置1程序,把片外RAM中的7000H-70FFH单元内容置1。
分别用汇编语言和C51编写查找相同数个数程序。统计片外RAM 7000H-700FH中“00H”的个数并保存在片内RAM 30H单元。
实验原理及步骤
1、置1程序
汇编语言程序设计框图
实验原理
置1程序的C51程序:把指针指向片外数存0x7000单元,定义一个整型变量a用来计数,使指针依次从7000H指向70FFH,同时指针赋0x01,从而使7000H-70FFH内存单元置1。
置1程序的汇编语言:首先给寄存器R0赋一个值01H,将DPTR指向片外7000H所在的内存单元。在循环体中,将累加器A送入立即数#01,然后将A中的内容送入DPTR所指的内存单元中,DPTR自加1,只要R0不等于0,就一直循环,直到把7000H-70FFH中的内容全部置1。
实验步骤
用连续或单步方式运行程序,检查7000H-70FFH单元中执行程序前后内容的变化。
假使把7000H-70FFH中的内容改成FF,如何修改程序?
用C51重新编写该置1程序,运行程序并查询结果。(重点)
2、查找相同数个数
汇编语言程序设计框图
实验原理
C51程序:设置片外数存指针*P1指向0x7000单元,片内数存指针*P2指向0x30单元,即将查询得到的相同的数的个数放入0x30单元中。设置for循环,依次从7000H到700FH,只要指针P1所指单元中内容为0,则sum加1,然后将sum中的内容赋给P2所指的内存单元。
汇编语言:将7000H的地址赋给DPTR,然后将DPTR中的内容赋给寄存器A,然后,将A中内容与0比较,若相等,R0加1,DPTR加1,若不相等则R1加1,知道加满16次,将R1的内容赋给30H所在的内存单元。
实验步骤
在7000H-700FH单元中放入随机数,其中几个单元输入0;
用连续或单步方式运行程序;
观察片内RAM 30H的内容,应显示“00H”的个数。
用C51重新编写该程序,运行程序并查看结果。(重点)
电路设计及调试
程序设计与调试
置1程序的C51程序
#include reg51.h
main ()
{
char xdata *p=0x7000;
int a=0x7100-0x7000;
while(a--)
{
*p=0x01;
p++;
}
}
置1程序的汇编语言
ORG 0000H
MAIN:MOV R0,01H
MOV DPTR,#7000H
LOOP:MOV A,#01H
MOVX @DPTR,A
INC DPTR
DJNZ R0,LOOP
SJMP $
END
查找相同数个数C51程序
#include reg51.h
#includestdio.h
void main()
{
char sum=0;
char xdata *p1=0x7000;
char data *p2=0x30;
char a=0x10;
for(a=0x10;a0;a--)
{
if(*p1==0)
sum++;
p1++;
}
*p2=sum;
while(1);
}
查找相同数个数的汇编语言
ORG 0000H
MAIN:MOV R0,#00H
MOV R1,#00H
MOV DPTR,#7000H
MT:MOVX A ,@DPTR
JNZ NEXT
INC R1
NEXT:INC DPTR
INC R0
CJNE R0,#10H,MT
MOV 30H,R1
END
调试过程
用Keil创建一个项目的基本过程
首先单击Project,然后选择New Project建立一个新工程输入工程名字例如1;然后选择STC89C51单片机,新建一个文件输入名字例如text1,注意若是建立汇编文件则名字后面要加 .asm 若是C51文件则加 .c;单击Target 在其展开文件Source group中添加新建文件。至此完成了创建一个Keil项目。
置1程序:执行程序后点击调试键在View窗口中选中Memory window右下侧出现地址调试框可以查看寄存器的内容。点击执行或单步执行,在地址框输入x:7000H查看片外7000H地址处的内容,结果显示全为00,将MOV A,#00H改为MOV A,#0FFH,结果显示从7000H到70FFH处的内容由00H变为0FFH。
查找相同数个数:打开Memory window,在地址框输
文档评论(0)