网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 单片机 > 正文
实战十《ST套件两位0-99的键控计数器》
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 10/06/19
下 GOTO SET_1 BTFSS PORTA,4 ;扫描键S3是否有按下 GOTO SET_2 GOTO LOOP ;循环扫描 LOOP1 MOVLW 8 MOVWF COUNTER ;循环左移计数器置8 CLRF BUFFER ;清除缓冲器 MOVF DIGIT,W MOVWF BUFFER1 LOOP2 RLF BUFFER1,1 ;二进制数转换成BCD码(以便显示) RLF BUFFER,1 DECFSZ COUNTER,1 ;左移8次 GOTO ADJUST SWAPF BUFFER,W ;显示值高低位交换,先处理高位 ANDLW 0FH ;屏蔽掉高位 MOVWF DISPBUF_H ;存入寄存器 MOVFW BUFFER ;显示值低位处理 ANDLW 0FH ;屏蔽掉高位 MOVWF DISPBUF_L ;存入寄存器 GOTO LOOP ADJUST MOVLW 3 ;二进制转BCD的调整 ADDWF BUFFER,W ;每次移位后都检查低四位LSD+3是否大于7 MOVWF SUM BTFSC SUM,3 MOVWF BUFFER MOVLW 30H ADDWF BUFFER,W ;如果是则再加3,否则不加。 MOVWF SUM BTFSC SUM,7 MOVWF BUFFER ;接着再将高四位MSD作相同处理 GOTO LOOP2 ;- -------------------------------------------- SET_1 BTFSC PORTA,3 ;去除键抖动 GOTO LOOP CALL DELAY BTFSC PORTA,3 GOTO LOOP MOVLW 99 ;计数值为99后不再加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号