点亮并驱动拆卸ETC屏幕(HEM12832-19B3)

起因:前不久跟着公司领导去给车上换装ETC,在装ETC的场地捡了一个别人扔下的ETC整体,还是带屏幕的,顺手捡了回来,准备驱动点亮他。

目的:准备先用89C52点亮试试,后续再添加/改造成其他用途的工具

材料:STC89C52RC主板、ETC屏幕、洞洞板、线若干、人 

材料都有了,接着便是着手开始制作了,话不多说,走曲

虚҉伪҉  原创


  1. 捡回来先拆外壳

        

 

 2.屏幕参数

        LCD屏幕大小为48mm15mm,加上白色外壳有50mm23mm

        确定屏幕型号为:HEM12832-19B3 1604

        找了很久,终于找到这么一张有关的图片:

        PDF文件通过蓝奏云分享:HEM12832-19B5-C-02.pdf - 蓝奏云

 

查看规格得知 Vop=6.5V,Vdd=3.3 ~ 0.2V

驱动IC是ST7567

图片中有和我们屏幕一样的引脚编号,查看fpc pin def就行

将每个引脚做好标记之后,拿出我们的单片机

我用的是这款单片机,将二者全部置放于洞洞板上,并使用线将单片机与屏幕引脚相连接

这里我接了三个按钮开关,你可以加也可以不加

很好,估计看到这儿你已经懵了,不要着急,你只需要按照我给出的连接方式连接即可

ETC屏幕stc89c52rc
1CS1P12
2RESP13
3AOP14
4SCKP10
5SDAP11
6VDD按钮5V
7VSSGND
8VG—||—GND
加了个按钮 这里的电容为1uf
9A按钮5V
10KGND

根据规格图中得知屏幕的驱动IC是ST7567,那我们直接百度download一个ST7567的示例程序,下载好之后,通过左上角的file→open→选择刚才下载的文件,导入进我们的keil5软件

双击main.c打开程序

再经过短暂的程序调试,我们得到了一个不多不少的显示小车的程序:

本人程序通过蓝奏云分享:12832.rar - 蓝奏云

或者可以通过下方复制:

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit cs=P1^2;    //CS
sbit sda=P1^1;   //SDA
sbit sclk=P1^0;  //SCLK
sbit rst=P1^3;   //RST
sbit rs=P1^4;    //RS »ò AO

unsigned char code hz0[128]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x78,0x08,0x00,0x00,0x00,0x00,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0xE0,0xF0,0x70,0x60,0x00,0x00,0x00,
0x00,0x02,0x02,0x02,0x02,0xE2,0xFF,0xFF,0x0F,0x02,0x02,0xF2,0xFF,0xFF,0x06,0x00,
0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFE,0x03,0x01,0x00,0x00,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x20,0x3C,0x3F,0x67,0x40,0xC0,0xE0,0xFE,0xFF,0x8F,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
0x00,0x40,0x40,0x60,0x30,0x18,0x0C,0x0E,0x07,0x03,0x01,0x03,0x07,0x0F,0x0E,0x00,
0x10,0x10,0x30,0x30,0x70,0x7F,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"ºÃ",0*/

};

unsigned char code hz1[128]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x78,0x08,0x00,0x00,0x00,0x00,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0xE0,0xF0,0x70,0x60,0x00,0x00,0x00,
0x00,0x02,0x02,0x02,0x02,0xE2,0xFF,0xFF,0x0F,0x02,0x02,0xF2,0xFF,0xFF,0x06,0x00,
0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFE,0x03,0x01,0x00,0x00,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x20,0x3C,0x3F,0x67,0x40,0xC0,0xE0,0xFE,0xFF,0x8F,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
0x00,0x40,0x40,0x60,0x30,0x18,0x0C,0x0E,0x07,0x03,0x01,0x03,0x07,0x0F,0x0E,0x00,
0x10,0x10,0x30,0x30,0x70,0x7F,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"ºÃ",1*/

};

