登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

关于T6963清屏程序的问题请教

作者:northerns 栏目:单片机
关于T6963清屏程序的问题请教
显屏是240×128,这是清屏程序:
CLEAR:       MOV     R2,#00H         ;CLEAR DISPLAY RAM
             MOV     R3,#00H
             MOV     R4,#24H         ;SET THE ADD POINT.
             CALL    PR1
             MOV     R4,#0B0H
             CALL    PR12
             MOV     R6,#0A4H
CLEAR1:      MOV     R5,#1EH
CLEAR2:      CALL    PR03
             MOV     A,#00H
             CALL    PR14
             DJNZ    R5,CLEAR2
             DJNZ    R6,CLEAR1
             MOV     R4,#0B2H
             CALL    PR12
             RET
这里的“MOV     R6,#0A4H”是为什么呢?为什么是A4H(164)而不是80H(128)呢


2楼: >>参与讨论
northerns
怎么没有回应呢?问题太简单吗??
 
3楼: >>参与讨论
szxxx
清屏就是清RAM
找到RAM的区就可以理解

4楼: >>参与讨论
northerns
谢谢szxxx
还想再问一下:清屏就是清RAM,那么清理的开始地址必须是从0000H开始吗?还是它自动指向的就是0000H的呢?我可不可以不从0000H开始呢?还有在上面提到的“MOV     R6,#0A4H”的A4H是怎么来的呢?

刚接触显屏,可能问的问题有点烦大家和有点简单,可我还是期盼大家给点帮助啊!!!!


另附文本、图形设置:
             ;TEXT HOME ADDRESS SET
             MOV     R2,#00H
             MOV     R3,#00H
             MOV     R4,#40H
             CALL    PR1
             ;TEXT AREA SET
             MOV     R2,#1EH         ;TEXT AREA 30 COLUMNS
             MOV     R3,#00H
             MOV     R4,#41H
             CALL    PR1
             ;GRAPHIC HOME ADDRESS SET
             MOV     R2,#00H
             MOV     R3,#04H
             MOV     R4,#42H
             CALL    PR1
             ;GRAPHIC AREA SET
             MOV     R2,#1EH         ;GRAPHIC AREA 30 COLUMNS
             MOV     R3,#00H
             MOV     R4,#43H
             CALL    PR1
             MOV     R4,#80H         ;"OR" MODE
             CALL    PR12
             MOV     R4,#0A3H        ;CURSOR PATTERN SET 3 LINES
             CALL    PR12

5楼: >>参与讨论
northerns
明白A4H了,它是文本区和图形区的和
清屏也不过是把文本区或者图形区写进00H,和写图形的区别是一个全0一个有值,都是写。刚才试了一下,可是为什么清屏就不能从指定的地址开始呢?

下面是清屏和写图形的程序:

             ;清除液晶显示器.
;**********************************************************************************
CLEAR:       MOV     R2,#00H         ;CLEAR DISPLAY RAM
             MOV     R3,#00H
             MOV     R4,#24H         ;SET THE ADD POINT.
             CALL    PR1
             MOV     R4,#0B0H
             CALL    PR12
             MOV     R6,#0A4H
CLEAR1:      MOV     R5,#1EH
CLEAR2:      CALL    PR03
             MOV     A,#00H
             CALL    PR14
             DJNZ    R5,CLEAR2
             DJNZ    R6,CLEAR1
             MOV     R4,#0B2H
             CALL    PR12
             RET
             ;显示一屏图画程序(240X128点阵),
             ;数据来自程序存储器,
;**********************************************************************************
PICTURE_E:   MOV     DPTR,#PICTURE_EDZ  ;TEST 1
             JMP     TEST0             
PICTURE0:    MOV     DPTR,#PICTURE0DZ   ;TEST 1
TEST0:       CALL    CLEAR
             MOV     R2,#00H
             MOV     R3,#04H
             MOV     R4,#24H
             CALL    PR1
             MOV     R4,#0B0H
             CALL    PR12            ;DATA UTO WRITE SET.
             MOV     R1,#10H         ;16X8HANGX240LIE.
TEST1:       MOV     R2,#08H         ;8HANGX240LIE.
TEST2:       MOV     R3,#1EH         ;16X30=240LIE.
TEST3:       CALL    PR03
             MOV     A,#00H
             MOVC    A,@A+DPTR
             JNB     FXXS,TEST5
             CPL     A
TEST5:       INC     DPTR
             CALL    PR14
             DJNZ    R3,TEST3
             DJNZ    R2,TEST2
             DJNZ    R1,TEST1
TEST4:       RET
DQXTCS:      MOV     R7,#40D
TEST55:      CALL    DALY
             CALL    READ_KEY
             MOV     A,KEY
             CJNE    A,#04H,TEST44
             DJNZ    R7,TEST55
             MOV     R6,#42H
             MOV     R5,#0AAH
             CALL    SAVE
             CALL    DALY
             CALL    DALY
             CALL    ALARM
             CALL    LDALY
             CALL    ALARM
             CALL    LDALY
             CALL    ALARM
