亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? f149-ht1621.c

?? MSP430單片機與段碼液晶驅動芯片通訊程序
?? C
字號:

#include<msp430x14x.h>
#include"F149-HT1621.h"
#include<intrinsics.h>
#include "timer.h"
#include "define.h"
//#include "comm.h"
//#include "intrins.h"	/* use _nop_() function */
//#include "isp_iap.h"
//#include "iic.h"
//#include "disp.h"
#include "key.h"
/*********************************************************
*   接口定義:data<--->p2.5; cs<--->p2.6; wr<--->p2.7    *
**********************************************************/
uchar temp[7];
uchar time_date[7];
uint Data[3];
unsigned char DispFlag;
/**********************************************************************
延時函數
***********************************************************************/
//void Delay(void)
//{
//uchar i;
//for(i=0;i<10;i++); /*用于調整clk 脈沖寬度*/
//}
void Delay(uint M)
{
  while (M > 0) M--;
}
/**********************************************************************
長延時函數
***********************************************************************/
void Delay_1s(void)
{
  uchar i;
  uint j;
  for(i=0;i<100;i++)
  for(j=0;j<1300;j++);
}
/*********************************************************************
發送命令函數a類
發送ht1621 命令時要先發送id 值,及命令字用于設置ht1621.
*********************************************************************/
void sendcoma(uchar com)
{
  start_spi();
  SendBit_1621(0x80,4); /*發送設置命令id=100 0*/
  sendbyte(com); /*發送命令字*/
}
/*********************************************************************
發送命令函數b 類
發送ht1621 命令時要先發送id 值,后發送要寫入數據起始地址,
用于對ram 寫操作(調用此函數后即可發送數據) adr 是高5 位有效
*********************************************************************/
void sendcomb(uchar adr)
{
  start_spi();
  SendBit_1621(0xa0,4); /*發送寫顯示ram 命令id=101 0*/
  SendBit_1621(adr,5); /*指定寫入地址*/
}

/*********************************************************************
發送命令函數(c 類)
發送ht1621 命令時要先發送id 值.然后發送c 類的命令字
*********************************************************************/
void sendcomc(uchar com)
{
  start_spi();
  SendBit_1621(0x90,4); /*發送命令id=100 1*/
  sendbyte(com); /*發送命令字*/
}
/**********************************************************************
向顯示緩沖區填充,以最簡便的形式顯示數據
**********************************************************************/
void disp(uchar dat)
{
  uchar i;
  sendcomb(0x00); /*把數據指針指回0 接著寫入數據*/
  for(i=0;i<16;i++) /*寫入16 字節數據*/
  {
    sendbyte(dat); /*寫入數據*/
  }
}
/******************************************************
全顯示
******************************************************/
void disp_all(uchar data)
{
  sendcoma(bias); /*設置偏壓,背極數*/
  sendcoma(rc256); /*設為內晶振256k*/
  sendcoma(sysen); /*啟動振蕩器*/
  sendcoma(lcdon); /*顯示使能*/
  sendcoma(timerdis); /*禁止時基輸出*/
  disp(data); /*輸出全顯數據*/
}

/******************************************************
LED選擇顯示
******************************************************/
void disp_led(uchar data)
{
  sendcoma(bias); /*設置偏壓,背極數*/
  sendcoma(rc256); /*設為內晶振256k*/
  sendcoma(sysen); /*啟動振蕩器*/
  sendcoma(lcdon); /*顯示使能*/
  sendcoma(timerdis); /*禁止時基輸出*/
  disp(data); /*輸出全顯數據*/
}

/************************************************************************
名稱: 發送數據位(?發送數據位向右移也要做)
************************************************************************/

void SendBit_1621(uchar dat,uchar bitcnt)
{
  uchar i;
  for(i=0;i<bitcnt;i++)
  {
    if(( dat & 0x80 ) == 0)
    P5OUT&=~BIT1;//sda_port = 0;
    else
    P5OUT|=BIT1;//sda_port = 1; /*發送數據由高位到低位傳送*/
    Delay(10);
    P5OUT|=BIT2;//clk_port = 1; /*置時鐘線為高通知被控器開始接收數位*/
    Delay(10);
    P5OUT&=~BIT2;//clk_port = 0; /*鉗住總線準備下一個數據位*/
    dat=dat<<1; /*發送數據左移一位*/
  }
}


void Send_rightBit_1621(uchar dat,uchar bitcnt)
{
  uchar i;
  for(i=0;i<bitcnt;i++)
  {
    if(( dat & 0x80 ) == 0)
    P5OUT&=~BIT1;//sda_port = 0;
    else
    P5OUT|=BIT1;//sda_port = 1; /*發送數據由高位到低位傳送*/
    Delay(10);
    P5OUT|=BIT2;//clk_port = 1; /*置時鐘線為高通知被控器開始接收數位*/
    Delay(10);
    P5OUT&=~BIT2;//clk_port = 0; /*鉗住總線準備下一個數據位*/
    dat=dat>>1; /*發送數據右移一位*/
  }
}
/**********************************************************************
起動ht1621
**********************************************************************/
void start_spi(void)
{
  P5OUT|=BIT4;//cs_port=1;
  P5OUT|=BIT2;//clk_port=1;
  P5OUT|=BIT1;//sda_port=1;
  Delay(10);
  P5OUT&=~BIT4;//cs_port=0;
  P5OUT&=~BIT4;//cs_port=0;
  P5OUT&=~BIT2;//clk_port=0;
  P5OUT&=~BIT2;//clk_port=0;
}
/************************************************************************
發送字節函數,向ht1621 發送字節數據數據單元dat
************************************************************************/
void sendbyte(uchar dat)
{
  SendBit_1621(dat,8); /*發送字節*/
}

/************************************************************************
                      *以下是借鑒的程序*
************************************************************************/
/**-------------------------------------------------------------------------

                      Name: SendCmd(送命令)
---------------------------------------------------------------------------*/
void SendCmd_1621(uchar command)
{
  start_spi();
  SendBit_1621(0x80,4);    //寫入標志碼“100”和9 位command 命令,由于
  SendBit_1621(command,8); //沒有使有到更改時鐘輸出等命令,為了編程方便
                        //直接將command 的最高位寫“0”
}
/**-------------------------------------------------------------------------
                  Name: Write_1621(送8位數據和命令程序)
---------------------------------------------------------------------------*/
void Write_1621(uchar addr,uchar sdata)
{
  addr<<=2;
  start_spi();
  SendBit_1621(0xa0,3);     //寫入標志碼“1010 0000”
  SendBit_1621(addr,6);     //寫入addr 的高6位
  SendBit_1621(sdata,8);    //寫入data 的8位

}
/**-------------------------------------------------------------------------
                  Name: Write_1621b(送4位數據和命令程序)
---------------------------------------------------------------------------*/
void Write_1621b(uchar addr,uchar sdata)
{
  addr<<=2;
  start_spi();
  SendBit_1621(0xa0,3);     //寫入標志碼“1010 0000”
  SendBit_1621(addr,6);     //寫入addr 的高6位
  SendBit_1621(sdata<<4,4);    //寫入data 的4位

}
/**-------------------------------------------------------------------------
                          Name: all_off(清除1621顯示)
---------------------------------------------------------------------------*/
void HT1621_all_off(void)
{ uchar i;
  uchar addr=0;
  for(i=0;i<16;i++)
  {
    Write_1621(addr,0x00);
    addr+=2;
  }
}
/****************************************************************************
                          Name: all_on(全部點亮1621)
****************************************************************************/
void HT1621_all_on(void)
{ uchar i;
  uchar addr=0;
  for(i=0;i<12;i++)
  {
    Write_1621(addr,0xff);
    addr+=2;
  }
}
/****************************************************************************
                          Name: led顯示
****************************************************************************/
void HT1621_led_on(void)
{
  uchar addr1=0x00;
  Write_1621b(addr1,0xf0);
  uchar addr=0x01;
  Write_1621(addr,0xaf);
  uchar addr2=0x07;
  Write_1621(addr2,0xf);
  uchar addr3=0x0b;
  Write_1621(addr3,0xff);

}

