实验一 Keil C51集成开发环境的使用练习、仿真与调试
- 格式:doc
- 大小:103.50 KB
- 文档页数:17
C51程序在Keil C51下的调试步骤现在广泛使用的C51集成开发环境是Keil软件。
要使用Keil软件,首先要正确安装Keil软件,该软件的Eval版本可以直接去http://www. 下载,其步骤与一般Windows 程序安装类似,这里就不再赘述了。
Keil软件的详细说明见相关资料,这里仅作简要说明,以便于读者在后面的章节中实际动手调试、仿真程序。
1.建立工作项目文件图1启动Keil μVison2启动Keil μVison2,如果打开后就有打开的文件,单击“Project->Close Project”菜单将其关闭。
单击“File->New... ",打开一个新的文件输入窗口,在这个窗口里输入上述源程序。
输入完毕之后,选择“File-->Save",给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.c”为扩展名(一定要加扩展名,否则后面添加文件就找不到该文件,这是初学者很容易忘记的),这里将其命名为mytest.c。
图2 建立工程文件单击“Project->New Project...",出现对话框,要求给将要建立的工程起一个名字,这里起名为test,不需要输入扩展名。
单击“保存”按钮,出现第二个对话框,如图3所示:图3 CPU选择窗口这个对话框要求选择工程中所用的单片机型号,这里选择Atmel公司的89S52芯片。
单击ATMEL前面的“+”号,展开该层,单击其中的89S52,然后再单击“确定”按钮,会出现一个对话框,询问是否要将标准的8052启动代码加入工程,单击“是”按钮。
此时,在工程窗口的文件页中出现了“Target 1”,前面有“+”号,单击“+”号展开,可以看到下一层的“Source Group 1 ",需要手动把刚才编写好的源程序加入,方法如下:单击“Source Group 1 ",使其反白显示,然后单击鼠标右键,出现一个下拉菜单,如图4所示。
实验报告一、实验目的1.熟悉KeilC51集成开发环境的使用方法2.熟悉KeilC51集成开发环境调试功能的使用二、实验设备计算机1台三、设计内容1,熟悉KEILC51的开发平台,完成一个项目的创建,并在项目中加入样例程序,完成对项目的设置,完能编译生成所需要的目标的代码。
2.把外部RAM(XDATA)的2000-20FFHRAM空间置零。
四、设计原理及步骤1.首先点击KeiluVision2,进入uVision2界面。
点击工具栏Project选项中的NewProject,准备开始建立自己的项目。
2.输入工程文件名称,并选择保存工程文件的目录。
3.为项目文件选择一个目标器件(如A TMEL89C52)4.用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1‘设置选项“5.在“为目标‘目标1‘设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真还软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对话框中选择串口和波特率,串口根据所连的电脑来决定,波特率为38400。
6.点击“文件/新建”创建源程序文件并输入程序代码7.在文本框输入源程序8.点击“文件/保存”对程序进行保存9.用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组10.在弹出的添加文件框中,选择需要添加到项目标文档11.点击编译连接的图标,对项目文件进行编译12.点击“调试/启动/停止调试”进入调试界面13.在调试界面中可以对程序进行单步或者全速运行的调试14.若要查看内存的数据,点击“视图/存储器窗口”,在此窗口中输入不同的指令查看内部数据。
五、设计程序实验框图设计程序设计:程序一:把2000H到20FFH中的内容清零ORG0000HMOVDPTR,#2000HMOVR0,#00HJ1: MOV A,#00HMOVX@DPTR,AINCR0INCDPTRCJNER0,#0FFH,J1END程序二:修改程序把4000H-5000H中内容置55H。
实验一Keil C51集成开发环境的使用练习一、实验目的熟悉Keil C51集成开发环境的使用方法。
二、实验要求熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
三、实验仪器和设备1、硬件:计算机2、软件:Keil软件uVision4四、实验内容1、进行Keil C51集成开发环境的安装和使用练习;2、试建立一个工程项目并进行编译。
五、实验方法和步骤1、启动软件:双击桌面的Keil C51快捷图标,进入如下图所示的Keil C51集成开发环境。
2、建立工程项目:选择工具栏的【Project】→【New Project】命令,建立一个新的μVision4工程,取一个工程名,单击“保存(S)”按钮。
选择CPU的型号为AT89C51,确定。
在跳出的界面上选择NO.3、建立程序文件:单击【File】→【New】新建一个名为Text1的空白文件,单击【File】→【Save】输入文件名,保存格式为.C文件。
4、添加项目文件:右击Source Group 1选择然后选择刚才新建的.C文件,单击Add.在上面环境中编写程序。
5、工程的详细设置:在μVision4的菜单【Project】→【Options For Target ‘Target1’】的Output选项卡中,选中Create HEX File以产生hex文件。
在Target选项卡中XTAL:12M6、进行汇编:选择菜单【Project】→【Rebuild all target files】后,程序会进行汇编,若没有错误则生成相应的机器码.hex文件。
六、实验注意事项1、做实验要养成一个良好的习惯,在每次做实验时,都要在桌面新建一个文件夹,把项目和.C源文件保存在其中,为了下一步的添加源文件做准备;2、如果我们在做软硬件联合调试的时候,就要注意一定要选择正确CPU的型号(Atmel公司AT89C51),但如果我们只做软件仿真或者纯硬件实验时,我们在选择CPU型号时就没有具体的要求了。
实验五 Keil C51集成开发环境、DP-51PRO仿真实验仪使用及案例学习一、【实验目的】1、熟悉Keil C51集成开发环境的使用方法2、熟悉DP-51PRO单片机综合仿真实验仪的使用3、掌握基于Keil C51的硬件仿真功能的使用二、【实验仪器】1、IBM PC机一台2、DP-51PRO单片机综合仿真实验仪一台三、【实验内容】一、Keil C51的使用在Keil 软件中是以项目(Project)方式来组织管理所有相关的源码,和源码所处的文件夹没有太大关系。
1、熟悉uVision3集成开发环境菜单栏,工程项目窗口,编辑窗口,信息输出窗口等;2、创建一个新的项目:Project -> New uVision Project ,设置好工程存放路径、工程名称如:led。
3、为这个项目选择一个相应的设备,即目标单片机型号:NXP (Philips) -> P80/P87C52X2。
(此设备型号也可以在属性中更改。
)4、提示如下:选择否。
(当用C语言开发时,可选是)。
5、新建一个文本文档File -> New,输入实验源码:ORG 8000H ;伪指令,指定程序从8000H开始存放AJMP MAIN ;跳转指令,程序跳转到MAIN处ORG 8100H ;伪指令,指定以下程序从8100H开始存放MAIN:MOV SP,#60 ;给堆栈指针赋初值LIGHT: CPL P1.0 ;取反P1.0,改变L9的亮灭状态CPL P1.1 ;取反P1.1,改变L10的亮灭状态CPL P1.2 ;取反P1.2,改变L11的亮灭状态ACALL DELAY ;调延时子程序AJMP LIGHT ;跳转,程序继续;延时子程序DELAY: MOV R7,#10HDELAY0: MOV R6,#7FHDELAY1: MOV R5,#7FHDELAY2: DJNZ R5,DELAY2DJNZ R6,DELAY1DJNZ R7,DELAY0RETEND保存为:led.asm (后缀.asm表示此源代码是用汇编语言编的)6、在工程项目窗口中,右键点击Source Group 1, 点击Add Files to Group “Source Group 1”,把刚刚编写的源文件加入工程中。
实验一 Keil软件的使用及简单程序的调试方法一、实验目的掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。
二、实验器材计算机1台三、实验内容1.Keil的使用方法。
2.建立一个单片机汇编语言程序的调试过程及方法四、实验步骤1.Keil的使用方法。
Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。
启动Keil 后的界面如下:几秒钟后即进入Keil的编辑界面。
用户便可建立项目及应用程序。
2.简单程序的调试方法Keil是通过项目工程来管理汇编程序的。
因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。
(1)建立一工程单击Project菜单,在弹出的下拉菜单中选中New Project选项。
并在弹出的对话框中确定保存的位置及工程名称。
又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。
选择Atmel公司的AT89C51单片机。
如下图所示单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。
(2)建一文件单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。
单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。
如下图所示。
(3)将文件添加到工程中单击“Target 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。
实验一Keil C51编译环境的使用一、实验目的:1)安装keil uVision4 集成开发环境。
2)熟悉Keil C51 集成开发环境二、实验内容:(一)安装keil u Vision集成开发环境1、下载keil C51 安装软件2、运行srtup.exe安装软件并安装3、选择安装路径4、等待安装,单击finish安装完毕(二)熟悉Keil C51 集成开发环境1、打开Keil C51熟悉界面2、创建一个工程项目文件点击工具栏中的Project选项,选择new project建立一个工程,并为你的工程命名,选择存放路径并保存3、建立源文件点击工具栏中的File选项,在下拉菜单中选择New,在此窗口中输入我们的源文件ORG 0000HSJMP MAINORG 0030HMAIN: MOV 30H,#55HMOV A,30HSJMP $END4、保存源文件点击工具栏中的File选项下拉菜单的保存命令进行保存。
如果源文件是汇编语言,则文件名应有ex.asm,若为c语言,则应该有ex.c。
保存完毕后,会发现程序中的关键字变成了蓝色。
5、将文件加入工程中要将刚刚建立的程序文件ex.asm加入到工程项目中。
在Project Windows窗口内,选择Source Group1后,点击鼠标右键,在弹出的快捷菜单中选择Add Files To Group “Source Group1”命令,选择源文件的路径,文件类型和文件名,点击Add按钮将源文件加入工程项目中。
6、程序文件的编译和连接点击Project选项,在弹出的下拉菜单中选择”Option For Target “Target1””命令分别对Target 、Output、C51、Debug等选型卡进行设置完成后,再对程序进行编译。
点击点击Project选项,在弹出的下拉菜单中选择Build Taget 或Rebuild All Target Files 命令对源程序文件进行编译,若没有错误,此刻会在“Output Windows”信息输出窗口输出一些相关的信息,如果有错也会有相关的错误信息。
快速入门 基于Keil C51集成开发环境的仿真与调试1.实验目的:学习SICELab-G2100实验系统在Keil Uv2集成开发环境中硬件仿真与调试方法。
2.实验内容:P1端口接发光二极管,加1闪亮。
3.实验器材:(1)SICELab-G2100实验系统 1 台(2)LabMON51仿真器 1 个4.实验连线:5.实验步骤:(1)实验连线:按第四步“实验连线”示意进行连线。
连线连接孔1 连接孔2连线连接孔1连接孔21 P1.0 L0 5 P1.4 L42 P1.1 L1 6 P1.5 L53 P1.2 L2 7 P1.6 L64 P1.3 L3 8 P1.7 L7(2)把“LabMON51 仿真器”插入Lab51 CPU仿真插座中,取走锁紧插座上芯片(如果有的话)。
(3)把RS232通讯线的一头插入计算机的串口1,另一头插入LabMON51 仿真器的DB9插座中,到此,硬件连接完成。
更详细内容请参考“第[章:硬件连接”。
(4)参考实验一,完成第一步“打开keil调试环境”,第二步“点击[File|New],编辑一个新的程序文件”, 第三步“新建一个工程”。
(5)点击菜单的[Project->Option for Target '1'], 选择debug栏的设置项目:Use :Keil Monitor-51 Driver,Load Application at Start:选择这项之后,keil才会自动装载你的程序代码。
Go till main:调试c语言程序时可以选择这一项,pc会自动运行到main程序处如下图:(6)点击上图的Settings,打开新的窗口:Port: 设置你的串口号,为仿真机的串口连接线 COM_1,计算机的连接COM口可以选择COM1或者COM2。
Baudrate: 设置为9600,仿真机固定使用9600bps跟keilc通讯。
Serial Interrupt: 选中它。
实验一Keil C51开发环境的使用一实验目的1、掌握用uVision2和仿真器进行单片机C51编程开发的方法,掌握DP-51PROC实验仪基本特性和应用方法;2、掌握dScope调试方法,如单步、断点、运行到光标处等;3、掌握dScope主要命令,如对各个存储空间内存显示、修改的Enter,Display 命令等;4、掌握观察变量及修改变量内容的方法,掌握观察和修改特殊功能寄存器(SFR)的方法。
二实验内容1、在code区内定义两个数组,分别存放1至10的平方表和立方表,定义一个bit变量plus,一个char型变量x, 用查表法计算:若plus=1, 计算y=5x³+6x²;若plus=0, 计算y=7x³-6x²;通过变量观察窗口观察计算结果。
2、随后将y转换成4位BCD数,存在整型变量z中,y、z定义为大小为10的数组。
观察变量的值及其在内存中的地址。
3、编程控制8个LED,先逐个点亮,再逐个熄灭,再逐个点亮,如此循环,变化间隔为1秒左右,用软件循环实现。
三实验步骤1、实验前编程预习,在uVison2软件环境下,选择模拟调试,调通程序。
2、学习实验仪简介和实验指导书,按步骤实现一个点亮LED的演示程序,掌握实际仿真调试方法与结果。
(示例工程文件可以从ftp://59.64.74.111/05单片机/示例程序/ 上下载Led_Light目录)3、建立1个或3个工程文件,完成实验内容要求的工作,并在仿真器上调试、观察结果,与预期结果比较分析现象。
4、运用dScope调试方法,如单步、断点、运行到光标处等,在观察窗口中可显示出程序中定义的各个变量名及其内容, 观察各变量的变化情况和各数据区的分布变化情况,改变plus的值,再观察运行结果。
5、使用dScope主要命令,如对各个存储空间内存进行显示和修改,观察和修改特殊功能寄存器,主要命令是(E)nter和(D)isplay等,注意d:地址,i: 地址,c: 地址,x: 地址分别代表的存储空间;6、测试内部RAM 50H开始的单元,观察LED和单元变化的情况,测试并调整执行的时间,以满足设计要求。
实验一 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)汇编语言程序设计框图N Y(2)实验步骤用连续或单步方式运行程序,检查7000H —70FFH 单元中执行程序前后的内容变化。
(3)假使把7000H —70FFH 中的内容改成FF,如何修改程序?汇编语言里将第四行的#00H 改成#FFH(4)用C51重新编写该程序清零程序,运行程序并查看结果。
#include<reg51.h>#define uchar unsigned char开始 R0=0 00送到7000H DPTR+1,R0-1 R0=0? 结束ORG 0000H MOV R0,#00H MOV DPTR,#7000H LOOP:MOV A,#00H MOVX @DPTR,A INC DPTR DNJZ R0,LOOP ENDuchar xdata *p;void main(){{for(p=0x7000;p<0x7100;p++){*p=0x00;}}while(1)}7000H-70FF 中的内容全部清零2、查找相同数个数(1)汇编语言程序设计框图Y(2)实验步骤① 在7000H-700FH 单元中放入随机数,其中几个单元输入0. ② 用连续或单步方式运行程序;③观察片内RAM 30H 的内容,应显示“00H ”的个数,开始 字节数送R0,查找字节送R1 7000H →DPTR 从DPTR 中取数 判断和被查数相同否 R1+1 DPTR+1 字节数到吗 R1送30H 单元 结束 ORG 0000H MOV R0,#10H MOV R1,#00H MOV DPTR,#7000H LOOP:MOVX A,@DPTR CJNZE A,#00H,NEXT INC R1 NEXT:INC DOTR DJNZ R0,LOOP MOV 30H,R1 SJMP $ END(3)用C51重新编写该程序,运行程序并查看结果。
实验一Keil C51集成开发环境的使用练习、仿真与调试一、实验目的1、熟悉Keil C51集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP Main;END2、进行Keil C51集成开发环境的仿真调试练习。
然后按照以下内容建立文件并编译仿真调试。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
2、熟练掌握结合DP-51PROC单片机综合仿真实验仪和Keil C51集成开发环境进行仿真调试。
五、实验步骤(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)用户使用Keil C51集成开发环境建立工程、编辑与编译“实验内容”所列的程序。
然后按照(软件调试环境的设置)设置好,然后在编译一次。
(5)此时用户就可以进行仿真调试。
如果用户在退出仿真调试模式后想再进入仿真调试,可以先按一下TKSMonitor5仿真器的复位键(RST)。
用户可以在仿真调试环境下设置断点,单步,全速运行等。
在调试过程中用户可以看见D1区LED的亮灭是由用户程序来控制的。
六、实验思考题(1)试写一条把片内RAM 50H~59H单元清零的程序。
(2)试写一条把片内RAM 50H~59H单元写入01H的程序。
(3)如何仿真和调试C51程序呢?(用户可以把上面的例子改为C51程序然后在编译调试)实验二蜂鸣器驱动实验一、实验目的利用单片机的P1口作IO口,使用户学会蜂鸣器的使用。
二、实验设备及器件IBM PC机一台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、按以下例程序输入,然后运行,蜂鸣器发出“生日快乐”的音乐。
五、实验参考程序ORG 8000HJMP MAINORG 800BHJMP INTT0ORG 8100HMAIN:MOV SP,#60HMOV TMOD,#01H ;初始化定时器及其中断SETB ET0 ;开定时器0中断SETB EASETB TR0 ;启动定时器0START0: SETB P1.3MOV 30H,#00HNEXT: MOV A,30HMOV DPTR,#TABLE ;从TABLE中读取数据--响声时间MOVC A,@A+DPTRMOV R2,AJZ ENDDANL A,#0FHMOV R5,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP D1SING: DEC AMOV 22H,ARL AMOV DPTR,#TABLE1 ;从TABLE中读取数据—声调MOVC A,@A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,@A+DPTRMOV TL0,AMOV 20H,ASETB TR0D1: CALL DELAY ;声音延时INC 30HJMP NEXTENDD: CLR TR0JMP START0INTT0: ;定时器0中断服务程序PUSH PSWPUSH ACCMOV TL0,20HMOV TH0,21HCPL P1.3POP ACCPOP PSWRETIDELAY: ;R5的值就是声响持续时间MOV R7,#02DELAY0: MOV R4,#187DELAY1: MOV R3,#248DJNZ R3,$DJNZ R4,DELAY1DJNZ R7,DELAY0DJNZ R5,DELAYRETTABLE: DB 82H,01H,81H,94H,84H,0B4H,0A4H,04HDB 82H,01H,81H,94H,84H,0C4H,0B4H,04HDB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB 82H,01H,81H,94H,84H,0B4H,0A4H,04HDB 82H,01H,81H,94H,84H,0C4H,0B4H,04HDB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB 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六、实验思考题请用户思考,如何通过程序来编写出音乐。
实验三电子琴实验一、实验目的利用实验仪上提供的按键K1~K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台频率计一台三、实验内容1、编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出对应的音调。
2、按照歌曲的音调,使用D1区的按键K1~K7,弹奏一首简单的音乐。
四、实验步骤1、用导线将A2区P3.3口(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。
如右图所示。
2、编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计。
3、调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐。
五、实验参考程序BUZZ EQU P3.3ORG 8000HLJMP MAINORG 800BHLJMP INT_T0ORG 8100HMAIN:MOV SP,#60H ;初始化堆栈向量MOV 30H,#00 ;定时器初值清零MOV 31H,#00MOV P1,#0FFH ;设置P1口为输入模式MOV TMOD,#01H ;设置定时器0为工作模式1SETB ET0 ;开定时器0中断SETB EA ;开总中断CLR TR0 ;关闭定时器0START:MOV R0,P1CJNE R0,#0FFH,KEY1 ;键盘扫描CLR TR0SJMP STARTKEY1:CJNE R0,#0FEH,KEY2 ;K1键按下MOV 30H,#0FBH ;设置音阶1MOV 31H,#0E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3 ;K2键按下MOV 30H,#0FCH ;设置音阶2MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4 ;K3键按下MOV 30H,#0FCH ;设置音阶3MOV 31H,#0C1HLJMP SET_TIMERKEY4:CJNE R0,#0F7H,KEY5 ;K4键按下MOV 30H,#0FCH ;设置音阶4MOV 31H,#0EFHLJMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ;K5键按下MOV 30H,#0FDH ;设置音阶5MOV 31H,#045HLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7 ;K6键按下MOV 30H,#0FDH ;设置音阶6MOV 31H,#92HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,NOKEY ;K7键按下MOV 30H,#0FDH ;设置音阶7MOV 31H,#0D6HSET_TIMER:SETB TR0 ;发声SJMP STARTNOKEY:CLR TR0 ;无键按下SJMP STARTINT_T0: ;T0中断服务程序MOV TH0,30H ;定时器附初值MOV TL0,31HCPL BUZZ ;输出方波RETIEND六、实验思考题结合实验仪上的硬件,设计一个可以任意选曲播放的电子音乐盒。
实验四串转并的I/O口实验一、实验目的熟悉并掌握串转并的I/O口扩展方法。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、写程序,通过单片机的P1口控制74HC164的输入端口,实现串并转换。