呵呵,这个星期在看串行通行的东西!!
看了大量的这类书,对RS232,uart,等等有了一个相对明白的了解。
我的宗旨是:先了解后动手!! 哈哈。。。又在扯闲话了。。
今天讲的是两片89c51做单工数据发送。。(这是我第一次玩两片单片机!!嘻嘻)
好了。。说正题。。
功能说明: 一片89c51读入P1指拨开关的数据载入SBUF,然后经由TXD将次数据传送到第二片89c51的RXD中。当第二片接收到数据存入SBUF时,再由SBUF载入累加器,并输出使其相应的LED亮。。
恩。。下面是两片单片机中要烧入的程序。。
第一片: ORG 00H
AJMP START
ORG 30H
START: MOV SP,#60H
MOV SCON,#50H
MOV TMOD,#20H
MOV TH1,#0E6H
SETB TR1
MOV 30H,#0FFH
SCAN0: MOV A,P1
CJNE A,30H,KEYIN
AJMP SCAN0
KEYIN: MOV 30H,A
MOV P2,A
MOV SBUF,A
WAIT: JBC TI,SCAN0
AJMP WAIT
END
第二片: ORG 00H
AJMP START
ORG 30H
START: MOV SP,#60H
MOV SCON,#50H
MOV TMOD,#20H
MOV TH1,#0E6H
SETB TR1
SCAN0: JB RI,UART
AJMP SCAN0
UART: MOV A,SBUF
MOV P1,A
CLR RI
AJMP SCAN0
END
我来给大家说明下!!!
其实我个人认为串口通信在写程序方面还是相对简单点的。。 无非就是对PCON,SCON,TMOD,等专用寄存器进行初始化。。。然后进行数据的传送。。要了解这个过程,首先在第一片单片机的P1口采集数据,通过A送到SBUF中,然后通过TXD传送到第二片单片机中去。也是通过SBUF送到A中在送到P1口。。数据显示。。
这个里面有个很重要的寄存器SBUF。。大家要很好的利用它。。
串行通信的难点。。我个人觉得就是扩展。。象串行输出口扩展就要用到74164。串行输入口扩展就要用到74166。。还要用到RS232 CARD等。。。
弄清楚这些芯片花 了我很多时间。。但是让我学到了很多。。!!
呵呵。。。 我希望对单片机爱好的人,不要放弃。。。坚持下去就能成功!!
在这里我要提下王小明,他真的很不错。。。这几天,修修改改终于把CEPARK 51实验板终于修好了。。。 希望他能继续努力!!!!
文章评论(0条评论)
登录后参与讨论