一、实验目的:
1、利用单片机的P1口作I/O口,学会蜂鸣器的使用 2、学习并掌握定时器/计数器的编程
二、实验学时:3学时
三、实验设备及器件
PC机 一台 DP-51PROC单片机综合仿真实验仪 一台 频率计 一台 四、实验要求:
1、编写一段程序,用P1.3口控制(输出3K到4K频率的方波),使B5区的蜂鸣器发出嘹亮的响声。
2、按照例程输入一段程序,用P1.3口控制,使B5区的蜂鸣器发出“生日快乐”的音乐。(选做)
五、实验步骤: (一)、新建工程文件
1、点击工具栏Project选项,在下拉菜单中选择New Project命令,弹出项目文件保存对话框,输入项目名后,点击保存按钮。
2、在工程建立完毕以后,uVision会弹出器件选择窗口,选择相应的器件型号。如想修改,可点击工具栏Project选项,在下拉菜单中选择Select Device for Target „Target‟命令。
3、点击工具栏File选项,选中New命令,新建文件,输入源程序。
4、把文件保存到磁盘中,如用汇编语言编写程序用.asm为扩展名,如用C语言编写程序用.c为扩展名。
5、添加该文件到工程中,在Projectwindos窗口内,选中Source Group1然后点击鼠标右键,选择Add files to Group “Source Group1”,选择刚才创建的源程序文件,单击Add按钮。 (二)、程序文件的编译、链接 1、使用导线把 A2区的P13和B5区的BUZZ接线柱相连; 2、编写一个输出3K到4K频率的方波的程序,步骤如下: 1)先编写一个延时程序(120~200µs);
2)再编写一个循环程序,改变P1.3脚的电平,然后延时。在单片机综合仿真实验仪上运行该程序,B5区蜂鸣器会发出嘹亮的声音。
3、按照下面的程序在Keil C51集成开发环境中建立工程文件,并进行调试仿
真。
ORG 8000H JMP MAIN ORG 800BH JMP INTT0
ORG 8100H MAIN: MOV SP,#60H MOV TMOD,#01H SETB ET0 SETB EA SETB TR0 START0: SETB P1.3 MOV 30H,#00H NEXT: MOV A,30H MOV DPTR,#TABLE MOVC A,@A+DPTR MOV R2,A JZ ENDD ANL A,#0FH MOV R5,A MOV A,R2 SWAP A ANL A,#0FH JNZ SING CLR TR0 JMP D1 SING: DEC A MOV 22H,A RL A
MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A
MOVC A,@A+DPTR MOV TL0,A MOV 20H,A SETB TR0 D1: CALL DELAY INC 30H JMP NEXT
ENDD: CLR TR0 JMP START0 INTT0:
PUSH PSW PUSH ACC MOV TL0,20H MOV TH0,21H CPL P1.3 POP ACC POP PSW RETI
DELAY: MOV R7,#02 DELAY0: MOV R4,#187 DELAY1: MOV R3,#248 DJNZ R3,$ DJNZ R4,DELAY1 DJNZ R7,DELAY0 DJNZ R5,DELAY RET
TABLE: DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H TABLE1: DW 64260,64400,64524,64580,64684,64777,64820,64898 DW 64968,65030,65058,65110,65157,65178,65217
END
软件调试的具体步骤如下:
1)打开keil集成开发环境,新建一个新的工程文件。 2)根据需要为工程选择目标器件组和相应的器件号。 3)创建源程序文件并输入程序代码。 4)保存创建的源程序项目文件。 5)把源程序文件添加到项目中。
6)点击菜单栏上的Project项,选择Option for target „target1‟将出现调试环境设置界面。在Debug栏内选UseSimulator用软件模拟仿真。
7)编译连接环境设置,选中Create Hex File选项,在编译时就可以自动生成目标代码文件*.hex。 硬件调试仿真的具体步骤如下:
1)修改源程序入口地址为8000H;
2)点击菜单栏上的Project项,选择Option for target „target1‟将出现调试环境设置界面。在Debug栏内选Use MON51选项,并在该栏后的驱动方式选择框内的选这时的驱动程序库。对于51仿真器应选择Keil Monitoe-51 Diver选项。同时在Settings项中设置串行通信的端口和波特率9600bps,这要求和通信协议上一致。由于MON51监控程序已经占用了0000H~7FFFH,用户应用程序必须从8000H开始存放。故在off-chip code memory-Eprom设为0x8000,长度0x4000。off-chip Xdata memory-Ram设为0xC000,长度0x4000。 3)配置好环境设置后,对文件进行编译。如果编译成功,则产生目标文件。如果有错误则更正错误,重新编译直至完全正确为止。
4)连接好DP-51PROC实验仪,对实验仪上电,打开DPFlash,把仿真器上的开关拨到LOAD模式,ISP跳线JP14 跳开,按下复位键,即进入下载状态。在DPFlash上型号的下拉菜单选择DP-51PROC,然后根据你所插的通信口选择相应的通信口。点击编程按钮,选择MON51选项,开始下载到TKSMonitor51仿真器的Flash中。再将仿真器工作模式改为run,重启,仿真器进入调试状态。
5)关掉DPFlash,点击DEBUG菜单,选中Start/Stop Debug Session调试命令,这样既可以把用户程序下载到仿真器的SRAM中。单击go!,进行控制。 脱机运行的具体步骤如下:
1)修改源程序入口地址为0000H;
2)点击菜单栏上的Project项,选择Option for target „target1‟将出现调试环境设置界面。Target属性的设置,设置Off-Chip Code Memory栏内的Eprom选项,start下输入0x0000,size下输入0x4000;Off-Chip Xdata memory栏内的Eprom选项,start下输入0xC000,size下输入0x4000。
3)连接好DP-51PROC实验仪,对实验仪上电,打开DPFlash,把仿真器上的开关拨到LOAD模式,ISP跳线JP14 跳开,按下复位键,即进入下载状态。在DPFlash上型号的下拉菜单选择DP-51PROC,然后根据你所插的通信口选择相应的通信口。装载文件,点击编程按钮,选择编程文件区选项,将生成的目标文件下载到TKSMonitor51仿真器的Flash中。再将仿真器工作模式改为run,重启,仿真器进入脱机运行状态。
六、实验注意事项:
1、硬件调试或运行的运行的时候打开电源,不要保持电源的常开状态,以免实验箱运行时间过长烧坏。
2、Debug时,需关掉DPFlash,否则调试时开发环境报错。
因篇幅问题不能全部显示,请点此查看更多更全内容