unsigned char code hz2[128]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0xF0,0xE0,0xC0,0x00,0x04,0x3C,0xF8,
0xF0,0xE0,0x00,0x00,0x00,0xC0,0xF0,0x7C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x7C,0x7C,0x3C,0x84,0x84,0x85,0x85,0x85,0x84,0x84,0x84,0x85,
0x85,0x84,0x84,0x84,0x87,0xC7,0xC5,0xC4,0x84,0x24,0x34,0x1E,0x1E,0x0E,0x04,0x00,
0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFC,
0xFC,0xFC,0x24,0x26,0x23,0x21,0x21,0x20,0x20,0x20,0x30,0x38,0x38,0x30,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x30,0x70,0x7F,
0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"ѧ",2*/

};

unsigned char code hz3[128]={

0x00,0x00,0x00,0x00,0x20,0x60,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xE0,0xF0,0xF0,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x0C,0x1C,0x78,0x78,
0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xE0,0x60,0x30,0x30,0x10,0x18,
0x08,0x0C,0x04,0x06,0x02,0x02,0x02,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x04,0x0C,0x08,0x08,0x18,0x38,0x38,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,/*"Ï°",3*/

};

unsigned char code bmp[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
0xC0,0xC0,0xE8,0xB0,0x90,0x88,0x8C,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x80,0xC0,0xC0,0x40,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x70,0x70,0xF0,0xB8,0x98,0xB8,0x3C,0x3C,0xB4,0x36,0x36,0x3E,0x27,0x27,
0x23,0x23,0x23,0x23,0x21,0x21,0x21,0x21,0x21,0x21,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x2E,0x20,0x20,0x21,0x21,0x21,
0x21,0x21,0x21,0x23,0x22,0x2B,0x27,0x25,0xA5,0xAF,0xAB,0xEB,0x7A,0x76,0x46,0x26,
0x0C,0x0C,0x1C,0x18,0x78,0x78,0x70,0x70,0x70,0x60,0xE0,0x40,0xC0,0x80,0x80,0x80,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x00,0x78,0xF8,0xC8,0x8C,0x06,0x07,0x07,
0x05,0x13,0xE3,0xF1,0xF8,0xFC,0x1C,0xEE,0x1E,0x1E,0x0E,0x0E,0xCE,0xEE,0xCE,0x2E,
0x5E,0x1E,0xBE,0xEC,0x3C,0xFC,0xF8,0xF5,0xC9,0x03,0x02,0x0C,0xB8,0xF0,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0xF0,0xB8,0x8C,0x06,0x03,0x81,0xE1,0xF8,0xF8,0xFC,0xDC,0xFE,0x1E,0x1E,
0x0E,0x4E,0xEE,0xEE,0x4E,0x0E,0x1E,0x1E,0xFE,0xDC,0xFD,0xF9,0xFB,0xE3,0x87,0x87,
0x87,0x83,0xC6,0xC4,0x7C,0x38,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x03,0x07,0x07,0x0E,0x0F,0x0F,0x0E,0x1E,0x1E,0x1E,0x1E,0x0E,
0x0E,0x0F,0x0F,0x0E,0x07,0x07,0x03,0x01,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x0F,0x0D,0x0E,
0x0E,0x1E,0x1E,0x1E,0x1E,0x0E,0x0E,0x0D,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x01,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
} ;

void delay(int m)          //ÑÓʱԼ0.5ms
{
        unsigned char h,l;
        for(l=0;l<=m;l++)
        for(h=249;h>0;h--);
}

//void write_byte(uchar byte) //д×Ö½Ú
//{

//}
	
//ÃüÁîдÈ뺯Êý
void write_com(uchar com)
{
  int i,j;
	j = 0x80;
	cs = 0;
	rs = 0;
	for(i=0;i<8;i++)
	{
		sclk = 0;
		if(com&j)
			sda = 1;
		else
			sda = 0;
		sclk = 1;
		j=j>>1;
	}
}

//Êý¾ÝдÈ뺯Êý
void write_data(uchar data1) //дÊý¾Ý
{
  int i,j;
	j = 0x80;
	cs = 0;
	rs = 1;
	for(i=0;i<8;i++)
	{
		sclk = 0;
		if(data1&j)
			sda = 1;
		else
			sda = 0;
		sclk = 1;
		j=j>>1;
	}
}

