这个是我从网上下载的程序稍加改动得到的,希望对朋友们有用 /********液晶控制器st7565程序************/ #include #include #include #include "data.h" #define uchar unsigned char #define uint unsigned int sbit SDA=P2^1; //lcd-data sbit SCK=P2^3; //lcd-clk sbit DI=P2^0; //lcd-A0 sbit CS=P2^2; //lcd-cs /*========写一个字节的命令==============*/ write_command(uchar cmd) { uint i; DI=0; SCK=0; CS=0; for(i=0;i<8;i++) { SCK=0; _nop_(); _nop_(); SDA=cmd&0x80; cmd=cmd<<1; _nop_(); _nop_(); SCK=1; _nop_(); _nop_(); } CS=1; } /*========写一个字节的数据==============*/ write_data(uchar dat) { uint i; DI=1; SCK=0; CS=0; for(i=0;i<8;i++) { SCK=0; _nop_(); _nop_(); SDA=dat&0x01; dat=dat>>1; _nop_(); _nop_(); SCK=1; _nop_(); _nop_(); } CS=1; } ///////////////////////////////液晶显示器初始化//////////////////////////////////////////////// void init_1815(void) { write_command(0xaf); //0xaf开显示0xae关显示 write_command(0x40); //设置显示起始行0x40-0x7f共64行 //write_command(0xa0); //RAM列地址与列驱动同顺序0-131 write_command(0xa1); //或者设置RAM列地址与列驱动逆131-00xb0-0xb8顺序 write_command(0xa6); //0xa6正向显示0xa7为反向显示 write_command(0xa4); //0xa4正常显示0xa5为显示全亮 write_command(0xa2); //0xa2LCD偏压比为1/9 0xa3 为偏压比1/7 write_command(0xc8); //行驱动方向为反向 //write_command(0xc0); //或者设置行驱动方向为正向 write_command(0x2f); //启动内部LCD驱动电源0x28升压电压调节器电压跟随器关0x2c升压开电压调节器电压跟随器关0x2e升压电压调节器开电压跟随器关x2f升压电压调节器电压跟随器开 write_command(0x25); //内部电阻比 write_command(0xf8); //升压电路设置指令 代码代码为双字节,第一字节为指令码0xf8 write_command(0x00); //倍压设置为4x 第二字节为值 0x00为2x.3x.4x0x01为5x0x02为6x //write_command(0x01); //或者设置倍压设置为5x write_command(0x81); //对比度设置指令 代码为双字节,第一字节为指令码 write_command(0x20); //设置对比度第二字节为值 0x00...