




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第 4章 AT C51汇 编语言程序设计 哎三 实训 4:软 件调试仿真器 KeiluVision应 用 (2 看指令执行 时间 ,延 时子程序 的设计 、观测和调试 。 程管理 窗 口或片 内 RAM窗 口观察子程序调用 时堆栈 的变化情况 。 =工 储器 窗 口观察片外 RAM窗 口中相关单元 的变化情况 。 =存 fF买 强化 Kei1实 训 ,通 过 Kei1实 训来增强编写程序 的能力和对程序 的理解 。 41节 中建立工 程和设置 Kei1 程 目标选项 ,本 章项 目工 程名设为 LITI,选 用 叫艹 三 d鳄 酃 二 三 丁t1。 设置使用软件仿真器 ,使 用汇编语言编写源
2、程序 ,设 置汇编后生成格式 们 臣 标代码文件 。工 程建 立 后 ,单 击 按钮建 立 新文件 ,弹 出一 个文本编辑 窗 口 枷 菅 删 哕 、 ¨ 厦可在其 内进行源程序设计与编辑 。Kei1工 作界面如 图 16所 示 ,图 中最 上 栏 珊 喘 三主的项 目工 程名 LITI以 下操作参看 3。 4。 1节 叙述 。 厅亨存放 在 片 队 免 夂5=X1+Xz+¨ 刂 : 循环 结构 ” , 燕初值 :R3、 R4=0 图 16 源程序编辑 窗 口 43。 1 用 Keil设 计延时子程序并进行仿真调试和延时测量 目的 Kei1集 成开发环境下 ,当 晶振为 垴
3、 求累加 和 礓序流程 图 12MHz时 ,设 计 ms延 时子程序 (对 应机器周期 s,并 进行仿真调试与延 时测量 。 2。 用 Kei丨 设计延时源程序并存盘 辱 4。 2。 1中 【 9】 延 时 ms源 程序输入 图 16中 的文本编辑 窗 口 内,检 查无误后 例 憔口 按钮 ,取 文件名 LB41。 ASM存 盘 ,如 图 17所 示 。但 工 程管 理 窗 口的文件管理 泄=还 没有文件 LB41。 ASM,这 是 因为 尚未将文件添加到 工 程 中 。 文件名 江 LB41 m LB41。 ASM存 盘 图 17 输入源程序并取名 77 3.添 加源程 序文件到工 程 将源
4、程序文件添加到 工 程 ,进 行源程序汇编 ( Ii 可看到源程序 JILB41。 ASM己 添加到 工 程 中 , 、 氵 并建 立 了 HEX目 标代码文件 。 4 I 运行 、观察时间和延 时时间调试 “ ÷=妁 过程 二 二女 至 i星 :二 台刂 工 运 行 的意 了 ,而 是执 单击 工 具栏 中的工 具按钮 瞰 :,进 入运行谖 0T ” 单步 工 具按钮 T,则 运行调用子程序指令 LCALL1亠 回指令 RET结 束为子程序 , 共 9行 指令 。整个÷ ¨ “ ” 思是 将子程序这个过程 当成单步 来完成 =彡 。 行完子程序 的所有指令后返
5、回停止到下 一 条指 ÷ - - p± 的黄色 箭头正指 向 SJMP$指 令 。从 工 程管理 窗 口的寄 T “ 时子程序 。而 state江 006” 表示 的是运行整 人于廴 =工 以秒为单位 的运行 时间 ,近 似等于 ms,差 麸 ;TL 二叫 -DO这 是 " -二 20ms的 延 卩 图 18 添加源程序文件到工廷 如果有需要观察子程 序 中的指 令运 t厂 J. 亍冒 刂 t 三t YASH 栈区的 ” 程单步 工具按钮 T,则 工程管理窗口中的 子程序延时 40ms,而 机器周期数仍为 OO6。 =÷ 0x08和 0x09单 元 中的
6、 内容为 0003,三 1二 t OxOOO3。 每按 一 次 孔 按钮 ,运 行子程序 中 条考 ÷ T 一 一 “ “ 均在累积增加 , states” 与 s” 都是从程序运 吁二 t三 票 一 “ 9” 击 执行完当前子程序工具按钮 ,跳 出子程 亨玎 一 存器 SP又 由 9变 为 7,表 示原先压入堆栈的之辶 三 理窗 口中的 PC程 序计数器的内容为 OxOO03: 延 时子程序 的延 时时间除与设计程序有夫夕 ,0 卜 器频率 12MHz的 延 时 。 若重设振荡器频率为 6IHz, . 指令 ,跳 入 子程序 中运行程 字 :这 玎二 歹F二 变为 9,表 示 已将
7、 主 程序 中调用指令 的下 一 条 二 T 1J=内 RAM堆 j 一景指令地 址 为 孑扌 行时 间 “ s” 、 = =二 1三 孑 =圣 LCALL SP由 7 二子埕 序 ,可 单 _ _ =莛 栈指针 (寄 J,可 以看 到 工 程 管 L_ _ 一 单片机原理 、应用与 PROTEUs仿 真 例 11程 序 的运行过程及相关存储单元 内容 的变化情况 。 习题与思考 4 将 一 个按高低字节存放在 21H、 20H中 的双字节数乘 以 2后 ,再 按高低次序将结 存放到 ” H、 21H、 zOH单 元 中 。 1。 2.试 编程 ,将 片外 RAM中 1000H1050H单 元
8、 的内容置为 55H。 试编写统计数据 区长度 的程序 ,设 数据 区从片 内 RAM的 3OH单 元开始 ,该 数据 以 0结 束 ,统 计结果放入 2FH中 。 3。 4。 5。 试编写程序 ,将 片外 RAM的 00H oFH数 据 区中的数据 由大到小排列 。 若 晶振频率为 6MHz,试 计算下面延 时子程序 的延 时时间 。 DELAY: Mo LP: Mo DJNz DNZ RET 6。 7。 R7,#0F6H R6,#0FAH R6,$ R7,LP 试分别编写延 时 20hs和 1s的 程序 。 试编写利用调用子程序 的方法延 时 1 血 的程序 。 已知整 数存在 A中 ,查
9、 表结果存入片 内 用查表程序求 06之 间的整数 的立 方 。 8。 31H中 。 编写程序 ,查 找在片 内 RAM的 存 入 51H单 元 。 9。 3OH H单 元 中出现 FFH的 次数 ,并 将查找结 10.试 用子程序求多项式 卜 (A+B饵 (B+c2的 值 。 11 已知 ( H 33H,(61H 43H,试 写 出下列程序 的功能和运行 结果 。 oRG 00H SJMP $ 】 ss: Mo R0,#61H CRR: MOV A,R0 、 MOV R1,#70H CLR C ACA CRR SUBB A,#30H A,#0AH,NEQ sWAP A C刀 NE AJMP BIG MOV R1,A NEQ: JC CEN DEC R0 BIG SUBB A,#07H ACA CRR CEN: RET XCHD A,R1 (60H干 ,(61H , (70H . 12.在 片 内 RAM的 H单 元 开始 ,相 继存 放 5个 无 符 号数 ,其 数 目 5存 放 在 21H 元 中 。试 编 写程序 ,求 出这 组无 符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论