(玩电子) 电子技术学习与研讨
当时方位:单片机教程网 >> 根底教程 >> 阅览文章

22课:单片机串行口通讯程序规划

作者:佚名   来历:本站原创   点击数:x  更新时刻:2007年08月14日   【字体:

1.串行口办法0运用编程 8051单片机串行口办法0为移位寄存器办法,外接一个串入并出的移位寄存器,就能扩展一个并行口。


<单片机串行口通讯程序规划硬件衔接图>

   例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状况。 串行口办法0的数据传送可选用中止办法,也可选用查询办法,不管哪种办法,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中止请求,在中止服务程序中发送下一帧数据,或许经过查询TI的状况,只需TI为0就持续查询,TI为1就完毕查询,发送下一帧数据。在串行接纳时,则由RI引起中止或对RI查询来确认何时接纳下一帧数据。不管选用什么办法,在开端通讯之前,都要先对操控寄存器SCON进行初始化。在办法0中将,将00H送SCON就能了。

-----------------单片机串行口通讯程序规划列子--------------------------

ORG 2000H

START: MOV SCON,#00H ;置串行口作业办法0

MOV A,#80H ;最高位灯先亮

CLR P1.0 ;封闭并行输出(避象传输过程中,各LED的"暗红"现象)

OUT0: MOV SBUF,A ;开端串行输出

OUT1: JNB TI,OUT1 ;输出完否

CLR TI ;完了,清TI标志,以备下次发送

SETB P1.0 ;翻开并行口输出

ACALL DELAY ;延时一段时刻

RR A ;循环右移

CLR P1.0 ;封闭并行输出

JMP OUT0 ;循环

阐明:DELAY延时子程序能用前面咱们讲P1口流水灯时用的延时子程序,这儿就不给出了。

二、串行口异步通讯

org 0000H

AJMP START

ORG 30H

START:

mov SP,#5fh ;

mov TMOD,#20h ;T1: 作业形式2

mov PCON,#80h ;SMOD=1

mov TH1,#0FDH ;初始化波特率(参见表)

mov SCON,#50h ;Standard UART settings

MOV R0,#0AAH ;预备送出的数

SETB REN ;答应接纳

SETB TR1 ;T1开端作业

WAIT:

MOV A,R0

CPL A

MOV R0,A

MOV SBUF,A

LCALL DELAY

JBC TI,WAIT1 ;假如TI等于1,则清TI并转WAIT1

AJMP WAIT

WAIT1: JBC RI,READ ;假如RI等于1,则清RI并转READ

AJMP WAIT1

READ:

MOV A,SBUF ;将获得的数送P1口

MOV P1,A

LJMP WAIT

DELAY: ;延时子程序

MOV R7,#0ffH

DJNZ R7,$

RET

END

    将程序编译经过,写入芯片,刺进试验板,用通读电缆将试验板与主机的串行口相连就能试验了。上面的程序功用很简单,便是每隔一段时刻向主机轮番送数55H和AAH,并把主机送去的数送到P1口。能在PC端用串行口精灵来做试验。串行口精灵在我主页上有下载。运转串行口精灵后,按主界面上的“设置参数”按钮进入“设置参数”对话框,按下面的参数进行设置。留意,我的机器上用的是串行口2,假如你不是串行口2,请自行更改串行口的设置。

   设置完后,按确认回来主界面,留意右边有一个下拉列表,应当选中“按16进制”。然后按“开端发送”、“开端接纳”就能了。按此设置,试验板上应当有两只灯亮,6只灯灭。我们能自行更改设置参数中的发送字符如55,00,FF等等,调查灯的亮灭,并剖析原因,也能在主界面上更改下拉列表中的“按16进制”为“按10进制”或“按ASCII字符”来调查现象,并仔细剖析。这关于我们了解16进制、10进制、ASCII字符也是很有优点的。程序自身很简单,又有注释,这儿就不详加阐明了。

三、上述程序的中止版别

org 0000H

AJMP START

org 0023h

AJMP SERIAL ;

ORG 30H

START:

mov SP,#5fh ;

mov TMOD,#20h ;T1: 作业形式2

mov PCON,#80h ;SMOD=1

mov TH1,#0FDH ;初始化波特率(参见表)

mov SCON,#50h ;Standard UART settings

MOV R0,#0AAH ;预备送出的数

SETB REN ;答应接纳

SETB TR1 ;T1开端作业

SETB EA ;开总中止

SETB ES ;开串行口中止

SJMP $

SERIAL:

MOV A,SBUF

MOV P1,A

CLR RI

RETI

END

本程序没有写入发送程序,我们能自行添加。

casino
宣布谈论】【告知老友】【保藏此文】【封闭窗口

文章谈论

m88 188bet uedbet 威廉希尔 明升 bwin 明升88 bodog bwin 明升m88.com 18luck 188bet unibet unibet Ladbrokes Ladbrokes casino m88明升 明升 明升 m88.com 188bet m88 明陞 uedbet赫塔菲官网 365bet官网 m88 help
188bet www.188bet.com bwin 平博 unibet 明升 188bet uk Ladbrokes 德赢vwin 188bet m88.com w88 平博88 uedbet体育 188bet 188bet 威廉希尔 明升体育app 平博88 M88 Games vwin德赢 uedbet官网 bodog fun88 188bet