网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
实战八《用ST套件一位键控计数器》
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19
;本实例的目的是让大家进一步了解键盘程序,数码管程序。
;本实例的功能是用DIGIT作计数器,按S2一下计数器加1,加到9时计数器不再向上加
;按S3一下计数器减1,减到0时,计数不再减,同时计数器的值送数码管2静态显示
 ;烧写时应注意:配置位已经在程序中写明,加载HEX文件时会自动加载,烧写时不用再手动设置配置位。
;实验时请注意套件跳线选择;
;*******************************************************
 LIST P=16F84A,R=DEC  ;定义器件为16F84,默认数制为十进制
;-------------------------------------------------------
  __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC 
                                              ;没有代码保护
                                              ;看门狗关闭
                                              ;上电廷时器开启
                                              ;振荡器模式为XT
;-------------------------------------------------------
PC     EQU 02H        ;变量单元定义
STATUS EQU 03H
PORTA EQU 05H
PORTB EQU 06H

TRISA EQU 5H
TRISB EQU 6H
;-----------------------STATUS
RP0    EQU 5
;-----------------------
COUNTER EQU 10H           ;
DIGIT   EQU 11H
COUNT1  EQU 12H
COUNT2  EQU 13H
TABADD  EQU 14H
;--------------------
            ORG         0000H
MAIN
            CLRF        PORTA ;初始IO口
            CLRF        PORTB
     
            BSF         STATUS,RP0 ;设置数据寄存器体1
            MOVLW       00011000B ;设置SW2,SW3口为输入、其它口全部为输出
            MOVWF       TRISA 
            CLRW
            MOVWF       TRISB  
            BCF         STATUS,RP0 ;恢复数据寄存器体0

            CLRF        DIGIT      ;清计数器
            GOTO        LOOP1      ;先显示0
;----------------------
LOOP
            BTFSS       PORTA,3    ;扫描键S2是否有按下
            GOTO        SET_1
            BTFSS       PORTA,4    ;扫描键S3是否有按下
            GOTO        SET_2
            GOTO        LOOP       ;循环扫描
LOOP1                              ;数码管显示程序
            MOVLW       TABLE      ;将转换表的首地址存入TABADD
            MOVWF       TABADD     
            MOVFW       DIGIT
            ADDWF       TABADD,W   ;计数值(W)与转换表的起始地址相加
            CALL        CONVERT    ;存入W后调用转换表子程序
            MOVWF       PORTB      ;取出的七段显示码送RB口显示
            BSF         PORTA,1    ;让一位数码管亮
            GOTO        LOOP
;---------------------------------
SET_1
            BTFSC       PORTA,3   ;去除键抖动
            GOTO        LOOP
            CALL        DELAY
            BTFSC       PORTA,3
            GOTO        LOOP
            MOVLW       09H       ;计数值为9后不再加1
            XORWF       DIGIT,0
            BZ          LOOP
            INCF        DIGIT,1   ;不为9计数值加1
            GOTO        LOOP1     ;到数码管显示
;---------------------------------
SET_2
            BTFSC       PORTA,4  ;去除键抖动
            GOTO        LOOP
            CALL        DELAY
            BTFSC       PORTA,4
            GOTO        LOOP
            MOVF        DIGIT,1 ;计算值为0后不再减1
            BZ          LOOP
            DECF        DIGIT,1 ;不为0计数值减1
            GOTO        LOOP1   ;到数码管显示
;---------------------------------
DELAY	  		                    ;设置延时常数
            MOVLW    	150
	    MOVWF    	COUNT1
L2	  	
            MOVLW    	255
	    MOVWF    	COUNT2
L3	  		
            DECFSZ   	COUNT2,1      ;递减循环? 
	    GOTO	   	L3
	    DECFSZ   	COUNT1,1
	    GOTO	   	L2
	    RETLW    	0
;-------------------- ----------------------------------
CONVERT   
            MOVWF    	PC             	    ;将W寄存器内的7段显示码地址放入PC
TABLE                                       ; PC执行新地址指令, 跳到相对的地址执行?          	
	  RETLW    	081H 	    ;0  ;RETLW指令,将七段显示码存入W后返回
	  RETLW    	0E7H 	    ;1                                
	  RETLW    	092H 	    ;2
	  RETLW    	0A2H 	    ;3
	  RETLW    	0E4H 	    ;4
	  RETLW    	0A8H 	    ;5
	  RETLW    	088H 	    ;6
	  RETLW    	0E3H 	    ;7
	  RETLW    	080H 	    ;8
	  RETLW    	0A0H 	    ;9
;----- -----------------------------------------------
     END

网学推荐

免费论文

原创论文

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