极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10352|回复: 3

新手请教串口通讯问题

[复制链接]
发表于 2014-1-13 15:00:05 | 显示全部楼层 |阅读模式
我想用STC单片机实现,通过上位机串口发送数据给单片机,单片机直接使用该数据传送到P1口,比如说我在上位机发生“0000 0000”到单片机,那么单片机就直接把“0000 0000”传说到P1口,点亮LED灯,程序如下,就是达不到效果,很不解,新手求助,谢谢!

ORG 0000H
START:MOV SCON ,#00H ;初始化串口工作方式
MOV A,#0FFH ;点亮Led条件是单片机输出低电压

OUT0:
MOV P1,A   


SCAN01:
MOV A,SBUF
MOV R0,A
;CJNE R0,#0FFH,START  ;立即数0FFH与寄存器R0比较,如果不相等,则跳转到程序开头
LCALL DELAY     

DELAY:           
MOV P1,A
DELAY100MS:                        ;@12.000MHz,100毫秒
        NOP
        NOP
        NOP
        PUSH 30H
        PUSH 31H
        PUSH 32H
        MOV 30H,#4
        MOV 31H,#166
        MOV 32H,#207
NEXT:
        DJNZ 32H,NEXT
        DJNZ 31H,NEXT
        DJNZ 30H,NEXT
        POP 32H
        POP 31H
        POP 30H
        RET
LCALL SCAN01


END
回复

使用道具 举报

发表于 2014-1-13 15:49:43 | 显示全部楼层
1.最好直接使用c语言写程序,单片机汇编效率太低

2.检查你串口电压......前几天我刚被这个问题困扰过......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 18:53:07 | 显示全部楼层
zoologist 发表于 2014-1-13 15:49
1.最好直接使用c语言写程序,单片机汇编效率太低

2.检查你串口电压......前几天我刚被这个问题困扰过... ...

谢谢提醒,想想真的很有可能是电压问题,因为是直接在USB取电,所以会造成串口连接时候电压过低
回复 支持 反对

使用道具 举报

发表于 2014-1-13 23:00:35 | 显示全部楼层
本帖最后由 风之紫 于 2014-1-13 23:04 编辑

MOV A,SBUF这里不对,应该要查询接收标志RI是否置位来确定是否接收到数据;还有你的上下位机的串口参数(波特率,数据位、stop位、是否校验)设置是否一样?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 01:18 , Processed in 0.038335 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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