历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2018年01月17日 | LCD12864汇编语言程序例子

2018-01-17 来源:eefocus

12864接口程序(MCS51模拟口线方式)
;***************************************************************************
;连线图: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*
;        *DB0---P1.0* *DB4---P1.4* *RS-------------P3.0* *CS1----------P3.4*

;        *DB1---P1.1* *DB5---P1.5* *RW-------------P3.1* *CS2----------P3.5*
;        *DB2---P1.2* *DB6---P1.6* *E--------------P3.3
;        *DB3---P1.3* *DB7---P1.7* */RST-----------VDD       (详见说明书)
;注:8031的晶振频率为12MHz
;  
;**************************************************************************
XPOS    EQU     20H             ;列方向地址指针(用于LCDPOS子程序)
YPOS    EQU     21H             ;行方向地址指针(用于LCDPOS子程序)
RSPIN   EQU    P3.0           
RWPIN   EQU     P3.1            ;
EPIN    EQU     P3.3            ;
CS1PIN  EQU     P3.4            ;
CS2PIN  EQU     P3.5            ;
        ORG     0000H
        JMP     START
START:  MOV     SP,#60H
MAIN:
        CALL    LCDRESET
        MOV A,#55H
        CALL LCDFILL
        MOV DPTR,#STRING1
        CALL PUTSTR
        CALL PUTSTR
        JMP MAIN
DELAY400MS:
        MOV     R0,#20              ;延时子程序(400MS)
DL4_PA: MOV     R1,#100
DL4_PB: MOV     R2,#100
        DJNZ    R2,$
        DJNZ    R1,DL4_PB
        DJNZ    R0,DL4_PA
        RET
DELAY:
 MOV R6,#2
DLY_PA: MOV R5,#0
DLY_PB: MOV R4,#0
 DJNZ R4,$
 DJNZ R5,DLY_PB
 DJNZ R6,DLY_PA
 RET
GETSTRCHAR:
GSC_PA:
 CLR A
 MOVC A,@A+DPTR
 INC DPTR
 MOV B,A
 INC A
 CLR C
 JZ GSC_LAX
 CLR A
 MOVC A,@A+DPTR
 INC DPTR
 SETB C
GSC_LAX:
 RET
PUTSTR:
 CALL DELAY
 CALL GETSTRCHAR
 PUSH DPL
 PUSH DPH
 JNC PSR_LAX
 JNB B.7,PSR_LBY
;CHINESE:
 CALL HZKPOS
 CALL PUTCHARDOT
 CALL PUTCHARDOT
 JMP PSR_LBX
PSR_LBY:
;ENGLISH:
 CALL HZKPOS
 CALL PUTCHARDOT
PSR_LBX:
 POP DPH
 POP DPL
 JMP PUTSTR
PSR_LAX:POP DPH
 POP DPL
 RET
PUTCHARDOT:
 MOV R7,#8
PAC_PA:
 CLR A
 MOVC A,@A+DPTR
 CALL LCDWRITE
 INC YPOS
 INC DPTR
 CLR A
 MOVC A,@A+DPTR
 CALL LCDWRITE
 DEC YPOS
 INC DPTR
 CALL CUSORNEXT
 MOV A,XPOS
 JNZ PAC_LAX
 INC YPOS
PAC_LAX:
 DJNZ R7,PAC_PA
 RET
HZKPOS:
 MOV R2,#5
HTP_PA:
 CLR C
 RLC A
 XCH A,B
 RLC A
 XCH A,B
 DJNZ R2,HTP_PA

 MOV DPTR,#HZKDOT
 ADD A,DPL
 MOV DPL,A
 MOV A,B
 ADDC A,DPH
 MOV DPH,A
 RET
LCDFILL:                        ;LCD整屏显示A的内容
        MOV     R7,A
        MOV     YPOS,#0
