一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: pla155
收起左侧

[其他DIY] 也玩伊爱高新车载屏(STC89C516RD+@19264)

[复制链接]
发表于 2016-1-7 13:48 | 显示全部楼层
jpdd521 发表于 2016-1-7 00:06
不改造的情况下,原来的是不是接上GPS模块就可以当码表用呢。。。

不改造直接用GPS模块的信息应该不行,它就是个显示器,没有处理GPS模块信息的能力吧,应该有个另外的MCU处理。原装伊爱高新盒子如下:

100_7006.jpg
100_7007.jpg
100_7008.jpg
100_7009.jpg
100_7010.jpg
100_7011.jpg
发表于 2016-1-7 15:01 | 显示全部楼层
ylwwp 发表于 2016-1-7 13:48
不改造直接用GPS模块的信息应该不行,它就是个显示器,没有处理GPS模块信息的能力吧,应该有个另外的MCU ...

给发一个玩玩....
发表于 2016-1-14 03:10 | 显示全部楼层
大佬把帖子找到并且恢复了,太好了,顶贴,望作者继续更新!!
 楼主| 发表于 2016-1-14 09:00 | 显示全部楼层
这两天一直在玩另一个车载显示屏,华邦的芯片。

https://www.yleee.com.cn/forum.p ... mp;page=1#pid787972

这一款了解了,也就没有兴趣了。
过一段时间或许会有新想法。
头像被屏蔽
发表于 2016-5-2 17:16 | 显示全部楼层
不错 支持楼主
头像被屏蔽
发表于 2016-5-21 16:35 | 显示全部楼层
真的饿这么厉害??
发表于 2017-1-10 09:10 | 显示全部楼层
楼主你好,请问有原理图吗、?
最近收了三个回来
 楼主| 发表于 2017-2-14 19:39 | 显示全部楼层
sbit         Key1                         = P0^2  ;
sbit         Key2                         = P0^3  ;
sbit         Key3                         = P0^4  ;
sbit         Key4                         = P0^5  ;
sbit         Key5                         = P0^6  ;
sbit         Key6                         = P0^7  ;
/**---------------------------------------------------------------**/
sbit         CS_ROM                         = P1^0        ;                                // SST39SF040片选输入端
sbit         IR_DAT                         = P1^1        ;                                // 红外线数据输入端
sbit         CS_RAM                         = P1^2        ;                                // IS62C256片选输入端
sbit         CS_X5045                 = P1^3        ;                                // X5045 片选
sbit         CS_LCM1                 = P1^4        ;                                // 液晶模块片选1
sbit         CS_LCM2                  = P1^5        ;                                // 液晶模块片选2
sbit         CS_LCM3                         = P1^6        ;                                // 液晶模块片选3
sbit         En_LCM                         = P1^7        ;                                // 液晶模块 E
/**---------------------------------------------------------------**/
sbit         SO_X5045                 = P2^0        ;                                // X5045 SPI-OUT
sbit         SI_X5045                 = P2^1        ;                                // X5045 SPI-IN
sbit         SCK_X5045                 = P2^2        ;                                // X5045 SPI-CLK
/**---------------------------------------------------------------**/
sbit         Key_Comm                 = P3^3  ;                                // 低电平拉低电压
sbit         SPK                                 = P3^4        ;                                // 低电平鸣笛
sbit         BK_Light                 = P3^5  ;                                // 低电平点亮背光灯
sbit         RW_LCM                         = P3^6        ;                                // 液晶模块 RW
sbit         RS_LCM                         = P3^7        ;                                // 液晶模块 RS
/**---------------------------------------------------------------**/
sbit         A16_ROM                         = P4^0        ;                                // EEPROM高位地址线
sbit         A17_ROM                         = P4^1        ;                                // EEPROM高位地址线
sbit         A18_ROM                         = P4^2        ;                                // EEPROM高位地址线
 楼主| 发表于 2017-2-14 19:43 | 显示全部楼层
; STC89C516RD+ @ 11.0592M @ WGM19264(KS0108*3)
$NOMOD51       
; .............................................................................
NAME        LCM
/******************************************************************************
*SST39SF040是作为RAM外挂在总线上,内容是按拼音排序的字库(16*16)。
*ADDR = (区码*94+位码+1)*32
******************************************************************************/
; .............................................................................
#include "STC89.H"
; .............................................................................
CS_ROM                        EQU                P1.0                                        // SST39SF040片选输入端
IR_DAT                        EQU                P1.1                                        // 红外线数据输入端
CS_RAM                        EQU                P1.2                                        // IS62C256片选输入端
CS_X5045                EQU                P1.3                                        // X5045 片选
CS_LCM1                        EQU                P1.4                                        // 液晶模块片选1
CS_LCM2                        EQU                P1.5                                        // 液晶模块片选2
CS_LCM3                        EQU                P1.6                                        // 液晶模块片选3
En_LCM                        EQU                P1.7                                        // 液晶模块 E
/**---------------------------------------------------------------**/
SO_X5045                EQU                P2.0                                        // X5045 SPI-OUT
SI_X5045                EQU                P2.1                                        // X5045 SPI-IN
SCK_X5045                EQU                P2.2                                        // X5045 SPI-CLK
/**---------------------------------------------------------------**/
Key_Comm                EQU                P3.3                                          // 低电平拉低电压
SPK                                EQU                P3.4                                        // 低电平鸣笛
BK_Light                EQU                P3.5                                        // 低电平点亮背光灯
RW_LCM                        EQU                P3.6                                        // 液晶模块 RW
RS_LCM                        EQU                P3.7                                        // 液晶模块 RS
/**---------------------------------------------------------------**/
A16_ROM                        EQU                P4.0                                        // EEPROM高位地址线
A17_ROM                        EQU                P4.1                                        // EEPROM高位地址线
A18_ROM                        EQU                P4.2                                        // EEPROM高位地址线
/**---------------------------------------------------------------**/
LCM_PORT                EQU                P0                                                  // LCM数据口
/**---------------------------------------------------------------**/
LCM_CMD_ON                EQU                03FH                                           // KS0108 命令数据 :开显示
LCM_CMD_OFF                EQU                03EH                                           // KS0108 命令数据 : 关显示
LCM_CMD_X0                EQU                0B8H                                           // KS0108 命令数据 : 起始页地址
LCM_CMD_Y0                EQU                040H                                           // KS0108 命令数据 : 起始列地址
LCM_CMD_LINE0        EQU                0C0H                                           // KS0108 命令数据 : 显示起始列地址
LCM_CMD_PAGE0        EQU                0B8H                                           // KS0108 命令数据 : 第1页
LCM_CMD_PAGE1        EQU                0B9H                                           // KS0108 命令数据 : 第2页
LCM_CMD_PAGE2        EQU                0BAH                                           // KS0108 命令数据 : 第3页
LCM_CMD_PAGE3        EQU                0BBH                                           // KS0108 命令数据 : 第4页
LCM_CMD_PAGE4        EQU                0BCH                                           // KS0108 命令数据 : 第5页
LCM_CMD_PAGE5        EQU                0BDH                                           // KS0108 命令数据 : 第6页
LCM_CMD_PAGE6        EQU                0BEH                                           // KS0108 命令数据 : 第7页
LCM_CMD_PAGE7        EQU                0BFH                                           // KS0108 命令数据 : 第8页
; .............................................................................
; .............................................................................
?PR?_LCM_DAT1?LCM    SEGMENT CODE
?PR?Init_LCM?LCM     SEGMENT CODE
?PR?CLRS_LCM?LCM     SEGMENT CODE
?PR?_Show_HZ_XY?LCM  SEGMENT CODE
; .............................................................................
        EXTRN         IDATA (HZK)          // 汉字库字模缓冲32字节
        EXTRN         IDATA (IRDAT)          // 红外线数据缓冲32字节
        EXTRN         IDATA (BUFF)          // 通用缓冲区64字节
