📄 lcdzk.c.bak
字号:
#include <mega128.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "typedef.h"
#include "app.h"
#include "attention.h"
#include "Flash.h"
#include "g20modem.h"
#include "g20serialdrv.h"
#include "ombro.h"
#include "rtc.h"
#include "serialdrv.h"
#include "timer.h"
#include "UDP.h"
#include "protocol.h"
#include "key.h"
#include "lcdzk.h"
#include "print.h"
#include "ombrodb.h"
unsigned char CursorX;
unsigned char CursorY;
/*flash unsigned char *Namelistty [10] = {
"太原局大同段柴沟堡工区", //592A539F5C405927540C6BB567F46C9F58215DE5533A002C //24
"太原局大同段天镇工区", //592A539F5C405927540C6BB5592995475DE5533A002C0020 //24
"太原局大同段湖东工区", //592A539F5C405927540C6BB56E564E1C5DE5533A002C0020 //24
"太原局大同段大同工区", //592A539F5C405927540C6BB55927540C5DE5533A002C0020 //24
"太原局秦西段玉田北工区", //592A539F5C4079E6897F6BB57389753053175DE5533A002C //24
"太原局秦西段卢龙北工区", //592A539F5C4079E6897F6BB553629F9953175DE5533A002C //24
"太原局朔州段怀仁工区", //592A539F5C4067145DDE6BB560004EC15DE5533A002C0020 //24
"太原局朔州段岱岳工区", //592A539F5C4067145DDE6BB55CB15CB35DE5533A002C0020 //24
"太原局茶坞段茶坞工区", //592A539F5C408336575E6BB58336575E5DE5533A002C0020 //24
"太原局茶坞段铁炉村工区" //592A539F5C408336575E6BB594C1708967515DE5533A002C //24
};
flash unsigned char *Namelistbj [20] = {
"北京局北京段昌平北工区", //53174EAC5C4053174EAC6BB5660C5E7353175DE5533A002C0020 //26
"北京局北京段古北口工区", //53174EAC5C4053174EAC6BB553E4531753E35DE5533A002C0020 //26
"北京局北京段滦平工区", //53174EAC5C4053174EAC6BB56EE65E735DE5533A002C00200020 //26
"北京局北京段白旗工区", //53174EAC5C4053174EAC6BB5767D65D75DE5533A002C00200020 //26
"北京局北京段怀柔北工区", //53174EAC5C4053174EAC6BB5600067D453175DE5533A002C0020 //26
"北京局张家口段狼山工区", //53174EAC5C405F205BB653E36BB572FC5C715DE5533A002C0020 //26
"北京局张家口段下花园工区", //53174EAC5C405F205BB653E36BB54E0B82B156ED5DE5533A002C //26
"北京局张家口段官厅西工区", //53174EAC5C405F205BB653E36BB55B985385897F5DE5533A002C //26
"北京局三家店段雁翅工区", //53174EAC5C404E095BB65E976BB596C17FC55DE5533A002C0020 //26
"北京局三家店段珠窝工区", //53174EAC5C404E095BB65E976BB573E07A9D5DE5533A002C0020 //26
"北京局三家店段沙河工区", //53174EAC5C404E095BB65E976BB56C996CB35DE5533A002C0020 //26
"北京局三家店段南口工区", //53174EAC5C404E095BB65E976BB5535753E35DE5533A002C0020 //26
"北京局丰台段燕山工区", //53174EAC5C4053174EAC897F6BB571D55C715DE5533A002C0020 //26
"北京局北京西段白涧工区", //53174EAC5C4053174EAC897F6BB5767D6DA75DE5533A002C0020 //26
"北京局北京西段王安镇工区", //53174EAC5C4053174EAC897F6BB5738B5B8995475DE5533A002C //26
"北京局北京西段涞源工区", //53174EAC5C4053174EAC897F6BB56D9E6E905DE5533A002C0020 //26
"北京局邯郸段康城工区", //53174EAC5C4090AF90F86BB55EB757CE5DE5533A002C00200020 //26
"北京局邯郸段阳邑工区", //53174EAC5C4090AF90F86BB5963390915DE5533A002C00200020 //26
"北京局邯郸段微子镇工区", //53174EAC5C4090AF90F86BB55FAE5B5095475DE5533A002C0020 //26
"北京局邯郸段西石门工区" //53174EAC5C4090AF90F86BB5897F77F395E85DE5533A002C0020 //26
};
flash unsigned char *Namelistcd [6] = {
"成都局自贡段小儿坪工区", //621090FD5C4081EA8D216BB55C0F513F576A5DE5533A002C //24
"成都局自贡段临江溪工区", //621090FD5C4081EA8D216BB54E346C5F6EAA5DE5533A002C //24
"成都局自贡段苍坪工区", //621090FD5C4081EA8D216BB582CD576A5DE5533A002C0020 //24
"成都局自贡段豆沙关工区", //621090FD5C4081EA8D216BB58C466C9951735DE5533A002C //24
"成都局自贡段田梁子工区", //621090FD5C4081EA8D216BB5753068815B505DE5533A002C //24
"成都局自贡段小关溪工区" //621090FD5C4081EA8D216BB55C0F51736EAA5DE5533A002C //24
};*/
/*0123456789*/ //0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 //
/*mm*/ //006D 006D //
/*, :!*/ //002C 0020 003A 0021 //
//15 * 8
//unsigned int lcd_current_position = 0;
//unsigned int lcd_current_line = 0;
/*void disp_my_print(flash unsigned char *string)
{
#ifdef LCD_DISPLAY__
unsigned char bChar = 0;
unsigned char bChn = 0;
while(*string)
{
wdr();
if(*string == '\r')
{
LCD_Clear();
LCD_CursorXY(0, 0);
lcd_current_position = 0;
lcd_current_line = 0;
delay_ms(5);
string++;
continue;
}
if(*string == '\n')
{
lcd_current_position = 0;
lcd_current_line += 16;
LCD_CursorXY(0,lcd_current_line);
if(lcd_current_line > 128 )
{
LCD_Clear();
lcd_current_line = 0;
delay_ms(5);
}
string++;
continue;
}
if((*string <= 0x7F)&&(bChar == 0))
{
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA4);
bChar = 1;
bChn = 0;
}
else if((*string > 0x7F)&&(bChn == 0))
{
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA0);
bChn = 1;
bChar = 0;
}
lcd_current_position++;
if(lcd_current_position > 30)
{
lcd_current_position = 0;
lcd_current_line += 16;
if(lcd_current_line > 128)
{
LCD_Clear();
lcd_current_line = 0;
}
}
LCD_DataWrite(*string);
string++;
}
#endif
}
void disp_my_disp(unsigned char Cx, unsigned char Cy, flash char *string)
{
#ifdef LCD_DISPLAY__
unsigned char bChar = 0;
unsigned char bChn = 0;
LCD_CursorXY(Cx,Cy);
while(*string)
{
wdr();
if((*string <= 0x7F)&&(bChar == 0))
{
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA4);
bChar = 1;
bChn = 0;
}
else if((*string > 0x7F)&&(bChn == 0))
{
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA0);
bChn = 1;
bChar = 0;
}
LCD_DataWrite(*string);
string++;
}
#endif
}*/
void disp_string(unsigned char Cx, unsigned char Cy, unsigned char *string)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA4); //0xA8
LCD_CursorXY(Cx,Cy);
while (*string)
{
wdr();
LCD_DataWrite(*string);
string++;
}
#endif
}
void disp_stringf(unsigned char Cx, unsigned char Cy, flash unsigned char *string)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA4); //0xA8
LCD_CursorXY(Cx,Cy);
while (*string)
{
wdr();
LCD_DataWrite(*string);
string++;
}
#endif
}
void disp_hzstr(unsigned char Cx, unsigned char Cy, flash unsigned char *string)
{
#ifdef LCD_DISPLAY__
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA0); //0xA8
LCD_CursorXY(Cx,Cy);
while (*string)
{
wdr();
LCD_DataWrite(*string);
string++;
LCD_DataWrite(*string);
string++;
}
#endif
}
/*LCD Reset Subroutine */
void LCD_Reset(void)
{
DDRG=0x07;
PORTG |= 0x04;
delay_ms(500);
PORTG &= 0x1B;
delay_ms(2000);
PORTG |= 0x04;
delay_ms(500);
}
/*LCD Function Initail Subroutine */
void LCD_init(void)
{
#ifdef LCD_DISPLAY__
// delay_ms(2500);
LCD_Reset();
//LCD Controller Register REG[0x00]
LCD_CmdWrite(0x00);
LCD_CmdWrite(0xCD);
//Misc. Register REG[0x08]
LCD_CmdWrite(0x08);
LCD_CmdWrite(0x73); //0x63
//Cursor Control Register REG[0x10]
LCD_CmdWrite(0x10);
LCD_CmdWrite(0xE9); //Cursor Off
// LCD_CmdWrite(0xED); //Cursor On
//Cursor Size Control Register REG[0x18]
LCD_CmdWrite(0x18);
LCD_CmdWrite(0x20); //0x22
//Active Window Right Register REG[0x20]
LCD_CmdWrite(0x20);
LCD_CmdWrite(0x1D);
//Active Window Bottom Register REG[0x30]
LCD_CmdWrite(0x30);
LCD_CmdWrite(0x7F);
//Active Window Left Register REG[0x40]
LCD_CmdWrite(0x40);
LCD_CmdWrite(0x00);
//Active Window Top Register REG[0x50]
LCD_CmdWrite(0x50);
LCD_CmdWrite(0x00);
//Display Window Right Register REG[0x28]
LCD_CmdWrite(0x28);
LCD_CmdWrite(0x1D);
//Display Window Bottom Register REG[0x38]
LCD_CmdWrite(0x38);
LCD_CmdWrite(0x7F);
//Display Window Left Register REG[0x48]
LCD_CmdWrite(0x48);
LCD_CmdWrite(0x00);
//Display Window Top Register REG[0x58]
LCD_CmdWrite(0x58);
LCD_CmdWrite(0x00);
//Cursor Position X Register REG[0x60]
LCD_CmdWrite(0x60);
LCD_CmdWrite(0x00);
//Cursor Position Y Register REG[0x70]
LCD_CmdWrite(0x70);
LCD_CmdWrite(0x00);
//Blink Time Y Register REG[0x80]
LCD_CmdWrite(0x80);
LCD_CmdWrite(0x23); //0x33
//Shift Clock Control Register REG[0x90]
LCD_CmdWrite(0x90);
LCD_CmdWrite(0x1C); //0x1E
//Interrupt Setup & Status Register REG[0xA0]
LCD_CmdWrite(0xA0);
LCD_CmdWrite(0x00); //0x08
//Interrupt Column Setup Register REG[0xB0]
LCD_CmdWrite(0xB0);
LCD_CmdWrite(0x27);
//Interrupt Row Setup Register REG[0xB8]
LCD_CmdWrite(0xB8);
LCD_CmdWrite(0xEF);
//Touch Panel Control Register REG[0xC0]
LCD_CmdWrite(0xC0);
LCD_CmdWrite(0xD0);
//LCD Contrast Control Register REG[0xD0]
LCD_CmdWrite(0xD0);
LCD_CmdWrite(0xE0); //0x30
//Pattern Data Register REG[0xE0]
LCD_CmdWrite(0xE0);
LCD_CmdWrite(0x00);
//Font Control Register REG[0xF0]
LCD_CmdWrite(0xF0);
LCD_CmdWrite(0xA0); //0xA8
LCD_Clear();
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -