单片机程序编程流程.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机程序编程流程 【实验目的】 1. 熟悉 SPCE061A 单片机常用的汇编指令; 2. 学会使用 SPCE061A 单片机汇编语言以及伪指令构造汇编程序; 3. 掌握 μ\u8217XnSP? IDE 集成开发环境的一般使用方法。 【实验要求】 1. 编程要求:编写一个汇编语言程序。 2. 实现功能:从 1 到 100 进行累加,并把计算结果保存在[Sum]单元里。 3. 实验现象:实验过程中,单步运行时,可通过 IDE 的调试工具寄存器观察窗口(Register Window) 观察通用寄存器的变化,通过变量观察窗口(Toggle Watch)观察变量 Sum 的变化;累加结束 后保存累加结果:通过变量观察窗口(Toggle Watch)可以观察到变量 Sum 的值为 5050(十六进制表示为 0x13BA)。 【实验原理】 SPCE061A 的汇编指令按其功能主要有数据传送指令、算术指令、逻辑指令、转移指令和控制指令。 在程序运行中主要用到 r1~r4 四个通用寄存器和 BP(r5)、SP、PC、SR 四个特殊功能寄存器。其中 r1~r4一般作为目标寄存器或源寄存器,参与数据传输或算术逻辑运算。 【程序流程】 流程说明 初始化寄存器 r2 作为累加器,初始值为 0;寄存器 r1 为加数,初始值为 1。初始化操作完成后即进入 累加循环;在累加循环当中,累加器的数值加上加数,并保存在累加器当中,加数自加 1;当加数加到了 100,退出累加循环,把 r2 累加的结果送到[Sum]单元中。 .DEFINE P_Watchdog_Clear 0x7012 .RAM .VAR Sum //定义变量Sum .CODE .PUBLIC _main _main: r1 = 0x0001 r2 = 0x0000 ?Loop: r2 = r2 + r1 //累加 r1 = r1 + 1 cmp r1,100 //比较r1与100,如不大于则继续累加 jna ?Loop [Sum] = r2 //保存累加结果 ?Loop0: r1 = 0x0001 [P_Watchdog_Clear] = r1 //清看门狗操作 jmp ?Loop0 熟悉μ’nSP(TM) IDE 集成开发环境下 C 语言程序的编写 【实验目的】 1. 熟悉 μ’nSP(TM) IDE 集成开发环境的使用方法; 2. 掌握用 SPCE061A单片机 C 语言编写应用程序的方法。 【实验要求】 1. 编程要求:编写一个 C 语言程序。 2. 实现功能:从 1 到 100 进行累加,并把计算结果保存在变量 Sum中; 3. 实验现象:打开变量观察窗口观察变量 Sum的变化,累加结束时变量 Sum为 5050。 【程序流程图】 先定义一个累加值变量 Sum和一个加数变量 i,初始化 Sum=0,i=1, 进入累加循环;在累加循环中,Sum 和 i 相加,并把相加结果保存在 Sum 中,i 自加 1,判断 i 是否大于 100,如果没有则继续累加,如果大于,则退出累加循环,进入主程序循环,执行清看门狗操作,防止单片机复位。 #define P_Watchdog_Clear (volatile unsigned int *)0x7012 int main(void) { unsigned int Sum; unsigned int Count; Sum = 0; for(Count = 0;Count = 100;Count++) { Sum = Sum + Count; //当Count不大于100,累加 } while(1) { *P_Watchdog_Clear = 0x0001; //清看门狗操作 } 冒泡排序法程序 这一章我们从一个冒泡法排序(升序)的例子再进一步学习 SPCE061A 的编程,及调试。还是要强调先有流程图再有程序的概念,所以先从冒泡法排序的原理出发,再给出流程图,然后再编写程序代码,最终才到在线调试。将用断点调试的方法来看程序运行的结果。 uiArray[7] 进行升序冒泡法排序,数组里的数据依次为:40、6、32、12、9、24、 算法说明 这个算法类似水中气泡上浮,俗称冒泡法 。执行时从前向后进行相邻数比较,如

文档评论(0)

celkhn5460 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档