您的位置 首页 电路

单片机学习之十九:串行通讯程序-单片机接纳

一、实验现象:当电脑向单片机发送一个数据后,P0口发生灯光变换。二、实验任务分析:这个试验我们仍然采用方式1来完成。在上一个试验的通…

一、试验现象:

当电脑向单片机发送一个数据后,P0口产生灯火改换。

二、试验使命分析:

这个试验咱们依然选用办法1来完结。在上一个试验的通讯理论介绍中,咱们知道,当单片机承受到一帧信号后,会置位串行口承受中止标志RI,然后向单片机请求中止。假如单片机敞开中止,就会进入中止服务程序,咱们就把灯火改变的使命放到中止程序中来完结即可。

当然,这个试验功用的完结不只是这么一种办法。咱们还能够选用在主程序中查询RI的办法来完结。这个试验咱们就分别用这两种办法来现它。相同,在这个试验中,咱们也使用串口调试帮手来完结向单片机发送数据的进程。详细设置办法可见下图:

三、试验程序

1、 中止办法完结

org 0000h

ajmp main

org 0023h ;串行口中止进口地址

ajmp serial ;跳转至中止服务程序

main: clr p1.5

mov p0,#55h ;让8个led从右到左依次为亮、灭(留意跳线jmp0置于12)

mov scon,#50h ;单片机作业于办法1,能够承受数据

mov tmod,#20h ;T1设置为作业办法2

mov tl1,#0f3h ;依照波特率为2400核算初值

mov th1,#0f3h ;把计数初值送入常数缓冲器

mov pcon,#80h ;smod=1,波特率变成4800

setb tr1 ;发动守时器T1开端守时

setb ea ;cpu敞开中止

setb es ;敞开串行口中止

ajmp $ ;等候中止

serial: clr ea ;cpu封闭中止

clr ri ;铲除串口承受中止标志

mov a,p0

cpl a

mov p0,a ;p0口灯火改变

setb ea ;cpu敞开中止

reti ;回来主程序,等候下一次呼应中止

end

2、 查询办法完结:

org 0000h

ajmp main

main: clr p1.5

mov p0,#55h ;让8个led从右到左依次为亮、灭(留意跳线jmp0置于12)

mov scon,#50h ;单片机作业于办法1,能够承受数据

mov tmod,#20h ;T1设置为作业办法2

mov tl1,#0f3h ;依照波特率为2400核算初值

mov th1,#0f3h ;把计数初值送入常数缓冲器

mov pcon,#80h ;smod=1,波特率变成4800

setb tr1 ;发动守时器T1开端守时

wait: jnb ri,wait ;假如中止位是0,表明信息没有发送结束,等候

clr ri ;铲除中止位

mov a,p0

cpl a

mov p0,a ;p0口灯火改变

ajmp wait

end

把上面的程序下载到测验板上,然后在串口调试帮手中随意写入一个数据,每一次按下串口调试程序中的手动发送按键,就会发现led的灯火产生改变。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/266884.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部