MSP430单片机课程设计 - 图文 下载本文

//不是乘以0.0625的原因是为了把小数点后一位数据也转化为可以显示的数据 return i; }

//*************************************************************************

// 温度数据处理函数

//*************************************************************************

void data_do(int temp_d) {

int A2t;

A1=temp_d/100; //分出百,十,和个位 A2t=temp_d0; A2=A2t/10; A3=A2t; }

//***********************************************************************

// 主程序

//***********************************************************************

void main(void) {

const unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; const unsigned char zww[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; uchar j;

WDT_Init(); //看门狗初始化 Clock_Init(); //时钟初始化

Port_Init(); //端口初始化,用于控制IO口输入或输出

DS18B20_Reset(); //复位D18B20 while(1) {

ds1820_start(); //启动一次转换 ds1820_read_temp(); //读取温度数值 data_do(temp_value); //处理数据,得到要显示的值

if(A1==zww[0]) A1=seg[0]; // 以下将DS18B20反馈的数值换成数码管的字符编码以显示

else if(A1==zww[1]) A1=seg[1]; else if(A1==zww[2]) A1=seg[2];

else if(A1==zww[3]) A1=seg[3]; else if(A1==zww[4]) A1=seg[4]; else if(A1==zww[5]) A1=seg[5]; else if(A1==zww[6]) A1=seg[6]; else if(A1==zww[7]) A1=seg[7]; else if(A1==zww[8]) A1=seg[8]; else if(A1==zww[9]) A1=seg[9]; else A1=A1;

if(A2==zww[0]) A2=seg[0];

else if(A2==zww[1]) A2=seg[1]; else if(A2==zww[2]) A2=seg[2]; else if(A2==zww[3]) A2=seg[3]; else if(A2==zww[4]) A2=seg[4]; else if(A2==zww[5]) A2=seg[5]; else if(A2==zww[6]) A2=seg[6]; else if(A2==zww[7]) A2=seg[7]; else if(A2==zww[8]) A2=seg[8]; else if(A2==zww[9]) A2=seg[9]; else A2=A2;

if(A3==zww[0]) A3=seg[0];

else if(A3==zww[1]) A3=seg[1]; else if(A3==zww[2]) A3=seg[2]; else if(A3==zww[3]) A3=seg[3]; else if(A3==zww[4]) A3=seg[4]; else if(A3==zww[5]) A3=seg[5]; else if(A3==zww[6]) A3=seg[6]; else if(A3==zww[7]) A3=seg[7]; else if(A3==zww[8]) A3=seg[8]; else if(A3==zww[9]) A3=seg[9]; else A3=A3;

for(j=0;j<8;j++) { P4OUT=A1; duan_h; duan_l; P4OUT=0Xfe; wei_h; wei_l;

delay_ms(0.4); P4OUT=A2+BIT7; duan_h; duan_l; P4OUT=0xfd; wei_h;

wei_l;

delay_ms(0.4); P4OUT=A3; duan_h; duan_l; P4OUT=0xfb; wei_h; wei_l;

delay_ms(0.4); P4OUT=0x39; duan_h; duan_l; P4OUT=0xf7; wei_h; wei_l;

delay_ms(0.4);

P4OUT=0x00; //缺少该句,数码管会有微弱重影,有该句无重影 duan_h;

duan_l; } } }

五、系统调试

调试步骤:

(1)通过“IAR For MSP430”软件导入C语言程序,下载到实验板上进行相关调试。如下图所示:

(2)用手在其周围扇风,使其周围温度降低,则发现温度示数减小,如下图所示: