#include "reg52.h" #include <string.h> unsigned char idata RevBuffer[30]; bit CmdValid; void iccardcode() { unsigned char cmd; cmd = RevBuffer[0];//获取命令 switch(cmd) { case 1: //判断命令 P1=0XFB; break; case 2: //判断命令 P1=0XF7; break; case 3: //判断命令 P1=0XF0; break; } } ///////////////////////////////////////////////////////////////////// //系统初始化 ///////////////////////////////////////////////////////////////////// void InitializeSystem() { P0 = 0xFF; P1 = 0x7F; P3 = 0xFF; PCON = 0x80; //设置波特率加倍 此时波特率为19200bps SCON = 0x70; TMOD = 0x20; //定时器1作为波特率发生器; TH1 = 0xfd; // 11.0592M晶振 在波特率不加倍情况:9600pbs // 波特率 加 倍情况:19200bps TL1 = TH1; TR1 = 1; // 启动定时器T1 即波特率发生器 EA=1; //开总中断 ES = 1; //开串口中断 CmdValid=0; //设置接收消息标记 } ///////////////////////////////////////////////////////////////////// //用T2做延时子程序 ///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // 接收和发送中断 /////////////////////////////////////////////////////////////////////// void isr_UART(void) interrupt 4 using 1 { unsigned char len, i; unsigned int j=0; /********************************************* //把接收到的第一个字符作为数 据 的 长度len, // //在短时间内再连续发送len个字节赋给RevBuffer // //加入最后i的值等于len的值,说明接收数据正确 // **********************************************/ if(RI) { len=SBUF; RI=0; for(i=0;i<len;i++) { while(!RI) { j++; if(j>1000) { break; } } if(j<1000) { RevBuffer[i]=SBUF; RI=0; j=0; } else { break; } } if(i==len) { CmdValid=1; P1=0X00; } } } void main( ) { InitializeSystem( ); while (1) { if (CmdValid) { CmdValid = 0; if(RevBuffer[0]==0x11) //判断命令 { P1=0XFE; } else if(RevBuffer[0]==0x13) //判断命令 { P1=0XFD; } else { iccardcode(); } } } }
相关推荐
单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 单片机串行通信发射机单片机 ...
基于51单片机的双机串行通信设计 【摘要】串行通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一 个系统,实现双片单片机串行通信。通信的结果实用数码管进行显示,数码管采用查表 方式显示。两个...
单片机串行通信实验报告.doc
单片机串口通信是单片机非常好用的一项功能,可以和电脑和其他的单片机进行通信和交换数据从而达到某种效果。近期我们做了个程序:利用单片机串口通信编译一个程序在打开时向电脑发送问候语“hello”,然后电脑输入...
单片机Proteus实例 串口通信(电路图 仿真程序 电路)单片机Proteus实例 串口通信(电路图 仿真程序 电路)单片机Proteus实例 串口通信(电路图 仿真程序 电路)单片机Proteus实例 串口通信(电路图 仿真程序 电路)...
Labview与单片机进行串口通信
单片机双机串行通信多数据传输汇编语言编程实现.pdf
串行通信是计算机进行数据通信的一种主要方式之一,而单片机通信主要采用串行通信。这也就引导我们向这方面发展,以至有了单片机的双机通信,多机通信,单片机与PC机的通信等。单片机通信是一个值得我们不断研究探讨...
两个单片机之间实现串口通信c语言开发
单片机串行通信发射机 单片机串行通信发射机 单片机串行通信发射机
单片机串口通信是单片机重要的应用,也是实现多单片机通信的关键
利用VB实现计算机与单片机的串口通信 利用VB实现计算机与单片机的串口通信 利用VB实现计算机与单片机的串口通信 利用VB实现计算机与单片机的串口通信
113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口...
大学本科生毕业论文 《单片机串行通信在双机通信中的应用》开题报告
很好用的51串口通信计算器 单片机51串口通信计算器
单片机扩展串行通信论文资料
从一个单片机发送5个给另一个单片机,另一个单片机接收到后完成数据相加,并通过数码管显示出来,要求所有数据为十进制格式。
一步 教你51_PC串口通信 实现单片机串行通信的c语言程序
单片机串行通信发射机单片机串行通信发射机单片机串行通信发射机单片机串行通信发射机单片机串行通信发射机
9. PC和单片机的串行双工通信 1)利用串口设计4位静态数码管显示器,要求4位显示器上每隔1s交替显示“0123”和“4567”。 2)完成PC和单片机的串行双工通信,单片机的P1口接一共阴极数码管,阴极接地。要求PC键盘每...