LFL_PB: MOV     XPOS,#0
LFL_PA: MOV     A,R7
        CALL    LCDWRITE        ;定位并写数据
        CALL    CUSORNEXT
        MOV     A,XPOS
        JNZ     LFL_PA          ;XPOS<128则循环(128列)
        MOV     A,YPOS
        JNZ     LFL_PB          ;YPOS<8则循环(8页)
        RET
LCDWRITE:                    ;定位并写数据子程序
        CALL    LCDPOS       ;内部写数指针定位
        CALL    LCDWD        ;写数据
        RET
CUSORNEXT:
 ANL YPOS,#7
 INC XPOS
 MOV A,XPOS
 JNB ACC.7,CNT_LAX
 MOV XPOS,#0
 INC YPOS
 MOV A,YPOS
 ANL A,#0F8H
 JZ CNT_LAX
 MOV YPOS,#0
CNT_LAX:
 RET
LCDPOS:                      ;内部写数指针定位子程序
        PUSH    ACC
        MOV     A,XPOS
        JB      ACC.6,LPS_LAY
        MOV     A,YPOS       ;XPOS列方向小于64则对CS1操作
        ANL     A,#07H
        ADD     A,#0B8H
        CALL    LCDWC1       ;设页码
        MOV     A,XPOS
        ANL     A,#3FH
        ORL     A,#40H
        CALL    LCDWC1       ;设列码
        JMP     LPS_LAX
LPS_LAY:MOV     A,YPOS       ;XPOS列方向大于等于64则对CS2操作
        ANL     A,#07H
        ADD     A,#0B8H
        CALL    LCDWC2       ;设页码
        MOV     A,XPOS
        ANL     A,#3FH
        ORL     A,#40H
        CALL    LCDWC2       ;设列码
LPS_LAX:POP     ACC
        RET
LCDWD:                          ;送数据子程序
        MOV     B,A
        MOV     A,XPOS
        JB      ACC.6,LWD_LAY
        MOV     A,B             ;XPOS列方向小于64则对CS1操作
        CALL    LCDWD1
        JMP     LWD_LAX
LWD_LAY:MOV     A,B             ;XPOS列方向大于等于64则对CS2操作
        CALL    LCDWD2
LWD_LAX:
        RET
LCDRESET:                       ;LCD控制器复位
        MOV     A,#3FH          ;打开LCD显示
        CALL    LCDWC1
        CALL    LCDWC2
        MOV     A,#0C0H         ;设显示起始行
        CALL    LCDWC1
        CALL    LCDWC2
        RET
LCDWC1:                         ;送片1控制字子程序
        CALL    WAITIDLE1
        MOV     P1,A
        CLR     RSPIN           ;RS=0 RW=0 CS1=1 E=高脉冲
        CLR     RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDWC2:                         ;送片2控制字子程序
        CALL    WAITIDLE2
        MOV     P1,A
        CLR     RSPIN           ;RS=0 RW=0 CS2=1 E=高脉冲
        CLR     RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS2PIN
        RET
LCDWD1:                         ;片1写数据子程序
        CALL    WAITIDLE1
        MOV     P1,A
        SETB    RSPIN           ;RS=1 RW=0 CS1=1 E=高脉冲
        CLR     RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDWD2:                         ;片2写数据子程序
        CALL    WAITIDLE2
        MOV     P1,A
        SETB    RSPIN           ;RS=1 RW=0 CS2=1 E=高脉冲
        CLR     RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS2PIN
        RET
LCDRD1:                         ;片1读数据子程序
        CALL    WAITIDLE1
        MOV     P1,#0FFH
        SETB    RSPIN           ;RS=1 RW=1 CS1=1 E=高电平
        SETB    RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        MOV     A,P1
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDRD2:                         ;片2读数据子程序
        CALL    WAITIDLE2
        MOV     P1,#0FFH
        SETB    RSPIN           ;RS=1 RW=1 CS1=2 E=高电平
        SETB    RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        MOV     A,P1
        CLR     EPIN
        CLR     CS2PIN
        RET
