2

我目前在 Keil C51 编程中使用 DS89C450 MCU。

我有一个连接到 P3^2 的红外接收器,它是下降沿触发器。每当我按下遥控器上的一个键时,它都会触发中断并将其保存到 xdata X 或 Y 中(逐位然后逐字节保存 500 个字节)。

我正在尝试通过串行端口将数据位(“1”或“0”)从缓冲区传输到超级终端。但是,当我按下遥控器时,我没有显示任何数据。

任何专家都可以告诉我为什么以及如何让它工作吗?

程序在这里:

http://pastebin.com/hpAw2ipH

4

1 回答 1

1

Google "Terminal by br@y",它可以在 HEX 中显示串行通信。大多数 UART 不能发送单个位,而是发送 N 位字符,通常为 7 或 8 个,带有开始/停止/奇偶校验位(8 位,无奇偶校验,1 个停止位是通用默认值)。将数据编码为 ASCII 可以让生活变得更轻松,甚至可能使用开始/停止字符,这样您就知道何时获得真实数据。

如需更多详细信息,请使用示波器、BusPirate 或 LogicSniffer(来自 DangerousPrototypes.com)来嗅探通信数据。

于 2012-06-21T17:09:23.447 回答