⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd12864.c.new

📁 单片机密码-24c01-12864-4x4按键扫描 初始密码是123456,按#确认 进入后,按*修改密码
💻 NEW
字号:
#include <REG52.H>#include "LCD12864.h"#include "ZK.h"/*忙判别*/void lcd_busy(void){    p_di=0;p_rw=1;P0=0xff;    while(1)    {        p_e=1;        if(P0<0x80) break;        p_e=0;    }     p_e=0;    p_rw=0;}/*设置xy*/void set_xy(unsigned char x,unsigned char y){    if (x>=64) 
    {
        p_csa=0;p_csb=1;
    }
    else 
    {
        p_csb=0;p_csa=1;
    }    lcd_busy();    p_di=0;P0=0x40|x;p_e=1;p_e=0;    lcd_busy();    p_di=0;P0=0xb8|y;p_e=1;p_e=0;    P0=0xff;}void lw(unsigned char x,unsigned char y,unsigned char dd){    set_xy(x,y);    lcd_busy();p_di=1;P0=dd;p_e=1;p_e=0;    P0=0xff;}/*显示初始化*/#pragma disablevoid lcd_init(void){    unsigned char x,y;        /*开显示*/    p_e=p_di=0;    p_csa=p_csb=0;    p_csa=1;lcd_busy();P0=0x3f;p_e=1;p_e=0;p_csa=0;    p_csb=1;lcd_busy();P0=0x3f;p_e=1;p_e=0;p_csb=0;    /*0行开始显示*/    p_csa=1;lcd_busy();p_di=0;P0=0xc0;p_e=1;p_e=0;p_csa=0;    p_csb=1;lcd_busy();p_di=0;P0=0xc0;p_e=1;p_e=0;p_csb=0;    for (y=0;y<8;y++)    {        for (x=0;x<128;x++) lw(x,y,0);    }}//显示汉字,fb==1:反白显示void dh(unsigned char x,unsigned char y,unsigned char n,unsigned char fb){    unsigned char i,dd;    for (i=0;i<16;i++)    {        dd=hz[n].Msk[i];        if (fb) dd=255-dd;        lw(x*8+i,y,dd);        dd=hz[n].Msk[i+16];        if (fb) dd=255-dd;        lw(x*8+i,y+1,dd);    }}//显示字符,fb==1:反白显示void da(unsigned char x,unsigned char y,unsigned char n,unsigned char fb){    unsigned char i,dd;    n-=32;    if (n>128) n=0;    if (fb) dd=255; else dd=0;     lw(x*8,y,dd);    lw(x*8,y+1,dd);    for (i=0;i<8;i++)    {        dd=asc[i+n*16];        if (fb) dd=255-dd;         lw(x*8+i+1,y,dd);        dd=asc[i+n*16+8];        if (fb) dd=255-dd;         lw(x*8+i+1,y+1,dd);    }}void print_str(unsigned char x,unsigned char y,char *str,unsigned char fb){    unsigned char c1,c2,i,j;        j=0;			  //字符串是最后一位是0结尾?    while(str[j])	  //如果不是最后一位则进入循环    {        c1=str[j];        if(c1>128)        {            c2=str[j+1];            for(i=0;i<HZMAX;i++)            {                if(c1==hz[i].Index[0] && c2==hz[i].Index[1])                {                    break;                }            }            if(i<HZMAX)            {
                /* Found HZ */                dh(j+x,y,i,fb);            }            else            {
                /* Not Found HZ */                dh(j+x,y,0,0);            }            j+=2;        }        else        {            da(x+j,y,c1,fb);            j++;	        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -