单片机实验1(Kiel-软件的使用和C程序调试)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机原理与接口技术实验实验一:Kiel软件的使用和C程序调试一、实验目的:1、通过实验学会用C语言进行程序的设计。2、学会应用keil-uvision集成调试软件对C语言程序进行调试。掌握C语言程序的编辑、编译、运行、单步调试的过程和通过寄存器、存储器检查程序运行结果是否正确的方法。二、kerl-uvision集成调试软件的操作操作步骤:1、双击桌面上的UV2快捷图,启动软件。2、点击P工程N新建工程输入文件名(如A1)并点击保存。3、出现CPU屏幕,选AtmelAT89C51点确定。屏幕左上方出现图标目标1。4、点击文件新建文件出现程序输入区。输入C语言程序:#includereg52.hvoidmain(void){intx,y,sum,sub,mul,div;x=5;y=8;sum=x+y;sub=x-y;mul=x*y;div=y/x;while(1);}输入后点击文件中的保存,输入程序名(例如S1.C)并选择存入的盘(如D:)点击保存。程序名一般不超过6个字母数字,以字母打头,C语言要加尾缀:.C。如果程序已经存在,可点击文件打开文件,找到需要选择的文件。5、点击(图标)目标1前的“+”号,出现(图标)源程序组1,选中并点右键,选“文件增加到源程序组1”,选择文件类型为C,再选要输入的程序S1.C,点ADD(加入),点确定。此时点击源程序组1可以看到要输入的程序S1.C。在对程序编译前要进行以下的设置:1、单击“project”(工程)菜单,在下拉菜单中单击“optionsfortarget1”(目标’目标1’属性),再单击“target”(目标),将输入仿真器的晶振频率改为12.0MHz。2、在目标’目标1’属性页面下选择output(输出),点击“CreateHEXfile”(产生hex文件)的选项,以便汇编后生成HEX代码,供编程器使用。3、对于软件仿真,在目标’目标1’属性页面下点“Debug”(调试),再选“S使用软件仿真器”,同时选中“加载代码到仿真器”和“运行到main0”,然后点击“确定”。6、程序的编译和链接依次点击屏幕上方左下角的编译和建造目标图标对文件进行编译和链接,观察左下角的调试程序信息显示,如有错可根据该栏提示的信息进行修改,修改后要重新保存和编译,直到无错误提示。7、点击调试图标,进入程序调试画面,此时黄箭头所指是将要执行的指令。(1)调试界面分为4部分:①左上角为REG和系统显示区,可观察寄存器的变化;②左下角为调试程序时的信息显示;③右上角为程序编写和修改区;④右下角存储器的显示区。(2)存储区设置:如果未出现存储区,设置方式如下:点击:V视图M存储器窗口,右下角会出现4个存储区:存储器#1-#4。可以根据需要设置。通常设置程序存储区、内部数据存储区、外部数据存储区。①点击存储器1#,在上面地址栏中输入C:0000H,存储器1#被设计为程序存储器,地址从0000H开始。②点击存储器2#,在上面地址栏中输入D:0000H,此时存储器2#被设计为内部数据存储器,地址从0000H开始。③点击存储器3#,在上面地址栏中输入X:0000H,此时存储器3#被设计为外部数据存储器,地址从0000H开始。8、运行程序点击(左图标)为全速运行或停止程序运行(右图标);如果希望单步执行(即一条一条的执行指令,以便调试程序)可点击图标,每点击一次黄箭头会向下移动,指向下一条指令。9、对C语言程序,调试时需打开以下窗口:(1)变量的查询:打开V视图:W监视&调用堆栈窗,在局部栏中或监视#1、2中观察结果。(2)用scanf输入,或用printf输出时:打开V视图:串行口1#观察结果。当单步运行时,在scanf语句运行后,在串行口1#中光标位置按输入格式要求输入数据后回车。(3)修改或停止运行程序时再次点击,退出运行状态,可以进行程序的修改。三、实验内容熟悉KielC软件界面,编辑、编译、运行程序。1、顺序程序:输入下面程序,调试并观察运算结果。#includereg52.h#includestdio.hvoidmain(void){intx,y;SCON=0x52;TMOD=0x20;TH1=0xF3;TR1=1;printf(inputx,y:\n);scanf(%d%d,&x,&y);printf(%X,x+y);printf(%d,x+y);while(1);}2、分支程序#includereg51.h#includestdio.hmain(){intx,y,max;SCON=0x52;TMOD=0x20;TH1=0xf4;TR1=1;printf(inputx,y:\n);scanf(%d%d,&x,&y);if(xy)max=x;elsemax=y;printf(%d\n,max);while(1);}2020/5/143、循环程序:输入下面程序(有错误),调试并观察运算结果。#includereg51.h#includestdiohvoidmain(void){inti;s=0;i=1;SCON=0x52;TMOD=0x20;TH1=0xf3;TR1=1while(i101);{s=s+i;i++}printf(“%d\n”,s);while(1)}四、自编程序编写C程序,用for语句实现0-100的求和。要求:程序必须编译通过并运行正确。五、实验报告每次实验完毕后记录实验结果,在下次实验时提交上次实验的实验报告。报告内容:1、实验目的2、实验内容3、实验原理图与线路连接4、实验步骤5、实验结果6、实验体会

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功