; .............................................................................
// extern void Init_LCM(void)  ;
// extern void CLRS_LCM(void)  ;
// extern void Show_HZ_XY(unsigned char X , unsigned char Y , unsigned char HZ)          ;
        PUBLIC        Init_LCM
        PUBLIC        CLRS_LCM
        PUBLIC        _Show_HZ_XY
//=============================================================================
// 函数: 内部函数,用于向KS0108写入指令或数据。
// 描述: 写一个字节的数据至LCD中的控制寄存器当中
// 参数: 数据已经写好在P0口
// 返回: 无
//=============================================================================
        RSEG  ?PR?_LCM_DAT1?LCM
        USING        0
LCM_DAT1:        //LCM1块数据写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM1
                                SETB        RS_LCM
                                JMP                LCM_CLK
;--------------------------------------
LCM_DAT2:        ;LCM2块数据写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM2
                                SETB        RS_LCM
                                JMP                LCM_CLK
;--------------------------------------
LCM_DAT3:        ;LCM3块数据写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM3
                                SETB        RS_LCM
                                JMP                LCM_CLK
LCM_CMD1:        ;LCM1块命令写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM1
                                CLR                RS_LCM
                                JMP                LCM_CLK
;--------------------------------------
LCM_CMD2:        ;LCM2块命令写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM2
                                CLR                RS_LCM
                                JMP                LCM_CLK
;--------------------------------------
LCM_CMD3:        ;LCM3块命令写入子程序
                                CLR                RW_LCM
                                CLR                CS_LCM3
                                CLR                RS_LCM
                                JMP                LCM_CLK
//========================================================================
LCM_CLK:    ;LCM通用脉冲程序
                                NOP
                                SETB        EN_LCM
                                NOP
                                NOP
                                CLR                EN_LCM
                                NOP
                                RET
; END OF CLK_LCM
//=============================================================================
// 函数:void Init_LCM(void)
// 描述: 初始化KS0108
// 参数: 无
// 返回: 无
//=============================================================================
        RSEG  ?PR?Init_LCM?LCM
Init_LCM:        ;LCM上电初始化
        USING        0
                                CLR                CS_LCM1
                                CLR                CS_LCM2
                                CLR                CS_LCM3
                                CLR                RS_LCM
                                CLR                RW_LCM

                                MOV                LCM_PORT        , #LCM_CMD_OFF
                                ACALL        LCM_CLK
                                MOV                LCM_PORT        , #LCM_CMD_LINE0
                                ACALL        LCM_CLK
                                MOV                LCM_PORT        , #LCM_CMD_X0
                                ACALL        LCM_CLK
                                MOV                LCM_PORT        , #LCM_CMD_Y0
                                ACALL        LCM_CLK
                                MOV                LCM_PORT        , #LCM_CMD_ON
                                ACALL        LCM_CLK
                       
DIS_LCM:                SETB        CS_LCM1
                                SETB        CS_LCM2
                                SETB        CS_LCM3
                                SETB        RS_LCM
                                SETB        RW_LCM
       
                                RET
; END OF Init_LCM
//========================================================================
// 函数: void CLRS_LCM(void Data)
// 描述: 清屏
// 参数: 无
// 返回: 无
//========================================================================
        RSEG  ?PR?CLRS_LCM?LCM
CLRS_LCM:                ;LCM清屏
        USING        0
                                CLR                RW_LCM
                                CLR                CS_LCM1
                                CLR                CS_LCM2
                                CLR                CS_LCM3
                       
                                MOV                R0                        , #LCM_CMD_PAGE0
CLRS_LCM_JP1:
                                MOV                LCM_PORT        , R0
                                CLR                RS_LCM
                                ACALL        LCM_CLK
                       
                                MOV                LCM_PORT        , #000H
                                SETB        RS_LCM
                                MOV                R1                        , #64
CLRS_LCM_JP0:
                                ACALL        LCM_CLK
                                DJNZ        R1                        , CLRS_LCM_JP0
                                INC                R0
                                CJNE        R0                        , #0C0H , CLRS_LCM_JP1

                                JMP                DIS_LCM       
; END OF CLS_LCM
//=============================================================================
// 函数: void Show_HZ_XY(unsigned char X , unsigned char Y , unsigned int HZ)
// 描述: 把ROM中16X16点阵写在 X ,Y 的位置。X = 0 - 6 ;Y = 0 - 11
// 参数: 占用 A , 整个R寄存器组 ,DPTR
//                ---- Variable 'X'  assigned to Register   'R7'   ----
//                ---- Variable 'Y'  assigned to Register   'R5'   ----
//                ---- Variable 'HZ' assigned to Register 'R2/R3'  ----
// 返回: 无
//=============================================================================
        RSEG  ?PR?_Show_HZ_XY?LCM
_Show_HZ_XY:
        USING        0
                                ACALL        Show_HZK
                                ACALL        Show_ROM2RAM

                                ACALL        Show_SET_XY
                                MOV                R0                        , #HZK
                                ACALL        Show_RAM2LCM

                                ACALL        Show_SET_OTHER
                                ACALL        Show_RAM2LCM

                                JMP                DIS_LCM         
/* ............................................................................
;  汉字内码 - 0A0A0H = 区位码
;  每区94个汉字 ,每个汉字32字节
;  ADDR = (区码*94+位码+1)*32
;  在汉字的区位码中,高两位为区号,低两位为位号。
;  在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字 。
;  其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),
;  56-87区为二级汉字(3008个汉字,按部首次序排列)。
;  GB2312构成一个二维平面,分成94行和94列,行号成为区号,列号成为位号。
............................................................................*/
//                ---- Variable 'HZ' assigned to Register 'R2/R3'  ----
Show_HZK:                        ;计算汉字库在ROM中的位置            
;-------------- (R2*94+R3+1)*32 -> P4:DPTR
//                                MOV                A                        , R3  ; (汉字内码 - 0A0A0H) = 区位码
//                                DEC                A                        , #0A0H
//                                MOV                R3                        , A
                                MOV                A                        , R2
//                                DEC                A                        , #0A0H
                                MOV                B                        , #094
                                MUL                AB                                  ; 低位在A
                                INC                R3                                  ; R3 最大为 94,不会越界
                                ADD                A                        , R3
                                XCH                A                        , B
                                ADDC        A                        , #0  ; 高位在A        低位在 B
;-------------- 先乘16 , 相当于移位4 (R2 R3 A -> P4 DPH DPL)
                                MOV                R2                        , #000H
                                MOV                R3                        , #000H  
                                SWAP        A
                                MOV                R2                        , A
                                ANL                A                        , #11110000B
                                MOV                R3                        , A
                                MOV                A                        , R2
                                ANL                A                        , #00001111B
                                MOV                R2                        , A
                                MOV                A                        , B
                                SWAP        A
                                MOV                B                        , A
                                ANL                A                        , #00001111B
                                ORL                A                        , R3
                                MOV                R3                        , A
                                MOV                A                        , B
                                ANL                A                        , #11110000B
;-------------- 再乘2 , 相当于移位1 (R2 R3 A -> P4 DPH DPL)
                                CLR                C
                                RLC                A
                                MOV                DPL                        , A
                                MOV                A                        , R3
                                RLC                A
                                MOV                DPH                        , A
                                MOV                A                        , R2
                                RLC                A
                                ANL                A                        , #00000111B
                                MOV                P4                        , A
                                RET
