}
void ADC_res(void) {
x= ADC12MEM0;
ADC12CTL0 |= ADC12SC; }
#pragma vector=WDT_VECTOR //中断程序入口地址 __interrupt void watchdog_timer (void) {
ADC_res(); CCR1 =x; uchar h1[11]; uchar h2[14]; h1[0]=0x59; h1[1]=0x6f; h1[2]=0x75; h1[3]=0x4d; h1[4]=0x65; h1[5]=0x6e; h1[6]=0x3a;
h1[7]=x/1000+48;
h1[8]=x00/100+48; h1[9]=x000/10+48; h1[10]=x;
h2[0]=0x4e; h2[1]=0x41; h2[2]=0x4d; h2[3]=0x45; h2[4]=0x3a; h2[5]=0x57; h2[6]=0x65; h2[7]=0x6e; h2[8]=0x4c; h2[9]=0x69; h2[10]=0x6e; h2[11]=0x5A; h2[12]=0x68; h2[13]=0x65;
33
LcdWriteCommand(0x01, 1); //清除显示 DispNChar(0,0,10,h1); DispNChar(0,1,14,h2); }
/***********************主函数************************/ void main( void ) {
/*下面六行程序关闭所有的IO口*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF;
//uchar i;
WDTCTL =WDT_ADLY_250;
IE1 |= WDTIE; //间隔定时器,定时1000ms //P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换 LcdReset();
init_TA_PWM(); init_ADC12(); _EINT();
while(1) {
//_NOP(); } }
#include
typedef unsigned char uchar;
34
typedef unsigned int uint;
/**************宏定义***************/ #define DataDir P4DIR #define DataPort P4OUT #define Busy 0x80 #define CtrlDir P3DIR
#define CLR_RS P3OUT&=~BIT0; //RS = P3.0 #define SET_RS P3OUT|=BIT0;
#define CLR_RW P3OUT&=~BIT1; //RW = P3.1 #define SET_RW P3OUT|=BIT1;
#define CLR_EN P3OUT&=~BIT2; //EN = P3.2 #define SET_EN P3OUT|=BIT2;
/*********************************************** 函数名称:DispStr
功 能:让液晶从某个位置起连续显示一个字符串 参 数:x--位置的列坐标 y--位置的行坐标
ptr--指向字符串存放位置的指针 返回值 :无
***********************************************/ void DispStr(uchar x,uchar y,uchar *ptr) {
uchar *temp; uchar i,n = 0;
temp = ptr;
while(*ptr++ != '\\0') n++; //计算字符串有效字符的个数
for (i=0;i Disp1Char(x++,y,temp[i]); if (x == 0x0f) { x = 0; y ^= 1; } } } /******************************************* 函数名称:DispNchar 功 能:让液晶从某个位置起连续显示N个字符 参 数:x--位置的列坐标 y--位置的行坐标 35 n--字符个数 ptr--指向字符存放位置的指针 返回值 :无 ********************************************/ void DispNChar(uchar x,uchar y, uchar n,uchar *ptr) { uchar i; for (i=0;i Disp1Char(x++,y,ptr[i]); if (x == 0x0f) { x = 0; y ^= 1; } } } /******************************************* 函数名称:LocateXY 功 能:向液晶输入显示字符位置的坐标信息 参 数:x--位置的列坐标 y--位置的行坐标 返回值 :无 ********************************************/ void LocateXY(uchar x,uchar y) { uchar temp; temp = x&0x0f; y &= 0x01; if(y) temp |= 0x40; //如果在第2行 temp |= 0x80; LcdWriteCommand(temp,1); } /******************************************* 函数名称:Disp1Char 功 能:在某个位置显示一个字符 参 数:x--位置的列坐标 y--位置的行坐标 data--显示的字符数据 返回值 :无 ********************************************/ 36

