本站淘宝网店地址
shop34518266.taobao.com
 
初学单片机
单片机C语言
C语言实践
51单片机应用
51单片机源程序
 
 
关键字:
范 围:
 
首页51单片机源程序
 
74HC595实际应用-8位数码管循环移位显示

 SDATA_595  EQU  P0.0     ;串行数据输入
         SCLK_595   EQU  P0.1     ;移位时钟脉冲
         RCK_595    EQU  P0.2     ;输出锁存器控制脉冲

         LS138_G1   EQU  P0.3     ;使能端
         LS138_A    EQU  P0.4     ;
         LS138_B    EQU  P0.5     ;
         LS138_C    EQU  P0.6     ;

  ;=====================================================

               ORG  0000H
               LJMP  MAIN
               ORG  0030H

  ;=====================================================
  MAIN:
                MOV  SP,#60H
                MOV  P0,#00H
                MOV  P1,#0FFH
                MOV  P2,#0FFH
                MOV  P3,#0FFH

                MOV  R0,#30H              ;初始化寄存器
                MOV  R1,#00H
                MOV  R2,#00H

                MOV  30H,#01H             ;显示数据
               MOV  31H,#02H
                MOV  32H,#03H
                MOV  33H,#04H
                MOV  34H,#05H
                MOV  35H,#06H
                MOV  36H,#07H
                MOV  37H,#08H

                CLR  LS138_G1             ;禁止74LS138使能
               MOV  R5,#7FH
MAIN1:
                LCALL  DISPLAY
                DJNZ  R5,MAIN1
                MOV  A,30H                ;数据交换
               XCH  A,31H
                XCH  A,32H
                XCH  A,33H
                XCH  A,34H
                XCH  A,35H
                XCH  A,36H
                XCH  A,37H
                XCH  A,30H
                MOV  R5,#7FH
                JMP  MAIN1               
  ;=============================================================

  ;显示子程序

  ;=============================================================               
DISPLAY:
                MOV  A,@R0                     ;查表取显示数据
                MOV  DPTR,#TAB_NU
                MOVC  A,@A+DPTR
                LCALL  WR_595                  ;移位寄存器接收数据
                CLR  LS138_G1                  ;关闭显示
                LCALL  OUT_595                 ;将数据送到输出锁存器
                NOP
                NOP
                MOV  A,P0                      ;读P0状态
                ANL  A,#0FH                    ;维持低4位状态
                ADD  A,R2                      ;确定显示位
                MOV  P0,A                      ;送显示位
                SETB  LS138_G1                 ;开显示
                INC  R0                        ;取下一位显示数据
                INC  R1                        ;
                MOV  A,R1                      ;修改显示位
                SWAP  A                        ;高、低四位数据交换
                MOV  R2,A                      ;确定下一个显示位
                LCALL  DELAY                   ;延时
                CJNE  R1,#09H,DISPLAY          ;8个数码管是否显示完毕?             

                MOV  R0,#30H                   ;重新初始化寄存器
                MOV  R1,#00H
                MOV  R2,#00H
                RET

  ;=============================================================

  ;输出锁存器输出数据子程序

  ;=============================================================
OUT_595:
                CLR  RCK_595
                NOP
                NOP
                SETB RCK_595        ;上升沿将数据送到输出锁存器
                NOP
                NOP
                NOP
                CLR  RCK_595
                RET
  ;=============================================================

  ;移位寄存器接收数据子程序

  ;=============================================================
WR_595:
                MOV R4,#08H
WR_LOOP:
                RLC A
                MOV SDATA_595,C
                SETB SCLK_595         ;上升沿发生移位
                NOP
                NOP
                CLR SCLK_595
                DJNZ R4,WR_LOOP
                RET
  ;=============================================================

  ;延时子程序

  ;=============================================================
DELAY:
                MOV  R6,#02H
 DEL1:
                MOV  R7,#200
                DJNZ  R7,$
                DJNZ  R6,DEL1
                RET
  ;=============================================================

TAB_NU:
    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
    DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH

  ;=============================================================
                END

实验源理图如下:


更新时间:2007-6-1 11:21:42
 
淘宝店总店
淘宝店分店
腾讯拍拍店
锐志电子新浪博客
锐志网易博客
锐志搜狐博客
西南电子网