51.单片机串口通讯问题! 那个英雄可以帮助我,呵呵! 5

发布于 科技 2024-06-11
11个回答
  1. 匿名用户2024-01-29

    猜猜:是你的主机发送字符吗? 所以如果(dat=='1')

  2. 匿名用户2024-01-28

    串口确实是ASCII码,改为if(dat==0x49)。

  3. 匿名用户2024-01-27

    首先,何时进入中断服务功能,是进入溢出时计时器给出的计数初始值吗?

    还是 ri 或 ti=1 时的中断,如果是 ri 或 ti=1 进入,那么我不明白那个定时器溢出是做什么的,只是设置传输速度吗?

    它以 RI 或 TI=1 输入。

    确实是设置传输速度。

    第二,进入中断时,第一条语句为ri=0; 表示在 ri=0 之前收到数字; 您是什么时候收到号码的?

    当对方发送,本地机器接收,并收集到所有位时,RI 为 1。

    在上面的 main 函数中,它是发送次数,所以没有写,a=subf; 接收数据,谁将微控制器接收到的号码发送给它,计算机?

    它是由“对方”发送的,对方,任何东西。 计算机、微控制器。 无论哪种方式。

    那么subf的内容是什么呢?

    是对方发的,内容是什么要看事先约定。

  4. 匿名用户2024-01-26

    首先,进入中断服务程序,必须已经发生了相应的中断,void ser() inturrupt 4 是串口中断服务程序,es=1 是打开串口中断,所以只有当串口接收或发送数据成功时,才会进入中断服务程序。 定时器中断不开启,所以定时器溢出时没有中断,也没有相应的中断服务程序供其使用。 定时器的初始值是设置串行通信速率。

    其次,串口接收到的数据中断是硬件层面的问题,暂时不能考虑软件。 至于谁把数据发给微控制器,就看谁接了微控制器的串口,串口接收到的数据一定要在subf中,这个数据代表什么就要看你的通信协议是怎么指定的了。

  5. 匿名用户2024-01-25

    串口收发一次,只有8位,即:0 255。

    0-65536,你是怎么发送的?

    串口通信,每次传输,只能是0 255。

    不要以为你可以转移 0 255,你可以用同样的方式转移 0 65536。

    这不可能。

    这个话题在互联网上流传,其实是误导性的。

    提出问题的人应该仍然不了解串行通信的基本方法,或者是故意误导。

    成功传输一个字节 (0 255) 后,您应该学习的下一件事是如何传输多个字节的数据。

    这方面的规则或协议是 Modbus。

    一般来说,一组数据应包括:

    1. 地址代码。

    2.功能代码。

    3.数据区。

    4.校验码(常用CRC校验)。

    使用这种方法,可以实现一对多串行网络通信,或多机通信。

    通信的内容不仅限于数据,还包括长字符串。

  6. 匿名用户2024-01-24

    法律实际上是:'0'-49,'1'-50,'2'-51,..

    在发送之前减去您发送的值'0'能;

    您可以一次发送两个数字,第一个数字是计数值,第二个数字是任意数字,然后您可以一次显示它。

    0 65535 数据可以拆分为 4 个字节并按顺序发送。

  7. 匿名用户2024-01-23

    1.使用串口调试助手。

    2.使用PC控制8952通过串口打开端口上的LED非常简单,例如只需发送0xfe内容,然后让P0=SubF关闭P0端口上的LED即可。

    3.如果要实现双工模式,请设置scon=0x50,即设任=1,4。如果要有语音提示,请在主程序的相应位置添加一个发音程序。

    希望以上内容对您有所帮助。

  8. 匿名用户2024-01-22

    我使用VB编程的PC程序如下:

    附录 A 上位机程序**。

    dim data as integer

    private sub form_keydown(keycode as integer, shift as integer)

    select case keycode

    case 37

    左" 0 '...清除输出寄存器。

    hex(1) '...发送数据。

    case 39

    右" 0 '...清除输出寄存器。

    hex(2) '...发送数据。

    case 38

    上" 0 '...清除输出寄存器。

    hex(3) '...发送数据。

    case 40

    下" 0 '...清除输出寄存器。

    hex(4) '...发送数据。

    end select

    end sub

    private sub form_load()= 3

    4800,n,8,1"

    true false end sub

    关于单片机接受程序不需要编写,它非常容易编辑,注意波特率是否一致,我的设计是用电脑键盘的箭头键来控制汽车前后左右运行可以稍微改变一下。

  9. 匿名用户2024-01-21

    r0=17h(17h)=37h a=cbh 执行 anl a,17h 为 83h 和 17h 以上,结果存储在 a 中,此时 biyuan a=03h

    执行 ORL 17h,A 是上觉醒的 34h 或 03h,结果存储在 (17h),它是 37h,A 仍然是 03h

    执行 XRL A,@r0是 37h 的 03h XOR,结果存储在 A 中,它是 34h,(17h) 仍然是 37h

    执行 CPL A 是否定 34 小时,结果存储在 A 中,即 CBH

  10. 匿名用户2024-01-20

    你没有把很多东西写清楚,是吗?

    1.您正在制作 MCU 和 bai

    电脑的串口用于通信?

    2.如果DU使用MCU的ZHI串口和电脑进行通信,硬DAO设备的连接是否正常? 您是否使用示波器查看计算机的数据波形?

    3.UART的通信协议、MCU软件都准备好了吗?

    4.如果单片机的通讯口硬件正确,单片机的软件也做好了,UART的通信速率是否正确?

    5.你的意思是微控制器无法接收计算机发送的数据,对吧? 如果您收到它,那么控制 LED 灯是一件简单的事情。

    串口助手有很多速率可以调节,你看你用什么速率,单片机用什么传输速率。

  11. 匿名用户2024-01-19

    您发布通信协议。 看。

相关回答
3个回答2024-06-11

89系列单片机串行通信有4种工作模式: >>>More

8个回答2024-06-11

1.您尝试先显示 num 变量以查看是否收到数据。 >>>More

28个回答2024-06-11

我认为你比任何人都多走了一步,而这一步是最重要的...... >>>More

7个回答2024-06-11

建议将 delay:mov r1,

最好将其更改为 delay:mov r1, 200。 >>>More

9个回答2024-06-11

首先,您需要了解点阵显示的原理。

8*8点阵应显示图片,通常以扫描的形式显示。 晶格内部发光阵列每一排的阴极连接在一起,形成一条共同的阴极线; 每个纵向阳极连接在一起,形成一条共同的正极线。 这样,8*8点阵共有8条共阴线和8条共阳线。 >>>More