void HT1621_LED_sz(void)
{
  uchar LED4=0x01;
  Write_1621(LED4,0xaf);
  uchar LED3=0x03;
  Write_1621(LED3,0xaf);
  uchar LED2=0x05;
  Write_1621(LED2,0xaf);

  uint date=0xfa;
  uchar LED1_1=0x10;
  Write_1621b(LED1_1,date);
  date=date<<4;
  uchar LED1_2=0x07;
  Write_1621b(LED1_2,date);

  uchar LED5_1=0x00;
  Write_1621b(LED5_1,0xf0);
  uchar LED5_2=0x08;
  Write_1621b(LED5_2,0xa0);

  uchar LED6=0x09;
  Write_1621(LED6,0xfa);
  uchar LED7=0x0b;
  Write_1621(LED7,0xfa);
  uchar LED8=0x0d;
  Write_1621(LED8,0xfa);

  uchar LED9=0x14;
  Write_1621(LED9,0xfe);
  uchar LED10=0x16;
  Write_1621(LED10,0xfe);
  uchar LED11=0x18;
  Write_1621(LED11,0xfe);
  uchar LED12=0x1a;
  Write_1621(LED12,0xfe);
  uchar LED13=0x1c;
  Write_1621(LED13,0xfe);
  uchar LED14=0x1e;
  Write_1621(LED14,0xfe);

  uchar Ealendar=0x13;
  Write_1621b(Ealendar,0x40);




}
/****************************************************************************
                          Name: Init_1621(初始化1621)
*****************************************************************************/
void Init_1621(void)
{

 sendcoma(bias); /*設置偏壓,背極數*/
 sendcoma(rc256); /*設為內晶振256k*/
 sendcoma(sysen); /*啟動振蕩器*/

 sendcoma(lcdon); /*顯示使能*/
 sendcoma(timerdis); /*禁止時基輸出*/


}
/****************************************************************************
                          Name: LCDoff(初始化1621)
*****************************************************************************/
void LCDoff(void)
{
 SendCmd_1621(LCD_off);
}
/****************************************************************************
                          Name: LCDon(初始化1621)
*****************************************************************************/
void LCDon(void)
{
 SendCmd_1621(LCD_on);
}
/**********************************************************************
主函數
*********************************************************
   SPI接口定義:data<--->p5.1; cs<--->p5.4; wr<--->p5.2
   light口定義:light<--->p4.4
**********************************************************************/
void main()
{

  WDTCTL = WDTPW + WDTHOLD;               //off watchdog
  DCOCTL = 0XE0;
  BCSCTL1 |= XTS;                       // ACLK = LFXT1 = HF XTAL
  BCSCTL1 |= DIVA_3;

  uchar m;
  do
  {
    IFG1 &= ~OFIFG;                       // Clear OSCFault flag
    for (m = 0xFF; m > 0; m--);           // Time for flag to set
  }
  while ((IFG1 & OFIFG) != 0);          // OSCFault flag still set?

  BCSCTL2 |= SELM1+SELM0;               // MCLK = LFXT1 (safe)
  BCSCTL2 |= DIVM_1;
  ii=0;
  jj=0;
  ll=0;
  kk=0;
  MMMM=0x00;
  DispFlag = 249;
  KeyScanMode =0;
  Code_Const_Flash = 0;
  Code_Const = 0x65;
  TB0_COUNT = 0;
  TB1_COUNT = 0;

  P3DIR |= 0X0b;
  P5DIR|=BIT1+BIT2+BIT4;
  //P4DIR|=BIT4;
  Init_7758();
  Init_1621();
  TimerInitial();
  P1DIR |= 0X70;
  P1OUT &= ~0X70;
  P4DIR |= 0X10;
  P4OUT &= ~0X10;
  //uchar i;
  _EINT();
  HT1621_all_off();
  //if(Main_Flag==1)
  //while(Main_Flag==1)

  do
  {
    /*
    if(!((~P4IN & 0xf) == 0));
    {
      P4OUT |= 0X10;

      Delay(60000);
    }
    */

    //KeyScan();
        //KeyProcess();


    /*HT1621_all_off();
    for(i=0;i<150;i++)
     {
        Disp_Number_H(0x24,0xFC,0xEE,0x3E);
        Delay(1000);
     }
   */


   if((!MMMM) && DispFlag == 250)
   {
        uint Data1,Data2,Data3,Danwei;
        Danwei = 0x02;
        Data1 = Read_7758_Dan(0x0d);
        Data2 = Read_7758_Dan(0x0e);
        Data3 = Read_7758_Dan(0x0f);
        Get_U(Data1,Data2,Data3,Danwei);
        Disp_Number(DISP);

   }

         if((~P4IN & 0xf) != 0)
                {
                  //TB1_COUNT = 0;
                  P4OUT &= ~0X10;
                  if(TB1_COUNT < 300)
                  {
                    P4OUT |= 0X10;
                  }

                }

       else
           if(TB1_COUNT > 300)
                  {
                    P4OUT &= ~0X10;
                    TB1_COUNT = 0;
                  }


    /*
   HT1621_all_off();
    for(i=0;i<50;i++)
     {
        uint Data1,Data2,Data3,Danwei;
        Danwei = 0x01;
        Data1 = Read_7758_Dan(0x0a);
        //Data1 = Data1 << 8;
        Data2 = Read_7758_Dan(0x0b);
        Data3 = Read_7758_Dan(0x0c);
        //Read_UI(uint *a1,uint *a2,uint *a3);
        //Get_UI(uint *D_Data1,uint *D_Data2,uint *D_Data3);
        Get_U(Data1,Data2,Data3,Danwei);
        Disp_Number(DISP);
        Delay(1000);
     }

    HT1621_all_off();
    for(i=0;i<50;i++)
     {
        uint Data1,Data2,Data3,Danwei;
        Danwei = 0x40;
        Data1 = Read_7758_Di_16(0x01);               //WATTHR_MEASURE
        //Data1 = Data1 << 8;
        Data2 = Read_7758_Di_16(0x02);
        Data3 = Read_7758_Di_16(0x03);
        //Read_UI(uint *a1,uint *a2,uint *a3);
        //Get_UI(uint *D_Data1,uint *D_Data2,uint *D_Data3);
        Get_PQ(Data1,Data2,Data3,Danwei);
        Disp_Number(DISP);
        Delay(1000);
     }

    HT1621_all_off();
    for(i=0;i<50;i++)
     {
        uint Data1,Data2,Data3,Danwei;
        Danwei = 0x04;
        Data1 = Read_7758_Di_16(0x04);               //VARHR_MEASURE
        //Data1 = Data1 << 8;
        Data2 = Read_7758_Di_16(0x05);
        Data3 = Read_7758_Di_16(0x06);
        //Read_UI(uint *a1,uint *a2,uint *a3);
        //Get_UI(uint *D_Data1,uint *D_Data2,uint *D_Data3);
        Get_PQ(Data1,Data2,Data3,Danwei);
        Disp_Number(DISP);
        Delay(1000);
     }

    HT1621_all_off();
    for(i=0;i<50;i++)
     {
        uint Data1,Data2,Data3,Danwei;
        Danwei = 0x08;
        Data1 = Read_7758_Di_16(0x07);               //VAHR_MEASURE
        //Data1 = Data1 << 8;
        Data2 = Read_7758_Di_16(0x08);
        Data3 = Read_7758_Di_16(0x09);
        //Read_UI(uint *a1,uint *a2,uint *a3);
        //Get_UI(uint *D_Data1,uint *D_Data2,uint *D_Data3);
        Get_PQ(Data1,Data2,Data3,Danwei);
        Disp_Number(DISP);
        Delay(1000);
     }
*/
/*
   if(!MMMM)
   {
    //HT1621_all_off();
    //for(i=0;i<50;i++)
    // {
        read_rtc4543(temp);
        time_date[i]=temp[i];
        Get_Time();
        Disp_Number(DISP);
        Delay(1000);
    // }
   }
*/
  }while(1);
  //Main_Flag = 0;		//主程序結束
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品精品国产高清一毛片一天堂| 国产嫩草影院久久久久| 精品国产免费久久| 中文字幕在线视频一区| 亚洲午夜久久久久久久久电影网| 精品在线视频一区| 欧美在线影院一区二区| 久久久.com| 天天做天天摸天天爽国产一区| 丁香一区二区三区| 91精品国产91综合久久蜜臀| 日韩一区在线播放| 高清视频一区二区| 欧美一级午夜免费电影| 亚洲精品国产一区二区三区四区在线 | 欧美夫妻性生活| 中文字幕欧美一区| 国产乱人伦偷精品视频免下载| 欧美日韩国产高清一区二区| 中文字幕一区在线观看视频| 国产一区二区三区在线观看免费视频 | 中文字幕色av一区二区三区| 精品在线亚洲视频| 欧美一区二区三区在线观看视频| 一区二区三区电影在线播| 岛国精品一区二区| 精品国产一区二区在线观看| 奇米四色…亚洲| 欧美日韩大陆在线| 亚洲欧洲精品一区二区精品久久久 | 在线视频欧美区| 国产精品不卡一区| 成人网在线免费视频| 久久这里只有精品6| 精品一区二区三区免费视频| 日韩欧美www| 韩国成人精品a∨在线观看| 日韩视频中午一区| 精品亚洲国内自在自线福利| 精品国产伦一区二区三区免费 | 精品国产免费人成电影在线观看四季 | 亚洲成a人在线观看| 欧美在线观看视频在线| 亚洲国产视频a| 欧美日韩www| 奇米亚洲午夜久久精品| 日韩欧美在线综合网| 免费在线观看精品| 精品国产不卡一区二区三区| 国产乱人伦偷精品视频不卡| 久久九九99视频| 成人av在线观| 亚洲欧美日韩成人高清在线一区| 一本色道久久综合亚洲精品按摩| 亚洲人成精品久久久久| 欧美日韩色一区| 久久国产精品99精品国产| 久久精品一区二区| 色综合一个色综合| 全部av―极品视觉盛宴亚洲| 精品国产91乱码一区二区三区| 粉嫩13p一区二区三区| 亚洲精品国产第一综合99久久| 91.xcao| 成人综合婷婷国产精品久久蜜臀| 一区二区三区在线免费视频| 91精品免费在线观看| 国产成人av电影在线观看| 亚洲精品美国一| 精品蜜桃在线看| 91丨九色丨国产丨porny| 日韩av在线免费观看不卡| 久久综合九色综合97_久久久| 成人午夜视频网站| 日日摸夜夜添夜夜添精品视频| 精品成人在线观看| 一本一道久久a久久精品综合蜜臀| 日日欢夜夜爽一区| 国产精品久久久久影院| 欧美一区午夜精品| 91美女片黄在线观看91美女| 秋霞电影网一区二区| 国产精品天干天干在观线 | 91视视频在线直接观看在线看网页在线看 | 成人免费毛片aaaaa**| 五月天亚洲婷婷| 1000精品久久久久久久久| 欧美一区二区啪啪| 一本到一区二区三区| 黑人精品欧美一区二区蜜桃| 亚洲一区二区三区不卡国产欧美| www精品美女久久久tv| 欧美日韩中文国产| 国产一区不卡精品| 亚洲欧美色综合| hitomi一区二区三区精品| 日日夜夜免费精品| 蜜桃一区二区三区在线观看| 国产欧美日韩另类视频免费观看| 欧美日韩极品在线观看一区| 91麻豆国产香蕉久久精品| 国产一区二区视频在线播放| 老色鬼精品视频在线观看播放| 一区二区免费视频| 国产精品不卡在线| 精品国产百合女同互慰| 91麻豆精品国产自产在线观看一区 | 亚洲小说春色综合另类电影| 国产精品麻豆网站| 国产性天天综合网| 国产亚洲欧洲997久久综合| 日韩视频免费观看高清完整版 | 日韩午夜激情电影| 欧美一个色资源| 91精品国产乱码久久蜜臀| 欧美精品1区2区| 欧美日韩一级视频| 欧美巨大另类极品videosbest | 亚洲色图20p| 中文字幕在线观看一区| 欧美韩日一区二区三区| 国产日本亚洲高清| 久久精品视频一区| 精品乱人伦小说| 26uuu久久天堂性欧美| 精品欧美乱码久久久久久1区2区 | 成人精品鲁一区一区二区| 国产麻豆91精品| 成人黄色在线视频| 99v久久综合狠狠综合久久| 91污在线观看| 在线免费观看成人短视频| 在线观看国产91| 在线视频欧美精品| 91麻豆精品国产91久久久久久 | 91精品福利在线| 欧美日韩国产一级| 日韩欧美一区二区免费| 久久一日本道色综合| 日本一二三四高清不卡| 国产精品久久影院| 亚洲五码中文字幕| 麻豆久久久久久| 不卡区在线中文字幕| 欧美在线高清视频| 免费看黄色91| 久久九九国产精品| 国产精品水嫩水嫩| 亚洲欧美成aⅴ人在线观看| 亚洲国产精品视频| 精品一区二区免费在线观看| 成人午夜av电影| 欧美午夜精品理论片a级按摩| 91精品国产免费| 中文字幕不卡的av| 亚洲成av人片一区二区梦乃| 国产最新精品精品你懂的| 91丝袜国产在线播放| 日韩精品一区二区三区视频播放| 国产精品视频在线看| 日韩专区欧美专区| 菠萝蜜视频在线观看一区| 6080国产精品一区二区| 国产精品日日摸夜夜摸av| 亚洲成人精品在线观看| 丁香啪啪综合成人亚洲小说| 欧美日韩国产精品成人| 亚洲欧美在线aaa| 紧缚奴在线一区二区三区| 欧洲视频一区二区| 欧美激情综合五月色丁香小说| 午夜精品免费在线观看| 成人高清视频在线| 日韩一卡二卡三卡国产欧美| 亚洲精品中文字幕乱码三区| 国产一区二区不卡| 日韩三级av在线播放| 亚洲高清久久久| 99视频精品在线| 久久青草欧美一区二区三区| 日韩电影在线看| 欧美主播一区二区三区美女| 国产精品久久久久影院老司 | 精品国产乱码久久久久久牛牛 | 欧美综合一区二区三区| 中文字幕久久午夜不卡| 九九**精品视频免费播放| 欧美日韩国产影片| 亚洲午夜电影网| 欧洲激情一区二区| 亚洲猫色日本管| 91麻豆自制传媒国产之光| 国产精品天天摸av网| 国产乱码精品1区2区3区| 欧美成人一区二区三区片免费| 五月开心婷婷久久| 在线不卡欧美精品一区二区三区| 亚洲一区二区三区自拍| 色婷婷久久综合| 亚洲最大成人综合|