串口 51 通信
来源:互联网 发布:双轨制直销系统源码asp 编辑:程序博客网 时间:2024/05/02 01:21
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar Choice;
uchar IntFlagRec;
void DelayMS(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<10;i++);
}
void MyPutchar(uchar c)
{
TI = 0; //清发送中断标志位
SBUF = c; //发送字符
DelayMS(10); // 不延时将出错!!!!!!!!!!!!!!!
}
void MyPuts(uchar *s)
{
uchar temp;
temp = *s++;
while(temp != 0)
{
if (temp == '/n')
{
MyPutchar('/r'); //返回行首
}
MyPutchar(temp);
temp = *s++;
}
}
/*
*********************************************************************************************************
* SerialInit
* 函数标号 : 4
* 描述 : 初始化串口
*
* 参数(传入) : 无
* 参数(返回) : 无
*
*********************************************************************************************************
*/
void SerialInit(void)
{
SCON=0x50; //串口模式1,允许接收
TMOD=0x20; //T1工作模式2
TH1=0xfd; //波特率9600
TL1=0xfd;
PCON=0x00; //波特率不倍增
EA=1; //总中断开关打开
ES=1; //允许串口中断
TR1=1; //启动定时器1
}
void CmdRec(void) interrupt 4
{
if(RI)
{
RI=0; //清接收中断标志
IntFlagRec = 1;
Choice = SBUF; //得到用户选择
}
}
void MenuDisp(void)
{
MyPuts(" ******************* 欢迎来到MCU世界 ***********************/n");
MyPuts(" * 青岛理工大学 机械工程学院 测控技术与仪器 */n");
MyPuts(" * 车强 (cheqiang87@qq.com) */n");
MyPuts(" * 请输入您选择的服务 : [1-5] */n");
MyPuts(" * */n");
MyPuts(" * 1.休闲小游戏 */n");
MyPuts(" * 2.股市行情 */n");
MyPuts(" * 3.恋爱宝典 */n");
MyPuts(" * 4.我爱厨房 */n");
MyPuts(" * 5.作者简介 */n");
MyPuts(" **************************************************************/n/n");
}
void SvcFunc(void)
{
IntFlagRec = 0; //用户请求接受完毕,标志位清零。
switch (Choice)
{
case '1':
MyPuts("Service 1 loading.../n to be finished/n");
break;
case '2':
MyPuts("Service 2 loading.../n to be finished/n");
break;
case '3':
MyPuts("Service 3 loading.../n to be finished/n");
break;
case '4':
MyPuts("Service 4 loading.../n to be finished/n");
break;
case '5':
MyPuts("服务5 载入中..../n");
MyPuts("作者简介:/n");
MyPuts(" :爱好C/C++ TCP/IP GUI UCOS LINUX 单片机 DSP ARM。/n");
MyPuts(" 期望工作地点,无特殊要求。/n");
MyPuts(" 邮箱,cheqiang87@qq.com/n");
break;
default:
MyPuts(" 请选择服务 : [1-5]/n");
break;
}
}
void main()
{
SerialInit();
MenuDisp();
while(1)
{
if(IntFlagRec) //如果有用户向52发送命令
SvcFunc(); //,则处理
}
}
- 串口 51 通信
- 串口 51 通信
- 串口 51 通信
- 串口 51 通信
- 串口 51 通信
- 51单片机串口通信
- 51单片机串口通信
- 51单片机 串口通信
- 51串口通信
- 51串口通信篇
- 51单片机 串口通信 中断
- 51串口通信 C程序
- MCS-51之串口通信
- 51 串口通信程序
- 51单片机串口通信实例
- 51单片机 UART串口通信
- 51单片机的串口通信
- 51串口通信C封装
- String与StringBuffer的理解分析
- android中viewStub,merge,include,requestFocus标签介绍
- android逆向APK
- [{}]排序
- 串口 51 通信
- 串口 51 通信
- (原创)关于Arch安装非用ADSL不可的解决过程
- Java获取IP地址:request.getRemoteAddr()警惕
- Java中的23种设计模式
- falagard skinning ssytem for CEGUI 参考手册翻译(2)
- 123
- AS3 StringTokenizer
- 123
- Carbide C++ 改uidesign会把代码也改了