微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 串行LED译码/驱动器件TEC9607在PIC16C5X系列单片机中的应用

串行LED译码/驱动器件TEC9607在PIC16C5X系列单片机中的应用

时间:02-28 来源:互联网 点击:

使RA口工作在输出状态。下面以四位LED数码管显示为例描述该电路的软件设计,其显示驱动程序如下:TRBUF EQV OAH ;数据暂存器和循环次数寄存器

SI  EQU 1   ;RA1为串行数据输入端
SCP EQU 2   ;RA2为时钟端
BUFF EQU 10H  ;数据缓存
MBUF EQU 13H  ;13H,14H,15H,16H四个寄存器为显示缓存
         ;13H最低位显示段码
         ;14H次低位显示段码
         ;15H次高位显示段码
         ;16H最高位显示段码
         ;17H为任意数
DISBUF EQU OEH  ;OEH,OFH为压缩式显示数据
          ;OEH高两位显示数据
         ;OFH低两位显示数据
BIT  EQU  9 ;每字节位数(8)
FSR EQU  4  ;文件选择寄存器
RA  EQU  5   ;I/O端口A
CONVERT  MOVWF  2  ;PC=W
TABLE  RETLW   0FCH   ;“ 0
       RETLW 60H  ;“1”
       RETLW  0DAH ; “2”
      RETLW  0F2H  ;“3  
    RETLW  66H ; “4”
      RETLW  0B6H  ; “5
      RETLW  0BEH  ;“6
      RETLW  0E4H  ;“7
      RETLW  0FEH   ;“8
      RETLW  0F6H  ;“9
      RETLW  00H   ;“
      ETLW  7CH   ; “U
      RETLW  9EH  ;“E
      RETLW  00H   ;“
      RETLW  00H   ;“
      RETLW  00H   ;“
DIS  MOVLW MBUF ;将显示段码寄存器    首址(f13)送f4
       MOVWF  FSR
       MOVLW  TABLE ;把段码表起始地址     送BUFF
       MOVWF  BUFF
        MOVF 0FH,0 ;取出最低位待显数据
       ANDLW  0FH
      ADDWF BUFF,0 ;BUFF+W→W      取得段码表中的偏移地址
     CALL CONVERT ;转段码查询子程序
    MOVWF  0      ;段码值送W
    INCF    FSR    ;WF13
;以下依次完成高三位数据喽温胫档淖换
    MOVLW  TABLE
    MOVWF  BUFF
    MOVF   0FH,0
    MOVWF  TRBUF
    SWAPF   TRBUF,0
    ANDLW   0FH
    ADDWF   BUFF,0
    CALL    CONVERT
    MOVWF  0
    INCF    FSR
    MOVLW TABLE
    MOVWF BUFF
    MOVF   OEH,0
    ANDLW  0FH
    ADDWF  BUFF,0
    CALL   CONVERT
    MOVWF 0
    INCF FSR
    MOVLW TABLE
    MOVWF BUFF
    MOVF   0EH,0
    MOVWF TRBUF
    SWAPF TRBUF,0
    ANDLW 0FH
    ADDWF BUFF,0
    CALL   CONVERT
    MOVWF  0
    MOVLW  30H  ;使RA1,RA2为输出状态
    TRIS    RA
    BCF RA,  SI
    BCF    RA,  SCP
    MOVLW  MBUF
    MOVWF  FSR
    MOVLW  5      ;传送5字节数据
    MOVWF  TRBUF
  DIS1 MOVF 0,0 ;码段值W
    MOVWF  BUFF ;W嗨褪据暂存器BUFF
    INCF    FSR
    MOVLW 8
    MONWF  BIT     ;一字节有8位
  DIS2 BSF RA, CLK   ;CLK端拉成高电平 BTFSC BUFF,7
   BSF RA,SDA  ;数据暂存器D7位送data线
   BTFSS BUFF,7
   BCF RA,SDA
   RLF BUFF  ;数据暂存器左移一位
   BCF RA,CLK ;CLK端被拉成低电平,在其下降沿把data线上的数据采集进去
   DECFSZ BIT
   GOTO DIS2 ;一字节未送完,返回
   DECFSZ TRBUF
   GOTO DIS1  ;三字节未送完,返回
   BSF RA,CL  ;器件操作结束
   BSF RA,EN
   RETLW 0

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top