标题: 这程序什么意思啊 [打印本页]

作者: 信望哈哈    时间: 2015-4-16 12:09
标题: 这程序什么意思啊
RS  BIT P2.0     //定义接口         
RW  BIT P2.1            
E   BIT P2.2            
ORG 0000H
SJMP START
ORG  0030H
START:
LCALL LCDINIT
MAIN:
        MOV A,#80H      
        LCALL BUSY
        LCALL WRTC
   
        MOV  R2,#04H
        MOV  DPTR,#TAB1
        LCALL DELAY
        LCALL WRTD
  
        MOV A,#0C0H     
        LCALL BUSY
        LCALL WRTC
MOV  R2,#04H
        MOV  DPTR,#TAB2
        LCALL DELAY
        LCALL WRTD
LCALL DELAY1
LCALL DELAY1
MOV A,#01H     
        LCALL BUSY
        LCALL WRTC
MOV A,#80H      
        LCALL BUSY
        LCALL WRTC
   
        MOV  R2,#0FH
        MOV  DPTR,#TAB4
        LCALL DELAY
        LCALL WRTD
LCALL DELAY1
LCALL DELAY1
    MOV A,#01H      
        LCALL BUSY
        LCALL WRTC
MOV A,#80H      
        LCALL BUSY
        LCALL WRTC
   
        MOV  R2,#0FH
        MOV  DPTR,#TAB5
        LCALL DELAY
        LCALL WRTD
LCALL DELAY1
LCALL DELAY1
    MOV A,#01H      
        LCALL BUSY
        LCALL WRTC
   
   LJMP MAIN  
LCDINIT:
        LCALL  DELAY     
        LCALL  DELAY   
        LCALL  DELAY   
        MOV  A,#38H      
        LCALL WRTC
        LCALL DELAY      
        
        MOV  A,#38H
        LCALL WRTC
        LCALL DELAY      
        MOV  A,#38H
        LCALL WRTC
        LCALL DELAY      
        MOV  A,#38H
        LCALL BUSY
        LCALL WRTC
        MOV  A,#08H
        LCALL BUSY
        LCALL WRTC
        MOV A,#01H     
        LCALL BUSY
        LCALL WRTC
        MOV  A,#06H   
        LCALL BUSY
        LCALL WRTC
        MOV A,#0CH     
        LCALL BUSY
        LCALL WRTC
      
MOV    A,#40H
LCALL BUSY
        LCALL   WRTC
      MOV   R2,#40H
        MOV   DPTR,#TAB3
LCALL BUSY
LCALL WRTD
        RET
WRTC:
      CLR RS
      CLR RW
      CLR E
      MOV P0,A
          LCALL DELAY ;延时5ms
          SETB E
          LCALL DELAY ;延时5ms
      CLR E
      RET
WRTD:    MOV R1,#00H
AGAIN:   MOV A,R1
         MOVC A,@A+DPTR
         SETB RS
         CLR  RW
         CLR  E
         MOV  P0,A
         LCALL DELAY
         SETB E
         LCALL DELAY
         CLR E
         INC  R1
         MOV  A,R1
         MOV  B,R2
         CJNE A,B,AGAIN
         RET
BUSY:   
        PUSH ACC           
        CLR  RS
        SETB RW
TT0:    SETB E
        MOV A,P0
        CLR E
        ANL A,#80H
        JNZ TT0
        POP ACC
        RET
TAB1:  
          DB 00H,01H,02H,03H
TAB2:
          DB 04H,05H,06H,07H
TAB3:   
         DB 03H,07H,0fH,1FH,1FH,1FH,1FH,1FH
         DB 18H,1EH,1FH,1FH,1FH,1FH,1FH,1FH
         DB 07H,1FH,1FH,1FH,1FH,1FH,1FH,1FH
         DB 10H,18H,1cH,1EH,1EH,1EH,1EH,1EH
         DB 0FH,07H,03H,01H,00H,00H,00H,00H
         DB 1fH,1FH,1FH,1FH,1FH,0FH,07H,01H
         DB 1fH,1FH,1FH,1FH,1FH,1CH,18H,00H
         DB 1CH,18H,10H,00H,00H,00H,00H,00H
TAB4:    DB " Electrical 516 "
TAB5:         DB " CS UNIVERSITY "
       
DELAY:  MOV R6,#10
D1:     MOV R7,#250
        DJNZ R7,$
        DJNZ R6,D1
        RET
DELAY1:   
    MOV R3,#30H
DL1:
    MOV R4,#26H
DL0:
    MOV R5,#82H
    DJNZ R5,$
    DJNZ R4,DL0
    DJNZ R3,DL1
    RET

作者: mybigapple    时间: 2015-4-16 21:53
汇编语言写的程序。
RS  BIT P2.0     //定义接口         
RW  BIT P2.1            
E   BIT P2.2  
这几行代码是定义LCD数据命令,读写,使能端。
汇编语言的程序知道得少,不能乱说。懂得大侠来。      
作者: 8055    时间: 2015-4-17 07:51
我也不懂,只看出是一个特殊的LCD初始化,没去了解发那些指令是什么意思,然后显示轮流显示4个表格的内容。没有特殊功能,仅仅是一个练习程序。
作者: eclidtf    时间: 2015-4-18 09:59
类似于LCD16**系列的控制程序
,汇编语言

作者: wangkuli    时间: 2015-4-18 11:46
汇编语言不会
作者: 不留余力    时间: 2015-4-19 21:59
没接触汇编语言
作者: liuzhaoxin1020    时间: 2017-3-6 12:47
LCD初始化
作者: davg1    时间: 2017-3-6 22:32
很久不用汇编语言了。
作者: 1125793620    时间: 2017-3-7 12:41
汇编语言。。不会,现在一般都C语言
作者: 伯德的巢穴    时间: 2017-3-7 16:25
试试反编译再读读C?
作者: 黃昭旨    时间: 2017-3-7 16:55
沒有一些些註解我也看不懂你這在寫什麼,麻煩給註解
作者: echo110    时间: 2017-3-7 19:54
汇编,太难了,用c吧还是
作者: yangfu1982    时间: 2017-3-7 20:52
定义各种字节,没想到汇编语言这么有用,想当年我学的通透,如今都忘 了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1