标题: 请问大家这个LCD1602显示字符B的程序的定时器中断的作用是什么? [打印本页]

作者: ddd    时间: 2008-10-15 23:50
标题: 请问大家这个LCD1602显示字符B的程序的定时器中断的作用是什么?
RS BIT P3.2
RW BIT P3.1
E  BIT P3.0
DB0_DB7 DATA P2
;********程序开始********
ORG 00H
AJMP START
ORG 000BH
AJMP INSE
ORG 50H
;********主程序函数**********
START:MOV TMOD,#0
      MOV TL0,#0
      MOV TH0,#0
      SETB EA
      SETB ET0
      SETB TR0
      MOV  R5,#50
      MOV  SP,#60H
      ACALL INIT
      MOV  A,#0C3H    ;;;写入指令
      ACALL C51                  ;;;
      MOV  A,#42H     ;;;写入数据
      ACALL C51DDR               ;;;
LOOP: AJMP LOOP
;*********中断服务程序**********
INSE: MOV TL0,#0
      MOV TH0,#0
      DJNZ R5,NO
      MOV R5,#50
NO:RETI
;*********LCD初始设置程序********
INIT: MOV A,#38H
      LCALL C51
      MOV A,#0EH
      LCALL C51
      MOV A,#06H
      LCALL C51
      RET
;*********检查忙碌子程序*********
DDW: PUSH ACC
DDW1:CLR  RS
     SETB RW
     CLR  E
     SETB E
     MOV  A,DB0_DB7
     CLR  E
     JB   ACC.7,DDW1
     POP  ACC
     ACALL DELAY
     RET
;********写入指令到LCD寄存器子程序****
C51:ACALL DDW
    CLR   E
    CLR   RS
    CLR   RW
    SETB  E
    MOV   DB0_DB7,ACC
    CLR   E
    RET
;*******写入数据到LCD寄存器子程序*****
C51DDR:ACALL DDW
       CLR  E
       SETB RS
       CLR  RW
       SETB E
       MOV  DB0_DB7,ACC
       CLR  E
       RET
;*********延时子程序*********
DELAY:MOV R6,#5
D1:   MOV R7,#248
      DJNZ R7,$
      DJNZ R6,D1
      RET
      END
 

作者: admin    时间: 2008-10-15 23:51
你想写成什么样的程序,
 你的程序是:
     初始话定时器   ->
     初始话        r5,和堆栈地址,
掉用 初始话lcd,
      { 给P2输出38h,0eh,06h,
        (方法是:先P3.2=0;片选
                   P3.1=1;可以写了
                   P3.0=0;P3.1=1;
                 读口P2,判断P2.7为0嘛,否则就等待为0(说明不忙了);
                  可以写了将上面的一个复出,
                 其他的赋值方法雷同;}
  初始话完了,
    同样给先写指令C3H  后写数据 42H 将你的B字符显示。
看来看去也没看出中断的作用,
但是如果没有猜错的话你的中断应该是..看中断的时间了。





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