找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1897|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

AVR驅(qū)動(dòng)COG液晶代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:322688 發(fā)表于 2018-5-5 12:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <iom64v.h>
#include <macros.h>
/*********************************************************************************************************/
#include "lcd.h"
#include "key.h"
#include "uart.h"
/*********************************************************************************************************/
#pragma data:data
/*********************************************************************************************************/
extern float   todao[4];
extern unsigned char wd_shang;
extern unsigned char wd_xia;
extern unsigned char sd_shang;
extern unsigned char sd_xia;
extern unsigned char pf_shang;
extern unsigned char pf_xia;
extern unsigned char Body_Flag;
extern unsigned char rt_gy;
extern unsigned char db_du;
extern unsigned char mima;
extern unsigned char InIt_Para[];
/*********************************************************************************************************/
/**********************************************************************************************************
** 函數(shù)名稱:delay_nms()
** 函數(shù)功能:delay_nms:nms延時(shí)函數(shù)
** 入口參數(shù):      
** 出口參數(shù):
** 說(shuō)    明:
*********************************************************************************************************/
void delay_nms(unsigned int ms)
{  
     unsigned int i;
         unsigned int j;
         for (i=0;i<ms;i++)
          {
                   for(j=0;j<0x500;j++) ;
          }
}
/**********************************************************************************************************
** 函數(shù)名稱:delay()
** 函數(shù)功能:186us
** 入口參數(shù):      
** 出口參數(shù):
** 說(shuō)    明:
*********************************************************************************************************/
void delay(unsigned int n)
{
        unsigned int i;
        for(i=0;i<=n;i++);

}

/**********************************************************************************************************
** 函數(shù)名稱: wcomd(unsigned char cdat)
** 函數(shù)功能: lcd寫(xiě)命令
** 入口參數(shù): cdat:命令字     
** 出口參數(shù): 無(wú)
** 說(shuō)    明:
*********************************************************************************************************/
void wcomd(unsigned char cdat)   
{   
          LCD_CS_OUT0;                                    //CS低電平被激活
          LCD_RS_OUT0;                                    //RS=0寫(xiě)的是命令
          LCD_RW_OUT0;                                    //上升沿?cái)?shù)據(jù)被鎖存
          LCD_ERW_OUT1;                                    //ERW=0低電瓶讀狀態(tài),ERW=1寫(xiě)
      PORTA = cdat;
          delay(10);
          LCD_RW_OUT1;                                    //上升沿?cái)?shù)據(jù)被鎖存
                LCD_ERW_OUT0;                                    //ERW=0低電瓶讀狀態(tài),ERW=1寫(xiě)
    LCD_CS_OUT1;
}   
/**********************************************************************************************************
** 函數(shù)名稱: wdata(unsigned char cdat)
** 函數(shù)功能: lcd顯示數(shù)據(jù)
** 入口參數(shù): cdat:命令字     
** 出口參數(shù): 無(wú)
** 說(shuō)    明:寫(xiě)的是顯示數(shù)據(jù)
*********************************************************************************************************/
void wdata(unsigned char ddat)   
{   
    LCD_CS_OUT0;                                       //CS低電平被激活
    LCD_RS_OUT1;                                       //RS=1寫(xiě)的是顯示數(shù)據(jù)
    LCD_RW_OUT0;                                       //上升沿?cái)?shù)據(jù)被鎖存
        LCD_ERW_OUT1;                                       //ERW=0低電瓶讀狀態(tài),ERW=1寫(xiě)
    PORTA = ddat;
                delay(10);
                LCD_RW_OUT1;                                    //上升沿?cái)?shù)據(jù)被鎖存
                LCD_ERW_OUT0;                                    //ERW=0低電瓶讀狀態(tài),ERW=1寫(xiě)
                LCD_CS_OUT1;
}  


