⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex8-4.c

📁 《增强型8051单片机实用开发技术》例程代码
💻 C
字号:
#include "stc12c5a.h"      //包含STC12C5A60S2寄存器定义文件
#include "intrins.h"
#define RELOAD_COUNT 0xfb   //18.432MHz,12T,SMOD=0,9600bps
sbit MCU_Start_Led  =  P1^4;
unsigned char array[9]={0,2,4,6,8,10,12,14,16};
void UART_send(unsigned char i);
void delay(void);
void display_MCU_Start_Led(void);
void main(void)
{
	unsigned  char i;
	//串口初始化
	SCON = 0x50;   	//0101,0000   8位可变波特率,无奇偶校验位
	BRT = RELOAD_COUNT;
	AUXR = 0x11;	// BRTR = 1,启动独立波特率发生器
					// S1BRS = 1,串口1选择独立波特率发生器作为波特率发生器
	ES = 1;    		//允许串口中断
	EA = 1;    		//开总中断
	display_MCU_Start_Led();  	//点亮发光二极管表示单片机开始工作
	UART_send(0x34);            //串口发送数据表示单片机串口正常工作
	UART_send(0xa7);            //串口发送数据表示单片机串口正常工作
	for(i = 0;i<9;i++)
		UART_send(array[i]);
	while(1);
}
void UART_send(unsigned char i)
{
	ES = 0;  			//关串口中断
	TI = 0;  			//清零串口发送完成中断请求标志
	SBUF = i;
	while(TI ==0);    	//等待发送完成
	TI = 0;  			//清零串口发送完成中断请求标志
	ES = 1;  			//允许串口中断
}
void delay(void)
{
	unsigned int g,j;
	for(j=0;j<5;j++)
	{
		for(g=0;g<50000;g++)
		{
            _nop_();
            _nop_();
            _nop_();
		}
	}
}
void display_MCU_Start_Led(void)
{
    unsigned  char i;
    for(i=0;i<5;i++)
    {
        MCU_Start_Led   =   0;  //点亮MCU开始工作指示灯
        delay();
        MCU_Start_Led   =   1;  //熄灭MCU开始工作指示灯
        delay();
    }
}
void UART_Receive(void) interrupt 4
{
	unsigned char k;
	if(RI==1)
    {
		RI=0;
		k=SBUF;
		UART_send(k+1);
    }
    else
        TI=0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -