⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.asm

📁 01单片机网站51单片机开发板全部配套程序
💻 ASM
字号:
;程序名:  MCS51实验板配套程序-显示部分
;电路介绍:显示由一片74164驱动4位共阴数码管
;          DsDat-p1.4;DsClk-p1.5;Gw-p1.0;Sw-p1.1;Bw-p1.2;Qw-p1.3
;www.01mcu.net www.01mcu.com 2003/4/18编写
;********************************************************************
xsdat bit p1.4    ;定义驱动74164的数据脚为p1.4
xsclk bit p1.5    ;74164的时钟
gw    bit p1.0    ;个位显示控制脚
sw    bit p1.1    ;十位
bw    bit p1.2    ;百位
qw    bit p1.3    ;千位
sjgw  equ 30h     ;显示数据存储器
sjsw  equ 31h
sjbw  equ 32h
sjqw  equ 33h
;--------------------------------
          mov sp,#40h
          mov p1,#0fh
          mov p0,#55h
main :    ;显示1234这个数
          mov sjgw,#4   ;个位显示4
          mov sjsw,#3   ;十位显示3
          mov sjbw,#2   ;百位显示2
          mov sjqw,#1   ;千位显示1
          
abc:      lcall display  ;调用显示子程序
          ljmp abc       ;循环显示

;************************************************************************
;74164显示程序,使用RS1=1,RS0=0的1区
;---------------------------------------------------------
display:  PUSH ACC             ;保存ACC
          push psw
          clr rs1
          setb rs0             ;使用第一区工作寄存器 
          mov dptr,#xstab    
          mov a,sjgw           ;取得数据
          movc a,@a+dptr       ;提取字模
          acall dsout          ;调用送出子程序
         clr gw
          acall ds1ms          ;调用显示1ms延时程序
         setb gw
          mov a,sjsw
          movc a,@a+dptr        ;提取字模
          acall dsout          ;送出
         clr sw
          acall ds1ms          ;显示1ms  
         setb sw        
          mov a,sjbw
          movc a,@a+dptr        ;提取字模
          acall dsout          ;送出
         clr bw
          acall ds1ms          ;显示1ms 
         setb bw 
          mov a,sjqw
          movc a,@a+dptr        ;提取字模
          acall dsout          ;送出
         clr qw
          acall ds1ms          ;显示1ms
         setb qw
          pop psw
          POP ACC              ;出栈
          ret                  ;返回调用
  ;---送出循环----------
dsout:    
          MOV R0,#8            ;传送一个字节8位
dSLOOP:   RLC A                ;左移
          MOV xsdat,C          ;送数据到数据口
          SETB xsclk           ;送一时钟
          CLR xsclk
          DJNZ R0,dSLOOP
          RET         
   ;---显示延时---------- 
ds1ms:    mov r1,#10
ds1lo:    mov r2,#100
          djnz r2,$
          djnz r1,ds1lo
          ret                  ;延时返回
;************************************************************************
;显示字表(共阴)
xstab:    DB  3FH,06H,5BH,4FH    ;"0","1","2","3"
          DB  66H,6DH,7DH,07H    ;"4","5","6","7"
          DB  7FH,6FH,77H,7cH    ;"8","9","A","B" 
          DB  39H,5eh,79h,71h    ;"C","D","E","F"

end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -