您当前的位置:五五电子网电子知识单片机-工控设备MSP430单片机MSP430单片机1602液晶60秒计时程序 正文
MSP430单片机1602液晶60秒计时程序

MSP430单片机1602液晶60秒计时程序

点击数:7124 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   MSP430单片机

MSP430 单片机 1602液晶60秒计时程序

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

//             P3BIT5接RS)-- (BIT7接NE)-- (BIT6接RW)
//             P4口送数据
//
//                                           08-6-27
//*****************************************************
#include "msp430x22x4.h"
unsigned char  table[]="0123456789";
unsigned char a=0,b=0,c=0,d=0,e=0,f=0;
 char num,count=0;  
//***********************读写数据延时****************** 
void delay(int z)
{
    int x,y;
    for(x=z;x>0;x--)
        for(y=510;y>0;y--); 
}
//***********************写命令************************
void write_com(char com)
{     
      P3OUT&=~BIT5;               //控制LCD的  R/S口此时为命令为-0       
        P4OUT=com;
    delay(5);           
    P3OUT|=BIT7;               //控制LCD的  EN口-1      
    delay(5);    
       P3OUT&=~BIT7;                //控制LCD的  EN口-0
       
}
//**********************写数据*************************
void write_data(char date)       

    P3OUT|=BIT5;       // R/S口此时为数据为-1      
    P4OUT=date;
    delay(5);            
    P3OUT|=BIT7;               //EN口为-1       
    delay(5);    
       P3OUT&=~BIT7;                //EN口为-0    
        
}
//*********************液晶显初始化***********************
void init()
{
        WDTCTL=WDTPW+WDTHOLD;                 //关看门狗
        BCSCTL1 =CALBC1_1MHz;                 //设定DCO为1MHZ
        DCOCTL =CALBC1_1MHZ;
       
         TACTL=TASSEL1+TACLR+ID_3;         //定时器A时钟源为MCLK,\式
         CCR0 =65500;                      //计数值为65535个ACLK周期
         CCTL0|=CCIE;
         TACTL|=MC_1;
         P3SEL  = 0X00;
         P3DIR  = 0XFF;
         P3OUT = 0X00;
         P4DIR = 0XFF;
         P4SEL = 0X00;
         P4OUT = 0X00;
      
    P3OUT&=~BIT6;                // RW口为-0
    P3OUT&=~BIT7;                //EN口为-0
        
    write_com(0x38);//显示模式设置        
    write_com(0x0c); //显示开及光标设置
        write_com(0x04);
        write_com(0x01); //显示清屏           
       // _EINT();
        //_BIS_SR(GIE);
}


//**************************主程序*******************//
 
void main()
{
  init(); 
  for(;;)
  {
  //write_com(0x01);//清屏  
   write_com(0x80+0x05);
    write_data(table[b]);
    //delay(5);
     write_com(0x80+0x06);
    write_data(table[a]);
   
  } }


//*****************************定时中断函数************************

  #pragma vector =TIMERA0_VECTOR          //ccr0中断服务
__interrupt void ta1_isr(void)

    count++;
       CCTL0&=~CCIFG;  
    if(count!=2)return;
    count=0;
    a++;
    if(a>9)
    {
          a=0;b++;
    if(b>5)
        {
          a=0;b=0;
        }
        }
        CCR0 =65535;

                 
    




本文关键字:单片机  程序  MSP430单片机单片机-工控设备 - MSP430单片机