WAITIDLE1:
        MOV     P1,#0FFH
        CLR     RSPIN           ;RS=0 RW=1 CS1=1 E=高电平
        SETB    RWPIN
        SETB    CS1PIN
        SETB    EPIN
WT1_PA: NOP
        JB      P1.7,WT1_PA
        CLR     EPIN
        CLR     CS1PIN
        RET
WAITIDLE2:
        CLR     RSPIN           ;RS=0 RW=1 CS2=1 E=高电平
        SETB    RWPIN
        SETB    CS2PIN
        SETB    EPIN
WT2_PA: NOP
        JB      P1.7,WT2_PA
        CLR     EPIN
        CLR     CS2PIN
        RET
HZKDOT:
;(d3d0H)(有)(8000)
DB  04H, 04H, 04H, 02H, 04H, 01H, 84H, 00H
DB 0e4H,0ffH, 3cH, 09H, 27H, 09H, 24H, 09H
DB  24H, 09H, 24H, 49H, 24H, 89H,0f4H, 7fH
DB  24H, 00H, 06H, 00H, 04H, 00H, 00H, 00H
;(cfdeH)(限)(8001)
DB  00H, 00H,0feH,0ffH, 02H, 08H, 22H, 10H
DB 0daH, 08H, 06H, 07H, 00H, 00H,0feH,0ffH
DB  92H, 42H, 92H, 24H, 92H, 08H, 92H, 14H
DB 0ffH, 22H, 02H, 61H, 00H, 20H, 00H, 00H
;(b9abH)(公)(8002)
DB  00H, 01H, 00H, 01H, 80H, 00H, 40H, 30H
DB  30H, 28H, 0cH, 24H, 00H, 23H,0c0H, 20H
DB  06H, 20H, 18H, 28H, 20H, 30H, 40H, 60H
DB  80H, 00H, 80H, 01H, 80H, 00H, 00H, 00H
;(cbbeH)(司)(8003)
DB  10H, 00H, 10H, 00H, 92H, 3fH, 92H, 10H
DB  92H, 10H, 92H, 10H, 92H, 10H, 92H, 10H
DB 0d2H, 3fH, 9aH, 00H, 12H, 40H, 02H, 80H
DB 0ffH, 7fH, 02H, 00H, 00H, 00H, 00H, 00H
STRING1: DB  80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH
STRING2: DB  80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH
        END


推荐阅读

史海拾趣

G-Mag Usa公司的发展小趣事

面对数字化转型的浪潮,G-Mag在2020年决定全面拥抱智能制造。公司投入巨资建设智能工厂和数字化管理平台,引入先进的自动化设备和人工智能技术优化生产流程和管理效率。通过数字化转型,G-Mag实现了生产过程的智能化、自动化和可视化监控,大大提高了生产效率和产品质量。同时,G-Mag还利用大数据和云计算技术分析市场需求和消费者行为,为产品研发和市场推广提供精准的数据支持。在数字化转型的推动下,G-Mag不仅提升了自身的竞争力,还为整个电子行业的智能化发展树立了标杆。

AINFO Inc公司的发展小趣事

为了进一步提升技术水平和市场竞争力,AINFO Inc公司积极寻求与国际知名企业的技术合作。通过与国外企业的合作,公司引进了先进的技术和管理经验,提升了自身的研发能力和管理水平。同时,公司也加快了国际化发展的步伐,拓展了海外市场,提升了品牌知名度。

DAYLIGHT公司的发展小趣事

随着公司规模的扩大和市场份额的增加,DAYLIGHT开始将目光投向国际市场。公司通过与国际知名电子企业的合作,成功将其产品打入国际市场,并在多个国家和地区建立了销售渠道。同时,DAYLIGHT还积极参与国际电子展和技术交流会议,不断提升其在国际市场上的知名度和影响力。

Advanced Optoelectronic Technology Corp公司的发展小趣事

在光电技术领域,AOTC始终保持领先地位。公司不断推出创新产品,如高效能的光电传感器、智能照明系统等,这些产品不仅提升了人们的生活品质,还推动了整个电子行业的变革。AOTC的技术创新得到了业界的广泛认可,公司逐渐成为了行业的领军企业。

