实验一 Keil C51集成开发环境的使用练习仿真与调试.docx

上传人:b****1 文档编号:13640242 上传时间:2023-06-15 格式:DOCX 页数:22 大小:73.58KB
下载 相关 举报
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第1页
第1页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第2页
第2页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第3页
第3页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第4页
第4页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第5页
第5页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第6页
第6页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第7页
第7页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第8页
第8页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第9页
第9页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第10页
第10页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第11页
第11页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第12页
第12页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第13页
第13页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第14页
第14页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第15页
第15页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第16页
第16页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第17页
第17页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第18页
第18页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第19页
第19页 / 共22页
实验一 Keil C51集成开发环境的使用练习仿真与调试.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验一 Keil C51集成开发环境的使用练习仿真与调试.docx

《实验一 Keil C51集成开发环境的使用练习仿真与调试.docx》由会员分享,可在线阅读,更多相关《实验一 Keil C51集成开发环境的使用练习仿真与调试.docx(22页珍藏版)》请在冰点文库上搜索。

实验一 Keil C51集成开发环境的使用练习仿真与调试.docx

实验一KeilC51集成开发环境的使用练习仿真与调试

实验一KeilC51集成开发环境的使用练习、仿真与调试

一、实验目的

1、熟悉KeilC51集成开发环境的使用方法

2、熟悉KeilC51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

三、实验内容

1、进行KeilC51集成开发环境的安装和使用练习。

然后按照以下内容建立文件并编译产生HEX文件。

ORG0000H

LJMPMain

ORG00F0H

Main:

MOVR7,#0

Loop:

MOVR6,#0

DJNZR6,$

DJNZR6,$

DJNZR6,$

DJNZR6,$

DJNZR7,Loop

CPLP1.0;P1.0取反

CPLP1.1;P1.1取反

CPLP1.2;P1.2取反

CPLP1.3;P1.3取反

CPLP1.4;P1.4取反

CPLP1.5;P1.5取反

CPLP1.6;P1.6取反

CPLP1.7;P1.7取反

SJMPMain

;

END

2、进行KeilC51集成开发环境的仿真调试练习。

然后按照以下内容建立文件并编译仿真调试。

ORG8000H

LJMPMain

ORG80F0H

Main:

MOVR7,#0

Loop:

MOVR6,#0

DJNZR6,$

DJNZR6,$

DJNZR6,$

DJNZR6,$

DJNZR7,Loop

CPLP1.0;P1.0取反

CPLP1.1;P1.1取反

CPLP1.2;P1.2取反

CPLP1.3;P1.3取反

CPLP1.4;P1.4取反

CPLP1.5;P1.5取反

CPLP1.6;P1.6取反

CPLP1.7;P1.7取反

SJMPMain

END

四、实验要求

1、熟练掌握KeilC51集成开发环境的工程建立、编辑与编译功能。

2、熟练掌握结合DP-51PROC单片机综合仿真实验仪和KeilC51集成开发环境进行仿真调试。

五、实验步骤

(1)用40针排线把DP-51PROC实验仪上的A1区J76接口和A2区J79接口相连,然后使用排线把A2区的J61接口与D1区的J52接口相连。

如右图所示。

(2)对DP-51PROC实验仪上电,然后设置TKSMonitor5仿真器和使用软件DPFLASH把MON51监控程序下载到TKSMonitor5仿真器。

(3)关闭DPFLASH软件。

把TKSMonitor5仿真器的工作模式选择开关切换到RUN处,然后按一下复位键(RST),MON51程序就开始运行了。

此时,TKSMonitor5仿真器进入调试状态。

(4)用户使用KeilC51集成开发环境建立工程、编辑与编译“实验内容”所列的程序。

然后按照(软件调试环境的设置)设置好,然后在编译一次。

(5)此时用户就可以进行仿真调试。

如果用户在退出仿真调试模式后想再进入仿真调试,可以先按一下TKSMonitor5仿真器的复位键(RST)。

用户可以在仿真调试环境下设置断点,单步,全速运行等。

在调试过程中用户可以看见D1区LED的亮灭是由用户程序来控制的。

六、实验思考题

(1)试写一条把片内RAM50H~59H单元清零的程序。

(2)试写一条把片内RAM50H~59H单元写入01H的程序。

(3)如何仿真和调试C51程序呢?

(用户可以把上面的例子改为C51程序然后在编译调试)

 

实验二蜂鸣器驱动实验

一、实验目的

利用单片机的P1口作IO口,使用户学会蜂鸣器的使用。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

频率计一台

三、实验内容

1、编写一段程序,用P1.3口控制(输出3K到4K频率的方波),使B5区的蜂鸣器发出嘹亮的响声。

2、按照例程输入一段程序,用P1.3口控制,使B5区的蜂鸣器发出“生日快乐”的音乐。

四、实验步骤

1、使用导线把A2区的P13与B5区的BUZZ接线柱相连。

2、先编写一个延时程序(120`200us)。

3、再编写一个循环程序,改变P1.3脚的电平,然后延时。

这样,这个循环就使P1.3口输出一个频率为2.5KHZ-4KHZ的方波。

在DP-51PROC单片机综合仿真实验仪上运行该程序时,B5区的蜂鸣器将发出嘹亮的响声。

4、按以下例程序输入,然后运行,蜂鸣器发出“生日快乐”的音乐。

五、实验参考程序

ORG8000H

JMPMAIN

ORG800BH

JMPINTT0

ORG8100H

MAIN:

MOVSP,#60H

MOVTMOD,#01H;初始化定时器及其中断

SETBET0;开定时器0中断

SETBEA

SETBTR0;启动定时器0

START0:

SETBP1.3

MOV30H,#00H

NEXT:

MOVA,30H

MOVDPTR,#TABLE;从TABLE中读取数据--响声时间

MOVCA,@A+DPTR

MOVR2,A

JZENDD

ANLA,#0FH

MOVR5,A

MOVA,R2

SWAPA

ANLA,#0FH

JNZSING

CLRTR0

JMPD1

SING:

DECA

MOV22H,A

RLA

MOVDPTR,#TABLE1;从TABLE中读取数据—声调

MOVCA,@A+DPTR

MOVTH0,A

MOV21H,A

MOVA,22H

RLA

INCA

MOVCA,@A+DPTR

MOVTL0,A

MOV20H,A

SETBTR0

D1:

CALLDELAY;声音延时

INC30H

JMPNEXT

ENDD:

CLRTR0

JMPSTART0

INTT0:

;定时器0中断服务程序

PUSHPSW

PUSHACC

MOVTL0,20H

MOVTH0,21H

CPLP1.3

POPACC

POPPSW

RETI

DELAY:

;R5的值就是声响持续时间

MOVR7,#02

DELAY0:

MOVR4,#187

DELAY1:

MOVR3,#248

DJNZR3,$

DJNZR4,DELAY1

DJNZR7,DELAY0

DJNZR5,DELAY

RET

TABLE:

DB82H,01H,81H,94H,84H,0B4H,0A4H,04H

DB82H,01H,81H,94H,84H,0C4H,0B4H,04H

DB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H

DB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H

DB82H,01H,81H,94H,84H,0B4H,0A4H,04H

DB82H,01H,81H,94H,84H,0C4H,0B4H,04H

DB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H

DB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H

TABLE1:

DW64260,64400,64524,64580,64684,64777,64820,64898

DW64968,65030,65058,65110,65157,65178,65217

END

六、实验思考题

请用户思考,如何通过程序来编写出音乐。

 

实验三电子琴实验

一、实验目的

利用实验仪上提供的按键K1~K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

频率计一台

三、实验内容

1、编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出对应的音调。

2、按照歌曲的音调,使用D1区的按键K1~K7,弹奏一首简单的音乐。

四、实验步骤

1、用导线将A2区P3.3口(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。

如右图所示。

2、编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计。

3、调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐。

五、实验参考程序

BUZZEQUP3.3

ORG8000H

LJMPMAIN

ORG800BH

LJMPINT_T0

ORG8100H

MAIN:

MOVSP,#60H;初始化堆栈向量

MOV30H,#00;定时器初值清零

MOV31H,#00

MOVP1,#0FFH;设置P1口为输入模式

MOVTMOD,#01H;设置定时器0为工作模式1

SETBET0;开定时器0中断

SETBEA;开总中断

CLRTR0;关闭定时器0

START:

MOVR0,P1

CJNER0,#0FFH,KEY1;键盘扫描

CLRTR0

SJMPSTART

KEY1:

CJNER0,#0FEH,KEY2;K1键按下

MOV30H,#0FBH;设置音阶1

MOV31H,#0E9H

LJMPSET_TIMER

KEY2:

CJNER0,#0FDH,KEY3;K2键按下

MOV30H,#0FCH;设置音阶2

MOV31H,#5CH

LJMPSET_TIMER

KEY3:

CJNER0,#0FBH,KEY4;K3键按下

MOV30H,#0FCH;设置音阶3

MOV31H,#0C1H

LJMPSET_TIMER

KEY4:

CJNER0,#0F7H,KEY5;K4键按下

MOV30H,#0FCH;设置音阶4

MOV31H,#0EFH

LJMPSET_TIMER

KEY5:

CJNER0,#0EFH,KEY6;K5键按下

MOV30H,#0FDH;设置音阶5

MOV31H,#045H

LJMPSET_TIMER

KEY6:

CJNER0,#0DFH,KEY7;K6键按下

MOV30H,#0FDH;设置音阶6

MOV31H,#92H

LJMPSET_TIMER

KEY7:

CJNER0,#0BFH,NOKEY;K7键按下

MOV30H,#0FDH;设置音阶7

MOV31H,#0D6H

SET_TIMER:

SETBTR0;发声

SJMPSTART

NOKEY:

CLRTR0;无键按下

SJMPSTART

INT_T0:

;T0中断服务程序

MOVTH0,30H;定时器附初值

MOVTL0,31H

CPLBUZZ;输出方波

RETI

END

六、实验思考题

结合实验仪上的硬件,设计一个可以任意选曲播放的电子音乐盒。

 

实验四串转并的I/O口实验

一、实验目的

熟悉并掌握串转并的I/O口扩展方法。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

三、实验内容

1、写程序,通过单片机的P1口控制74HC164的输入端口,实现串并转换。

2、验证串并转换数据的正确性。

四、实验要求

熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源。

五、实验步骤

1、短接A5区JP10接口,将A5区的CLK164、DINA164、DINB164、CLR164与A2区的P10~013对应相连(CLK对P10等等)。

如下图所示。

2、运行编写好的软件程序,完成一次串并转换。

3、使用C2区的逻辑笔或D1区的LED指示灯测试并行输出数据Q0~Q7数据的正确性。

六、实验参考程序

CLKEQUP1.0

DINAEQUP1.1

DINBEQUP1.2

CLR164EQUP1.3

ORG8000H

LJMPMAIN

ORG8100H

MAIN:

MOVSP,#60H;设置堆栈向量

NOP;设置以下端口初始化

CLRCLK;CLK=0

SETBDINB;DINB=1

CLRCLR164;CLR=0输出端口清零

SETBCLR164;CLR=1

MOVA,#0AAH;用户输出数据初始化

MOVR4,#08H

SLCHG:

RLCA

MOVDINA,C;串行输出一位数据

SETBCLK;移位时钟

NOP

CLRCLK

NOP

DJNZR4,SLCHG

SJMP$;程序结束,完成一次串并转换

END

 

实验五定时器输出PWM实验

一、实验目的

利用定时器控制产生占空比可变的PWM波。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

频率计一台

三、实验内容

编写好一段程序,用P1.0口输出PWM波,用D1区的按键KEY1和KEY2实现占空比的增加和降低。

用示波器查看P1.0口的输出波形。

四、实验要求

学会事业能够单片机的定时器产生250HZ的PWM波。

五、实验步骤

1、用导线连接A2区的P11与D1区的KEY1。

2、用导线连接A2区的P12与D1区的KEY2。

3、将示波器的探针连接到A2区的P10。

4、用示波器观测P1.0口的PWM波形。

六、实验参考程序

PWMHDATA30H;高电平脉冲的个数

PWMDATA31H;PWM周期

COUNTERDATA32H

TEMPDATA33H

ORG8000H

AJMPMAIN

ORG800BH

AJMPINTT0

ORG8100H

MAIN:

MOVSP,#60H;给堆栈指针赋初值

MOVPWMH,#02H;

MOVCOUNTER,#01H

MOVPWM,#15H

MOVTMOD,#02H;定时器0在模式2下工作

MOVTL0,#38H;定时器每200us产生一次溢出

MOVTH0,#38H;自动重装的值

SETBET0;使能定时器0中断

SETBEA;使能总中断

SETBTR0;开始计时

KSCAN:

JNBP1.1,K1CHECK;扫描KEY1,

JNBP1.2,K2CHECK;扫描KEY2,如果按下KEY2,跳转到KEY2处理程序

SJMPKSCAN

K1CHECK:

JBP1.1,K1HANDLE;去抖动,如果按下KEY1,跳转到KEY1处理程序

SJMPK1CHECK

K1HANDLE:

MOVA,PWMH

CJNEA,PWM,K1H0;判断是否到达上边界

SJMPKSCAN;是,则不进行任何操作

K1H0:

MOVA,PWMH

INCA

CJNEA,PWM,K1H1;如果在加1后到达最大值

CLRTR0;定时器停止

SETBP1.0;P1.0为高电平

SJMPK1H2

K1H1:

CJNEA,#02H,K1H2;如果加1后到达下边界

SETBTR0;重开定时器

K1H2:

INCPWMH;增加占空比

SJMPKSCAN

K2CHECK:

JBP1.2,K2HANDLE;去抖动,如果按下KEY2,跳转到KEY2处理程序

SJMPK2CHECK

K2HANDLE:

MOVA,PWMH

CJNEA,#01H,K2H0;判断是否到达下边界

SJMPKSCAN;是,则不进行任何操作

K2H0:

MOVA,PWMH

MOVTEMP,PWM

DECA

CJNEA,#01H,K2H1;如果在减1后到达下边界

CLRTR0;定时器停止

CLRP1.0;P1.0为低电平

SJMPK2H2

K2H1:

DECTEMP

CJNEA,TEMP,K2H2;如果到达上边界

SETBTR0;启动定时器

K2H2:

DECPWMH;降低占空比

SJMPKSCAN

INTT0:

PUSHPSW;现场保护

PUSHACC

INCCOUNTER;计数值加1

MOVA,COUNTER

CJNEA,PWMH,INTT01;如果等于高电平脉冲数

CLRP1.0;P1.0变为低电平

INTT01:

CJNEA,PWM,INTT02;如果等于周期数

MOVCOUNTER,#01H;计数器复位

SETBP1.0;P1.0为高电平

INTT02:

POPACC;出栈

POPPSW

RETI

END

七、实验思考题

请用另一种方式实现定时器产生PWM波。

 

实验六万年历时钟实验

一、实验目的

进行一次实际开发的经验,提高实际开发的能力。

二、实验设备及器件

IBMPC机一台

DP-51PROC单片机综合仿真实验仪一台

三、实验内容

结合I2C总线控制的实时时钟、ZLG7290键盘LED控制器进行万年历时钟的设计。

四、实验要求

熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,深刻理解实际实时时钟、ZLG7290键盘LED控制的各种功能,并能把它们相结合,组成具有实际功能的万年历时钟。

五、实验步骤

1、用导线连接D5区的SCL、SDA到A2区的P16、P17(SCL~P16、SDA~P17),连接D5区的RST-L、INT-KEY到A2区的P10、INT0(/RST~P10、INT-KEY~INT0),短接D5区的JP1跳线。

2、模拟I2C软件包“VIIC-C51.C”文件加入到KeilC51的项目中,开头包含“VIIC-C51.H”头文件。

修改VIIC-C51.C文件中的sbitSDA=P1^7;和sbitSCL=P1^6;。

另外还要增加ZLG7290软件包“ZLG7290.C”文件加入到KeilC51的项目中,开头包含“ZLG7290.H”头文件。

3、先编写显示的子函数,可以分别显示日期和显示时间。

用按键来切换显示的内容(初步设计用D5区的S1按键来切换)。

4、然后再进行整体编程,如果还有困难可以先画流程图,再编写程序。

5、显示结果为:

上电运行时,8位数码管显示时间,时分秒;按一下S1切换到显示年月日,再按一下S1又切换回时分秒。

六、实验预习要求

认真阅读PCF8563T、ZLG7290的数据手册和模拟I2C软件包使用手册,理解硬件结构,还可以先把程序编好,然后在KeilC51环境下进行软件仿真。

七、实验参考程序

#include"reg52.h"

#include"VIiC_C51.H"//包含VI2C软件包

#include"zlg7290.h"

#definePCF85630xA2//定义器件地址

#defineWRADDR0x00//定义写单元首地址

#defineRDADDR0x02//定义读单元首地址

sbitKEY_INT=P3^2;

sbitRST=P1^0;

unsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存

unsignedcharKEY;//保存键值

bitswich_date=0;

unsignedchardisplay_time(unsignedchar*sd)

{

sd[0]=sd[0]&0x7f;//秒屏蔽保留位

sd[1]=sd[1]&0x7f;//分屏蔽保留位

sd[2]=sd[2]&0x3f;//时屏蔽保留位

disp_buf[0]=(sd[0]%16);

disp_buf[1]=(sd[0]/16);

disp_buf[2]=31;

disp_buf[3]=(sd[1]%16);

disp_buf[4]=(sd[1]/16);

disp_buf[5]=31;

disp_buf[6]=(sd[2]%16);

disp_buf[7]=(sd[2]/16);

ZLG7290_SendBuf(disp_buf,8);

return0;

}

unsignedchardisplay_date(unsignedchar*sd)

{

sd[0]=sd[0]&0x3f;//日屏蔽保留位

sd[2]=sd[2]&0x1f;//月屏蔽保留位

disp_buf[0]=(sd[0]%16);

disp_buf[1]=(sd[0]/16);

disp_buf[2]=(sd[2]%16)+0x80;//后面加小数点

disp_buf[3]=(sd[2]/16);

disp_buf[4]=(sd[3]%16)+0x80;//后面加小数点

disp_buf[5]=(sd[3]/16);

disp_buf[6]=0;

disp_buf[7]=2;

ZLG7290_SendBuf(disp_buf,8);

return0;

}

unsignedcharDelayNS(unsignedcharno)

{

unsignedchari,j;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2