思考题:单片机与单片机之间进行串口通信,实现基于方式1的单工通信,发送方以一定波
特率发一串有效数据,接收方接收后送P1口通过LED灯显示。
(1) 单片机发送代码:
#include
#define uchar unsigned char uchar a;
void uartinit() {
//设置波特率 9600,11.0592. TMOD=0X20; TH1=0XFD; TL1=0XFD; TR1=1;
//设置串行口,方式1。SM0SM1=01; EA=1; ES=1;
SCON=0X40; }
//延时函数
//void delay(uchar z) //{
//uchar m,n;
//for(m=z;m<20;m++) // for(n=0;n<20;n++); //}
//发送函数
void send(uchar dat) {
SBUF=dat; while(!TI); TI=0; }
//主函数 void main() {
uartinit(); while(1) {
a=P1; send(a);
} }
(2) 单片机接收代码
#include
#define uchar unsigned char uchar flag; void uartinit() {
//设置波特率 9600,11.0592. TMOD=0X20; TH1=0XFD; TL1=0XFD; TR1=1;
//设置串行口,方式1。SM0SM1=01; EA=1; ES=1;
SCON=0X50; }
//接收函数
void receive()interrupt 4 {
P1=SBUF; flag=1; }
//主函数 void main() {
uartinit(); while(1) {
if(flag==1) {
RI=0; }
flag=0; } }
(3) 电路图
四、 小结与体会
通过此次串行通信实验,使我初步了解了单片机串行口的工作原理.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库串行通信实验,南京理工大学紫金学院单片机实验报告(2)在线全文阅读。
相关推荐: