📄 lcd.c.bak
字号:
/*****************************************************************************
ML610Q431 sample C source file
CODE/DATA MODEL : SMALL/NEAR
ROMWINDOW : 0-0DFFFh
Version : V1.0
File name : lcd.c
Author : MF.Chen
Copyright (C) 2008/11/20 Globaltec Co.,Ltd.
******************************************************************************/
#include "m610411.h"
#include "common.h"
#include "lcd.h"
/*****************************************************************************
Display Font Table
******************************************************************************/
static const Font_Table[] = { // 7SEG pattern
0x3F, //Chr0 '0'
0x06, //Chr1 '1'
0x5B, //Chr2 '2'
0x4F, //Chr3 '3'
0x66, //Chr4 '4'
0x6D, //Chr5 '5'
0x7D, //Chr6 '6'
0x07, //Chr7 '7'
0x7F, //Chr8 '8'
0x6F, //Chr9 '9'
0x77, //ChrA 'A'
0x7c, //ChrB 'B'
0x58, //ChrC 'C'
0x5e, //ChrD 'D'
0x79, //ChrE 'E'
0x71, //ChrF 'F'
0x00, //Space ' '
0x40 //Chr_ '-'
};
/*****************************************************************************
Lcd Initial
******************************************************************************/
void lcd_init(void)
{
lcd_clear();
BIASCON = 0x09u; /* BSON=1(Bias circuit on), 1/16 LSCK(2kHz), 1/3 bias */
DSPMOD0 = 0x43u; /* reference frequency is 85Hz, 1/4 duty */
DSPCNT = 0x10u; /* high contrast, vl1=1.56v */
disp_data=0;
lcd_display(); /* lcd display initial */
}
/*****************************************************************************
Lcd display
******************************************************************************
b7 b6 b5 b4 b3 b2 b1 b0
nixietube1: __ 1G 1F 1E 1D 1C 1B 1A
nixietube2: __ 2G 2F 2E 2D 2C 2B 2A
_status: SN FR TM ON S4 S3 S2 S1
******************************************************************************/
void lcd_display(void)
{
unsigned int i;
data_divide();
/*-------------------------------*/
i=disp_data0;
nixietube1.byte=Font_Table[i]; //number 1
i=disp_data1;
nixietube2.byte=Font_Table[i]; //number 2
i=disp_data2;
nixietube3.byte=Font_Table[i]; //number 3
i=disp_data3;
nixietube4.byte=Font_Table[i]; //number 4
i=disp_data5;
nixietube5.byte=Font_Table[i]; //number 5
i=disp_data6;
nixietube6.byte=Font_Table[i]; //number 6
// _status.byte=0x40; //status
/*-------------------------------*/
set_font_bit();
DSPCON=0x02u; //lcd normal mode
}
/*****************************************************************************
set font bits
******************************************************************************/
void set_font_bit( void )
{
//---------时间显示,显示秒-----------
num_1A=nixietube1.bit.bit0;
num_1B=nixietube1.bit.bit1;
num_1C=nixietube1.bit.bit2;
num_1D=nixietube1.bit.bit3;
num_1E=nixietube1.bit.bit4;
num_1F=nixietube1.bit.bit5;
num_1G=nixietube1.bit.bit6;
_SETO=nixietube1.bit.bit7;
num_2A=nixietube2.bit.bit0;
num_2B=nixietube2.bit.bit1;
num_2C=nixietube2.bit.bit2;
num_2D=nixietube2.bit.bit3;
num_2E=nixietube2.bit.bit4;
num_2F=nixietube2.bit.bit5;
num_2G=nixietube2.bit.bit6;
_STRIDE=nixietube2.bit.bit7;
//------------- 显示分---------------------
num_3A=nixietube3.bit.bit0;
num_3B=nixietube3.bit.bit1;
num_3C=nixietube3.bit.bit2;
num_3D=nixietube3.bit.bit3;
num_3E=nixietube3.bit.bit4;
num_3F=nixietube3.bit.bit5;
num_3G=nixietube3.bit.bit6;
_PP1=nixietube3.bit.bit7;
num_4A=nixietube4.bit.bit0;
num_4B=nixietube4.bit.bit1;
num_4C=nixietube4.bit.bit2;
num_4D=nixietube4.bit.bit3;
num_4E=nixietube4.bit.bit4;
num_4F=nixietube4.bit.bit5;
num_4G=nixietube4.bit.bit6;
_Weight =nixietube4.bit.bit7;
//------------- 显示时---------------------
num_5A=nixietube5.bit.bit0;
num_5B=nixietube5.bit.bit1;
num_5C=nixietube5.bit.bit2;
num_5D=nixietube5.bit.bit3;
num_5E=nixietube5.bit.bit4;
num_5F=nixietube5.bit.bit5;
num_5G=nixietube5.bit.bit6;
// _SET=nixietube5.bit.bit7;
num_6A=nixietube6.bit.bit0;
num_6B=nixietube6.bit.bit1;
num_6C=nixietube6.bit.bit2;
num_6D=nixietube6.bit.bit3;
num_6E=nixietube6.bit.bit4;
num_6F=nixietube6.bit.bit5;
num_6G=nixietube6.bit.bit6;
// _Day =nixietube6.bit.bit7;
Time =1;
TimeOO =1;
Heart =1;
USB =1;
Stopwatch=1;
//-------------
/*
S1 = _status.bit.bit0;
S2 = _status.bit.bit1;
S3 = _status.bit.bit2;
S4 = _status.bit.bit3;
ON = _status.bit.bit4;
TEMP=_status.bit.bit5;
FIRE=_status.bit.bit6;
SNOW=_status.bit.bit7;
*/
}
/*****************************************************************************
Lcd clear
******************************************************************************/
void lcd_clear( void )
{
volatile unsigned char* ptr;
unsigned int i;
ptr = &DSPR00; /* DSPR initialize(ALL off) */
for(i=0; i<0xC0; i++){
*ptr++ = 0x00;
}
}
/*****************************************************************************
Data divide
******************************************************************************/
void data_divide( void )
{
temp_data = disp_data_sec;
disp_data1=temp_data/10;
disp_data0=temp_data%10;
temp_data = disp_data_min;
disp_data3=temp_data/10;
disp_data2=temp_data%10;
temp_data = disp_data_hour;
disp_data6=temp_data/10;
disp_data5=temp_data%10;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -