下载此文档

实验名称:单片机C语言程序结构、程序设计(实验2、实验3).docx


文档分类:IT计算机 | 页数:约27页 举报非法文档有奖
1/27
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/27 下载此文档
文档列表 文档介绍
实验名称:单片机C语言程序结构、程序设计(实验2、实验3).docx实验名称:单片机C语言程序结构、程序设计(实验2、实验3)姓名: 学号:实验班号:机器号:实验目的掌握单片机C语言程序结构;掌握单片机C语言程序调试方法;掌握MSP430FG2553基本T/0控制方法。巩固编写和调试单片机C语言程序方法;了解简单接口电路的控制方法实验基本任务实验2单片机C语言程序结构:。,功能是控制与单片机相连接的8个发光二极管在全亮与全灭这两种状态下循环变换。该程序没有语法上的错误,但运行后不能产生上述现象,请上机调试其中的问题,指出并修改程序的问题。总结调试程序的方法,比较G、stepover,stepintoh和断点运行等几种执行命令的不同,如何有效应用这些命令进行调试。说明:建立一个C语言项目L“b2,将L2debug,c拷贝到项目文件夹下,并如图2-1用option/add将其加入到项目中,用option/remove将项目自带的main,c移除,然后灵活应用Go(F5)、Stepover(F10)、Stepinto(Fll)命令,或设置断点的方法,控制程序的运行,通过查看实验的现象,以及检查程序中用到的端口寄存器、变量等的变化,查找程序中的问题。解决方法:该程序有多处错误,如端口设置,循环语句,延时函数等。~-L8相连接起来置P2为输出,用循环和延时控制LED灯闪烁。原理接线图如下:L8L7L6L5L4JP1L3L2LLLLL84>7 89 ■H +3 H-4^ 17 1819 HEADER10X2修改的程序代码如下:#();intmain(void)WDTCTL=WDTPW+WDTHOLD;〃关闭看门狗P2SEL=0;P2SEL2=O;P2DIR=OXff;P2OUT=0;for(;;){P2OUT=~P2OUT;delay();}voiddelay()unsignedintj;for(j=O;j<Oxffff;j++);〃将P2端口设为基本I/O端II〃设置端口2为输出方向〃初始化P2端口引脚,//主循环〃将端口2的值取反后输出//调用函数延时〃延时函数〃延时思考:,比较程序用Stepover(FlO)和Stepinto(Fll)单步执行函数delay()有何不同。实验思考和研究通过上机调试,发现原程序有以下错误:由于是P2端口上引脚与LED相接,所以应该设置P2而不是P1应将P2端口调为基本I/O端口,仅通过DIR寄存器是不行的源程序没有对P2OUT进行初始化,无法达到全亮全灭的效果没有循环结构,无法达到全亮全灭的循环效果,可用for(;;)或while(l)结构>delay()函数延时过短,人眼几乎无法感受亮灭的变化修改程序BUG时要认真阅读,必要时借助断点、register等工具帮助发现程序错误进行修改;若想要进一步控制延时函数,则可运用多个循环来延时,如for(i=0;i<X;i++)for(j=0;j<0xff;j++);(其中X为控制量)。控制发光二极管的显示变化在任务1的连线基础上,编程控制8个发光二极管按下面的2种规律循环变换,即规律1规律2规律1规律2……,如此循环反复。规律1:8个LED灯顺时针一个一个单独点亮,即L8亮L7......L2亮L1亮,每次只有一个灯亮,其他灯灭;规律2:8个LED灯两两点亮,顺序为L4和L5,L3和L6,L2和L7,L1和L8,每次只有两个灯亮,其他灯灭;解决方法:程序代码如下:#include""voiddelay();voidrulel();voidrule2();intmain(void){WDTCTL=WDTPW+WDTHOLD;〃关闭看门狗〃将P2端口设为基本I/O端口,~~L8相连P2SEL=O;P2SEL2=O;P2DIR=OXff; 〃设置端口2为输出方向P2OUT=0; 〃初始化P2端口引脚for(;;){rulel();rule2();}}voidrulel() 〃规律1{unsignedcharLED_O=OxOlzLED_temp;//定义数组LED_temp=LED_O;for(unsignedinti=0;i<8;i++){P2OUT=~LED_temp;delay();LED_temp=LED_temp«l;}}voidrule2() 〃规律2unsignedcharLED_data[]={0x81/0x42z0x24,0xl8};H')\L义数组for(unsignedinti=0;i<4;i++)P20UT=^LED_data[i];delay();

实验名称:单片机C语言程序结构、程序设计(实验2、实验3) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数27
  • 收藏数0 收藏
  • 顶次数0
  • 上传人pppccc8
  • 文件大小1.05 MB
  • 时间2020-09-24