資源簡介
基于msp430單片機的數字流量計,有瞬時流量,累積流量,萬年歷,按鍵控制

代碼片段和文件信息
附錄A?所有程序
(1)main.c
#include?“msp430x14x.h“
#include?“subfuncs.h“
#define?uchar?unsigned?char
#define?uint?unsigned?int
/***端口定義***/
const?unsigned?char?table[]={0x010x020x03};//1-3
uchar?key;
int?jishupinlv1liuliangleiji;
uchar?jian;
uchar?keyscan1(void);
void?bianma();
typedef?unsigned?char??U8;
typedef?unsigned?int???U16;
int?secminhour;
int?day=1weekmonth=1year;
uchar?aflagflag2;
uchar?s1num;
const?unsigned?char?dis1[]={“2000年01月01日??“};
const?unsigned?char?dis2[]={“00時00分00秒周日“};
const?unsigned?char?dis3[]={“瞬時::00???L/MIN“};
const?unsigned?char?dis4[]={“累計::00???L????“};
const?unsigned?char?dis5[]={“.“};
U8?str[3]str1[4];
uchar?disx[]={0xc80xd50xd20xbb0xb60xfe0xc80xfd0xcb0xc40xce0xe50xc10xf9};//“日““一““二““三““四““五““六“(兩個字節為一個漢字)
/***1.寫年月日子函數***/
void?write_ymd(uchar?adduchar?dat)
{
uchar?shige;
shi=dat/10;
ge=dat%10;
Write_Cmd(0x80+add);
Write_Data(0x30+shi);
Write_Data(0x30+ge);
}
/***2.寫時分秒子函數***/
void?write_hms(uchar?adduchar?dat)
{
uchar?shige;
shi=dat/10;
ge=dat%10;
Write_Cmd(0x90+add);
Write_Data(0x30+shi);
Write_Data(0x30+ge);
}
/***3.瞬時流量顯示子函數***/
void?write_tem(uchar?add)
{
Write_Cmd(0x88+add);
Write_Data(str[0]);
Write_Data(str[1]);?
????????Write_Data(dis5[0]);
????????Write_Data(str[2]);?
}
/***4.累計流量顯示子函數***/
void?write_hum(uchar?add)
{
Write_Cmd(0x98+add);
Write_Data(str1[0]);
Write_Data(str1[1]);
???????Write_Data(str1[2]);?
???????Write_Data(dis5[0]);
???????Write_Data(str1[3]);
}
/***5.鍵盤掃描子函數***/ ?
void?keyscan()
{ ?keyscan1();
if(jian==1)
{
TACTL?=?TASSEL_1?+?MC_0;
???????????s1num++;
if(s1num==1)
{
Write_Cmd(0x80+1);
Write_Cmd(0x0f);
}
if(s1num==2)
{
Write_Cmd(0x80+3);
}
if(s1num==3)
{
Write_Cmd(0x80+5);
}
if(s1num==4)
{
Write_Cmd(0x90+0);
}
if(s1num==5)
{
Write_Cmd(0x90+2);
}
if(s1num==6)
{
Write_Cmd(0x90+4);
}
if(s1num==7)
{
Write_Cmd(0x90+7);
}
if(s1num==8)
{
s1num=0;
Write_Cmd(0x0c);
??????????????TACTL?=?TASSEL_1?+?MC_1;
}
}
if(s1num!=0)
{
/***按鍵計數加***/
if(jian==2)
{
/***調節修改顯示的位置***/
if(s1num==1)
{
year++;
if(year==99)
year=0;
//刷新年!
write_ymd(1year);
?????????????????Write_Cmd(0x80+1);????????????????????????????????????????
}
if(s1num==2)
{
month++;
if(month==13)
month=1;
//刷新月!
write_ymd(3month);
??????????????Write_Cmd(0x80+3);
}
if(s1num==3)
{
day++;
if(day==32)
day=1;
//刷新日!
write_ymd(5day);
?????????????????Write_Cmd(0x80+5);
}
if(s1num==4)
{
hour++;
if(hour==24)
hour=0;
//刷新時!
write_hms(0hour);
?????????????????Write_Cmd(0x90+0);
}
if(s1num==5)
{
min++;
if(min==60)
min=0;
//刷
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12837??2014-07-16?14:53??Text1.c
-----------?---------??----------?-----??----
????????????????12837????????????????????1
評論
共有 條評論