原创 静态显示

2008-6-9 16:33 1856 5 7 分类: MCU/ 嵌入式

点击下载


16:48:24 UTC+0800Mon Jun 9 2008点击看大图


;===========================================================================
;                     Calculator Demo of Mcs-51 Program
;                       Version 1.0, For 89C51
;                            By:XiaoYong Lin
;                         June/09/2008..
;================================= Log =====================================
;June/09/2008, Ver 1.0
;================================ Usage ====================================
;================================ Constant =================================
;================================ Hardware =================================
DisMode    Equ    0000H       ;显示端口
DisCS      Equ    2000H       ;片选端口
;=============================== Bit Segment ===============================
;          Bit    00H         ;1:
;          Bit    01H         ;1:
;          Bit    02H         ;1:
;          Bit    03H         ;1:
;          Bit    04H         ;1:
;          Bit    05H         ;1:
;          Bit    06H         ;1:
;          Bit    07H         ;1:
;=============================== Byte Segment ==============================
;*byte define start*
;00H..07H : Reg Group 0
;08H..1FH : System Stack
;20H..2FH : System Bit Units
;---------------------------------------------------------------------------
;30H..7FH
DisBuf     Equ    70h ;..75h ;显示缓冲区
;*byte define end*
;===========================================================================
           Org    0000h
           AJmp   Main
;============================= Subroutines =================================
InitDis:   Mov    DisBuf+0,#0
           Mov    DisBuf+1,#1
           Mov    DisBuf+2,#2
           Mov    DisBuf+3,#3
           Mov    DisBuf+4,#4
           Mov    DisBuf+5,#5
           Ret
;--------------------------------------------------------------------------
;显示子程序
Display:   Mov    R0,#DisBuf    ;
           Mov    R1,#00000001B ;


;将A的数据送到片选端口
DisplayLp: Mov    a,R1          ;
           Mov    dptr,#DisCS   ;
           Movx   @Dptr,a
           Rl     A             ;
           Mov    R1,A



;先用查表指令把ROM中的数给A将数据送到显示端口DisMode
           Mov    A,@r0         ;
           Inc    R0            ;
           Mov    Dptr,#DisTab  ;
           Movc   A,@A+Dptr
                                ;
           Mov    Dptr,#DisMode ;
           Movx   @Dptr,a


           ACall  Delay
           Cjne   R0,#DisBuf+6,DisPlayLp


           Ret
;---------------------------------------------------------------------------
;          Code   00h,  01h,  02h,  03h, 04h,  05h,  06h, 07h
;          Char   "0",  "1",  "2",  "3", "4",  "5",  "6", "7"
DisTab:    DB    0c0h, 0f9h, 0a4h, 0b0h, 99h,  92h,  82h, 0f8h


;          Code   08h, 09h,  0ah,  0bh,  0ch , 0dh , 0eh, 0fh
;          Char   "8", "9",  "a",  "b",  "c" , "d" , "e", "f"
           DB     80h, 90h,  88h,  83h,  0c6h, 0a1h, 86h, 8eh


;          Code   10h   11h
;          Char   " "   "H"
           DB     0FFH, 89H
;--------------------------------------------------------------------------
;--------------------------------------------------------------------------
Delay:     Mov    r6,#4    ;
Delay1:    Mov    r7,#0
           Djnz   r7,$     ;
           Djnz   r6,Delay1
           Ret
;================================= Main ====================================
Main:      ACall  InitDis   ;调用显示初始化子程序.


MainLoop:  ACall  Display   ;调用显示
           AJmp   MainLoop          

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

xucun915_925777961 2008-6-15 15:42

好东东呀

用户412065 2008-6-15 09:56

有没有c的程序啊
相关推荐阅读
用户142935 2008-06-09 21:07
按键程序
;===========================================================================;                     Ca...
用户142935 2008-04-22 18:05
Keil与Proteus安装连接操作
         刚学Keil和Proteus没什么经验         今天装了半天的Keil和Proteus以及它们的整合。我装的版本是keil c51 v7.20和Proteus6.5。下面提供...
我要评论
2
5
关闭 站长推荐上一条 /3 下一条