TEST44:      MOV     R6,#42H
             CALL    READD
             CALL    DALY
             MOV     A,R5
             CJNE    A,#0AAH,TEST6
    &nb
6楼: >>参与讨论
gyt
祝贺
自己研究出来的结果是最好的。你的水平会提高得很快。

7楼: >>参与讨论
northerns
还得再请教
清屏也不过是把文本区或者图形区写进00H,和写图形的区别是一个全0一个有值,都是写。刚才试了一下,可是为什么清屏就不能从指定的地址开始呢?
各位给点意见啊


8楼: >>参与讨论
northerns
找不到原因不罢休啊
 
9楼: >>参与讨论
1dqmoon
这个倒不会吧

注意几点,

如果你的文本区和图形重叠或不重叠,清屏的时候写的地址可能不一样,下面的是一个c代码的程序,你看一下就知道了

/********************************************************************************
函数名: Void ClearScreen(unsigned int ram)
函数功能: 清除整个屏幕
          ram : 要清零的单元数
********************************************************************************/
void ClearScreen(uint ram)
{
    unsigned int i;
                                                           // 清显示 RAM 区 0000h--2000h (8k)
    WriteCmd3(0x00,0x00,AddrSet);                          // 设置指针地址0000H
    WriteCmd1(0xb0);                                       // 设置自动写状态
    for(i=0x00;i<ram;i++) WriteData(0x00);                 // data=0;
    WriteCmd1(0xb2);                                       // 自动写结束

}

WriteCmd3(0x00,0x00,AddrSet);                          // 设置指针地址0000H
这一条,就是先设置指定的地址,然后开始清  (0地址是个特殊的情况哦)
 

10楼: >>参与讨论
northerns
我找到问题所在了,可是还有些困惑!!!
先感谢1dqmoon,再问1dqmoon个你的程序里的问题: WriteCmd3(0x00,0x00,AddrSet);AddrSet是设置什么的呀?(别的都明白了)
然后:::

我找到问题所在了,可是还有些困惑!!!
先看下面

下面是清屏和写图形的程序:

             ;清除液晶显示器.
;**********************************************************************************
CLEAR:       MOV     R2,#00H         ;CLEAR DISPLAY RAM
             MOV     R3,#00H
             MOV     R4,#24H         ;SET THE ADD POINT.
             CALL    PR1
             MOV     R4,#0B0H
             CALL    PR12
             MOV     R6,#0A4H
CLEAR1:      MOV     R5,#1EH
CLEAR2:      CALL    PR03
             MOV     A,#00H
             CALL    PR14
             DJNZ    R5,CLEAR2
             DJNZ    R6,CLEAR1
             MOV     R4,#0B2H
             CALL    PR12
             RET
             ;显示一屏图画程序(240X128点阵),
             ;数据来自程序存储器,
;**********************************************************************************
PICTURE_E:   MOV     DPTR,#PICTURE_EDZ  ;TEST 1
             JMP     TEST0             
PICTURE0:    MOV     DPTR,#PICTURE0DZ   ;TEST 1
TEST0:       CALL    CLEAR
             MOV     R2,#00H
             MOV     R3,#04H
             MOV     R4,#24H
             CALL    PR1
             MOV     R4,#0B0H
             CALL    PR12            ;DATA UTO WRITE SET.
             MOV     R1,#10H         ;16X8HANGX240LIE.
TEST1:       MOV     R2,#08H         ;8HANGX240LIE.
TEST2:       MOV     R3,#1EH         ;16X30=240LIE.
TEST3:       CALL    PR03
             MOV     A,#00H
             MOVC    A,@A+DPTR
             JNB     FXXS,TEST5
             CPL     A
TEST5:       INC     DPTR
             CALL    PR14
             DJNZ    R3,TEST3
             DJNZ    R2,TEST2
             DJNZ    R1,TEST1
TEST4:       RET
……
清屏和刷屏程序有一点区别,就是清屏里有:
             MOV     R4,#0B2H
             CALL    PR12
而刷屏里在写完数据后没有设置MOV     R4,#0B2H,
在刷屏里添加进去后就OK了!!

这是为什么呢,如果没有MOV     R4,#0B2H会造成什么后果呢,原因是什么呢?

11楼: >>参与讨论
northerns
即将迎来光明了,可还得智者点拨一下啊
TO:1dqmoon,
  不好意思还有个问题:
"0地址是个特殊的情况哦"
  为什么特殊啊??

参与讨论
昵称:
讨论内容:
 
 
相关帖子
USB130有没有人用过?会不会丢失数据呢?
我的单片机工作
做了一个超级PIC实验板玩,各们朋友看看行不?
74ls574
有没有人用到430的串口升级程序啊?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号