1 / 18
文档名称:

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

格式:pdf   大小:1,635KB   页数:18页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:1781111**** 2024/5/11 文件大小:1.60 MB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:该【实验一KeilC51集成开发环境的使用练习、仿真与调试 】是由【1781111****】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【实验一KeilC51集成开发环境的使用练习、仿真与调试 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..实验一KeilC51集成开发环境的使用练****仿真与调试、实验目的1、熟悉KeilC51集成开发环境的使用方法2、熟悉KeilC51集成开发环境调试功能的使用和DP-51PR0C单片机综合仿真实验仪的使用。、实验设备及器件IBMPC机一台DP-51PR0C单片机综合仿真实验仪一台、实验内容1、进行KeilC51集成开发环境的安装和使用练****然后按照以下内容建立文件并编译产生HEX文件。0RG0000HLJMPMain0RG00F0HMain:M0VR7,#0Loop:M0VR6,#0DJNZR6,$DJNZR6,$DJNZR6,$DJNZR6,$DJNZR7,;;;;;;;;、进行KeilC51集成开发环境的仿真调试练****然后按照以下内容建立文件并编译仿真调试。0RG8000HLJMPMain0RG80F0HMain:M0VR7,#0Loop:1:..MOVR6,#0DJNZR6,$DJNZR6,$DJNZR6,$DJNZR6,$DJNZR7,;;;;;;;、实验要求1、熟练掌握KeilC51集成开发环境的工程建立、编辑与编译功能。2、熟练掌握结合DP-51PR0C单片机综合仿真实验仪和KeilC51集成开发环境进行仿真调试。五、实验步骤(1)用40针排线把DP-51PR0C实验仪上的A1区J76接口和A2区J79接口相连,然后使用排线把A2区的J61接口与D1区的J52接口相连。如右图所示。(2)对DP-51PR0C实验仪上电,然后设置TKSMonitor5仿真器和使用软件DPFLASH把MON51监控程序下载到TKSMonitor5仿真器。(3)关闭DPFLASH软件。把TKSMonitor5仿真器的工作模式选择开关切换到RUN处,然后按一下复位键(RST),MON51程序就开始运行了。此时,TKSMonitor5仿真器进入调试状^态。(4)用户使用KeilC51集成开发环境建立工程、编辑与编译“实验内容”所列的程序。然后按照(软件调试环境的设置)设置好,然后在编译一次。(5)此时用户就可以进行仿真调试。如果用户在退出仿真调试模式后想再进入仿真调试,可以先按一下TKSMonitor5仿真器的复位键(RST)用户可以在仿真调试环境下设置断点,单步,全速运行等。在调试过程中用户可以看见D1区LED的亮灭是由用户程序来控制的。六、实验思考题2:..1)试写一条把片内RAM50H~59H单元清零的程序。2)试写一条把片内RAM50H~59H单元写入01H的程序。3)如何仿真和调试C51程序呢?(用户可以把上面的例子改为C51程序然后在编译调试)3:..实验二蜂鸣器驱动实验、实验目的利用单片机的P1口作10口,使用户学会蜂鸣器的使用、实验设备及器件IBMPC机一台DP-51PR0C单片机综合仿真实验仪一台频率计一台、实验内容1、编写一段程序,(输出3K到4K频率的方波),使B5区的蜂鸣器发出嘹亮的响声。2、按照例程输入一段程序,,使B5区的蜂鸣器发出“生日快乐”的音乐。四、实验步骤1、使用导线把A2区的P13与B5区的BUZZ接线柱相连。2、先编写一个延时程序(120'200uS)。3、再编写一个循环程序,,然后延时。这样,-4KHZ的方波。在DP-51PR0C单片机综合仿真实验仪上运行该程序时,B5区的蜂鸣器将发出嘹亮的响声。4、按以下例程序输入,然后运行,蜂鸣器发出“生日快乐”的音乐。五、实验参考程序ORG8000HJMPMAINORG800BHINTT08100HMAIN:MOVSP,#60HMOVTMOD,#01H;初始化定时器及其中SETBET0EATR0断;;启动定时器START0:SETB0MOV30H,#00HNEXT:MOVA,30HMOV;从TABLE中读取数据--响声时间DPTR,#TABLEMOVCA,***@A+DPTRMOVR2,AJZENDDANLA,#0FHMOVR5,AMOVA,R2SWAPANLA,#0FH4:..JNZSINGCLRTR0JMPD1DECASING:MOV22H,ARLAMOVDPTR,#TABLE1;从TABLE中读取数据—声调MOVCA,***@A+DPTRMOVTH0,AMOV21H,AMOVA,22HRLAINCAMOVCA,***@A+DPTRMOVTL0,AMOV20H,ASETBTR0CALLDELAY;声音延时INC30HJMPNEXTD1:ENDD:CLRTR0JMPSTART0INTT0:PUSHPSWMOVTL0,20H;定时器0中断服务程序MOVTH0,:MOVR7,#02DELAY0:MOVR4,#187DELAY1:MOVR3,#248DJNZR3,$DJNZR4,DELAY1DJNZR7,DELAY0;R5的值就是声响持续时间DJNZR5,DELAYRETTABLE:DB82H,01H,81H,94H,84H,0B4H,0A4H,04HDB82H,01H,81H,94H,84H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H5:..DB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB82H,01H,81H,94H,84H,0B4H,0A4H,04HDB82H,01H,81H,94H,84H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00HTABLE1:DW64260,64400,64524,64580,64684,64777,64820,64898DW64968,65030,65058,65110,65157,65178,65217END六、实验思考题请用户思考,如何通过程序来编写出音乐。6:..实验三电子琴实验、实验目的利用实验仪上提供的按键K1~K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。、实验设备及器件IBMPC机一台DP-51PR0C单片机综合仿真实验仪一台频率计一台、实验内容1、编写一段程序,(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出对应的音调。2、按照歌曲的音调,使用D1区的按键K1~K7,弹奏一首简单的音乐四、实验步骤1、(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。如右图所示。2、编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计。3、调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐。五、:MOV;SP,#60H初始化堆栈向量MOV30H,#00;定时器初值清零MOV31H,#00;设置P1口为输入模式MOVP1,#0FFHMOVTMOD,#01H;设置定时器0为工作模式1SETBET0;开定时器0中断SETBEA;开总中断CLRTR0;关闭定时器0START:MOVR0,P1CJNER0,#0FFH,KEY1;键盘扫描CLRTR0SJMPSTART7:..KEY1:CJNER0,#0FEH,KEY2;K1键按下MOV30H,#0FBH;设置音阶1MOV31H,#0E9HLJMPSET_TIMERKEY2:CJNER0,#0FDH,KEY3;K2键按下MOV30H,#0FCH;设置音阶2MOV31H,#5CHLJMPSET_TIMERKEY3:CJNER0,#0FBH,KEY4;K3键按下MOV30H,#0FCH;设置音阶3MOV31H,#0C1HLJMPSET_TIMERKEY4:CJNER0,#0F7H,KEY5;K4键按下MOV30H,#0FCH;设置音阶4MOV31H,#0EFHLJMPSET_TIMERKEY5:CJNER0,#0EFH,KEY6;K5键按下MOV30H,#0FDH;设置音阶5MOV31H,#045HLJMPSET_TIMERKEY6:CJNER0,#0DFH,KEY7;K6键按下MOV30H,#0FDH;设置音阶6MOV31H,#92HLJMPSET_TIMERKEY7:CJNER0,#0BFH,NOKEY;K7键按下MOV30H,#0FDH;设置音阶7MOV31H,#0D6HSET_TIMER:SETBTR0;发声SJMPSTARTNOKEY:CLRTR0;无键按下SJMPSTART8:..;T0中断服务程序INT_T0:TH0,30H;定时器附初值MOVTL0,31HMOVBUZZ;输出方波CPLRETIEND六、实验思考题结合实验仪上的硬件,设计一个可以任意选曲播放的电子音乐盒9:..串转并的I/O口实验实验目的熟悉并掌握串转并的I/O口扩展方法。实验设备及器件IBMPC机一台DP-51PR0C单片机综合仿真实验仪一台实验内容1、写程序,通过单片机的P1口控制74HC164的输入端口,实现串并转换。2、验证串并转换数据的正确性。实验要求四、熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源。实验步骤1、短接A5区JP10接口,将A5区的CLK164、DINA164、DINB164、CLR164与A2区的P10~013对应相连(CLK对P10等等)。'LJJ<}.roCLR?MCU-lil*13f口尹…示。2、运行编写好的软件程序,完成一次串并转换。3、使用C2区的逻辑笔或D1区的LED指示灯测试并行输出数据Q0~Q7数据的正确性。六、::..MOVSP,#60H;NOP;设置以下端口初始化CLRCLK;CLK=0:..SETBDINB;DINB=1CLRCLR164;CLR=0输出端口清零;CLR=1SETBCLR164;用户输出数据初始化MOVA,#0AAHMOVR4,#08HSLCHG:RLCAMOVDINA,CSETB;串行输出一位数据CLK;移位时钟NOPCLRCLKNOPDJNZR4,SLCHGSJMP$;,完成一次串并转换END:..定时器输出PWM实验一、实验目的利用定时器控制产生占空比可变的PWM波。二、实验设备及器件IBMPC机一台DP-51PROC单片机综合仿真实验仪一台频率计一台三、实验内容编写好一段程序,,用D1区的按键KEY1和KEY2实现占空比的增加和降低。。四、实验要求学会事业能够单片机的定时器产生250HZ的PWM波。五、实验步骤1、用导线连接A2区的P11与D1区的KEY102、用导线连接A2区的P12与D1区的KEY23、将示波器的探针连接到A2区的P1004、。六、实验参考程序PWMHDATA30H;高电平脉冲的个数PWMDATA31H;PWM周期COUNTERDATA32HTEMPDATA33HORG8000HMAINAJMP800BHORGINTT0AJMPORG8100HMAIN:MOVSP,#60H;给堆栈指针赋初值MOVPWMH,#02HJMOVCOUNTER,#01HMOVPWM,#15HMOVTMOD,#02H;定时器0在模式2下工作MOVTL0,#38H;定时器每200us产生一次溢出MOVTH0,#38H;自动重装的值SETBET0;使能定时器0中断SETBEA;使能总中断SETBTR0;开始计时KSCAN:,K1CHECK;扫描KEY1,,K2CHECK;扫描KEY2,如果按下KEY2,跳转:..KEY2处理程序SJMPKSCANK1CHECK:,K1HANDLE,如果按下KEY1,跳转到KEY1处理程序SJMPK1CHECK;判断是否到达上边界K1HANDLE:;是,则不进行任何操作MOVA,PWMHCJNEA,PWM,K1H0SJMPKSCANK1H0:MOVA,PWMH;如果在加1后到达最大INCA值;定时器停止;,PWM,:;如果加1后到达下边界CJNEA,#02H,K1H2;重开定时器SETBTR0K1H2:;增加占空比INCPWMHSJMPKSCANK2CHECK:,K2HANDLE;去抖动,如果按下KEY2,跳转KEY2处理程序到SJMPK2CHECKK2HANDLE:MOVA,PWMHCJNEA,#01H,K2H0SJMPKSCAN;判断是否到达下边K2H0:界MOVA,PWMH;是,则不进行任何操作MOVTEMP,PWMDECACJNEA,#01H,;如果在减1后到达下边SJMPK2H2界K2H1:;定时器停止DECTEMPCJNEA,TEMP,K2H2;;如果到达上边界;启动定时器:..K2H2:DECPWMH;SJMPKSCANINTT0:PUSHPSW;现场保护OUNTER;计数值加1MOVA,COUNTERCJNEA,PWMH,INTT01;;:CJNEA,PWM,INTT02;如果等于周期数MOVCOUNTER,#01H;:;出栈POPPSWRETIEND七、实验思考题请用另一种方式实现定时器产生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、INTO(/RST~P1O、INT-KEY~INTO),短接D5区的JP1跳线。2、模拟I2C软件包“VIIC-”文件加入到KeilC51的项目中,开头包含“VIIC-”头文件。修改VIIC-=P1A7;和sbitSCL=PM6;。另外还要增加ZLG7290软件包“”文件加入到KeilC51的项目中,开头包含“”头文件。3、先编写显示的子函数,可以分别显示日期和显示时间。用按键来切换显示的内容(初步设计用D5区的S1按键来切换)。4、然后再进行整体编程,如果还有困难可以先画流程图,再编写程序。5、显示结果为:上电运行时,8位数码管显示时间,时分秒;按一下S1切换到显示年月日,再按一下S1又切换回时分秒。六、实验预****要求认真阅读PCF8563T、ZLG7290的数据手册和模拟I2C软件包使用手册,理解硬件结构,还可以先把程序编好,然后在KeilC51环境下进行软件仿真。七、实验参考程序//包含VI2C软件包#definePCF85630xA2//定义器件地址#defineWRADDR0x00//定义写单元首地址#defineRDADDR0x02//定义读单元首地址sbitKEY_INT=P3A2;sbitRST=P1A0;unsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存unsignedcharKEY;//保存键值bitswich_date=0;unsignedchardisplay_time(unsignedchar*sd){16:..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;//延时参数for(;no>0;no--)for(i=0;i<100;i++)for(j=0;j<100;j++);return0;}voidmain(){unsignedcharcodetd[9]={0x00,0x12,0x00,0x30,0x12,0x06,0x05,0x02,0x04};//定义初始化字unsignedcharrd[7];//定义接收缓冲区RST=0;DelayNS(1);RST=1;ISendStr(PCF8563,WRADDR,td,0x5);//初始化PCF8563如果需要的话可以不去掉DelayNS(l);ISendStr(PCF8563,WRADDR+5,&td[5],0x4);〃初始化PCF8563如果需要的话可以不去掉while(1){DelayNS(1);IRcvStr(PCF8563,RDADDR,rd,0x7);//读现在的时、分、秒17:..DelayNS(1);if(swich_date)display_date(rd+3);//调显示日期子程序elsedisplay_time(rd);//调显示时间子程序if(KEY_INT==0){KEY=ZLG7290_GetKey();if(KEY==1)swich_date=~swich_date;}}}18