实验原理及内容:
【实验要求】
用甲、乙两片单片机进行串口通信,在甲机设置一个开关,当甲机开关按下时,乙机的LED点亮。
1.新建一个文件夹,以名字拼音命名,将工程放到文件夹内。
2.画出仿真图,做出仿真效果。
【实验原理】
1.对IO口进行相应的硬件连接,通过判断相应的IO口电平是否被拉高来确定开关是否被按下,当开关按下时执行相应的程序。
2.原理图
3.程序设计思路
(1)硬件部分原理
开关一端接地,一端接入IO口,当IO口无输入时默认为低电平,开关按下后IO口电平被拉高,其相应寄存器位会变1,通过判断相应位是否为1来确定开关是否被按下。LED采用共阴接法,IO口输出高电平时LED亮。
(2)软件部分原理
①甲机程序用于将P1口的值发送到串口,在程序中,首先进行了一些初始化设置,包括设置定时器1为模式2,设置波特率为9600,设置串口为模式1(只发送数据),启动定时器1等。
②然后进入主循环,不断读取P1口的值,并将其发送到串口。通过将P1口的值赋给SBUF寄存器,可以将其发送到串口。在发送完成之前,程序会等待TI(发送完成标志位)为1,表示发送完成。然后将TI清零,以便下一次发送。
③乙机程序用于接收串口数据并将其显示在P0口。在程序中,首先进行了一些初始化设置,包括设置定时器1为模式2,设置波特率为9600,设置串口为模式3(发送和接收数据),启动定时器1等。
④然后进入主循环,不断等待接收完成。当RI(接收中断标志位)为1时,表示接收完成。然后将RI清零,以便下一次接收。接着,将接收到的数据从SBUF寄存器中读取出来,并将其显示在P0口。
(3)主程序流程
步骤1)未开关未按下时时,LED处于2熄灭状态
步骤2)检测开是否按下,向乙机LED点亮。
【实验内容与步骤】
一、程序注释
甲机程序
乙机程序
二、仿真和现象分析
开关断开
开关闭合
【总结】
在这次实验中,当闭合下开关时,乙机的LED没有任何反应,后面发现是甲乙机TX与TX、RX与RX连接到了一起,犯了最基本的错误,改正过来之后还是没有任何反应,在网上查找了资料,发现两机的波特率和其他参数的设置需要一致,以确保两个单片机之间能够正常进行数据的发送和接收,改变参数后可以实现功能。