#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[];
/*********************************************************************************************************/
/**********************************************************************************************************
** 函数名称:delay_nms()
** 函数功能:delay_nms:nms延时函数
** 入口参数:
** 出口参数:
** 说 明:
*********************************************************************************************************/
void delay_nms(unsigned int ms)
{
unsigned int i;
unsigned int j;
for (i=0;i<ms;i++)
{
for(j=0;j<0x500;j++) ;
}
}
/**********************************************************************************************************
** 函数名称:delay()
** 函数功能:186us
** 入口参数:
** 出口参数:
** 说 明:
*********************************************************************************************************/
void delay(unsigned int n)
{
unsigned int i;
for(i=0;i<=n;i++);
}
/**********************************************************************************************************
** 函数名称: wcomd(unsigned char cdat)
** 函数功能: lcd写命令
** 入口参数: cdat:命令字
** 出口参数: 无
** 说 明:
*********************************************************************************************************/
void wcomd(unsigned char cdat)
{
LCD_CS_OUT0; //CS低电平被激活
LCD_RS_OUT0; //RS=0写的是命令
LCD_RW_OUT0; //上升沿数据被锁存
LCD_ERW_OUT1; //ERW=0低电瓶读状态,ERW=1写
PORTA = cdat;
delay(10);
LCD_RW_OUT1; //上升沿数据被锁存
LCD_ERW_OUT0; //ERW=0低电瓶读状态,ERW=1写
LCD_CS_OUT1;
}
/**********************************************************************************************************
** 函数名称: wdata(unsigned char cdat)
** 函数功能: lcd显示数据
** 入口参数: cdat:命令字
** 出口参数: 无
** 说 明:写的是显示数据
*********************************************************************************************************/
void wdata(unsigned char ddat)
{
LCD_CS_OUT0; //CS低电平被激活
LCD_RS_OUT1; //RS=1写的是显示数据
LCD_RW_OUT0; //上升沿数据被锁存
LCD_ERW_OUT1; //ERW=0低电瓶读状态,ERW=1写
PORTA = ddat;
delay(10);
LCD_RW_OUT1; //上升沿数据被锁存
LCD_ERW_OUT0; //ERW=0低电瓶读状态,ERW=1写
LCD_CS_OUT1;
}
/**********************************************************************************************************
** 函数名称: LCD_CLS()
** 函数功能: LCD清屏
** 入口参数: 无
** 出口参数: 无
** 说 明:
*********************************************************************************************************/
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);
}
}
}
/**********************************************************************************************************
** 函数名称:Lcd_Init()
** 函数功能:lcd对比度调整及lcd初始化
** 入口参数:
** 出口参数:无
** 说 明:
*********************************************************************************************************/
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 占空比设置*
wcomd(128); //* duty 一次更新96行 占空比1/96 *
wcomd(0xa0); //* 左右反转 ADC=1: SEG reverse direction SEGMENT方向设置: 7FH 到 00H 为正向 map or Re-map
wcomd(0xc8); //* 上下反转SHL=0: COM normal direction COM输出方向设置: COM0 →COM127 为?
wcomd(0x44); //* com0 register 设置COM0显示的起始行*
wcomd(0x00); //* com0 register PAGE2 为COM0起始显示行*
wcomd(0x40); //set start line
wcomd(0x00); //* com0 register PAGE2 为COM0起始显示行*
//******************************************************************
wcomd(0xab); //* oscilator start 晶振开始 *
wcomd(0x66); //* Set 6 dc-dc step-up DC到 DC变换6倍升压 62*
wcomd(0x24); //* Internal Regulator Resistor Ratio 内部调压电阻比率*
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();
}
|