实验一 Keil C51 集成开发环境的使用

更新时间:2023-10-25 03:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 Keil C51 集成开发环境的使用

姓名 刘敏 学号 2011412482 专业 电子

一、实验目的

1、熟悉Keil C51 集成开发环境的基本操作; 2、掌握简单C51和汇编程序的编写、调试。 二、实验仪器与设备 1、微机1台

2、Keil C51集成开发环境 三、实验内容

1、仔细阅读附录2及教材(陈海宴编著)相关内容,掌握Keil C51集成开发环境的基本功能。

2、分别用汇编语言和C51编写清零程序。把片外RAM中的7000H—70FFH单元内容清零。

3、分别荣汇编语言和C51编写查找相同数个数程序。统计片外RAM 7000H—700FH中“00H”的个数并保存在片内RAM 30H单元。 四、实验框图及步骤 1、清零程序

(1)汇编语言程序设计框图

开始 ORG 0000H MOV R0,#00H R0=0 MOV DPTR,#7000H LOOP:MOV A,#00H 00 送到 7000H MOVX @DPTR,A INC DPTR DNJZ R0,LOOP DPTR+1 , R0-1 END N R0=0? Y 结束

(2)实验步骤

用连续或单步方式运行程序,检查7000H—70FFH单元中执行程序前后的内容变化。

(3)假使把7000H—70FFH中的内容改成FF,如何修改程序? 汇编语言里将第四行的#00H改成#FFH

(4)用C51重新编写该程序清零程序,运行程序并查看结果。 #include

#define uchar unsigned char

uchar xdata *p; void main() {

{for(p=0x7000;p<0x7100;p++) {*p=0x00;} }while(1) }

7000H-70FF中的内容全部清零 2、查找相同数个数

(1)汇编语言程序设计框图

ORG 0000H 开始 MOV R0,#10H MOV R1,#00H MOV DPTR,#7000H

字节数送R0,查找字节送R1 LOOP:MOVX A,@DPTR

CJNZE A,#00H,NEXT INC R1 7000H→DPTR NEXT:INC DOTR

DJNZ R0,LOOP MOV 30H,R1 从DPTR中取数 SJMP $

END Y 判断和被查数相同否 R1+1

DPTR+1

字节数到吗

R1送30H单元

结束

(2)实验步骤

① 在7000H-700FH单元中放入随机数,其中几个单元输入0. ② 用连续或单步方式运行程序;

③观察片内RAM 30H的内容,应显示“00H”的个数,

(3)用C51重新编写该程序,运行程序并查看结果。 #include #define uchar unsigned char uchar xdata *p; uchar *q; void main() {q=0x30; *q=0x00;

{for(p=0x7000;p<0x7010;p++) if(*p==0x00) {(*q)++;} }while(1); }

在片内数存单元30H中显示片外数存7000H-700F中“00H”的个数,十个。 五、实验总结

1、写出用Keil 创建一个项目的基本过程

启动uvision,点击“project->new project?”,给建立的工程起个 名字后,点击“保存”,选择“AT89C51”,点击“确定”。在出现的对话框 中选择“否”,这样一个项目的建立就完成了。 3、回答下面问题:

(1) 在单步执行时,如何查看寄存器的内容?

在KEIL调试界面左边有一个“registers”窗口,里面显示所有寄 存器的值,需要修改时双击要修改值的寄存器的值,就可以修改。 (2)、如何设置片内数存、片外数存中的内容?

片内数存,片外数存中的内容在“memory windows”里双击修改 即可。 (3)、如何查看程序、片内数存、片外数存中的内容?

在“memory windows”窗口,查看片外数存的内容输入“X:单元 数”后回车,查看程存输入“C:单元数”,查看片内数存输入“D:单元 数”。

本文来源:https://www.bwwdw.com/article/zcz2.html

Top