📄 display.c
字号:
void disp_vip(void)
{
LCMCE = 0;
if(var.u.vip == 20){//qp
if(stc.flash.bit.dir){
lcd_cls((USER_SX / 8),USER_SY,(USER_GAO / 8),USER_KUAN);
}else{
if(stc.flag.bit.rtc_clr){
lcd_cls(0,USER_HY,LCDKUAN,USER_GAO);
}else{
lcd_cls((USER_HX / 8),USER_HY,(USER_KUAN / 8),USER_GAO);
}
}
}else if(var.u.vip < 20){//vip
//var.u.addr = ERR_ADDR;
//var.u.addr += (var.u.vip - 1) * ERR_KUAN / 8;
if(stc.flash.bit.dir){
var.u.locat.word = (VIP_SY + (VIP_KUAN - ERR_KUAN) / 2) * LCDKUAN + (VIP_SX / 8);
}else{
var.u.locat.word = (VIP_HY + 16) * LCDKUAN + VIP_HX / 8 + (VIP_KUAN - ERR_KUAN) / 2 / 8;
}
disp_str((unsigned char *)var.u.addr,ERR_KUAN / 8);
}else{
//var.u.kuan = USER_GAO / 8;
//var.u.gao = USER_KUAN;
//var.u.addr = var.u.addr_vip;
if(stc.flash.bit.dir){
//var.u.locat.word = USER_SY * LCDKUAN + (USER_SX / 8);
disp_bmps();
}else{
//var.u.locat.word = USER_HY * LCDKUAN + (USER_HX / 8);
disp_bmph();
}
}
LCMCE = 1;
}
*/
void disp_kuang(void)
{
unsigned char i,j,data;
var.u.addr = ZK816_ADDR;
if(stc.flash.bit.kuang){
var.u.addr += (47 * 16);
}else{
var.u.addr += (36 * 16);
}
LCMCE = 0;
if(stc.flash.bit.dir){
data = *(var.u.addr + 14);
var.u.locat.word = LC_SY * LCDKUAN + (LC_SX - 8) / 8;
lcd_sxian(data,LC_KUAN + LC_KUAN);
data = *(var.u.addr + 15);
var.u.locat.word = LC_SY * LCDKUAN + (LC_SX + LC_GAO) / 8;
lcd_sxian(data,LC_KUAN + LC_KUAN);
var.u.locat.word = (LC_SY - 8) * LCDKUAN + (LC_SX - 8) / 8;
for(i = 0;i < 8;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
data = *(var.u.addr + i * 2);
fnDataW(data); // 写数据
if(data & 0x01){
data = 0xff;
}else{
data = 0;
}
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(data); // 写数据
}
data = *(var.u.addr + i * 2 + 1);
fnDataW(data); // 写数据
fnCmd(LC_AUT_OVR);
var.u.locat.word += LCDKUAN;
}
var.u.locat.word = (LC_SY + LC_KUAN + LC_KUAN) * LCDKUAN + (LC_SX - 8) / 8;
for(i = 0;i < 8;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
data = *(var.u.addr + (7 - i) * 2);
fnDataW(data); // 写数据
if(data & 0x01){
data = 0xff;
}else{
data = 0;
}
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(data); // 写数据
}
data = *(var.u.addr + (7 - i) * 2 + 1);
fnDataW(data); // 写数据
fnCmd(LC_AUT_OVR);
var.u.locat.word += LCDKUAN;
}
}else{
data = *(var.u.addr + 14);
var.u.locat.word = LC_HY * LCDKUAN + (LC_HX - 8) / 8;
lcd_sxian(data,LC_GAO);
data = *(var.u.addr + 15);
var.u.locat.word = LC_HY * LCDKUAN + (LC_HX + LC_KUAN + LC_KUAN) / 8;
lcd_sxian(data,LC_GAO);
var.u.locat.word = (LC_HY - 8) * LCDKUAN + (LC_HX - 8) / 8;
for(i = 0;i < 8;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
data = *(var.u.addr + i * 2);
fnDataW(data); // 写数据
if(data & 0x01){
data = 0xff;
}else{
data = 0;
}
for(j = 0;j < (LC_KUAN * 2 / 8);j++){
fnDataW(data); // 写数据
}
data = *(var.u.addr + i * 2 + 1);
fnDataW(data); // 写数据
fnCmd(LC_AUT_OVR);
var.u.locat.word += LCDKUAN;
}
var.u.locat.word = (LC_HY + LC_GAO) * LCDKUAN + (LC_HX - 8) / 8;
for(i = 0;i < 8;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
data = *(var.u.addr + (7 - i) * 2);
fnDataW(data); // 写数据
if(data & 0x01){
data = 0xff;
}else{
data = 0;
}
for(j = 0;j < (LC_KUAN * 2 / 8);j++){
fnDataW(data); // 写数据
}
data = *(var.u.addr + (7 - i) * 2 + 1);
fnDataW(data); // 写数据
fnCmd(LC_AUT_OVR);
var.u.locat.word += LCDKUAN;
}
}
}
void disp_shuxian(void)
{
unsigned char i,j,n;
union{
unsigned char byte[2];
unsigned char * ptr;
}ptrb;
LCMCE = 0;
if(stc.flash.bit.dir){
var.u.locat.word = LC_SY * LCDKUAN + (LC_SX / 8);
var.u.len = (LC_GAO / 8);
if(var.u.shuxian3 == 0xff){
ptrb.byte[0] = var.u.shuxian1;
ptrb.byte[1] = var.u.shuxian2;
for(i = 0;i < LC_KUAN * 2;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(*ptrb.ptr); // 写数据
ptrb.ptr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}else if(var.u.shuxian3){
var.u.addrs3 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian3 - 1));
if(var.u.shuxian1 == 0){
var.u.addrs1 = LC_ADDR;
}else if(var.u.shuxian1 < 12){
var.u.addrs1 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 1));
}else{
var.u.addrs1 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 12));
}
if(var.u.shuxian2 == 0){
var.u.addrs2 = LC_ADDR;
}else if(var.u.shuxian2 < 12){
var.u.addrs2 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 1));
}else{
var.u.addrs2 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 12));
}
n = 0;
for(i = 0;i < (LC_KUAN * 2);i++){
if(n % 3 == 0){
n++;
}
if(n < LC_KUAN){
var.u.addr = var.u.addrs1;
}else if(n < LC_KUAN * 2){
var.u.addr = var.u.addrs2;
}else{
var.u.addr = var.u.addrs3;
}
var.u.addr += (n % LC_KUAN) * (LC_GAO / 8);
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(*var.u.addr); // 写数据
var.u.addr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
n++;
}
}else if(var.u.shuxian1){
if(var.u.shuxian1 < 12){
var.u.addrs1 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 1));
}else{
var.u.addrs1 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 12));
}
for(i = 0;i < LC_KUAN;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(*var.u.addrs1); // 写数据
var.u.addrs1++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
if(var.u.shuxian2 == 0){
var.u.addrs2 = LC_ADDR;
}else if(var.u.shuxian2 < 12){
var.u.addrs2 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 1));
}else{
var.u.addrs2 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 12));
}
for(i = 0;i < LC_KUAN;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(*var.u.addrs2); // 写数据
var.u.addrs2++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}else if(var.u.shuxian2){
if(var.u.shuxian2 < 12){
var.u.addrs2 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 1));
}else{
var.u.addrs2 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 12));
}
for(i = 0;i < (LC_KUAN / 2);i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(0); // 写数据
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
for(i = 0;i < LC_KUAN;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(*var.u.addrs2); // 写数据
var.u.addrs2++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
for(i = 0;i < (LC_KUAN / 2);i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < (LC_GAO / 8);j++){
fnDataW(0); // 写数据
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}else{
lcd_cls((LC_SX / 8),LC_SY,(LC_GAO / 8),(LC_KUAN * 2));
}
}else{ //横显
var.u.locat.word = LC_HY * LCDKUAN + (LC_HX / 8);
var.u.len = (LC_KUAN / 4);
LCMRD = 1;
LCMWR = 1;
LCMDIR = 0xff;
for(i = 0;i < (LC_GAO / 8);i++){
if(var.u.shuxian3 == 0xff){
ptrb.byte[0] = var.u.shuxian1;
ptrb.byte[1] = var.u.shuxian2;
ptrb.ptr += (LC_GAO / 8) - i - 1;
for(j = 0;j < (LC_KUAN * 2);j++){
var.u.movea.byte[j] = *ptrb.ptr;
ptrb.ptr += (LC_GAO / 8);
}
writeh2s8();
}else if(var.u.shuxian3){
var.u.addrs3 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian3 - 1));
var.u.addrs3 += (LC_GAO / 8) - i - 1;
if(var.u.shuxian1 == 0){
var.u.addrs1 = LC_ADDR;
}else if(var.u.shuxian1 < 12){
var.u.addrs1 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 1));
}else{
var.u.addrs1 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 12));
}
var.u.addrs1 += (LC_GAO / 8) - i - 1;
if(var.u.shuxian2 == 0){
var.u.addrs2 = LC_ADDR;
}else if(var.u.shuxian2 < 12){
var.u.addrs2 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 1));
}else{
var.u.addrs2 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian2 - 12));
}
var.u.addrs2 += (LC_GAO / 8) - i - 1;
n = 0;
for(j = 0;j < (LC_KUAN * 2);j++){
if(n < LC_KUAN){
if(n % 3 == 0){
n++;
var.u.addrs1 += (LC_GAO / 8);
}
var.u.movea.byte[j] = *var.u.addrs1;
n++;
var.u.addrs1 += (LC_GAO / 8);
}else if(n < LC_KUAN * 2){
if(n % 3 == 0){
n++;
var.u.addrs2 += (LC_GAO / 8);
}
var.u.movea.byte[j] = *var.u.addrs2;
n++;
var.u.addrs2 += (LC_GAO / 8);
}else{
if(n % 3 == 0){
n++;
var.u.addrs3 += (LC_GAO / 8);
}
var.u.movea.byte[j] = *var.u.addrs3;
n++;
var.u.addrs3 += (LC_GAO / 8);
}
}
writeh2s8();
}else if(var.u.shuxian1){
if(var.u.shuxian1 < 12){
var.u.addrs1 = LC_ADDR + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 1));
}else{
var.u.addrs1 = ADDR_AZ + (LC_KUAN / 8 * LC_GAO * (var.u.shuxian1 - 12));
}
var.u.addrs1 += (LC_GAO / 8) - i - 1;
if(var.u.shuxian2 =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -