80C51 串口通讯程序
- /* 名称:甲机发送控制命令字符
- 说明:甲单片机负责向外发送控制命令字符“A”、“B”、“C”,或者停止发送,
- 乙机根据所接收到的字符完成LED1闪烁、LED2闪烁、双闪烁、或停止闪烁。 */
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit LED1=P0^0;
-
- sbit LED2=P0^3;
- sbit K1=P1^0;
- //延时
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--) for(i=0;i<120;i++);
- }
- //向串口发送字符
- void Putc_to_SerialPort(uchar c)
- {
- SBUF=c;
- while(TI==0);
- TI=0;
- }
- //主程序
- void main()
- {
- uchar Operation_No=0;
- SCON=0x40;
- //串口模式1
- TMOD=0x20;
- //T1工作模式2
- PCON=0x00;
- //波特率不倍增
- TH1=0xfd;
- TL1=0xfd;
- TI=0;
- TR1=1;
- while(1)
- {
- if(K1==0) //按下K1时选择操作代码0,1,2,3
- {
- while(K1==0);
- Operation_No=(Operation_No+1)%4;
- }
- switch(Operation_No) //根据操作代码发送A/B/C或停止发送
- {
- case 0:
- LED1=LED2=1;
- break;
- case 1:
- Putc_to_SerialPort('A');
- LED1=~LED1;LED2=1;
- break;
- case 2:
- Putc_to_SerialPort('B');
- LED2=~LED2;LED1=1;
- break;
- case 3:
- Putc_to_SerialPort('C');
- LED1=~LED1;LED2=LED1;
- break;
- }
- DelayMS(100);
- }
- }
复制代码
Keil代码下载:
80C51串口通讯SLJ.rar
(31.91 KB, 下载次数: 20)
|