📄 dpcf8576.c
字号:
/****************************************************************************
* File:DPCF8576.C
* 功能:使用PCF8676驱动程序LCD,显示" Hello dp-932 "
* 说明:将跳线器J11、J12分别短接到SDA、SCL端;
* 通过跳线器J8、J9选择高频晶振6MHz,J28短接到BEEP端。
****************************************************************************/
#include "VI2C_C51.H"
#include "PCF8576.H"
#include "REG932.H"
sbit BEEP = P2^7;
/****************************************************************************
* 名称:DelayNS
* 功能:长软件延时
* 入口参数:no 延时参数,值越大时延时越久
****************************************************************************/
void DelayNS(uchar no)
{ uchar i,j;
for(; no>0; no--)
{ for(i=0; i<200; i++)
for(j=0; j<250; j++);
}
}
/* 液晶显示字符表,0-9 */
uchar code LED_TAB1[] = {0xB7,0x06,0xE5,0xC7,0x56,0xD3,0xF3,0x07,0xF7,0xD7};
uchar code LED_TAB2[] = {0xED,0x60,0xA7,0xE3,0x6A,0xCB,0xCF,0xE0,0xEF,0xEB};
void main(void)
{ uchar disp_buf[20]; // 定义显示缓冲区
uchar i;
P1M1=0x00; // 设置IO口工作模式
P1M2=0x00;
P2M1=0xc0;
P2M2=0xc0;
/* 初始化PCF8576,正常工作模式,打开显示,1/3偏压,4背极,禁止闪烁 */
if( PCF8576_Ini(MODE_E, NOGLITTER)==0 )
{ while(1) // 若器件无应答,则蜂鸣报警
{ BEEP = ~BEEP;
DelayNS(5);
}
}
/* 输出显示数据,全显示 */
for(i=0; i<20; i++)
{ disp_buf[i]=0xff;
}
PCF8576_Disp(0, 0x00, disp_buf, 20); // 0x00是数据指针指向00H的指令
DelayNS(50);
/* 显示"123...."*/
for(i=1; i<8; i++) // 第1行显示数据
{ disp_buf[i]=LED_TAB1[i]|0x08;
}
for(i=9; i<16; i++) // 第2行显示数据
{ disp_buf[i]=LED_TAB2[i-8]|0x10;
}
PCF8576_Disp(0, 0x00, disp_buf, 20);
DelayNS(150);
/* 显示" Hello dp-932 " */
for(i=0; i<20; i++)
{ disp_buf[i]=0x00;
}
disp_buf[1]=0x76; // 'H'
disp_buf[2]=0xf1; // 'E'
disp_buf[3]=0xb0; // 'L'
disp_buf[4]=0xb0; // 'L'
disp_buf[5]=0xb7; // 'O'
disp_buf[15]=0x67; // 'd'
disp_buf[14]=0xae; // 'p'
disp_buf[13]=0x02; // '-'
disp_buf[12]=LED_TAB2[9]; // '9'
disp_buf[11]=LED_TAB2[3]; // '3'
disp_buf[10]=LED_TAB2[2]|0x10; // '2'
PCF8576_Disp(0, 0x00, disp_buf, 20);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -