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

📄 up-move.asm

📁 基于51的DS18B20_1Wire温度控制等C,ASM源程序
💻 ASM
字号:
;********************************************************************
;*                                                                  *
;* ME500单片机开发系统演示程序 - 向上滚动显示伟纳电子               *
;*                                                                  *
;* 16×16LED点阵显示                                                 
;*                                                                  *
;* 版本: V1.0 (2006/11/20)                                         *
;* 作者: gguoqing (Email: gguoqing@willar.com)                     *
;* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界)  *
;* 邮箱: support@willar.com                                        *
;*                                                                  *
;*【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved  *
;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!        *
;*                                                                  *
;********************************************************************

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

         G_74138    EQU  P2.4   ;显示允许控制信号端口
         
         ORG  0000H
         LJMP  MAIN
         ORG  000BH
         LJMP  INTT0
         ORG  0030H

;****************************************************************

MAIN:
         MOV  20H,#00H
         MOV  A,#0FFH
         MOV  P1,A
         MOV  P2,A
         MOV  P3,A
         MOV  P0,A

         CLR  RCK_595
         MOV  TMOD,#01H
         MOV  TH0,#0FCH
         MOV  TL0,#18H
         MOV  IE,#82H
         MOV  SP,#70H
MAIN1:
         LCALL  DIS1
         MOV  DPTR,#TAB1
         LCALL  MOVDISP
         INC  DPH
         LCALL  MOVDISP
         AJMP  MAIN1
;----------------------------------------------------------
;单字显示子程序
;----------------------------------------------------------
DIS1:
         MOV  R3,#5AH       ;静止显示时间控制
DIS11:
         MOV  R2,#00H       ;一帧扫描初始值(行地址从00-0FH)
         MOV  DPTR,#TAB     ;取表首址
         MOV  R1,#00H       ;查表偏址(显示第一个字)
         SETB  TR0          ;开扫描(每次一帧)
WAIT11:
         JBC  01H,DIS111    ;为1,扫描一帧结束
         AJMP  WAIT11
DIS111:
         DJNZ  R3,DIS11
         RET
;---------------------------------------------------------
;多字滚动显示子程序
;每次8个字,入口时定义好DPTR值
;---------------------------------------------------------
MOVDISP:
         MOV  B,#00H        ;向上移动显示,查表偏址暂存(从00开始)
DISLOOP:
         MOV  R3,#0AH       ;移动速度
DISMOV:
         MOV  R2,#00H       ;第0行开始
         MOV  R1,B
         SETB  TR0          ;开扫描(每次一帧)
WAITMOV:
         JBC  01H,DISMOV1   ;标志为1扫描一帧结束
         AJMP  WAITMOV
DISMOV1:
         DJNZ  R3,DISMOV    ;一帧重复显示(控制移动速度)
         INC  B             ;显示字的下一行(每行2字节)
         INC  B
         MOV  A,R1          ;R1为0,8个字显示完。
         JZ  MOVOUT
         AJMP  DISLOOP
MOVOUT:
         RET                ;移动显示结束
;---------------------------------------------------------
;T0中断扫描子程序
;---------------------------------------------------------
INTT0:
         PUSH  ACC
         MOV  TH0,#0FCH
         MOV  TL0,#18H
         JBC  00H,GOEND
         INC  R1               ;取行右边字节偏址
         MOV  A,R1
         MOVC  A,@A+DPTR
         LCALL  WR_595

         DEC  R1               ;取行左边字节偏址
         MOV  A,R1
         MOVC  A,@A+DPTR
         LCALL  WR_595

         SETB  G_74138          ;关行显示,准备刷新
         NOP
         NOP
         SETB  RCK_595          ;产生上升沿,数据打入输出端
         NOP
         NOP
         CLR  RCK_595           ;恢复低电平

         MOV  A,R2              ;修改显示行地址
         MOV  P2,A              ;修改完毕
         CLR  G_74138           ;开行显示
         INC  R2                ;下一行扫描地址值
         INC  R1
         INC  R1                ;下一行数据地址
         MOV  A,R2
         ANL  A,#0FH
         JNZ  GO2
         SETB  00H              ;R2为10H,现为末行扫描,置标记
GO2:
         POP  ACC
         RETI
GOEND:
         CLR  TR0              ;一帧扫描完,关扫描
         SETB  01H             ;一帧扫描完,置结束标记
         POP  ACC
         RETI

;--------------------------------------------------------------
;移位寄存器接收数据子程序
;--------------------------------------------------------------
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
;-----------------------------------------------------------------
TAB:
DB  0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB  0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

TAB1:
;欢
DB 0ffh,07fh,0ffh,07fh,03h,07fh,0fbh,03h,0bah,0fbh,0b9h,0b7h,0d7h,0bfh,0d7h,0bfh
DB 0efh,0bfh,0d7h,0bfh,0dbh,05fh,0bbh,05fh,07eh,0efh,0feh,0f7h,0fdh,0f1h,0f3h,0fbh
;迎
DB 0ffh,0ffh,0beh,07bh,0d9h,081h,0ebh,0bbh,0fbh,0bbh,0fbh,0bbh,0bh,0bbh,0ebh,03bh
DB 0eah,0bbh,0e9h,0abh,0ebh,0b7h,0efh,0bfh,0efh,0bfh,0d7h,0b9h,0b8h,03h,0ffh,0ffh
;使
DB 0efh,0bfh,0efh,0bbh,0e0h,01h,0dfh,0bfh,0d8h,03h,09bh,0bbh,05bh,0bbh,0dbh,0bbh
DB 0d8h,03h,0dbh,0bbh,0ddh,0bfh,0deh,07fh,0dfh,03fh,0deh,0cfh,0d9h,0f1h,0d7h,0fbh
;用
DB 0ffh,0f7h,0c0h,03h,0deh,0f7h,0deh,0f7h,0deh,0f7h,0c0h,07h,0deh,0f7h,0deh,0f7h
DB 0deh,0f7h,0c0h,07h,0deh,0f7h,0deh,0f7h,0deh,0f7h,0beh,0f7h,0beh,0d7h,07fh,0efh

;伟
DB 0F7H,0BFH,0F7H,0BFH,0F7H,0BBH,0E8H,01H,0EFH,0BFH,0CFH,0B7H,0A8H,03H,6FH,0BFH
DB 0EFH,0BBH,0E0H,01H,0EFH,0BBH,0EFH,0BBH,0EFH,0ABH,0EFH,0B7H,0EFH,0BFH,0EFH,0BFH
;纳
DB 0EFH,0BFH,0EFH,0BFH,0DFH,0BBH,0DCH,01H,0B5H,0BBH,05H,0BBH,0EDH,0BBH,0DDH,0BBH
DB 0BDH,5BH,05H,6BH,0FCH,0EBH,0FDH,0FBH,0E5H,0FBH,1DH,0FBH,0BDH,0EBH,0FDH,0F7H
;电
DB 0FDH,0FFH,0FDH,0FFH,0FDH,0EFH,80H,07H,0BDH,0EFH,0BDH,0EFH,80H,0FH,0BDH,0EFH
DB 0BDH,0EFH,80H,0FH,0BDH,0EFH,0FDH,0FFH,0FDH,0FBH,0FDH,0FBH,0FEH,03H,0FFH,0FFH
;子
DB 0FFH,0FFH,0C0H,0FH,0FFH,0EFH,0FFH,0DFH,0FFH,0BFH,0FEH,7FH,0FEH,0FBH,00H,01H
DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FAH,0FFH,0FDH,0FFH

;子
DB 0FFH,0FFH,0C0H,0FH,0FFH,0EFH,0FFH,0DFH,0FFH,0BFH,0FEH,7FH,0FEH,0FBH,00H,01H
DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FAH,0FFH,0FDH,0FFH


;单
DB 0efh,0efh,0f7h,0dfh,0fbh,0b7h,0c0h,03h,0deh,0f7h,0deh,0f7h,0c0h,07h,0deh,0f7h
DB 0deh,0f7h,0c0h,07h,0deh,0ffh,0feh,0fbh,00h,01h,0feh,0ffh,0feh,0ffh,0feh,0ffh
;片
DB 0ffh,07fh,0dfh,07fh,0dfh,07fh,0dfh,07fh,0dfh,07bh,0c0h,01h,0dfh,0ffh,0dfh,0ffh
DB 0c0h,03fh,0dfh,0bfh,0dfh,0bfh,0dfh,0bfh,0dfh,0bfh,0dfh,0bfh,0bfh,0bfh,07fh,0bfh
;机
DB 0efh,0ffh,0efh,0efh,0eeh,07h,0eeh,0efh,02h,0efh,0eeh,0efh,0ceh,0efh,0c6h,0efh
DB 0aah,0efh,0aeh,0efh,06eh,0efh,0eeh,0efh,0eeh,0edh,0edh,0edh,0ebh,0f1h,0e7h,0ffh
;开
DB 0ffh,0f7h,080h,03h,0f7h,0dfh,0f7h,0dfh,0f7h,0dfh,0f7h,0dfh,0f7h,0dbh,00h,01h
DB 0f7h,0dfh,0f7h,0dfh,0f7h,0dfh,0f7h,0dfh,0efh,0dfh,0efh,0dfh,0dfh,0dfh,0bfh,0dfh
;发
DB 0feh,0ffh,0eeh,0dfh,0eeh,0efh,0deh,0fbh,080h,01h,0fdh,0ffh,0fdh,0ffh,0f8h,0fh
DB 0f9h,0efh,0f5h,0dfh,0f6h,0bfh,0efh,07fh,0deh,0bfh,0bdh,0cfh,073h,0f1h,0cfh,0fbh
;系
DB 0ffh,0c7h,080h,03fh,0fbh,0ffh,0fbh,0efh,0f7h,0dfh,0c0h,03fh,0feh,0ffh,0fdh,0dfh
DB 0fbh,0efh,0c0h,07h,0feh,0f7h,0f6h,0dfh,0f6h,0efh,0eeh,0f7h,0dah,0f7h,0fdh,0ffh
;统
DB 0efh,07fh,0efh,0bfh,0dfh,0b7h,0d8h,03h,0b7h,07fh,06h,0efh,0edh,0f7h,0d8h,03h
DB 0beh,0dbh,06h,0dfh,0beh,0dfh,0feh,0dfh,0e5h,0ddh,01dh,0ddh,0bbh,0e1h,0f7h,0ffh

;-------------------------------------------------------------------
         END

⌨️ 快捷键说明

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