Data Delay Devices公司的发展小趣事

随着公司实力的不断增强,DDD公司开始积极拓展市场。公司针对不同领域的需求,推出了多种定制化产品,满足了客户的多样化需求。同时,DDD公司还积极参与国内外展览和交流活动,加强与同行的合作与交流,提高了公司的知名度和影响力。这些市场拓展策略的实施,为DDD公司的快速发展奠定了坚实基础。

DREMEL公司的发展小趣事

随着全球化的趋势日益明显,Dremio公司开始积极拓展国际市场。他们制定了详细的国际化战略,包括在海外市场设立分支机构、与当地企业建立合作关系、参加国际展会等。这些举措不仅提高了Dremio公司在国际市场的知名度,也为其带来了更多的商业机会。通过国际化战略的实施,Dremio公司的业务规模不断扩大,品牌影响力也日益增强。

请注意,以上故事均基于虚构,旨在展示一个类似Dremio公司在电子行业中的可能发展路径和故事。如有需要,请进一步核实相关事实和数据。

问答坊 | AI 解惑

电子设计大赛题目征集

本帖最后由 paulhyde 于 2014-9-15 09:31 编辑 各位大虾能帮着想一些电子设计大赛的题目吗?主要针对单片机控制类的,不甚感激,  …

查看全部问答>

Msp430F449时钟各模块运用例程

Msp430F449各种模块运用例程,包含了:Basictimer,Timer_A,Timer_B,ADC12,时钟模块FLL+操作,…

查看全部问答>

wince下如何编译armv6的程序

使用ce6.0,平台cpu是armv6指令集的。 vs2005的工程设置中只有armv4和armv5,怎么编armv6的应用? 或者vs2008可以编armv6吗…

查看全部问答>

广州招聘 嵌入式开发人员 重分找顶!!

名称:广州市百家汇技术研发中心 地址:广州市天河区 简介:本中心是集软件系统、单片机、模型等设计和开发为一体的研发机构。公司拥有多名技术过硬的高级工程师。并且与北京航天航空大学进行学术联盟,各种新技术都在这里不断的产生和应用。公司 ...…

查看全部问答>

WinCE ping 的问题

定制了一个CE6.0的映像,从设备可以ping 主机,但是从主机不能够ping到设备, 如果换一个ce5.0,则没有问题,请问是定制时哪方面的问题?…

查看全部问答>

Operational amplifier gain stability Part 1 General system analysis

本帖最后由 dontium 于 2015-1-23 13:38 编辑  Operational amplifier gain stability Part 1 General system analysis …

查看全部问答>

有关三极管饱和区间的疑问

1、深度饱和是不是三极管介于截止区和饱和区的临界点? 2、深度饱和Uce是不是一定为0.3V?还是不同的管子有不同的值。 3、当Ube大于开启电压,Uce小于0.3V(或深度饱和电压)时,三极管处于什么样的工作状态?…

查看全部问答>

国行iPhone4S拆机——内部构造详解

一部iPhone4s国行16GB就这样牺牲了,掉海里了,主板全烧,我来发挥下它最后的价值。拆了吧!以前拆了就扔了,这次我想拆了再装回去。 工具 卸下电池螺丝,就可以把插口拔出来,电池就下来了 本人是新手,所以只能用这个方法不让零件遗失,WIFI模 ...…

查看全部问答>

【MXCHIP Open1081】哪有可用的IAR工程???

本帖最后由 dontium 于 2014-11-17 21:53 编辑 打开官方提供的IAR工程,好多文件,特别是关键文件不存在。 如上图中,只有system_smt32f2xx.c及startup_stm32f2xx.s能打开,其它的都不存在! 更可恶的是,项目中指定的一个关键文件 ---- mxch ...…

查看全部问答>

电感的区别

请问这两种电感有什么区别么?仅仅是封装不同么?分别用在什么场合…

查看全部问答>