论坛风格切换切换到宽版
  • 2878阅读
  • 13回复

郁闷,他怎么就是不出A呢?就火呀... [复制链接]

上一主题 下一主题
离线BG7YDO
 
发帖
3654
只看楼主 倒序阅读 0楼 发表于: 2005-12-05
郁闷,他怎么就是不出a呢?救火呀...一天一夜了,还出不来
程序试网上找的,改动了一下,现在@@bbddffhhjjlln...

                rs equ p3.7
           rw equ p3.6
           e equ p3.5
            org 0000h
            ajmp display
          org 0030h
    display:
          ;command
          ;**************************************
          ;1 clear display
            ; db7 db6 db5 db4 db3 db2 db1 db0
            ; 0   0   0   0   0   0   0   1
            ;**************************************
          ;2 home
          ; db7 db6 db5 db4 db3 db2 db1 db0
            ; 0   0   0   0   0   0   1   *
            ;bd0=0 to home
          ;**************************************
          ;3 data in mode
            ; db7 db6 db5 db4 db3 db2 db1 db0
          ; 0   0   0   0   0   1   i/d   s
          ;i/d=0   ac auto dev 1 after write
          ;s=1 display move after write
          ;**************************************
          ;4 display sw
          ; db7 db6 db5 db4 db3 db2 db1 db0
            ; 0   0   0   0   1   d   c   b
          ;display sw d=1 on   d=0 off
          ;light mark c=1 on   c=0 off
          ;flashlight b=1 on   b=0 off
          ;**************************************
          ;5 light mark move
          ; db7 db6 db5 db4 db3 db2 db1 db0
          ; 0   0   0   1   s/c r/l   *   *
          ;运行时间(250khz):40us;
          ; s/c=1:画面平移一个字符?;
          ;s/c=0:光标平移一个字符位;
          ;r/l=1:右移;r/l=0:左移
          ;**************************************
          ;6 function
          ;db7 db6 db5 db4 db3 db2 db1 db0
          ; 0   0   1   dl   n   f   *   *
          ;run time(250khz):40us;
          ;功能:工作方式设置(初始化指令)。
          ;其中:dl=1,8位数据接口;dl=0,四位数据接口;
          ;n=1 16x2;n=0 16x1
          ;f=1 5*10   f=0 5*7
          ;**************************************
          ;7 cgram地址设置
          ; db7 db6 db5 db4 db3 db2 db1 db0
          ; 0   1   a5   a4   a3   a2   a1   a0
          ;运行时间(250khz):40us;
          ; 功能:设置cgram地址。a5~a0=0~3fh。
          ; *************************************
          ;8 ddram地址设置
          ; db7 db6 db5 db4 db3 db2 db1 db0
          ; 1   a6   a5   a4   a3   a2   a1   a0
          ;运行时间(250khz):40us;
          ;功能:设置ddram地址。
          ; n=0,一行显示a6~a0=0~4fh;
          ; n=1,两行显示,首行a6~a0=00h~2fh,
          ; 次行a6~a0=40h~67h。
          ; **************************************
          ;9 read bf and ac
          ; db7 db6 db5 db4 db3 db2 db1 db0
          ; bf   ac6 ac5 ac4 ac3 ac2 ac1 ac0
          ;读忙bf值和地址计数器ac值。
          ;其中:bf=1:忙;bf=0:准备好。
          ;此时,ac值意义为最近一次地址设置(cgram或ddram)
          ;rs=0
          ;****************************************
          ;10 write data
          ; db7 db6 db5 db4 db3 db2 db1 db0
          ; *   *   *   *   *   *   *   *
          ;运行时间(250khz):40us;
          ;功能:根据最近设置的地址性质,数据写入ddram或cgram内。
          ;rs=1
          ;****************************************
          ;11 read data
          ;rs   r/w   db7 db6 db5 db4 db3 db2 db1 db0
          ;1     1
          ;****************************************
         
          mov 30h,#01h
          mov 33h,#0fh;
          mov 32h,#06h;
          mov 35h,#38h;功能设置

          mov 40h,#80h ;起始地址
          mov 50h,#041h ;第一个字符

            mov p1,30h ;送指令
           acall enable1;
     
           mov p1,33h ;
           acall enable1 ;
           
           mov p1,34h ;
           acall enable1 ;
           
           mov p1,35h ;
           acall enable1 ;
           
           mov p1,40h
           acall enable1
           
     enable:                     ;送数
              mov a,50h
           mov r0,#0fh
     s_disp:
           setb rs
           clr rw
           clr e
                mov p1,a
           acall delay
              setb e
           nop
                inc a
              djnz r0,s_disp
         
           mov p1,#0c0h
           acall enable1
                mov r0,#0fh
           mov a,#20h
              loop:      
              setb rs
           clr rw
           clr e
                mov p1,a
           acall delay
              setb e
           nop
                inc a
              djnz r0,loop
           ajmp $
                             
     enable1:                 ;送指令
           clr rs
           clr rw
           clr e
           acall delay
           setb e
           ret
           
     delay:                       ;忙闲检查
           mov p1,#0ffh
           clr rs
           setb rw
           clr e
           nop
           nop
           setb e
           jb p1.7,delay
           ret
           
           end
