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

📄 io.sdi

📁 多个仿真例子
💻 SDI
字号:
,,,;单片机每50ms从扩展的外部输入口读取开关的状态
,,,;单片机将开关的状态以1Hz的闪动频率显示出来
,,,;开关闭合时LED闪烁
,,,IO      EQU     8000H   ;扩展的I/O口地址
,,,BUF     EQU     30H     ;开关状态缓冲区
,,,FLASH   BIT     00H
,,,        ORG     0
0000,02 00 30,,        LJMP    START
,,,        ORG     0BH
000B,02 00 5B,,        LJMP    TS
,,,        ORG     30H
0030,75 81 60,START,START:  MOV     SP,#60H
0033,75 89 01,,        MOV     TMOD,#1
0036,75 8C 3C,,        MOV     TH0,#3CH
0039,75 8D B0,,        MOV     TH1,#0B0H       ;定时50ms
003C,D2 A9,,        SETB    ET0
003E,D2 AF,,        SETB    EA
0040,7A 0A,,        MOV     R2,#10          ;定时500ms计数
0042,75 30 00,,        MOV     BUF,#0          ;清开关状态缓冲区
0045,C2 00,,        CLR     FLASH           ;清闪烁标志
0047,D2 8C,,        SETB    TR0
0049,12 00 4E,LOOP,LOOP:   LCALL   DISP            ;显示开关状态
004C,80 FB,,        SJMP    LOOP
,,,;============================================
,,,;显示程序
,,,;功能:根据闪烁标志FLASH将开关缓冲区内容送显
,,,;============================================
004E,90 80 00,DISP,DISP:   MOV     DPTR,#IO
0051,20 00 03,,        JB      FLASH,DISP1     ;FLASH=1则将开关缓冲区内容送显
0054,E4,,        CLR     A               ;否则熄灭所有LED
0055,F0,,        MOVX    @DPTR,A
0056,22,,        RET
0057,E5 30,DISP1,DISP1:  MOV     A,BUF
0059,F0,,        MOVX    @DPTR,A
005A,22,,        RET
,,,;============================================
,,,;50ms中断服务程序
,,,;功能:读取开关状态并存到开关缓冲区
,,,;      每500ms将闪烁标志取反。
,,,;============================================
005B,C2 8C,TS,TS:     CLR     TR0
005D,75 8C 3C,,        MOV     TH0,#3CH
0060,75 8A B0,,        MOV     TL0,#0B0H
0063,D2 8C,,        SETB    TR0
0065,90 80 00,,        MOV     DPTR,#IO
0068,E0,,        MOVX    A,@DPTR         ;读开关状态
0069,F4,,        CPL     A
006A,F5 30,,        MOV     BUF,A           ;存开关状态
006C,DA 04,,        DJNZ    R2,TS1
006E,7A 0A,,        MOV     R2,#10
0070,B2 00,,        CPL     FLASH
0072,32,TS1,TS1:    RETI
000E,,,        END

⌨️ 快捷键说明

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