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

📄 mcd-led2.txt

📁 目的是让大家熟悉输入、输出端口的使用 该程序的功能是把演示板当做一个按键计数器
💻 TXT
字号:

status    equ     3h   ;定义状态寄存器地址
portb     equ     6h   ;定义端口B的数据寄存器地址
trisb     equ     86h  ;定义端口B的方向控制寄存器地址
portc     equ     7h   ;定义端口C的数据寄存器地址
trisc     equ     87h  ;定义端口C的方向控制寄存器地址
data1     equ     20h  ;定义一个廷时变量寄存器
data2     equ     21h  ;定义另一个廷时变量寄存器
n1        equ     d'13'  ;定义一个外层循环廷时常数
n2        equ     0ffh   ;定义一个内层廷时常数
rp0       equ     5h     ;定义状态寄存器的页选位RP0
;*************************************************
          org 000h       ;定义程序存放区域的起始地址
          nop            ;放置一条ICD必须的空操作指令
          bsf status,rp0  ;设置文件寄存器体1
          movlw 00h       ;将端口C的方向控制码00H先送W
          movwf trisc     ;再转到方向寄存器,将其设置为输出
          movlw 0ffh      ;同理,将端口B设置为输入
          movwf trisb     ;
          bcf status,rp0  ;恢复到文件寄存器体0
          movlw 00h       ;送计器初值00H到RC口显示
          movwf portc     ;
check     btfsc portb,0   ;测试S3按下否?是!跳过下条指令
          goto check      ;否!则循环检测
          call delay      ;调用廷时子程序,消除按钮抖动的影响
          btfsc portb,0   ;再次测试S3按下否?是!跳过下条指令
          goto check      ;否!则循不检测
          incf portc,1    ;端口C的数据寄存器加1,并送LED显示
check1    btfss portb,0   ;测试S3断开否?是!跳过下条指令
          goto check1     ;否!则循不检测
          call delay      ;调用廷时子程序,消除按钮抖动的影响
          btfss portb,0   ;再次测试S3断开否?是!跳过下条指令
          goto check1     ;否!则循不检测
          goto check      ;返回
;*************10MS廷时子程序************************
delay                     ;子程序名,也是子程序入口地址
          movlw n1        ;将外层循环参数值送到DATA1
          movwf data1     ;
lp0       movlw n2        ;将内层循环参数值送到DATA2
          movwf data2     ;
lp1       decfsz data2,1  ;变量DATA2内容递减,若为0则跳跃
          goto lp1        ;跳转到LP1
          decfsz data1,1  ;变量DATA1内容递减,若为0则跳跃
          goto lp0        ;跳转到LP0
          return          ;返回主程序
          end             ;源程序结束

⌨️ 快捷键说明

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