; .............................................................................
;功能:读ROM字模到RAM  ,共32字节(相当于一个汉字的完整字模)
;入口:DPTR指向字模的ROM首地址
;占用:R0 , R1 , A
;出口:32字节的一个汉字完整字模
Show_ROM2RAM:        CLR                CS_ROM

                                MOV                R0                        , #HZK
                                MOV                R1                        , #020H
Show_ROM2RAM_JP0:
                                MOVX        A                        , @DPTR
                                INC                DPTR
                                MOV                @R0                        , A
                                CLR                A
                                INC                R0
                                DJNZ        R1                        , Show_ROM2RAM_JP0

                                SETB        CS_ROM
                                RET
; .............................................................................
;功能:计算屏幕位置
//                ---- Variable 'X'  assigned to Register   'R7'   ----
//                ---- Variable 'Y'  assigned to Register   'R5'   ----
;入口:X ,Y 的位置。X = 0 - 6 ;Y = 0 - 11
;占用:R7 , R5 , A
;出口:R7 = PAGE ; R5 = 列地址
Show_SET_XY:        MOV                A                        , R5
// A = 00 - 03  LCM1 ;A = 04 - 07  LCM2 ;A = 08 - 0B  LCM3 ;
                                MOV                C                        , ACC.2
                                ORL                C                        , ACC.3
                                MOV                CS_LCM1                , C
//-----------------------------------------
                                MOV                C                        , ACC.2
                                CPL                C
                                MOV                CS_LCM2                , C
//-----------------------------------------
                                MOV                C                        , ACC.3
                                CPL                C
                                MOV                CS_LCM3                , C
//-----------------------------------------
                                MOV                A                        , R7
                                ADD                A                        , #LCM_CMD_X0
                                MOV                R7                        , A
//-----------------------------------------
                                MOV                A                        , R5
                                ANL                A                        , #00000011B
                                SWAP        A; 将寄存器A中数据的高四位和低四位的值交换;相当于*16
                                ADD                A                        , #LCM_CMD_Y0
                                MOV                R5                        , A
//-----------------------------------------
Show_SET_OTHER:        CLR                RS_LCM
                                CLR                RW_LCM
                                MOV                A                        , R7
                                MOV                LCM_PORT        , A
                                INC                R7                                        ; 显示下一页
                                ACALL        LCM_CLK
                                MOV                A                        , R5
                                MOV                LCM_PORT        , A
                                ACALL        LCM_CLK
                                RET
; .............................................................................
Show_RAM2LCM:
                                SETB        RS_LCM
                                MOV                R1                        , #010H
Show_RAM2LCM_JP1:                       
                                MOV                A                        , @R0
                                INC                R0
                                MOV                LCM_PORT        , A
                                ACALL        LCM_CLK
                                DJNZ        R1                        , Show_RAM2LCM_JP1
                                RET
; .............................................................................
; END OF _Show_HZ_XY
; .............................................................................
; .............................................................................
        END
 楼主| 发表于 2017-2-14 19:44 | 显示全部楼层
