📄 sm2b.c
字号:
#include <SM2B.h>
#include <c8051F020.h>
//****************系统时钟初始化****************//////
void SYSCLK_Init(void)
{
int i;
//启用外部振荡器
OSCXCN=0x67;
//等待振荡器起
for(i=0;i<256;i++);
//等待振荡器稳定
while(!(OSCXCN&0x80));
//允许时钟丢失检测器,选择外部时钟作为系统时钟
OSCICN=0x88;
}
//******************UART0用定时器1作为波特率发生器,串口工作在方式1
void UART0_Init(void)
{
//设定波特率
TMOD=0x20;
TH1=-SYSCLK/BAUDRATE/16;
TL1=-SYSCLK/BAUDRATE/16;
TR1=1;
CKCON|=0x10;
//串行口工作在方式1
SCON0|=0x50;PCON|=0x80;
// 关闭串口中断
IE&=0xEF;
}
//初始化端口
void Port_Init(void)
{
XBR0=0x0c;
XBR1=0x14;
XBR2=0x46;
P0MDOUT=0xe5;
P1MDOUT=0xc4;
P2MDOUT=0xff;
P3MDOUT=0xff;
P0|=0x1a;
P1|=0x3b;
}
// 串口接收一个字节查询方式工作
//100ms内接收到字节
void GetPkgByte(unsigned char *Tranchar1)
{
while(RI0==0);RI0=0;
*Tranchar1=SBUF0;
}
//发送一个字节的数据
void SendPkgByte (uchar Tranchar)
{
SBUF0=Tranchar;
while(TI0==0);
TI0=0;
}
///串口接收一个数据包包数据放在cmd指针指向
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -