网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
实战三《用ST套件的一个LED闪烁实验》
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19
;84led-a.asm 程序让LED8不停的闪烁实验,供初学入门用,熟悉廷时程序的编写方法。
 ;本程序的功能是:程序复位后,RB7口的LED8每0.2秒闪一次,不停的闪烁
;烧写时应注意:配置位已经在程序中写明,加载HEX文件时会自动加载,烧写时不用再手动设置配置位。
;实验时请注意套件跳线选择,跳线全部插入串口座方向
;********************************************************************               
 LIST P=16F84A,R=DEC;  告诉编译程序使用何种PIC单片机,默认数制为10进制。
;---------------------------------------------------------------------
  __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC 
                                              ;没有代码保护
                                              ;看门狗关闭
                                              ;上电廷时器开启
                                              ;振荡器模式为XT
;----------------------------------------------------------------------
STATUS EQU 03H ;定义状态寄存器地址
PORTA EQU 05H  ;端口A的数据寄存器地址
PORTB EQU 06H  ;端口B的数据寄存器地址

TRISA EQU 5H   ;定义端口A的方向控制寄存器地址
TRISB EQU 6H   ;定义端口B的方向控制寄存器地址
;---------------------- STATUS  
RP0       EQU 5  ;定义状态寄存器中的RAM页选位RP0
;--------------------;用户寄存器
L1    EQU 10H    ;廷时变量
L2    EQU 11H
L3    EQU 12H
;-------------------------

         ORG 0000H              ; 程序从零地址开始
         CLRF PORTA
         CLRF PORTB           ;初始化I/O口
     
         BSF STATUS,RP0       ;设置数据寄存器体1
         MOVLW B'00000000'    ; 1代表输入,0代表输出
         MOVWF TRISA           ; 设置PORTA全部IO为输出
	     MOVLW B'00000000'  
         MOVWF TRISB          ; 设置PORTB 全部IO为输出
         BCF STATUS,RP0       ;恢复数据寄存器体0
LOOP                          ;下面是主程序
	     MOVLW 80H            ;送80H到W
         XORWF PORTB,1        ;取反RB7,让LED8闪烁
         CALL DELAY           ;调用0。2S廷时程控
         GOTO LOOP            ;返回不断闪烁
;-------------------------------------以下是0。2S廷时子程序
DELAY                         
         MOVLW 2              ;(1US)定义最外层循环变量初始值
         MOVWF L1             ;(1US)
DELAY_1
         MOVLW 200            ;(1US)定义第二层循环变量初始值
         MOVWF L2             ;(1US)
DELAY_2
         MOVLW 200            ;(1US)定义第一层循环变量初始值
         MOVWF L3             ;(1US)
DELAY_3
         DECFSZ L3,1          ;(1US)L3-1=0?是!跳出内层循环
         GOTO DELAY_3         ;(2US)否!循环回去
         DECFSZ L2,1          ;(1US)L2-1=0?是!跳出循环
         GOTO DELAY_2         ;(2US)否!循环回去
         DECFSZ L1,1          ;(1US)L1-1=0?是!跳出循环
         GOTO DELAY_1         ;(2US)否!循环回去
         RETLW 0              ;子程序返回

         END                  ; 形式上的程序结束

网学推荐

免费论文

原创论文

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