搜索
bottom↓
回复: 12

给使用应广单片机 做开发的初学者一个入门的例程

[复制链接]

出0入0汤圆

发表于 2015-3-6 22:09:39 | 显示全部楼层 |阅读模式
给使用应广单片机 做开发的初学者一个入门的例程
这是一个 电推剪的 案子 最先开始的样子 刚拿到 应广的单片机 第一次尝试做电推剪
由于这是一个公司真实的案子 所以请见谅 给大家的是一个 刚开始的版本

有一段 32 bit /32 bit 的除法 改自 匠人手记

;;====================除法宏定义
;;入口:
;;         被除数  =  NUM_A3,NUM_A2,NUM_A1,NUM_A0
;;  除数          =  NUM_B3,NUM_B2,NUM_B1,NUM_B0         
;;出口:
;;                商     =  NUM_C3,NUM_C2,NUM_C1,NUM_C0               
;;         余数   =  NUM_D3,NUM_D2,NUM_D1,NUM_D0               
DIV_RLC:
       
        CLEAR                        COUNT_JSQ
        SET1                        COUNT_JSQ,0X05                                ;32
        MOV        A,0x00
        CEQSN        NUM_B3,A
        ;MOV                        NUM_B3,NUM_B3
        ;T1SN                        Z
        GOTO                        DIV_RLC_0
        ;MOV                        NUM_B2,NUM_B2
        ;T1SN                        Z
;        MOV        A,0x00
        CEQSN        NUM_B2,A
        GOTO                        DIV_RLC_0
        ;MOV                        NUM_B1,NUM_B1
        ;T1SN                        Z
;        MOV        A,0x00
        CEQSN        NUM_B1,A
        GOTO                        DIV_RLC_0
        ;MOV                        NUM_B0,NUM_B0
        ;T1SN                        Z
;        MOV        A,0x00
        CEQSN        NUM_B0,A
        GOTO                        DIV_RLC_0
        GOTO                        DIV_ERR
DIV_RLC_0:       
        ALLCLR        NUM_C3,NUM_C2,NUM_C1,NUM_C0
        ALLCLR        NUM_D3,NUM_D2,NUM_D1,NUM_D0                       
;======除数不为0
DIV_32_32_LP:               
        ALLRLC        NUM_A3,NUM_A2,NUM_A1,NUM_A0
        ALLRLC        NUM_D3,NUM_D2,NUM_D1,NUM_D0       
;==试商
        T0SN                        C
        GOTO                        DIV_32_32_LP1
        ;SIZE_COMP                NUM_D3,NUM_D2,NUM_D1,NUM_D0,NUM_B3,NUM_B2,NUM_B1,NUM_B0
        MOV                A,NUM_D3
        ;MOV                RTMP_MAC,A
        ;MOV                A,NUM_B3
        ;SUB                A,RTMP_MAC
        COMP                A,NUM_B3
        T0SN                C
        GOTO                COMP_Small
        T1SN                Z
        GOTO                COMP_LARGE
       
        MOV                A,NUM_D2
        ;MOV                RTMP_MAC,A
        ;MOV                A,NUM_B2
        ;SUB                A,RTMP_MAC
        COMP                A,NUM_B2
        T0SN                C
        GOTO                COMP_Small
        T1SN                Z
        GOTO                COMP_LARGE       
               
        MOV                A,NUM_D1
        ;MOV                RTMP_MAC,A
        ;MOV                A,NUM_B1
        ;SUB                A,RTMP_MAC
        COMP                A,NUM_B1
        T0SN                C
        GOTO                COMP_Small
        T1SN                Z
        GOTO                COMP_LARGE       
       
        MOV                A,NUM_D0
        ;MOV                RTMP_MAC,A
        ;MOV                A,NUM_B0
        ;SUB                A,RTMP_MAC
        COMP        A,NUM_B0
        T0SN                C
        GOTO                COMP_Small
        T1SN                Z
        GOTO                COMP_LARGE               
;        GOTO                COMP_LARGE
COMP_LARGE:
        SET1                C
        GOTO                SIZE_COMP_OUT
COMP_Small:
        SET0                C
        GOTO                SIZE_COMP_OUT       
SIZE_COMP_OUT:
        ;
        ;*/
        T1SN                        C
        GOTO                        DIV_32_32_LP2
;        SET0                        C
DIV_32_32_LP1:
        MOV                        A,NUM_B0
        SUB                        NUM_D0,A
        SUBCC                NUM_D1,NUM_B1
        SUBCC                NUM_D2,NUM_B2
        SUBCC                NUM_D3,NUM_B3
        SET1                        C       
DIV_32_32_LP2:
        ALLRLC        NUM_C3,NUM_C2,NUM_C1,NUM_C0
        DZSN                        COUNT_JSQ
        GOTO                        DIV_32_32_LP
        SET0                        C
        GOTO                        DIV_RLC_OUT
DIV_ERR:                                                        ;溢出(除数=0)处理
        MOV                A,0XFF
        MOV                NUM_C3,A
        MOV                NUM_C2,A
        MOV                NUM_C1,A
        MOV                NUM_C0,A

        MOV                NUM_D3,A
        MOV                NUM_D2,A
        MOV                NUM_D1,A
        MOV                NUM_D0,A
        SET1                C
DIV_RLC_OUT:
        RET       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2015-3-6 22:18:20 | 显示全部楼层
OMG,汇编,楼主厉害!

出0入0汤圆

发表于 2015-3-6 22:25:10 | 显示全部楼层
汇编……

出0入0汤圆

发表于 2015-3-7 08:08:49 | 显示全部楼层
什么单片机,现在用汇编的已经很少了

出0入4汤圆

发表于 2015-3-7 08:29:16 | 显示全部楼层
备注备注

出0入0汤圆

发表于 2015-3-7 08:41:47 | 显示全部楼层
纯汇编呀

出0入0汤圆

发表于 2015-3-7 09:13:49 | 显示全部楼层
看不懂。。。

出0入0汤圆

发表于 2015-3-7 16:54:29 | 显示全部楼层
高大上的了,

出0入0汤圆

 楼主| 发表于 2015-3-7 21:55:21 | 显示全部楼层
汇编和C 混编  其实没那么恐怖 啦  楼上的 习惯就好了

出0入0汤圆

发表于 2015-3-10 14:17:49 | 显示全部楼层
OMG,汇编,楼主厉害!

出10入10汤圆

发表于 2015-3-10 17:04:59 | 显示全部楼层
怀念当年用汇编的日子

出0入0汤圆

发表于 2019-10-19 15:25:27 | 显示全部楼层
楼主用过应广的单片机,有没有碰到过:在使用单片机的ADC且用片内基准电压时。 在烧录程序时提示校验基准电压失败CHECK BG FAIL这种情况?  望解答一下,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-10-19 20:37:36 | 显示全部楼层
汇编,楼主厉害!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 23:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表