矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1921|回复: 9

求助

[复制链接]
     
发表于 2021-3-19 08:56:04 | 显示全部楼层 |阅读模式
在看单片机51的代友中这断代码没有看懂,是51串口通信的代码,
TRANS :                ORG   0000H
                        LJMP TRANS
                        ORG 001BH
                        LJMP TINT
                        ORG 023H
                        LJMP SINT
                        ORG  1000H
开头的两行,代码便这样循环这里了,它是如何往下执行的,请指教       

执行流程

执行流程
     
发表于 2021-3-20 16:33:32 | 显示全部楼层
像是抄错了吧
没有初始化后面的中断代码是不会进入的
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-3-22 08:44:03 | 显示全部楼层
yubinwu 发表于 2021-3-20 16:33
像是抄错了吧
没有初始化后面的中断代码是不会进入的

确实没有,是不是等T1中断,进入T1的中断入口
回复 支持 反对

使用道具 举报

     
发表于 2021-3-22 10:58:48 | 显示全部楼层
本帖最后由 mov99 于 2021-3-22 11:02 编辑
chencncjy 发表于 2021-3-22 08:44
确实没有,是不是等T1中断,进入T1的中断入口


共同探讨
还没初始化呢,怎么中断
是不是应该这样

          ORG    0000H           ; 存放代码起地址
          LJMP   TRANS
          ORG    001BH           ; 定时器1溢出中断入口
          LJMP   TINT
          ORG    023H            ; 串行口中断入口
          LJMP   SINT
;---------------------------------
; 主代码

          ORG    1000H            ; 存放主代码起地址
TRANS:    MOV    SP,#63H          ; 堆栈指针[0x64起]
          ;-----------            ; 初始化及相关代码
;---------------------------------
; 服务中断

TINT:     PUSH   ACC              ; 压栈(现场保护)
          PUSH   PSW
          ;-----------            ; 相关代码
          POP    PSW              ; 出栈(恢复)
          POP    ACC
          RETI                    ; 返回断点

SINT;     ;-----------            ; 相关代码
          RETI
;---------------------------------
          END
回复 支持 反对

使用道具 举报

     
发表于 2021-3-22 14:41:23 | 显示全部楼层
楼上正解。
回复 支持 反对

使用道具 举报

     
发表于 2021-4-6 09:34:30 | 显示全部楼层
高手真多。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-4-7 08:35:21 | 显示全部楼层
mov99 发表于 2021-3-22 10:58
共同探讨
还没初始化呢,怎么中断
是不是应该这样

感谢您的回复,谢谢。你认为用C好还是用汇编好。我感觉汇编很简单没有复杂的波函数语法。C流程很清晰,易理解。
回复 支持 反对

使用道具 举报

     
发表于 2021-4-7 10:35:32 | 显示全部楼层
本帖最后由 mov99 于 2021-4-7 11:49 编辑
chencncjy 发表于 2021-4-7 08:35
感谢您的回复,谢谢。你认为用C好还是用汇编好。我感觉汇编很简单没有复杂的波函数语法。C流程很清晰,易 ...


虽然我不懂C语言,但仍然认为C编程更好;C语言易于交流,便于移置。
简单控制汇编游韧有余,复杂运算显得力不从心;汇编必需对硬件非常了解,C编程则不用。
现在有很多单片机支持硬件USB通用串行总线,C例程随处可见却找不到汇编代码,浮点运算C编程有函数库可直接调用。
纯属个人观点,仅供参考
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-4-8 08:42:51 | 显示全部楼层
mov99 发表于 2021-4-7 10:35
虽然我不懂C语言,但仍然认为C编程更好;C语言易于交流,便于移置。
简单控制汇编游韧有余,复杂运算 ...

同意你的观点,推荐些书籍
回复 支持 反对

使用道具 举报

     
发表于 2021-4-8 09:46:43 | 显示全部楼层
chencncjy 发表于 2021-4-8 08:42
同意你的观点,推荐些书籍

我不懂C语言,抱歉
矿坛高手如云,请老师推荐
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-28 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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