/******************************************************************************
* 伊爱高新车载显示屏 ()@@
* STC89C516RD+ @11.0592                    
* 192X64@KS0108
* SST39FS040          外挂汉字字库(RAM模式操作)
* IS62C256
* X5045  
* 6 KEY
* 4LED
*
******************************************************************************/
#include <STC89.H>
#include "DEF_PIN.H"
/**--------------------------------------------------------------------------**/
extern void Delay1mS(void);
extern void Delay100mS(void);
extern void Init_UART(void);
/*-----------------------------------*/
extern void Init_T2(void);
/*-----------------------------------*/
extern void Init_LCM(void);
extern void CLRS_LCM(void);                   //X = 0 - 6 Page    Y = 0 - 11 Line
extern void Show_HZ_XY(unsigned char X , unsigned char Y , unsigned int HZ);
/**---------------------------------------------------------------**/
unsigned char bdata IR_FLAG          _at_ 0X020 ;
/*-----------------------------------*/
unsigned char data  IR_CNT1          _at_ 0X040 ;
unsigned char data  IR_CNT2          _at_ 0X041 ;
unsigned char data  IR_CODE          _at_ 0X042 ;
/*-----------------------------------*/
unsigned char idata HZK[32]    _at_ 0X080 ;  // 汉字库字模缓冲
unsigned char idata IRDAT[32]  _at_ 0X0A0 ;  // 红外线数据缓冲
unsigned char idata BUFF[63]   _at_ 0X0C0 ;  // 缓冲
/**---------------------------------------------------------------**/
sbit        IR_OK                = IR_FLAG^0 ;
/**---------------------------------------------------------------**/
void main(void)
{        int                Index ;

        SP         = 0X060 ;
        Delay1mS() ;
        BK_Light         = 0 ;
        Init_T2();
        Init_UART();
        Init_LCM() ;
    CLRS_LCM();

        EA                = 1 ;

        Index        = 0X00000 ;

        while(1)
        {
                Show_HZ_XY(0,0,Index++) ;                Show_HZ_XY(0,1,Index++) ;
                Show_HZ_XY(0,2,Index++) ;                Show_HZ_XY(0,3,Index++) ;
                Show_HZ_XY(0,4,Index++) ;                Show_HZ_XY(0,5,Index++) ;
                Show_HZ_XY(0,6,Index++) ;                Show_HZ_XY(0,7,Index++) ;
                Show_HZ_XY(0,8,Index++) ;                Show_HZ_XY(0,9,Index++) ;
                Show_HZ_XY(0,10,Index++) ;                Show_HZ_XY(0,11,Index++) ;
                Show_HZ_XY(2,0,Index++) ;                Show_HZ_XY(2,1,Index++) ;
                Show_HZ_XY(2,2,Index++) ;                Show_HZ_XY(2,3,Index++) ;
                Show_HZ_XY(2,4,Index++) ;                Show_HZ_XY(2,5,Index++) ;
                Show_HZ_XY(2,6,Index++) ;                Show_HZ_XY(2,7,Index++) ;
                Show_HZ_XY(2,8,Index++) ;                Show_HZ_XY(2,9,Index++) ;
                Show_HZ_XY(2,10,Index++) ;                Show_HZ_XY(2,11,Index++) ;
                Show_HZ_XY(4,0,Index++) ;                Show_HZ_XY(4,1,Index++) ;
                Show_HZ_XY(4,2,Index++) ;                Show_HZ_XY(4,3,Index++) ;
                Show_HZ_XY(4,4,Index++) ;                Show_HZ_XY(4,5,Index++) ;
                Show_HZ_XY(4,6,Index++) ;                Show_HZ_XY(4,7,Index++) ;
                Show_HZ_XY(4,8,Index++) ;                Show_HZ_XY(4,9,Index++) ;
                Show_HZ_XY(4,10,Index++) ;                Show_HZ_XY(4,11,Index++) ;
                Show_HZ_XY(6,0,Index++) ;                Show_HZ_XY(6,1,Index++) ;
                Show_HZ_XY(6,2,Index++) ;                Show_HZ_XY(6,3,Index++) ;
                Show_HZ_XY(6,4,Index++) ;                Show_HZ_XY(6,5,Index++) ;
                Show_HZ_XY(6,6,Index++) ;                Show_HZ_XY(6,7,Index++) ;
                Show_HZ_XY(6,8,Index++) ;                Show_HZ_XY(6,9,Index++) ;
                Show_HZ_XY(6,10,Index++) ;                Show_HZ_XY(6,11,Index++) ;

                P0                 = 0X0FF ;
                Key_Comm = 0 ;
                while(P0 == 0X0FF)
                  Delay100mS() ;
                Key_Comm = 1 ;
        }

        return ;
}

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-5 07:16 , Processed in 0.056079 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表