下载此文档

c语言实验报告.doc


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
实验名称:单片机C语言程序结构和设计(实验2、3)姓名___学号实验班号机器号一、实验目的:;;;;;、实验基本任务1、练****调试程序内容:用跳线将实验板上的8个发光二极管与单片机连接。,功能是控制与单片机相连接的8个发光二极管在全亮与全灭这两种状态下循环变换。该程序没有语法上的错误,但运行后不能实现上述现象,请上机调试其中的问题,指出程序的问题,并修改程序。答:将单片机P2端口的8个引脚与L1~L8相连。电路如下:原有程序为:通过上机调试,发现原程序有以下错误:1由于是P2端口上引脚与LED相接,所以应该设置P2而不是P12应将P2端口调为基本I/O端口,仅通过DIR寄存器是不行的3源程序没有对P2OUT进行初始化,无法达到全亮全灭的效果4没有循环结构,无法达到全亮全灭的循环效果,可用for(;;)或while(1)结构5delay()函数延时过短,人眼几乎无法感受亮灭的变化正确的程序应为:#include""voiddelay();intmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P2SEL=0;//将P2端口设为基本I/O端口P2SEL2=0;P2DIR=0Xff;//设置端口2为输出方向P2OUT=0;//初始化P2端口引脚,For(;;){P2OUT=~P2OUT;delay();}}voiddelay(){unsignedintj;for(j=0;j<0xffff;j++);//延时},编程控制8个发光二极管按下面的2种规律循环变换,即规律1→规律2→规律1→规律2→……,如此循环反复。1)规律1:8个LED灯顺时针一个一个单独点亮,即L1亮L2……L7亮L8亮,每次只有一个灯亮,其他灯灭;2)规律2:8个LED灯两两点亮,顺序为L1和L8,L2和L7,L3和L6,L4和L5,每次只有两个灯亮,其他灯灭;答:程序如下:#include""voiddelay();voidrule1();voidrule2();intmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P2SEL=0;//将P2端口设为基本I/O端口P2SEL2=0;P2DIR=0Xff;//设置端口2为输出方向P2OUT=0;//初始化P2端口引脚,for(;;){rule1();rule2();}}voidrule1()//规律1{unsignedcharLED_0=0x01,LED_temp;LED_temp=LED_0;for(unsignedinti=0;i<8;i++){P2OUT=~LED_temp;delay();LED_temp=LED_temp<<1;}}voidrule2()//规律2{unsignedcharLED_data[]={0x81,0x42,0x24,0x18};for(unsignedinti=0;i<4;i++){P2OUT=~LED_data[i];delay();}}voiddelay(){unsignedintj;for(j=0;j<0xffff;j++);//延时}思考:如果选择用单片机的P1端口控制8个发光二极管,如何在实验板上设计连线、并编程实现任务2的功能?答:设计连线:将P1端口的8个引脚与L1~L8对应相连。程序设计:,增加2个按键与单片机的引脚相连,编程实现由按键控制发光二级管的显示变化:当按下实验板上的K1键时,8个发光二极管按任务2中的规律1变化;当按下实验板上的K2键时,8个发光二极管按任务2中的规律2变化。答:在实验1的连线基础上,、、K2相连。如下图程序如下:#include""voiddelay();voidrule1();voidrule2();intmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P2SEL=0;//将P2端口设为基本I/O端口P2SEL2=0;P2DIR=0xff;//设置端口2为输出方向P2OUT=0;//初始化P2端口引脚,P1SEL&=~(BIT0+BIT1);//设置P1为基本I/OP1SEL2&=~(BIT0+BIT1);P1DIR&=~(BIT0+BIT1);//

c语言实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息