/**********************************************************************************************************
** 函數(shù)名稱: LCD_CLS()
** 函數(shù)功能: LCD清屏
** 入口參數(shù): 無(wú)
** 出口參數(shù): 無(wú)
** 說(shuō)    明:
*********************************************************************************************************/
void LCD_CLS(void)   
{   
  unsigned int i,j;   
  for(j=0;j<16;j++)   
  {   
    wcomd(j|0xb0);                  /*Set Page Address*/   
    wcomd(0x10);                    /*Set Column Address   MSI*/   
    wcomd(0x00);                    /*Set Column Address   LSI*/   
    for(i=0;i<128;i++)   
    {   
      wdata(0x00);  
    }   
  }   
}   
/**********************************************************************************************************
** 函數(shù)名稱:Lcd_Init()
** 函數(shù)功能:lcd對(duì)比度調(diào)整及l(fā)cd初始化
** 入口參數(shù):      
** 出口參數(shù):無(wú)
** 說(shuō)    明:
*********************************************************************************************************/

void Lcd_Init(void)
{
        LCD_RS_OUT1;
        LCD_CS_OUT1;
               
    LCD_RST_OUT0;
    delay_nms(1);
    LCD_RST_OUT1;
    delay_nms(1);
//******************************************************************
    wcomd(0x48);      //* duty 占空比設(shè)置*   
    wcomd(128);        //* duty 一次更新96行 占空比1/96 *   

    wcomd(0xa0);      //* 左右反轉(zhuǎn) ADC=1: SEG reverse direction         SEGMENT方向設(shè)置: 7FH 到 00H 為正向  map or Re-map   
    wcomd(0xc8);      //* 上下反轉(zhuǎn)SHL=0: COM normal direction COM輸出方向設(shè)置: COM0 →COM127 為?   

    wcomd(0x44);      //* com0 register 設(shè)置COM0顯示的起始行*   
    wcomd(0x00);      //* com0 register PAGE2 為COM0起始顯示行*   

    wcomd(0x40);      //set start line
    wcomd(0x00);      //* com0 register PAGE2 為COM0起始顯示行*   
//******************************************************************
    wcomd(0xab);      //* oscilator start 晶振開(kāi)始 *   
    wcomd(0x66);      //* Set 6 dc-dc step-up   DC到 DC變換6倍升壓 62*   
    wcomd(0x24);      //* Internal Regulator Resistor Ratio 內(nèi)部調(diào)壓電阻比率*   

    wcomd(0x81);      //* Set white mode and 1st/2nd frame   
    wcomd(0x20);      //* gray scal register1   

    wcomd(0x53);          //清晰度53  
//******************************************************************  
    wcomd(0x94);      //  3FRC,9PWM; 0x94  //  

    wcomd(0x88);      //* Set white mode and 1st/2nd frame *   
    wcomd(0x00);      //* gray scal register1 *  
    wcomd(0x89);      //* Set White Mode, Frame 4th, Frame 3rd *   
    wcomd(0x00);      //* gray scal register1 *   

    wcomd(0x8a);      //* Set Dark Mode, Frame 4th & Frame 3rd *   
    wcomd(0x00);      //* gray scal register1 *   
    wcomd(0x8b);      //* Set Dark Mode, Frame 4th & Frame 3rd *   
    wcomd(0x00);      //* gray scal register1 *   

    wcomd(0x8c);      //* Set Dark Mode, Frame 4th & Frame 3rd *   
    wcomd(0x99);      //* gray scal register1 *  
    wcomd(0x8d);      //* Set Dark Mode, Frame 4th & Frame 3rd *   
    wcomd(0x99);      //* gray scal register1 *

    wcomd(0x8e);      //* Set Dark Mode, Frame 4th & Frame 3rd *  
    wcomd(0x99);      //* gray scal register1 *  
        wcomd(0x8f);      //* Set Dark Mode, Frame 4th & Frame 3rd *  
    wcomd(0x09);      //* gray scal register1 *  

    wcomd(0x2c);      //* Set-power VC *   
    delay_nms(10);   
    wcomd(0x2e);      //* Set-power VC VR *   
    delay_nms(10);   
    wcomd(0x2f);      //* Set-power VC VR VF *   
    delay_nms(10);   
    wcomd(0xaf);     //open display

    LCD_CLS();   
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表