📄 fasong.c
字号:
#include <c8051f020.h>
#define BYTE unsigned char
#define WORD unsigned int
//#define BAUD_RATE 9600
//#define SYSCLK 2000000
//#define TIME_COUNT SYSCLK/BAUD_RATE/16 //13=d
BYTE idata txdata[32]={"a+40.00ba-40.00ba-40.00ba+40.00b"};
void SYSCLK_Init(void)
{
int j;
OSCXCN=0x67; //启动外部振荡器 22.1184mhz
for(j=0;j<256;j++); //等待振荡器起振
while(!(OSCXCN & 0x80)); //等待晶体振荡器稳定
OSCICN=0x88;
//OSCICN=0x14; //选择内部振荡器,2MHz
//OSCXCN=0x00; //禁止外部振荡器
}
void BO_Out ()
{
XBR0 = 0x04;
XBR1 = 0x00;
XBR2 = 0x40;
}
void Serial_Out()
{
BYTE i;
WORD j;
OSCICN=0x14; //配置内部振荡器是2MHz
OSCXCN=0x00; //不选外部振荡器
CKCON=0x20; //使用定时器2
T2CON=0x30; //用定时器2作UART0的波特率发生器
RCAP2H=0xFF;
RCAP2L=0xFA; //波特率是9600
PCON|=0x80;
SCON0=0x40; //配置UART0为方式1,禁止接收 ;允许接收 0x50 182 page
//IE=0x10;
TI0=0;
//清除UART接收 发送完成标志
TR2=1; //启动定时器2
for(i=0;i<32;i++)
{
SBUF0=txdata[i];
while (TI0==0);
TI0=0;
for(j=0;j<1000;j++); //延时
}
for(j=0;j<9000000;j++); //延时
//for(j=0;j<9000000;j++); //延时
//for(j=0;j<9000000;j++); //延时
//for(j=0;j<9000000;j++); //延时
}
void main()
{
//SYSCLK_Init();
BO_Out ();
Serial_Out();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -