单片机c语言程序的结构和设计

单片机c语言程序的结构和设计

ID:6604960

大小:2.33 MB

页数:25页

时间:2018-01-20

单片机c语言程序的结构和设计_第1页
单片机c语言程序的结构和设计_第2页
单片机c语言程序的结构和设计_第3页
单片机c语言程序的结构和设计_第4页
单片机c语言程序的结构和设计_第5页
资源描述:

《单片机c语言程序的结构和设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验五单片机C语言程序的结构和设计一、实验目的1.掌握单片机C语言的程序结构;2.掌握单片机C语言程序的编写和调试方法;3.掌握MSP430FG2553基本I/O控制方法;4.掌握单片机对外部接口电路的控制方法。二、实验任务1.练习调试程序(1)硬件连接图(2)原程序存在的问题①实验要求将L1~L8连接到P2OUT端口上,所以程序中的端口应该采用P2OUT;②由于程序中用到了P2OUT所有端口作为输出,所以应该首先将P2设置为GPIO;③实验要求八个LED等应该在亮和灭之间进行循环,所以应该在原程序中加入主循环;④在延时函数delay()中,

2、延时时间不够,所以不能够看出灯的闪烁,应该将循环的时间延长;(3)修改后的程序:#include"io430.h"voiddelay();intmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P2SEL=0;P2SEL2=0;P2DIR=0xff;//设置端口1为输出P2OUT=0xff;for(;;){P2OUT=~P2OUT;//将端口1的值取反后输出delay();//调用函数延时}}voiddelay()//延时函数{unsignedintj;for(j=0;j<0xffff;j++);}(3)程序调试方

3、法总结程序调试时主要使用逐步调试的方法,通过F10和F11使程序逐步运行,有必要时通过view观测register寄存器的相关值的变化,通过观察每一步运行之后相关寄存器的变化,可以初步判断对应程序运行的正确与否,还可以通过设置断点的方式进行局部调试。对于几个不同调试按钮的使用方法总结如下:GO属于连续执行,在调试过程中通常与断点同时使用,用于程序的长距离跳转;stepover用于逐步运行程序,但是不会运行到子程序的内部,如本例子中的delay函数,用此按钮时不会运行到delay内部;而stepinto则可以进入子函数内部,通常用来调试子函数,

4、在调试子函数过程中若想跳出子函数可以使用stepout;合理地使用这些指令可以高效的调试程序。2.控制发光二极管的显示变化(1)硬件连接图(2)C语言程序#include"io430.h"voiddelay();voidaction_1();voidaction_2();constunsignedcharLED_blink1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};constunsignedcharLED_blink2[4]={0xdb,0xe7,0x7e,0xbd};intmain(void

5、){//StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;P2SEL=0;//将P2端口设置为GPIOP2SEL2=0;P2DIR=0xff;//方向设定for(;;)//主循环{action_1();//子函数调用action_2();}}voiddelay()//延时函数{inti;for(i=0;i<0xffff;i++);}voidaction_1()//规律一动作函数{intj;for(j=0;j<=7;j++){delay();P2OUT=~LED_blink1[

6、j];//使输出端口按照表中显示}}voidaction_2()//规律二动作函数{intk;for(k=0;k<4;k++){delay();P2OUT=LED_blink2[k];//使输出端口按照表中显示}}由于本程序比较简单,并且在上面程序后面附有注释,故不再说明程序的运行原理。(3)思考若要使用P1端口控制8个发光二极管,则实验板上的连线方面需要将L1~L8分别用跳线连接至P1.0~P1.7,在程序方面只需要将原程序中用到的P2端口均换成P1端口即可。3.用按键控制发光二极管的显示变化(1)硬件连接图(2)程序设计思路首先由于在上一

7、个任务中已经实现了两种显示方式的循环显示,所以为实现该任务,只需要在上一个任务的程序中加入按键控制即可。通过两个将两个P1引脚设置成输入引脚并与按键相连用来检测按键,在上个任务中的程序中,由于两个动作方式是循环进行的,所以只需实现当检测到对应的按键时,使得程序跳出执行某一动作的循环而进入执行另一动作的循环即可。另外由于子函数一个循环是显示完一个动作,所以也需要在子函数中加入按键检测,当到按键时就跳出循环。对于按键检测,由于当按下键时与地相连,所以需要给其一个上拉电阻,然后检测按键相连的输入引脚是否为低电平即可。(3)C语言程序#include

8、"io430.h"voiddelay();voidaction_1();voidaction_2();//函数声明constunsignedcharLED_blin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。