📄 display.c
字号:
aword = 0;
}else{
aword = *bmp.bit.ptro;
}
aword *= var.u.kuan;
aword *= var.u.gao;
var.u.addr = bmp.bit.ptrb + aword;
for(i = 0;i < var.u.gao;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < var.u.kuan;j++){
fnDataW(0x00); // 写数据
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}else if(bmp.bit.c0 == 1){//str
if(stc.flash.bit.dir){
ptr += 2;
}else{
ptr += 10;
}
for(i = 0;i < 10;i++){
bmp.byte[i + 2] = *(ptr + i);
}
LCMCE = 0;
var.u.locat.word = bmp.bit.y * LCDKUAN + (bmp.bit.x / 8);
var.u.kuan = bmp.bit.kuan / 8;
var.u.kuan %= (LCDKUAN + 1);
var.u.gao = bmp.bit.gao;
var.u.gao %= (LCDGAO + 1);
//var.u.len = var.u.gao / 8;
//var.u.len %= 16;
if((unsigned int)bmp.bit.ptro == 0){
aword = 0;
}else{
aword = *bmp.bit.ptro;
}
aword *= var.u.kuan;
aword *= var.u.gao;
var.u.addr = bmp.bit.ptrb + aword;
//disp_str(bmp.byte);
if(stc.flash.bit.dir){
var.u.len = var.u.gao / 8;
//var.u.len %= 16;
get_str(var.u.addr,bmp.byte,var.u.len);
for(i = 0;i < var.u.len;i++){
var.u.addr = ZK816_ADDR;
j = bmp.byte[i];
var.u.addr += j * 16;
for(j = 0;j < 8;j++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(k = 0;k < 2;k++){
fnDataW(*var.u.addr); // 写数据
var.u.addr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}
}else{
var.u.len = var.u.kuan;
var.u.len %= 17;
get_str(var.u.addr,bmp.byte,var.u.len);
for(i = 0;i < 2;i++){
n = 0;
for(j = 0;j < var.u.len;j++){
var.u.addr = ZK816_ADDR + 1 - i;
k = bmp.byte[j];
var.u.addr += k * 16;
for(k = 0;k < 8;k++){
var.u.movea.byte[n] = *(var.u.addr + (k * 2));
n++;
}
}
writeh2s8();
}
}
}else if(bmp.bit.c0 == 2){//bmp
if(stc.flash.bit.dir){
ptr += 2;
}else{
ptr += 10;
}
for(i = 0;i < 10;i++){
bmp.byte[i + 2] = *(ptr + i);
}
LCMCE = 0;
var.u.locat.word = bmp.bit.y * LCDKUAN + (bmp.bit.x / 8);
var.u.kuan = bmp.bit.kuan / 8;
var.u.kuan %= (LCDKUAN + 1);
var.u.gao = bmp.bit.gao;
var.u.gao %= (LCDGAO + 1);
//var.u.len = var.u.gao / 8;
//var.u.len %= 16;
if((unsigned int)bmp.bit.ptro == 0){
aword = 0;
}else{
aword = *bmp.bit.ptro;
}
aword *= var.u.kuan;
aword *= var.u.gao;
var.u.addr = bmp.bit.ptrb + aword;
if(stc.flash.bit.dir){
for(i = 0;i < var.u.gao;i++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(j = 0;j < var.u.kuan;j++){
fnDataW(*var.u.addr); // 写数据
var.u.addr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}else{
var.u.len = var.u.kuan;
var.u.len %= 17;
for(i = 0;i < (var.u.gao / 8);i++){
ptr = var.u.addr + (var.u.gao / 8) - 1 - i;
for(j = 0;j < 128;j++){
var.u.movea.byte[j] = *ptr;
ptr += (var.u.gao / 8);
}
writeh2s8();
}
}
}else if(bmp.bit.c0 == 3){//ostr
;
}else{
;
}
LCMCE = 1;
}
//sx,sy,hx,hy,len,str
void disp_sstr(unsigned char * ptr)
{
unsigned char i,j,k,n,abuff[16];
//unsigned int aword;
LCMCE = 0;
var.u.len = *(ptr + 4);
var.u.len %= 17;
get_str((ptr + 5),abuff,var.u.len);
if(stc.flash.bit.dir){
var.u.locat.word = *(ptr + 1) * LCDKUAN + (*(ptr) / 8);
for(i = 0;i < var.u.len;i++){
var.u.addr = ZK816_ADDR;
j = abuff[i];
var.u.addr += j * 16;
for(j = 0;j < 8;j++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(k = 0;k < 2;k++){
fnDataW(*var.u.addr); // 写数据
var.u.addr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}
}else{
var.u.locat.word = *(ptr + 3) * LCDKUAN + (*(ptr + 2) / 8);
for(i = 0;i < 2;i++){
n = 0;
for(j = 0;j < var.u.len;j++){
var.u.addr = ZK816_ADDR + 1 - i;
k = abuff[j];
var.u.addr += k * 16;
for(k = 0;k < 8;k++){
var.u.movea.byte[n] = *(var.u.addr + (k * 2));
n++;
}
}
writeh2s8();
}
}
LCMCE = 1;
}
void disp_strbb(unsigned char* ptr,unsigned char len)
{
unsigned char i,j,k,n;
if(stc.flash.bit.dir){
for(i = 0;i < len;i++){
var.u.addr = ZK816_ADDR;
j = *(ptr + i);
var.u.addr += j * 16;
for(j = 0;j < 8;j++){
fnCmd2(LC_ADD_POS,var.u.locat.byte[0],var.u.locat.byte[1]); // 置地址指针
fnCmd(LC_AUT_WR); // 自动写
for(k = 0;k < (VIP_GAO / 8);k++){
fnDataW(*var.u.addr); // 写数据
var.u.addr++;
}
fnCmd(LC_AUT_OVR); // 自动写结束
var.u.locat.word += LCDKUAN;
}
}
}else{
var.u.len = len;
LCMRD = 1;
LCMWR = 1;
LCMDIR = 0xff;
for(i = 0;i < 2;i++){
n = 0;
for(j = 0;j < len;j++){
var.u.addr = ZK816_ADDR + 1 - i;
k = *(ptr + j);
var.u.addr += k * 16;
for(k = 0;k < 8;k++){
var.u.movea.byte[n] = *(var.u.addr + (k * 2));
n++;
}
}
writeh2s8();
}
}
}
/*
void disp_rtc(void)
{
unsigned char i,abuf[32];
LCMCE = 0;
if(stc.flag.bit.rtc_clr){
if(stc.flag.bit.yunxing){
;
}else{
if(stc.flash.bit.dir){
lcd_cls((RTC_SX / 8),RTC_SY,(RTC_GAO / 8),RTC_KUAN);
}else{
if(stc.flag.bit.set){
lcd_cls((RTC_HX / 8),RTC_HY,(RTC_KUAN / 8 - 2),RTC_GAO);
}else{
;
}
//lcd_cls(0,USER_HY,LCDKUAN,USER_GAO);
}
for(i = 0;i < 8;i++){
stc.rtc1302.byte[i] = 36;
}
}
}else{
i = 0;
abuf[i++] = HHH;
abuf[i++] = HHL;
if(stc.flag.bit.rtc_sec){
abuf[i++] = 39;
}else{
abuf[i++] = 36;
}
abuf[i++] = var.u.vip >> 4;//MmH;
abuf[i++] = var.u.vip & 0x0f;//MmL;
//abuf[i++] = 36;
if(stc.flash.bit.dir){ //竖显
var.u.locat.word = (RTC_SY + 72) * LCDKUAN + (RTC_SX / 8);
}else{ //横显
var.u.locat.word = (RTC_HY + 16) * LCDKUAN + (RTC_HX / 8) + 9;
}
disp_str(&abuf[0],5);
if(stc.flag.bit.rtc_date){
if(stc.t0.tick < TIME_LMT){
stc.flag.bit.rtc_date = 0;
i = 0;
//abuf[i++] = 36;
if(stc.flash.bit.rtc_en == 1){//中
//i = 1;
abuf[i++] = 2;
abuf[i++] = 0;
abuf[i++] = YYH;
abuf[i++] = YYL;
abuf[i++] = 50;
abuf[i++] = 51;
abuf[i++] = MMH;
abuf[i++] = MML;
abuf[i++] = 52;
abuf[i++] = 53;
abuf[i++] = DDH;
abuf[i++] = DDL;
abuf[i++] = 54;
abuf[i++] = 55;
}else if(stc.flash.bit.rtc_en == 2){//en1
abuf[i++] = 36;
abuf[i++] = MMH;
abuf[i++] = MML;
abuf[i++] = 40;
abuf[i++] = 41;
abuf[i++] = DDH;
abuf[i++] = DDL;
abuf[i++] = 40;
abuf[i++] = 41;
abuf[i++] = 2;
abuf[i++] = 0;
abuf[i++] = YYH;
abuf[i++] = YYL;
abuf[i++] = 36;
}else{ //en2
abuf[i++] = 36;
abuf[i++] = 2;
abuf[i++] = 0;
abuf[i++] = YYH;
abuf[i++] = YYL;
abuf[i++] = 42;
abuf[i++] = 43;
abuf[i++] = MMH;
abuf[i++] = MML;
abuf[i++] = 42;
abuf[i++] = 43;
abuf[i++] = DDH;
abuf[i++] = DDL;
abuf[i++] = 36;
}
if(stc.flash.bit.dir){ //竖显
var.u.locat.word = RTC_SY * LCDKUAN + ((RTC_SX + 16) / 8);
}else{ //横显
var.u.locat.word = RTC_HY * LCDKUAN + (RTC_HX / 8);
}
disp_str(abuf,RTC_KUAN / 8);
var.u.addr = DOW_ADDR;
var.u.addr += DOW * 9 * 16;
var.u.kuan = 2;
var.u.gao = 8 * 9;
if(stc.flash.bit.dir){
var.u.locat.word = RTC_SY * LCDKUAN + ((RTC_SX) / 8);
disp_bmps();
}else{
var.u.locat.word = (RTC_HY + 16) * LCDKUAN + (RTC_HX / 8);
disp_bmph();
}
}else{
;
}
}else{
;
}
}
LCMCE = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -