51;串口通信
时间:10-02
整理:3721RD
点击:
两年前开始学习单片机,也是从最简单的51开始。现在整理一些以前写的东西,给后来者学习,希望能帮到你们。有需要自己下载。
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar t,flag=0;
- void ser() interrupt 4
- {
- RI=0;
- P2=SBUF;
- t=SBUF;
- flag=1;
- }
- main()
- {
- TMOD=0x20; //选定定时器1工作方式2
- TH1=0xFD; //波特率9600
- TL1=0xFD;
- PCON=0x00; //SMOD=0
- SM0=0; //串口工作方式1 (01)
- SM1=1;
- TR1=1; //定时器中断启动
- REN=1; //允许串口接收
- EA=1; //开总中断
- ES=1; //开串口中断
- while(1)
- {
- while(!flag); //判断有无数据接收-有则向下执行
- flag=0;
- ES=0; //个人理解--将串口中断关闭,
- SBUF=t; //可发送数据,TI=1,但不会响应中断
- while(!TI);
- TI=0;
- ES=1; //开中断
- }
- //判断是否接收到串口通信
- //接收到后,RI=1,自动中断响应
- /* while(1)
- {
- while(!RI); //有串口数据到来,RI=1,跳出
- RI=0; //将RI重新置0
- P2=SBUF; //数据传入P2口,LED显示
- }*/
- }