📄 menu_sub.c
字号:
/************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* menu_sub.c PLUS 1.0 */
/* */
/* COMPONENT */
/* */
/* */
/* */
/* DESCRIPTION */
/* This file contines MMI foundermental program, any changes */
/* may produce undisiable result. */
/* */
/* */
/* AUTHOR */
/* */
/* chenjie */
/* */
/* DATA STRUCTURES */
/* */
/* None */
/* */
/* FUNCTIONS */
/* */
/* None */
/* */
/* DEPENDENCIES */
/* */
/* None */
/* */
/* HISTORY */
/* */
/* NAME DATE REMARKS */
/* */
/* QingShan.Huang 03-20-2002 Created edit version 1.1 */
/* */
/************************************************************************/
#include "menu_task.h"
#include "math.h"
#include "stdio.h"
#include "string.h"
#include "menu_sub.h"
extern unsigned keytime;
extern unsigned keycounter;
extern unsigned TMD_System_Clock;
extern unsigned keycode;
extern unsigned key_current;
extern unsigned lcd_bg_time;
extern unsigned key_buffer[KEY_BUFFER_LENGTH];
extern unsigned key_delaytime;
extern unsigned *pkeybuf_in;
extern unsigned *pkeybuf_out;
extern unsigned din_flag;
extern unsigned *pAscii_tab;
extern unsigned CtrlOutBuf;
unsigned LCD_BUFFER[1024];
unsigned *pLCD_BUFFER = LCD_BUFFER;
UNSIGNED Auto_Disp_Flag;
unsigned *pHzk16_tab=(unsigned *)0x010000;
/***********************************************/
/* */
/***********************************************/
void Lcd_Write_Data_Left(int data)
{
int i = 0;
while ((*(int *)LCD_COMMAND_LEFT&0x80) == 0x80)
{ i++;
if(i>100)
{
Lcd_Initial();
}
}
*(int *)LCD_DATD_LEFT=data;
}
/***********************************************/
/* */
/***********************************************/
void Lcd_Write_Data_Right(int data)
{
int i = 0;
while ((*(int *)LCD_COMMAND_RIGHT&0x80) == 0x80)
{ i++;
if(i>100)
{
Lcd_Initial();
}
}
*(int *)LCD_DATD_RIGHT=data;
}
/***********************************************/
/* */
/***********************************************/
void Lcd_Write_Com_Left(int command)
{
int i = 0;
while ((*(int *)LCD_COMMAND_LEFT&0x80) == 0x80)
{
i++;
if(i>100)
{
Lcd_Initial();
}
}
*(int *)LCD_COMMAND_LEFT=command;
}
/***********************************************/
/* */
/***********************************************/
void Lcd_Write_Com_Right(int command)
{
int i = 0;
while ((*(int *)LCD_COMMAND_RIGHT&0x80) == 0x80)
{
i++;
if(i>100)
{
Lcd_Initial();
}
}
*(int *)LCD_COMMAND_RIGHT=command;
}
/***********************************************/
/* */
/***********************************************/
void Lcd_Initial(void)
{
int *ptr=NU_NULL;
Lcd_Write_Com_Left(0xc0);
Lcd_Write_Com_Right(0xc0);
Lcd_Write_Com_Left(0x3f);
Lcd_Write_Com_Right(0x3f);
}
/***********************************************/
/* */
/***********************************************/
void Lcd_Clear_Screen(void)
{
int i,j;
Lcd_Initial();
for(i=0;i<8;i++)
{
Lcd_Write_Com_Left(0xb8+i);
Lcd_Write_Com_Right(0xb8+i);
Lcd_Write_Com_Left(0x40);
Lcd_Write_Com_Right(0x40);
for(j=0;j<64;j++)
{ Lcd_Write_Data_Left(0);
Lcd_Write_Data_Right(0);
}
}
}
/********************************************************************************/
/* LCD画点子程序 2001-8-23 */
/* 入口: (x,y,c) 出口:无返回值 */
/* 说明: X:0-319 Y:0-233 COLOR:0-7 */
/********************************************************************************/
void Lcd_Draw_Point(int x, int y, int color)
{
register int value;
int *mem_offset=NU_NULL,page,column,offset,data_refresh;
page=y/8;
column=x;
offset=(y%8);
mem_offset = (int *)pLCD_BUFFER + page*128 + column;
value = *(mem_offset);
data_refresh=(0x01<<offset);
value |= data_refresh;
*(mem_offset)=value;
}
/********************************************************************************/
/* */
/* */
/* */
/********************************************************************************/
void Lcd_Display_Executive(void)
{
unsigned value;
int *mem_offset=NU_NULL,page,column,column_right,counter=0;
Lcd_Initial();
for(page=0;page<8;page++)
{
Lcd_Write_Com_Left(page|0xb8); /* 页面地址设
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -