LS164串口显示


ORG    0000H
         LJMP  MAIN
         ORG   0100H
MAIN:    MOV   30H,#00H     ;给显示缓冲区赋初值
         MOV   31H,#00H
L0:      SETB  P1.0         ;164清零端‘CLR’置1(低电平有效)
         INC   30H      
         MOV   A,30H
         CJNE  A,#0AH,AA
         MOV   30H,#00H
         INC   31H
         MOV   A,31H
         CJNE  A,#0AH,AA
         MOV   30H,#00H
         MOV   31H,#00H      ;使31H,30H单元内容在00~99循环变化
AA:      MOV   SCON,#00H     ;设置串行口数据由RXD输入或输出,TXD用于输出移位时钟
         MOV   R7,#02H       ;设置要发送的字节个数
         MOV   R0,#30H       ;设置地址指针
         MOV   DPTR,#TAB
LOOP:    MOV   A,@R0
         MOVC  A,@A+DPTR     ;取出字型码
         MOV   SBUF,A        ;发送
WAIT:    JNB   TI,WAIT       ;等待一帧发关完毕
         CLR   TI
         INC   R0            ;指向下一个字形码
         DJNZ  R7,LOOP
         MOV R2,#30H         ;调用延时子程序
    LCALL DELYA
         CLR   P1.0          ;164清零端'CLR'置0(低电平有效)
         SJMP  L0
TAB:    DB 3FH,06H,5BH,04FH,66H,6DH,7DH,07H,7FH,6FH        ;七段LED段选码(共阴极)
    DB 77H,7CH,39H,5EH,86H,8EH,0FFH,0F1H,0C6H,092H,0BFH
DELYA: PUSH 02H                ;延时子程序
DELYB: PUSH 02H
DELYC: PUSH 02H
DELYD: DJNZ R2,DELYD
  POP 02H
  DJNZ R2,DELYC
  POP 02H
  DJNZ R2,DELYB
  POP 02H
  DJNZ R2,DELYA
  RET
       END

HC164显示.rar
(2008-09-22 10:27:18, Size: 17.5 KB, Downloads: 6)


我也来说两句 查看全部回复

最新回复

  • flyer05104 (2008-9-23 22:50:35)

    真的不错
    我非常想下载,只可惜囊中羞涩,我会努力的,加油
  • wfbaaa (2008-9-24 08:49:17)

    THANKS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!