void led_set_pos(uchar x, uchar y)
{
  write_com(0xb0|y); //Ò³µØÖ·0£¬12832×ܹ²4Ò³£¨0~3£©
  write_com(((x&0xf0)>>4)|0x10); //ÁеØÖ·¸ß4λ0x1£¿
  write_com((x&0x0f)|0x01); //ÁеØÖ·µÍ4λ0x0£¿
}  

void led_clear(uchar dispdata)
{
        uchar  x,y;       
        for(y=0;y<4;y++)
        {
                write_com(0xb0|y);
                write_com(0x01);
                write_com(0x10);
                for(x=0;x<128;x++)
                        write_data(dispdata);
        }
}

void led_init()
{
        rst=0; //µÍµçƽ¸´Î»
        delay(100);
        rst=1; //¸´Î»Íê±Ï
        delay(100);
        write_com(0xe2); //Èí¸´Î»
        delay(5);
        write_com(0xae); //¿ªÏÔʾ
        write_com(0x2f); //Éýѹ
        delay(5);
        write_com(0x21); //´Öµ÷¶Ô±È¶È£¬¿ÉÉèÖ÷¶Î§0x20¡«0x27  23
        write_com(0x81); //΢µ÷¶Ô±È¶È
        write_com(0x20); //΢µ÷¶Ô±È¶ÈµÄÖµ£¬¿ÉÉèÖ÷¶Î§0x00¡«0x3f 20
        write_com(0xa2); //1/9 ƫѹ±È£¨bias£©
        write_com(0xc8); //ÐÐɨÃè˳Ðò£º´ÓÉϵ½ÏÂ
        write_com(0xa0); //ÁÐɨÃè˳Ðò£º´Ó×óµ½ÓÒ
        write_com(0x40); //ÆðʼÐУºµÚÒ»ÐпªÊ¼
        write_com(0xaf); //¿ªÏÔʾ
        led_clear(0x00);               
}

//ÏÔʾ32*32ºº×Ö£¬xÈ¡Öµ0,32,64,96 yÖ»ÄÜÈ¡Öµ0
void led_show32hz(uchar x,uchar y,uchar *hz)
{
        uchar i,j;
        for(i=0;i<4;i++)
        {
                led_set_pos(x,y+i);
                for (j=0;j<32;j++)
                {
                        write_data(*hz);
                        hz++;
                }
        }
}

//»­Í¼
void led_draw(uchar x,uchar y,uchar *bmp)
{
        int i,j;
        for(i=0;i<4;i++)
        {
                led_set_pos(x,y+i);
                for(j=0;j<128;j++)
                {
                        write_data(*bmp);
                        bmp++;
                }
        }
}

void main()
{
led_init();
//led_show32hz(0,0,hz0);
//led_show32hz(32,0,hz1);
//led_show32hz(64,0,hz2);
//led_show32hz(96,0,hz3);
//delay(2000);
led_draw(0,0,bmp);
while(1);
//delay(2000);
}

接下来需要上传我们的程序到单片机上

点击这里的小锤子:

 在弹出来的框中,点击Output

 勾选"生成HEX文件"

再点击ok关闭

再点击这两个按钮(先点击框中的按钮,再点击框右侧的按钮)编译程序:

紧接着,控制台会输出以下内容

0 ERROR即可,Warning不用管

上传程序时,需要通过stc-isp软件上传,这里就不过多赘述了。。。

打开我们的stc-isp软件

        1.选择我们的单片机,我的是STC89C52RC

        2.选择你的端口号,

        3.默认我们的波特率为115200

假若你不知道你的端口号是多少,可以打开设备管理器查看端口这一栏

我的是

当这些选择好后,还需要选择刚才生成的HEX文件

点击“打开程序文件”

在弹出的框中选择你自己的HEX文件,

以我的为例,在“桌面→12832→Objects→12832.hex”,

选中后点击打开

再次点击下载/编程

点击后,右侧控制台输出“正在检测目标单片机 ...”

我的单片机需要将电源开关关闭再打开便可以上传了

操作成功!!!

最后,在看我们的成品前,我讲过,我又加了三个按钮,分别控制LCD屏幕的总电源,LCD的背光电源,以及一个暗色背景开关:

作者:Huski(   虚҉伪҉    )

转载请注明出处

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值