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

📄 ser3.asm

📁 Small RTOS51是为51系列单片机而编写的。它是完全免费的、源代码公开的多任务实时操作系统。它可在无任何外部数据存储器的单片80C51系统上运行
💻 ASM
字号:
;**************************************************
;    平凡单片机工作室
;  HTTP://WWW.MCUSTUDIO.COM
;   (C) COPYRIGHT 2003 PINGFAN'S MCUSTUDIO
;    ALL RIGHTS RESERVED
;TIMER4.ASM
;作者:周坚   
;功能描述:
;功能:中断方式接收数据,将接收到的数据以十进制送往数据码管显示
;这里给出实验仿真板的演示,进入调试后,打开实验仿真板,即显示01,
;打开VIEW->SERIAL WINDOW#1,随意击键,即可在数据码管上显示该字符的ASCII值
;注意,由于一些小写字母的ASCII超过100,故无法正确显示
;可参考书本自行设置硬件进行硬件练习
;附AVI文件是依次输入0,1,2,3,4,5,6,7,8,9和TAB、ESC及ENTER的现象
;用DSB-1A型单片机实验板可提供相应的程序
;**************************************************

    FIRST   EQU P2.7    ;第一位数码管的位控制
    SECOND  EQU P2.6    ;第二位数码管的位控制
    DISPBUF EQU 5EH     ;5E,5FH是显示缓冲区
    
    ORG     0000H
    LJMP    START
    ORG     23H
    JMP     RECIVE
    ORG     30H
START:  
    MOV     SP,#5FH         ;初始化堆栈
    MOV     TMOD,#00100000B ;定时器1工作于方式2
    MOV     TH1,#0FDH       ;定时初值
    MOV     TL1,#0FDH
    ORL     PCON,#10000000B ;SMOD=1
    SETB    TR1             ;定时器1开始运行
    MOV     SCON,#01010000B ;串行口工作于模式1
    SETB    REN
    SETB    EA
    SETB    ES
    MOV     SBUF,#1
    MOV     SBUF,#10
    MOV     DISPBUF,#0
    MOV     DISPBUF+1,#1
LOOP:   
    CALL    DISP
    JMP     LOOP

RECIVE: 
    PUSH    ACC
    PUSH    PSW
    JB      TI,SEND
    CLR     RI
    MOV     A,SBUF
    MOV     B,#10
    DIV     AB
    MOV     DISPBUF,A
    MOV     DISPBUF+1,B
    JMP     SEREXIT
SEND:   
    CLR     TI  
SEREXIT:
    POP     PSW
    POP     ACC
    RETI
    
DISP:   
    PUSH    ACC             ;ACC入栈
    PUSH    PSW             ;PSW入栈
    MOV     A,DISPBUF       ;取第一个待显示数
    MOV     DPTR,#DISPTAB   ;字形表首地址
    MOVC    A,@A+DPTR       ;取字形码
    MOV     P0,A            ;将字形码送P0位(段口)
    CLR     FIRST           ;开第一位显示器位口
    LCALL   DELAY           ;延时5毫秒
    SETB    FIRST           ;关闭第一位显示器(开始准备第二位的数据)
    MOV     A,DISPBUF+1     ;取显示缓冲区的第二位
    MOV     DPTR,#DISPTAB
    MOVC    A,@A+DPTR
    MOV     P0,A            ;将第二个字形码送P0口
    CLR     SECOND          ;开第二位显示器
    LCALL   DELAY           ;延时
    SETB    SECOND          ;关第二位显示
    POP     PSW
    POP     ACC
    RET

DELAY:  
    PUSH    PSW
    SETB    RS0
    MOV     R7,#50
D1: MOV     R6,#50
D2: DJNZ    R6,$
    DJNZ    R7,D1
    POP     PSW
    RET
    
DISPTAB:    DB 28H,7EH,0A4H,64H,72H,61H,21H,7CH,20H,60H,0FFH 
    END
    

⌨️ 快捷键说明

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