打印

LPC900 单片机与电脑串口通信测试

[复制链接]
2182|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxintian|  楼主 | 2009-9-8 17:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想把LPC900和电脑联机测试串口通信,循环输出数据“0-15”,同时让LED亮灭,时间间隔15s左右。灯的工作正常就是没有正确的输出数据,有输出是“《”符号。请各位大侠帮忙分析分析????


;///变量定义
    HZ_STAT     BIT   P0.0         ;烟雾传感器输出信号连接 P89LPC922的P0.0(1)脚
    HZ_LED      BIT   P1.6         ;报警指示灯
    HZ_MODULE   BIT   P1.4         ;控制短信模块电源
;~~~PROGROM程序
    org   0000H
    ajmp  MAIN
    org   0100H
;~~~ 主程序开始
MAIN:
    mov   SP,#60H
    anl   P0M1,#0FEH          ;I/O口配置
    anl   P0M2,#0FEH
    mov   P1M1,#00H
    mov   P1M2,#50H
    mov   P0,#0FFH
    mov   P1,#0AFH
    acall UART_INT
WATCH:
    jnb   HZ_STAT,$
    setb  HZ_MODULE
    setb  HZ_LED
HZ_BAOJING:
acall SEND_DATA        ;发送报警短信息
acall DELAY
cpl   HZ_LED
ajmp  HZ_BAOJING

;=============串口初始化
UART_INT:
    mov   PCON,#00H
    mov   SSTAT,#00H
    mov   SCON,#40H           ;串口模式1,接收使能
    mov   BRGCON,#00H
    mov   BRGR1,#04H          ;波特率9600bit/s
    mov   BRGR0,#70H
    mov   BRGCON,#03H         ;启动UART的波特率发生器
    ret
;********************************************
; 名称:     SEND_DATA
; 功能:     通过 UART 连续发送 16 字节数据(0~15)
; 入口参数 无
; 出口参数 无
; 注意:     此程序采用查询方式发送  
;********************************************
SEND_DATA:
    MOV     R7,#10H
    CLR     TI
    CLR     A
SEND_DL1:
    MOV     SBUF,A
    JNB     TI,$                ;等待一字节发送完毕
    CLR     TI
    INC     A
    DJNZ    R7,SEND_DL1
    RET
;=============延时子程序
DELAY:
MAIN_L0:   MOV    R3,#10
MAIN_L1:   MOV    R7,#60
MAIN_L2:   MOV    R6,#0
MAIN_L3:   MOV    R5,#0
           DJNZ   R5,$
    DJNZ   R6,MAIN_L3
       DJNZ   R7,MAIN_L2
    DJNZ   R3,MAIN_L1
       ret
end

相关帖子

沙发
lxintian|  楼主 | 2009-9-8 17:36 | 只看该作者
发送数据部分程序有问题吗,还是哪里设置的不对?

使用特权

评论回复
板凳
不爱说话| | 2009-9-9 08:22 | 只看该作者
你发的是二进制数的0~15,而一般串口调试程序默认显示的是ASCII数据,你把串口调试工具改为显示二进制数(或者叫hex显示)再看看。

使用特权

评论回复
地板
lxintian|  楼主 | 2009-9-9 09:53 | 只看该作者
终于有人答复了,谢谢3楼的。HEX是十六进制吧,那只是显示方式不同,并不影响显示的正确与否,是这样吧?

使用特权

评论回复
5
lxintian|  楼主 | 2009-9-9 10:04 | 只看该作者
我在用伟福单步运行的时候发现程序执行MOV     SBUF,A后,并没有把A中的数据给SBUF,这是怎么回事呢,程序无正常输出与这有关系吗?

使用特权

评论回复
6
不爱说话| | 2009-9-9 13:17 | 只看该作者
对,只是显示的方式不同。
我没用过仿真器,不知道单步运行和正常执行有什么区别。

使用特权

评论回复
7
lxintian|  楼主 | 2009-9-9 15:09 | 只看该作者
谢谢了,今天一天还没有什么进展真是愁死我了

使用特权

评论回复
8
lxintian|  楼主 | 2009-9-12 17:27 | 只看该作者
太冷清了

使用特权

评论回复
9
hng1123| | 2009-9-12 17:32 | 只看该作者
我想要些C语言的程序,拜托了。

使用特权

评论回复
10
lxintian|  楼主 | 2009-9-15 12:34 | 只看该作者
不好意思我用的汇编,不过从网上搜的大部分都是C程序呀,你应该可以找到的!
补充一句我的问题已经解决了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

74

帖子

1

粉丝