基于MSP430健康测试仪程序文档格式.docx
- 文档编号:15289082
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:18
- 大小:18.47KB
基于MSP430健康测试仪程序文档格式.docx
《基于MSP430健康测试仪程序文档格式.docx》由会员分享,可在线阅读,更多相关《基于MSP430健康测试仪程序文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
#defineDQ1P4OUT|=BIT0
#defineDQ0P4OUT&
=~BIT0
//声明子程序
unsignedcharkinput=0x00;
unsignedcharktemp=0x00;
unsignedcharkstore=0x00;
unsignedcharkready=0x00;
unsignedcharkoutput=0x00;
unsignedchargetkey=0x00;
constunsignedkconst=0x70;
unsignedcharError=0;
floatTemper=0.0;
inttemperature=0;
intvalue;
intcc;
intcount;
intdd;
unsignedcharhour,min,sec;
unsignedcharkeyvalue;
unsignedcharkeyvalue1;
unsignedcharkeyvalue2;
voidproc_key();
voidinc_sec();
voidinc_min();
voidinc_hour();
inti;
constunsignedcharlcd_table[]={
0x7b,//*"
0"
*//
0x12,//*"
1"
0x4f,//*"
2"
0x1f,//*"
3"
*////LCD显示代码表
0x36,//*"
4"
0x3d,//*"
5"
0x7d,//*"
6"
0x13,//*"
7"
0x7f,//*"
8"
0x3f,//*"
9"
0x84,//*"
-"
};
voidkey_process_0(void);
voidkey_process_1(void);
voidkey_process_2(void);
voidkey_check(void);
unsignedcharkey_value;
//定义键值全局变是
voidDelayNus(unsignedintn);
voidWrite_18B20(unsignedcharn);
unsignedcharRead_18B20(void);
voidInit(void);
voidSkip(void);
voidConvert(void);
voidReadDo(void);
voidReadTemp(void);
voidGetTemp(void);
voidInitLcd(void);
voiddisplay_number(unsignedlongvalue,intstart,intwidth);
voidLcd_Clr(void);
voidtiwen(void);
voidmaibo(void);
voidshizhong(void);
unsignedcharkey_chcek(void);
//*************************************************************************
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;
//关狗
P1DIR=0X00;
P1IE|=BIT1+BIT2+BIT3;
//P2.1-P2.3IO口中断使能
P1IES|=0x0e;
//P2.1-P2.3IO口边沿触发中断方式设置
P1IFG&
=~(key1+key2+key3);
//P2.1-P2.3IO口中断标志位清除
_EINT();
//中断允许
//或直接写成_BIS_SR(LPM4_bits+GIE);
LPM3;
//进入低功耗LPM3,此时单片机功耗最低
while
(1)
{
P1IE&
=~(BIT1+BIT2+BIT3);
//P2.1-P2.3IO口关闭中断允许
=~0x0e;
key_check();
switch(key_value)//对键值进行处理.采switch语法结构查询
{
casekey_1:
key_process_0();
//调用键处理程序1
break;
casekey_2:
key_process_1();
//调用键处理程序2
casekey_3:
key_process_2();
default:
}
key_value=0x00;
//键值清除
}
}
//main函数结束
//P1中断服务程序
#pragmavector=PORT1_VECTOR
__interruptvoidPort_1(void)
{
switch(P1IFG)
case0x02:
key_value=0xf7;
case0x04:
key_value=0xfb;
case0x08:
key_value=0xfd;
//P2.1-P2.3IO口中断标志位清除
LPM3_EXIT;
voidkey_process_0(void)//值处理,调用时钟子程序
shizhong();
voidkey_process_1(void)//值处理,调用体温子程序
tiwen();
voidkey_process_2(void)//值处理,调用脉搏子程序
maibo();
//**************************************************************************
voidkey_check(void)
{unsignedinti;
for(i=0;
i<
delay_small;
i++);
//延时去抖动
if(0xff!
=(P1IN&
0xf7))//是否有键存在?
while(0xff!
=(P1IN|0xf7));
//一直等待按键松开
else
key_value=0x00;
//延时去抖动无键按下,则清除键变量.
//以下为体温测量子程序
voidDelayNus(unsignedintn)
while(n--){};
//-----------------------------------
//功能:
写18B20
voidWrite_18B20(unsignedcharn)
unsignedchari;
for(i=0;
8;
i++)
DQ0;
DelayNus
(1);
//延时13us左右
if((n&
0X01)==0X01)DQ1;
elseDQ0;
n=n>
>
1;
DelayNus(9);
//延时50us以上
DQ1;
//------------------------------------
读取18B20
unsignedcharRead_18B20(void)
unsignedchartemp;
temp=temp>
_NOP();
//延时1us
//延时5us
P4DIR&
=~BIT0;
if((P4IN&
BIT0)==0)
temp=temp&
0x7F;
}else
temp=temp|0x80;
DelayNus(7);
//延时40us
P4DIR|=BIT0;
returntemp;
voidInit(void)
DQ0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 健康 测试仪 程序