网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
实战五《键控LED的实验》
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19
;ST套件键控LED实验程序
;本实验的目的是让大家熟悉IO口的输入操作,本程序的作用是用按键控制LED 
;按S2时只有LED8发光,按S3时只有LED7发光,按S4时只有LED6发光,按S5时只有LED5发光
 ;烧写时应注意:配置位已经在程序中写明,加载HEX文件时会自动加载,烧写时不用再手动设置配置位。
;实验时请注意套件跳线选择
;****************************************************************
  LIST P=16F84A,R=DEC          ;定义器件为16F84,默认数制为十进制
;----------------------------------------------------------------
  __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC 
                                              ;没有代码保护
                                              ;看门狗关闭
                                              ;上电廷时器开启
                                              ;振荡器模式为XT
;----------------------------------------------------------------
STATUS EQU 03H               ;寄存器单元定义
RP0 EQU 5
;----------------------
PORTA EQU 05H
PORTB EQU 06H

TRISA EQU 5H
TRISB EQU 6H
;-----------------------    ;变量单元定义
DATA1 EQU 20H
;----------------------RA
KEY1 EQU 3
KEY2 EQU 4
;----------------------RB
KEY3 EQU 0
KEY4 EQU 1
;--------------------
   ORG 0000H
MAIN
   CLRF PORTA               ;初始IO口
   CLRF PORTB

   BSF STATUS,RP0           ;设置数据寄存器体1
   MOVLW 00011000B          ;定义RA。3,RA。4为输入其它为输出
   MOVWF TRISA
   MOVLW 00000011B          ;定义RB。0,RB。1为输入其它为输出
   MOVWF TRISB 
   BCF STATUS,RP0           ;恢复数据寄存器体0

LOOP
   BTFSS PORTA,KEY1         ;扫描按键,有按键被按下转到键值处理
   GOTO SET_KEY1
   BTFSS PORTA,KEY2
   GOTO SET_KEY2
   BTFSS PORTB,KEY3
   GOTO SET_KEY3
   BTFSS PORTB,KEY4
   GOTO SET_KEY4
   GOTO LOOP                ;反复扫描
;---------------------------------
SET_KEY1
   BTFSC PORTA,KEY1         ;是干扰退出
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY1A
   BTFSC PORTA,KEY1         ;去抖动
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY1A
   MOVLW 03H
   ANDWF PORTB,1           ;熄灭所有LED
   MOVLW 80H
   IORWF PORTB,1           ;点亮LED8
SET_KEY1B
   BTFSS PORTA,KEY1        ;等待按键放开
   GOTO SET_KEY1B
   GOTO LOOP               
;---------------------------------
SET_KEY2
   BTFSC PORTA,KEY2
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY2A
   BTFSC PORTA,KEY2        
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY2A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 40H
   IORWF PORTB,1          ;按S3点亮LED7     
SET_KEY2B
   BTFSS PORTA,KEY2
   GOTO SET_KEY2B
   GOTO LOOP 
;---------------------------------
SET_KEY3
   BTFSC PORTB,KEY3
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY3A
   BTFSC PORTB,KEY3
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY3A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 20H
   IORWF PORTB,1          ;按S4点亮LED6
SET_KEY3B
   BTFSS PORTB,KEY3     
   GOTO SET_KEY3B
   GOTO LOOP 
;---------------------------------
SET_KEY4
   BTFSC PORTB,KEY4
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY4A
   BTFSC PORTB,KEY4
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY4A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 10H
   IORWF PORTB,1
SET_KEY4B
   BTFSS PORTB,KEY4        ;按S5点亮LED5
   GOTO SET_KEY4B
   GOTO LOOP 
;---------------------------------
   END

 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 电话:013574892963 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
湘ICP备09003080号