离线xiongjunfeng
发帖
1220
只看该作者 1楼 发表于: 2005-12-05
做什么的?????????
离线BG7YDO
发帖
3654
只看该作者 2楼 发表于: 2005-12-05
练习,lcd1602送数
离线BG7YDO
发帖
3654
只看该作者 3楼 发表于: 2005-12-05
本来是想让他显示:
abcdefghijklmn
0123456789:,<=>
的,就是不行
离线wycx
发帖
1497
只看该作者 4楼 发表于: 2005-12-05
用户被禁言,该主题自动屏蔽!
离线BG7YDO
发帖
3654
只看该作者 5楼 发表于: 2005-12-05
谢谢!
我再试一下..
离线wycx
发帖
1497
只看该作者 6楼 发表于: 2005-12-05
用户被禁言,该主题自动屏蔽!
离线BG7YDO
发帖
3654
只看该作者 7楼 发表于: 2005-12-05
你好,能说的详细一点,还是不行。。。
离线BG7YDO
发帖
3654
只看该作者 8楼 发表于: 2005-12-05
是不是一定要按这个步骤来:
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线wycx
发帖
1497
只看该作者 9楼 发表于: 2005-12-05
用户被禁言,该主题自动屏蔽!
离线wycx
发帖
1497
只看该作者 10楼 发表于: 2005-12-05
用户被禁言,该主题自动屏蔽!
离线BG7YDO
发帖
3654
只看该作者 11楼 发表于: 2005-12-05
非常感谢!!                                 !
离线BG7YDO
发帖
3654
只看该作者 12楼 发表于: 2005-12-05
现在可以了,有一事不明:db7 equ p1.7
db6 equ p1.6
db5 equ p1.5
db4 equ p1.4
rs equ p3.7
rw equ p3.6
e equ p3.5
start:



;==================
wrtc: ;送指令
lcall readbusy
clr rs
clr rw
setb e
mov c,acc.7
mov db7,c
mov c,acc.6
mov db6,c
mov c,acc.5
mov db5,c
mov c,acc.4
mov db4,c
;mov p1,a
;nop
clr e
setb e
;swap a
;mov p1,a
mov c,acc.3
mov db7,c
mov c,acc.2
mov db6,c
mov c,acc.1
mov db5,c
mov c,acc.0
mov db4,c
nop
clr e
ret
;===================
wrts: ;送数据
lcall readbusy
setb rs
clr rw

setb e
mov c,acc.7
mov db7,c
mov c,acc.6
mov db6,c
mov c,acc.5
mov db5,c
mov c,acc.4
mov db4,c
clr e
setb e
mov c,acc.3
mov db7,c
mov c,acc.2
mov db6,c
mov c,acc.1
mov db5,c
mov c,acc.0
mov db4,c
clr e
ret
end
************************************


mov c,acc.7
mov db7,c
mov c,acc.6
mov db6,c
mov c,acc.5
mov db5,c
mov c,acc.4
mov db4,c
clr e
setb e
mov c,acc.3
mov db7,c
mov c,acc.2
mov db6,c
mov c,acc.1
mov db5,c
mov c,acc.0
mov db4,c


mov p1,a ;(p1低四位未用,送出的也是高四位)
clr e
setb e
swap a
mov p1,a   ;(送低四位)
已经试过后面的方法不行,请指点
离线wycx
发帖
1497
只看该作者 13楼 发表于: 2005-12-05
用户被禁言,该主题自动屏蔽!