• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234

    技術(shù)支持

    QLdsPIC3]LCD1602[C30+dsPIC30F6014A]

    更新時間: 2019-03-23

    深圳市英銳恩科技有限公司:臺灣麥肯單片機(Micon MDT單片機)亞太地區(qū)A級代理商

    QLdsPIC3]LCD1602[C30+dsPIC30F6014A]
    //實驗目的:熟悉LCD的使用方法
    //LCD循環(huán)顯示本產(chǎn)品名稱和公司網(wǎng)站地址
    //硬件要求:跳線全部跳好
    //所有撥碼開關(guān)置OFF
    //調(diào)節(jié)電位器VR2到LCD1602能正常顯示。

    #include             //dsPIC30F6014標準頭文件

      _FOSC(CSW_FSCM_OFF & XT_PLL4);  //4倍頻晶振,F(xiàn)ailsafe 時鐘關(guān)閉
      _FWDT(WDT_OFF);                 //關(guān)閉看門狗定時器
      _FBORPOR(PBOR_OFF & MCLR_EN);   //掉電復位禁止,MCLR復位使能。
      _FGS(CODE_PROT_OFF);            //代碼保護禁止


    #define rs LATBbits.LATB4          //定義LCD控制位(注意這里只能用LATB寄存器,不能直接用PORTB寄存器)
    #define rw LATBbits.LATB5
    #define e  LATBbits.LATB6
     const int web[ ]={' ','W','W','W','.','P','I','C','1','6','.','C','O','M',' ',' '};
    //定義公司web地址
    const int name[ ]={' ',' ',' ',' ','Q','L','d','s','P','I','C','3',' ',' ',' ',' '};
    //定義公司產(chǎn)品名稱

    void init();                   //申明I/O口初始化函數(shù)
    void lcd_init();               //申明LCD初始化函數(shù)
    void write_web();              //申明顯示公司web地址函數(shù)
    void write_name();             //申明顯示產(chǎn)品名字函數(shù)
    void write(unsigned int x);    //申明顯示1字節(jié)數(shù)據(jù)函數(shù)
    void lcd_enable();             //申明LCD顯示設(shè)置函數(shù)
    void delay();                  //申明延時函數(shù)

    //---------------------------------------
    //主函數(shù)
    int main(void)
     {
        while(1)
          {
            delay();
            delay();
            delay();
            delay();
            delay();
            init();                //調(diào)用I/O口初始化函數(shù)
            lcd_init();            //調(diào)用LCD初始化函數(shù)
            write_name();          //調(diào)用顯示產(chǎn)品名字函數(shù)
            PORTD=0X00C0;          //設(shè)置第2行顯示地址
            lcd_enable();          //調(diào)用LCD顯示設(shè)置函數(shù)
            write_web();           //調(diào)用顯示公司tel函數(shù)
              while(1);
             
          }
     }
     
    //---------------------------------------
    //I/O口初始化函數(shù)
    void init()
     {
        TRISB=0X0000;              //設(shè)置B口為輸出
        TRISD=0X0000;              //設(shè)置D口為輸出
     }

    //---------------------------------------
    //LCD初始化函數(shù)
    void lcd_init()
     {
        PORTD=0X1;                 //清除顯示
        lcd_enable();
        PORTD=0X38;                //8位2行5*7點陣
        lcd_enable();
        PORTD=0X0e;                //顯示開,光標開,閃爍
        lcd_enable();
        PORTD=0X06;                //文字不動,光標右移
        lcd_enable();
        PORTD=0X80;                //產(chǎn)品名字顯示地址
        lcd_enable();
     }
     
    //--------------------------------------
    //顯示公司web地址
    void write_web()
     {
        unsigned char i,j;
        for(i=0;i<16;i++)          //一共16字節(jié)數(shù)據(jù)
           {
             write(web[i]);        //查表獲取數(shù)據(jù)并調(diào)用寫一個字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
             for(j=0;j<5;j++)      //延時一段時間(主要是為了控制顯示的速度)
              {delay();}
           }
     }

    //--------------------------------------
    //顯示產(chǎn)品名字函數(shù)
     void write_name()
     {
        unsigned char i,j;
        for(i=0;i<0x10;i++)       //一共顯示16字節(jié)數(shù)據(jù)
           {
           
             write(name[i]);      //查表獲取數(shù)據(jù)并調(diào)用寫一個字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
             for(j=0;j<5;j++)
              {delay();}
           }
     }
     
    //--------------------------------------
    //寫一個字節(jié)數(shù)據(jù)函數(shù)
    //在電平發(fā)生改變后需要插入一段延時時間,否則LCD反應不過來。
    void write(unsigned int x)
     {
      PORTD=x;                   //待顯示數(shù)據(jù)送PORTD口
      delay();                  
      rs=1;                      //該字節(jié)數(shù)據(jù)為數(shù)據(jù),而不是命令
      delay();
      rw=0;                      //此次操作為寫,而不是讀
      delay();
      e=0;                       //拉低使能信號
      delay();                   //保持使能信號為低一段時間
      e=1;                       //拉高使能信號,建立LCD操作所需要的上升沿
      delay();
     }


    //--------------------------------------
    //LCD顯示設(shè)置函數(shù)
    //在電平發(fā)生改變后需要插入一段延時時間,否則LCD反應不過來。
    void lcd_enable()
     {
       delay();
       rs=0;                     //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù)
       delay();
       rw=0;                     //此次操作為寫,而不是讀
       delay();
       e=0;                      //拉低使能信號
       delay();                  //保持使能信號為低一段時間
       e=1;                      //拉高使能信號,建立LCD操作所需要的上升沿
       delay();
    }

    //--------------------------------------
    //延時函數(shù)
    void delay()
     {
       unsigned int i;
       for(i=0;i<100;i++);
     }



    404
    返回首頁 |  返回上一頁
    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>