【问题标题】:Comunication with RS232 port in assembly与装配中的 RS232 端口通信
【发布时间】:2011-06-29 15:28:04
【问题描述】:

我有一个有 8 条输入线和一条连接到计算机串行端口的电缆的电路。端口控制器并联配置。 (我不知道这是什么意思!电子工程的学生说这意味着“你必须异步使用信号,例如每个信号可以独立于其他信号”)

现在我应该编写一个汇编代码,从文件中读取一些输入,处理它们,然后设置数据行。我可以做前 2 个,但对端口一无所知。

你能给我一个起点吗?例如如何初始化一个端口以及如何在汇编中在PC的串口上设置一行数据?

【问题讨论】:

  • 您确定它是串行端口而不是并行(又名打印机又名 Centronics)端口吗?
  • 其实没有!我不懂电子。他们唯一告诉我的是端口是 RS232 DB9。 (打印机端口),我应该控制 8 信号。
  • 好的 - 听起来你需要一个 UART。您可能想尝试在electronics.stackexchange.com 上询问此问题
  • 打印机端口和串口是两个不同的东西(通常)。这是什么平台? x86机器?苹果电脑?微控制器?阿杜诺?如果有的话,你正在运行什么操作系统? dos、windows、mac、linux等?
  • 我在一台装有 Windows XP 的 x86 PC 上。

标签: assembly serial-port


【解决方案1】:

我真的认为你很困惑 - 很多。 RS 232serial 端口使用的协议。在其 9 针版本 (DE-9) 中,它确实有 8 条可用数据线,但其中只有一半是输出针,您无法真正控制数据针,无法通过它发送实际数据。除非您的设备包含带有串行接口的微控制器,否则我怀疑它是否打算与 RS-232 接口一起使用。

RS-232 确实是 80 年代和 90 年代初期某些打印机使用的连接,通常是点阵打印机。不幸的是,打印除 ASCII 文本以外的任何内容都太慢了,因此引入了 parallel port,顺便说一下,确实有 8 行输出。 那个端口自90年代以来就被称为“打印机端口”。在现代计算机中,您甚至可以在一定程度上单独控制并行端口的引脚,这就是为什么它被广泛用于电子产品中的原因——嗯,它使用比 12V 串行更容易处理的 5 伏 TTL 接口这一事实端口使用。

您也没有提及您的程序应该用于哪个操作系统,尽管如果您打算直接使用程序集访问该端口,您可能仅限于 DOS 或 Windows 9x/Me。

也就是说:

【讨论】:

    【解决方案2】:

    由于您没有指定使用哪种语言或开发环境,这里是一个使用 VB.NET 的示例:

        Private WithEvents m_comport1 As IO.Ports.SerialPort
    
    Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        m_comport1 = New IO.Ports.SerialPort("COM1")
        AddHandler m_comport1.DataReceived, AddressOf Comport_DataReceived
    End Sub
    
    Private Sub SendData(p_data() As Byte)
    
        m_comport1.Write(p_data, 0, p_data.Length)
    
    End Sub
    
    Private Sub SendData(p_data As String)
    
        m_comport1.Write(p_data)
    
    End Sub
    
    Private Sub Comport_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs)
        Dim bytesAvailable = m_comport1.BytesToRead
        Dim tempData(bytesAvailable) As Byte
        m_comport1.Read(tempData, 0, bytesAvailable)
    
    End Sub
    

    【讨论】:

    • 嗯,,,,我指定了语言:汇编;)谢谢。虽然我不知道 VB 会尝试将其转换为程序集。
    • 哈哈,对不起。通过程序集,我认为您的意思是像 .DLL 这样的单个编译程序集。不知道还有人还在用汇编。祝你好运。
    • 大量的汇编语言编程正在进行中,它真的不能死,因为这是编译器用来做他们的事情(不是所有但足够流行的)。我们也可以为 Visual Basic 制作同样的“不认识任何使用 blank 的人”。
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多