单片机接口实验指导书

图10 调试相关参数设置

用鼠标左键单击“Setting”按键,根据你用的串口用鼠标选择Port,左键单击“ok”按键,选中“Load Application at Start”和“Go till main()”。

图11 串口参数设置 其余可以按默认值不需修改,点击“确定”完成设置。 2.2.5 编译。点击Project/Build target或者

,即完成了编译。在Keil界面的最下面的界

面中会显示Error和Warning.如果源程序中有语法错误,会有错误报告出现,双击该行,可

以定位到出错的位置,对源程序反复修改之后,最终会得到如图6所示的结果,提示获得了名为**.hex的文件,该文件即可被编译器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。

图12 正确编译、连接之后的结果

2.2.6 调试。在对工程成功地进行汇编、连接之后,使用菜单Debug/Start/Stop Debug Session即可进入调试状态,仿真CPU用来模拟执行程序,可以在没有硬件和仿真机的情况下进行程序的调试。进入调试状态后,工具栏会多出一个用于运行和调试的工具条。如图7所示,Debug菜单上的大部分命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一步状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。点击工具条中选项即可以进行调试程序。

图13调试工具条

学习程序调试,必须明确两个重要的概念,即单步执行与全速执行。全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认出现在哪些程序行。单步执行时每次执行一行程序,执行完该行程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以找到程序中问题所在。程序调试中,这两种运行方式都要用到。使用菜单STEP或相应的命令按钮或使用快捷键F11可以单步执行程序,使用菜单STEP OVER或功能键F10

可以以过程单步形式执行命令,所谓过程单步,是指将 图14 调试窗口 汇编语言中的子程序或高级语言中的函数作为一个语句来全速执行。按下F11键,可以看到源程序窗口的左边出现了一个黄色调试箭头,指向源程序的第一行,如图11所示。每按一次F11,即执行该箭头所指程序行,然后箭头指向下一行,当箭头指向LCALL DELAY行时,再次按下F11,会发现,箭头指向了延时子程序DELAY的第一行。不断按F11键,即可逐步执行延时子程序。

通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错有时是困难的,或虽能查出错误但效率很低,为此必须辅之以其他的方法,如本例中的延时程序是通过将D2:DJNZ R6,D2这一行程序执行六万多次来达到延时的目的,如果用按F11六万多次的方法来执行完该程序行,显然不合适,为此,可以采取以下一些方法,第一,用鼠标在子程序的最后一行(ret)点一下,把光标定位于该行,然后用菜单Debug/Run to Cursor line

(执行到光标所在行),即可全速执行完箭头与光标之间的程序行。第二,在进入该子程序后,使用菜单Debug/Step Out of Current Function(单步执行到该函数外),使用该命令后,即全速执行完调试光标所在的子程序或子函数并指向主程序中的下一行程序(这里是JMP LOOP行)。第三种方法,在开始调试时,按F10而非F11,程序也将单步执行,不同的是,执行到lcall delay行时,按下F10键,调试光标不进入子程序的内部,而是全速执行完该子程序,然后直接指向下一行“JMP LOOP”。灵活应用这几种方法,可以大大提高查错的效率。

停止仿真调试。用鼠标左键单击主菜单Debug/Start/Stop Debug Session推出调试模式。 注意:每次重新Debug 前要按一下复位键使单片机复位。

2.2.7 参看运行结果。在调试程序时往往要查看程序的运行结果,包括程序运行的中间值,这对判断程序的正确性至关重要。Keil提供了方便的查看工具,以便查看诸如变量、I/O口、存储器等各种运行结果。用鼠标左键点击主菜单Peripheral/I/O—Ports即可查看I/O口的结果,用鼠标左键单击子菜单Port1,查看并行口1的运行结果。

实验二 并行口输入输出实验——循环彩灯控制

一、实验目的

1.掌握并行口的输入输出编程方法。 2.掌握分支和循环程序的设计方法。 3.掌握程序的调试方法。

4.掌握外部中断程序的设计方法

二、实验要求

1.P1口接8个开关,P0口接8个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。开关断开时,灯灭。

2.用5个开关K0~K4,控制P0口所接8个灯的循环,各开关的功能要求如下:

(1)K0用于引发外部中断,在外部中断子程序中,读取循环彩灯的循环方式 (2)K1~K2分别选择灯的四种闪动方式;

(3)K3用于控制灯的循环方式(顺时针或逆时针); (4)K4用于选择的两种灯的循环速度

三、所用器件

5个开关,5个5.1KΩ电阻,8个发光二极管,8个220Ω电阻

联系客服:779662525#qq.com(#替换为@)