资源说明:串口通信程序,附带详细说明!
//程序功能:接收串口发过来的字符,当字符分别为12345的时候分别返回OKMCU字母,当为其他字符的时候,把接收内容返回。
#include
#include //内部包含延时函数 _nop_();
typedef unsigned char u8;
typedef unsigned int u16;
sbit SER_595 =P1^0; //串行数据输入
sbit SCK_595 =P1^1; //移位时钟脉冲
sbit RCK_595 =P1^2; //输出锁存器控制脉冲
u8 i,j,k;
u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u8 temp,buf;
//u8 disbuf[2]={0x00,0x00};
void sdelay(u8 n) //延时程序
{
u8 i;
for(i=n;i>0;i--);
}
/*******************************************************
* *
* 驱动函数 595 *
* *
*******************************************************/
void smg595(u8 byte)
{
u8 num,c;
num=byte;
for(c=0;c<8;c++)
{
SCK_595=0;
num=num<<1;
SER_595=CY;
SCK_595=1;
}
for(c=0;c<8;c++)
{
SCK_595=0;
SER_595=0;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;
}
void dis8(u8 r,u8 c) //数码管显示程序(第c个数码管显示r)
{
smg595(~(1<>4,6);
}
/**********************************************************
* *
* 主程序 *
* *
**********************************************************/
main()
{
SCON=0x50; //串口模式1,允许接收;SM0 SM1 = 01; REN=1;
T2CON=0x30; //定时器T2作为波特率发生器
EA=1;
ES = 1; //允许串口中断
RCAP2H=0xFF;
RCAP2L=0xDC; //波特率9600
TH2=0xFF;
TL2=0xDC;
TR2=1; //启动定时器 T2
while(1)
{
play();
}
}
/*********************************************************/
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。