• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51模拟串口读取并存储一个16进制数

15003171706 2018-10-14 浏览量:1190
想请教一下,51单片机用普通IO口能读取并存储一个16进制数吗?(不用TXD和RXD,因为我想要模拟一个串口)
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 只要把接收数据移位出来就可以了,串口也是寄存器缓存的,这个部分用其它寄存器做也行,用延时或者计数或者中断将接收数据移位放入数组https://wenku.baidu.com/view/9df5d694f18583d048645942.html
    • 发布于 2018-10-14
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:19
  • 完全可以 只要速率能达到 IO口可以模拟任何通信模式


    • 发布于2018-10-14
    • 举报
    • 评论 2
    • 2
    • 0
15003171706 回复了 lichangle :我能问一下速率达到是指运用中断计时,每隔一段时间从普通IO口读取末位,然后依次把八个2进制数给存储到数组吗? 回复
15003171706 回复了 lichangle :我能问一下速率达到是指运用中断计时,每隔一段时间从普通IO口读取末位,然后依次把八个2进制数给存储到数组吗? 回复

  • 可以啊,可以通过定时器做波特率发生器,然后按照串口时序图将程序写出,打开串口,选择对应波特率,就能实现了
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 1
    • 0

  • 是可以用普通IO口来模拟串口的,方法挺多的,你可以参考下面这篇文章。

    https://blog.csdn.net/hopesunice/article/details/78570170​

    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以模SPIi协议、I2C协议、单总线协议等等,这个要比usart更方便一些,并且可以实现你的数据通信的功能,另外一个是前边几种串行通信方式的元器件也比较多,可以参考的程序也挺多的,比如74HC595、AT24C02、DS18B20、DS1302、一些SPI的flash、液晶屏。
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,stc的没有串口的单片机都是模拟出来的,可以参考stc15w104模拟串口例程,波特率57600没有问题
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • io的通信速率跟主晶振有关 但是模拟串口通信一般是没有问题的
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口速度不快完全可以模拟,注意时序和波特率就好
    • 发布于2018-10-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用IIC模拟程序可以很好实现,IIC模拟程序可以参考各大网站或各大芯片的代码,当然也可以根据时序来自己编写!
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口可以模拟的,波特率设置对就行
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口完全可以模拟的,没啥问题。比 iic  spi 都要简单。

    16进制数据,两位正好是一个byte,一次可以发送接收两位,当然只发送接受一位也可以,高位是零

    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个16进制的数据是多少位的呢,一般都是按8位一个字节进行传输的的。
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的, 串口可以模拟,看看你的进制数值,一次接受位数看看是多少字节再来决定
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用模拟串口的方式进行通信,根据你的数据位来定义数据长度就可以
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以,但是用普通IO口,通信速度很慢,需要定时去采该管脚上面的高低电平,以此判断"1""0"
    • 发布于2018-10-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接用你的IO来模拟电平输出你的信号进行通信
    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,像i2c spi这种就可以直接读取数值。

    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51模拟串口读取并存储一个16进制数