专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
PIC单片机
PIC汇编学习时的小问题(如何取模)
2020-02-08 12:17
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
2894
11
11
小弟最近偶然机会接触了PIC汇编,以前就听说汇编的重要,一学才知道里面内涵。
所以决定把汇编学好。
正的驱动数码管,要求num从0加到100,再从0加,如此反复。
C语言很简单,shi=num/10 ,ge=num%10;
可PIC汇编该怎么弄啊,知道的帮小弟一下。谢谢
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
woshigeshuai
1楼-- · 2020-02-09 10:12
网上可用的程序真不多,PIC汇编指的是什么?官方资料?
加载中...
Nemo_stm32
2楼-- · 2020-02-09 12:55
用减法、比较和跳转指令可以实现的,我之前做过。
等晚上我把我做的传给你。
加载中...
woshigeshuai
3楼-- · 2020-02-09 13:25
把 PIC单片机的 STATUS寄存器 的Z ,C 位搞熟练后。
按照自己的思路搞。
用减法。比如num-10 ,然后判断C位和Z位 就知道num是大于10,还是小于10,还是等于10
这样就OK了。
num=27 ,num-10,判断C位,C=1,说明num>=10.C=0,说明num<10,然后shi++
然后再num这时候是17,再num-10,判断。就知道了。希望对初学汇编的朋友有帮助
MOD
;{***********************MOD****************
INCF NUM,F ;NUM+=NUM
MOVLW .10
XORWF NUM,W ;W=W^20
BZ Z_1
RETURN
Z_1
CLRF NUM
INCF NUM1,F
CLRF SHI
CLRF GE
MOVF NUM1,W
MOVWF GE
MOVLW .100
XORWF NUM1,W
BZ Z_1_1
GOTO Z_0 ;Z==1 GOTO Z_1_1
Z_1_1
CLRF NUM1 ;IF(Z)NUM1=0
CLRF GE
Z_0
; MOVF NUM1,W
; MOVWF GE ;SAVE NUM1,IF NUM1<10
MOVLW .10
SUBWF GE,F ;GE=GE-10
BC C1 ;IF(C==1)
MOVLW .10
ADDWF GE,F ;GE=GE+10
RETURN ;IF(C==0) OUT
C1
BZ Z1
GOTO Z0
Z1
INCF SHI,F
RETURN
Z0
INCF SHI,F
GOTO Z_0
;}**********************************MOD*************
加载中...
chenhuwyl
4楼-- · 2020-02-09 14:08
精彩回答 2 元偷偷看……
加载中...
上一页
1
2
一周热门
更多
>
相关问题
PIC单片机不同的IO口驱动74HC573驱动共阴极的数码管,有的段不亮
1 个回答
一种简单精确的pic延时方法
21 个回答
谁熟悉PIC的产品发布时间的,帮看看PIC18F47K40啥版本IDE能开发
12 个回答
求AN1078对应的源代码下载地址
5 个回答
PIC单片机应用技巧
4 个回答
串口无法连续接收数据
2 个回答
求助:dsPIC33F串口通信,如何发送字符串
4 个回答
PIC45K40 IOC(interrupt-on-change)功能
2 个回答
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
PIC单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
等晚上我把我做的传给你。
按照自己的思路搞。
用减法。比如num-10 ,然后判断C位和Z位 就知道num是大于10,还是小于10,还是等于10
这样就OK了。
num=27 ,num-10,判断C位,C=1,说明num>=10.C=0,说明num<10,然后shi++
然后再num这时候是17,再num-10,判断。就知道了。希望对初学汇编的朋友有帮助
MOD
;{***********************MOD****************
INCF NUM,F ;NUM+=NUM
MOVLW .10
XORWF NUM,W ;W=W^20
BZ Z_1
RETURN
Z_1
CLRF NUM
INCF NUM1,F
CLRF SHI
CLRF GE
MOVF NUM1,W
MOVWF GE
MOVLW .100
XORWF NUM1,W
BZ Z_1_1
GOTO Z_0 ;Z==1 GOTO Z_1_1
Z_1_1
CLRF NUM1 ;IF(Z)NUM1=0
CLRF GE
Z_0
; MOVF NUM1,W
; MOVWF GE ;SAVE NUM1,IF NUM1<10
MOVLW .10
SUBWF GE,F ;GE=GE-10
BC C1 ;IF(C==1)
MOVLW .10
ADDWF GE,F ;GE=GE+10
RETURN ;IF(C==0) OUT
C1
BZ Z1
GOTO Z0
Z1
INCF SHI,F
RETURN
Z0
INCF SHI,F
GOTO Z_0
;}**********************************MOD*************
一周热门 更多>