您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > MSP430单片机实验报告
MSP430单片机实验报告专业:姓名:学号:MSP430单片机实验报告设计目标:使8位数码管显示“5201314.”,深入了解串行数据接口。实现过程:主要分为主函数、驱动8位数码管函数、驱动1位数码管函数及延时函数。延时函数:采用for循环。驱动1位数码管子函数:设置74HC164的时钟传输和数传输,声明变量,使数据表中每一个要表示的字符的每一位都与shift做与运算从而进行传输,上升沿将传输数据传送出去。驱动1位数码管子函数的流程图如图1所示。开始设置时钟和数据传输for循环逐个发送8位结束图1驱动1位数码管子函数流程图驱动8位数码管子函数:调用8次驱动1位数码管子函数。驱动8位数码管子函数流程图如图2所示。开始调用8次一位数码管结束图2驱动8位数码管流程图主函数:设置IO口,while死循环中调用驱动8位。主函数流程图如图3所示。开始设置IO口调用驱动8位数码管延时while图3主函数流程图实验结果:供电后,数码管显示“5201314.”字样。源程序:/*************程序名称:5201314.*************//***程序功能:通过模拟同步串口控制8个共阳数码管***//*******P5.1数据管脚,P5.3同步时钟管脚*******/#includeio430.h//头文件voiddelay(void);//声明延迟函数voidseg7_1(unsignedcharseg7_data);//声明驱动1位数码管函数voidseg7_8(unsignedcharseg7_data7,unsignedcharseg7_data6,unsignedcharseg7_data5,unsignedcharseg7_data4,unsignedcharseg7_data3,unsignedcharseg7_data2,unsignedcharseg7_data1,unsignedcharseg7_data0);//声明驱动8位数码管函数constunsignedchardecoder_seg7[]={0x92,0xa4,0xc0,0xf9,0xb0,0xf9,0x99,0x7f};//数码管显示表【5201314.】intmain(void)//主函数{WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P5SEL&=~BIT1;//设置P5.1端口为并行数字输入/输出口P5DIR|=BIT1;//设置P5.1端口为输出口P5SEL&=~BIT3;//设置P5.3端口为并行数字输入/输出口P5DIR|=BIT3;//设置P5.3端口为输出口while(1)//重复执行{seg7_8(7,6,5,4,3,2,1,0);//调用驱动8位数码管函数delay();//延时}}voidseg7_8(unsignedcharseg7_data7,unsignedcharseg7_data6,unsignedcharseg7_data5,unsignedcharseg7_data4,unsignedcharseg7_data3,unsignedcharseg7_data2,unsignedcharseg7_data1,unsignedcharseg7_data0)//驱动8位数码管的同步串行数据接口驱动函数{seg7_1(seg7_data0);//调用1位数码管的同步串行数据接口驱动函数seg7_1(seg7_data1);seg7_1(seg7_data2);seg7_1(seg7_data3);seg7_1(seg7_data4);seg7_1(seg7_data5);seg7_1(seg7_data6);seg7_1(seg7_data7);}voidseg7_1(unsignedcharseg7_data)//驱动1位数码管的同步串行数据接口驱动函数{unsignedcharcode_seg7;//声明显示代码变量unsignedchara;//声明循环变量unsignedcharshift;//声明串行数据位存储变量code_seg7=decoder_seg7[seg7_data];//显示数据译码//同步串行接口初始化P5OUT&=~BIT1;//P5.1输出低电平P5OUT&=~BIT3;//P5.3输出低电平shift=0x80;//串行数据位指向8位数据的最高位for(a=0;a8;a++){if(code_seg7&shift)//判断显示代码位的状态{P5OUT|=BIT1;//P5.1输出高电平}else{P5OUT&=~BIT1;//P5.1输出低电平}P5OUT|=BIT3;//P5.3输出高电平P5OUT&=~BIT3;//P5.3输出低电平shift=shift1;//串行数据位指向数据位右移1位}}voiddelay(void)//延时函数{unsignedcharb;for(b=0xff;b0;b--);}
本文标题:MSP430单片机实验报告
链接地址:https://www.777doc.com/doc-4305876 .html