单片机实验Kiel软件的使用和C程序调试.docx_第1页
单片机实验Kiel软件的使用和C程序调试.docx_第2页
单片机实验Kiel软件的使用和C程序调试.docx_第3页
单片机实验Kiel软件的使用和C程序调试.docx_第4页
单片机实验Kiel软件的使用和C程序调试.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:Kiel 软件的使用和C程序调试一、实验目的: 1、通过实验学会用C语言进行程序的设计。 2、学会应用keil-uvision集成调试软件对C语言程序进行调试。掌握C语言程序的编辑、编译、运行、单步调试的过程和通过寄存器、存储器、串行口检查程序运行结果是否正确的方法。 二、kerl-uvision集成调试软件的操作 操作步骤:1、双击桌面上的UV2快捷图 ,启动软件。 2、点击P工程 N新建工程 输入文件名(如A1)并点击保存。 3、出现CPU屏幕,选Atmel AT89C51 点确定。屏幕左上方出现图标目标1。 4、点击文件 新建文件 出现程序输入区。 5、输入C语言程序:#includevoid main(void) int x,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。 如果程序已经存在,可点击文件 打开文件,找到需要选择的文件。 6、点击(图标)目标1前的“+”号,出现(图标)源程序组1,选中并点右键,选“文件增加到源程序组1”,选择文件类型为C,再选要输入的程序 S1.C,点ADD(加入),点确定。 此时点击源程序组1可以看到要输入的程序S1.C 。在对程序编译前要进行以下的设置: 1、单击“project”(工程)菜单,在下拉菜单中单击“options for target 1”(目标 目标1属性),再单击“target”(目标),将输入仿真器的晶振频率改为12.0MHz。 2、在目标 目标1属性 页面下选择output(输出) ,点击“Create HEX file”(产生hex文件)的选项,以便汇编后生成HEX代码,供编程器使用。 3、对于软件仿真,在目标 目标1属性 页面下点“Debug”(调试),再选“S 使用软件仿真器”,同时选中“加载代码到仿真器”和“运行到main0”,然后点击“确定”。 7、程序的编译和链接 依次点击屏幕上方左下角的编译和建造目标图标 对文件进行编译和链接,观察左下角的调试程序信息显示,如有错可根据该栏提示的信息进行修改,修改后要重新保存和编译,直到无错误提示。 8、点击调试图标 ,进入程序调试画面,此时黄箭头所指是将要执行的指令。可点击 全速运行程序或点击 (或按F10)进行单步运行,观察运算结果: (1)调试界面分为4部分: 左上角为REG和系统显示区; 左下角为调试程序时的信息显示; 右上角为程序编写和修改区; 右下角存储器的显示区。 (2)存储区设置: 如果未出现存储区,设置方式如下:点击:V视图 M存储器窗口,右下角会出现4个存储区:存储器#1-#4。可以根据需要设置。 程序存储器设置:点击存储器1#,在上面地址栏中输入C:0000H,存储器1#被设计为程序存储器,地址从0000H开始。 内部/外部数据存储器设置:点击存储器2#/3#,在上面地址栏中输入D/X:0000H,此时存储器2#/3#被设计为内部/外部数据存储器,地址从0000H开始。 对C语言程序,调试时需打开以下窗口:(1)变量的查询: 打开V视图:W监视&调用堆栈窗,在局部栏中或监视#1、2中观察结果。(2)用scanf输入,或用printf输出时: 打开V视图:串行口1#观察结果。 当单步运行时,在scanf语句运行后,在串行口1#中光标位置按输入格式要求输入数据后回车。(3)修改或停止运行程序时再次点击 ,退出运行状态,可以进行程序的修改。 8、运行程序 点击 (左图标)或停止程序运行(右图标);如果希望单步执行(即一条一条的执行指令,以便调试程序)可点击 图标,每点击一次黄箭头会向下移动,指向下一条指令。 9、观察程序的运行结果 在单步调试时,每执行一条指令,都可在屏幕左上方的寄存器区和右下方的存储区观察运行的状态。程序存储器中表示的是程序汇编后的二进制代码,内外数据存储器中表示的运行中数据结果的变化。观察时可在相应存储区的地址栏打入地址即可,如想看内存20H中的内容,只需在相应存储区的地址栏打入 D:0020H。 三、实验内容 熟悉Kiel C软件界面,编辑、编译、运行程序。 1、输入下面程序,调试并观察运算结果。#include#includevoid main(void) int x,y; SCON=0x52; TMOD=0x20; TH1=0xF3; TR1=1; printf(input x,y:n); scanf(%d%d,&x,&y); z=x+y; printf(%d,z); while(1);2、输入下面程序(有错误),调试并观察运算结果。#include#includevoid main (void) int i;s=0; i=1; SCON=0x52;TMOD=0x20; TH1=0xf3;TR1=1 do s=s+i ; i+ while (i100) printf(“%dn”,s); 正确的程序为:#include#includevoid main (void) int i,s=0; i=1; SCON=0x52;TMOD=0x20; TH1=0xf3;TR1=1; do s=s+i ; i+ ; while (i100); printf(%dn,s); 2、程序 编写C程序,用scanf语句输入2个整数a和b,求2个数的和、差、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论