单片机程序编程流程课件

上传人:我*** 文档编号:141498396 上传时间:2020-08-09 格式:PPT 页数:18 大小:79.50KB
返回 下载 相关 举报
单片机程序编程流程课件_第1页
第1页 / 共18页
单片机程序编程流程课件_第2页
第2页 / 共18页
单片机程序编程流程课件_第3页
第3页 / 共18页
单片机程序编程流程课件_第4页
第4页 / 共18页
单片机程序编程流程课件_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机程序编程流程课件》由会员分享,可在线阅读,更多相关《单片机程序编程流程课件(18页珍藏版)》请在金锄头文库上搜索。

1、单片机程序编程流程,【实验目的】 1. 熟悉 SPCE061A 单片机常用的汇编指令; 2. 学会使用 SPCE061A 单片机汇编语言以及伪指令构造汇编程序; 3. 掌握 u8217XnSP IDE 集成开发环境的一般使用方法。,【实验要求】,1. 编程要求:编写一个汇编语言程序。 2. 实现功能:从 1 到 100 进行累加,并把计算结果保存在Sum单元里。 3. 实验现象:实验过程中,单步运行时,可通过 IDE 的调试工具寄存器观察窗口(Register Window) 观察通用寄存器的变化,通过变量观察窗口(Toggle Watch)观察变量 Sum 的变化;累加结束 后保存累加结果:

2、通过变量观察窗口(Toggle Watch)可以观察到变量 Sum 的值为 5050(十六进制表示为 0 x13BA)。,【实验原理】,SPCE061A 的汇编指令按其功能主要有数据传送指令、算术指令、逻辑指令、转移指令和控制指令。 在程序运行中主要用到 r1r4 四个通用寄存器和 BP(r5)、SP、PC、SR 四个特殊功能寄存器。其中 r1r4一般作为目标寄存器或源寄存器,参与数据传输或算术逻辑运算。,【程序流程】,流程说明,初始化寄存器 r2 作为累加器,初始值为 0;寄存器 r1 为加数,初始值为 1。初始化操作完成后即进入 累加循环;在累加循环当中,累加器的数值加上加数,并保存在累加

3、器当中,加数自加1;当加数加到了 100,退出累加循环,把 r2 累加的结果送到Sum单元中。,.DEFINE P_Watchdog_Clear 0 x7012 .RAM .VAR Sum/定义变量Sum .CODE .PUBLIC_main _main: r1 = 0 x0001 r2 = 0 x0000 ?Loop: r2 = r2 + r1 /累加 r1 = r1 + 1 cmp r1,100/比较r1与100,如不大于则继续累加 jna ?Loop Sum = r2 /保存累加结果 ?Loop0: r1 = 0 x0001 P_Watchdog_Clear = r1/清看门狗操作 jm

4、p ?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 相加

5、,并把相加结果保存在 Sum 中,i 自加 1,判断 i 是否大于 100,如果没有则继续累加,如果大于,则退出累加循环,进入主程序循环,执行清看门狗操作,防止单片机复位。,#define P_Watchdog_Clear(volatile unsigned int *)0 x7012 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_Cle

6、ar = 0 x0001;/清看门狗操作 ,冒泡排序法程序,这一章我们从一个冒泡法排序(升序)的例子再进一步学习 SPCE061A 的编程,及调试。还是要强调先有流程图再有程序的概念,所以先从冒泡法排序的原理出发,再给出流程图,然后再编写程序代码,最终才到在线调试。将用断点调试的方法来看程序运行的结果。 uiArray7 进行升序冒泡法排序,数组里的数据依次为:40、6、32、12、9、24、,算法说明,这个算法类似水中气泡上浮,俗称冒泡法 。执行时从前向后进行相邻数比较,如果数据的大小次序与要求顺序不符时(升 序),就将两个数互换,否则不互换。为进行升序排序应通过这种将相邻数互换方 法,使小

7、数向前移,大数向后移。如此从前向后进一次冒泡,就会把最大数换到最后;再进行一次冒泡,就会把次大数排队在倒数第 二,1) 由于每轮冒泡排序都从上向下排定了一个大数(升序),因此每次冒泡所需进行的比较次数都 递减 1。例如有 n 个数排序,则第 n1)次,第 n2)次,但实际编程时,有时为了简化程序,往往把各次的比较次数都固定为(n1)次。 2) 对于n 个数,理论上说应该进行(n1)次冒泡才能完成排序,但实际上有时不到(n1)次就已经排完。在上述排序过程中,共进行 3 次冒泡就已经完成排序。因此我们需要设置一个标志变量,来判断排序是否完成,如果完成,则不进行下一轮的冒泡,退出循环,冒泡结束。,unsigned int uiArray7=40,6,32,12,9,24,28; unsigned int uiTmep; unsigned int uiEnd_flag; uiEnd_flag = 1; for(i=0;iuiArrayi+1) /前面数大于后面的数,交换 uiTmep = uiArrayi; uiArrayi = uiArrayi+1; uiArrayi+1 = uiTmep; uiEnd_flag = 1; ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号