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

📄 模拟中断fa.c

📁 I/O口模拟串口(利用中断
💻 C
字号:
#include<STC12C5410AD.H>
sbit clk=P1^2; //时钟线
sbit BT_SND=P1^0;//发送线
int b,z,d;
unsigned char a,c;
#define F_TM F0 
sbit ACC0=   ACC^0;
sbit ACC1=   ACC^1;
sbit ACC2=   ACC^2;
sbit ACC3=   ACC^3;
sbit ACC4=   ACC^4;
sbit ACC5=   ACC^5;
sbit ACC6=   ACC^6;
sbit ACC7=   ACC^7;


/******************进入定时器0********************/
void IntTimer0() interrupt 1
{
 	
 		clk=0;
		F_TM=1;
	
}

 
/***************定时器0初始化***************/
void init()
{
	//TMOD=0x02;
	TH0=(256-10);
    TL0=TH0;
	EA=1;
	ET0=1;
}





/***********串口通讯设置**************/
void cksz()
{	
    //PCON=0x80;//设置波特率为19200  若想变成9600删除此行即可
	AUXR=0x20;
	TMOD=0x22; //波特率设置
	TH1=0xfd;
	TL1=0xfd;
	TR1=1;

	REN=1;//工作方式设置
	SM0=0;
	SM1=1;
	EA=1; //开启中断
	ES=1;
}							   

/**************发送**********************/
void sed(unsigned char inch)
{
		ACC=inch;
		clk=1;
		F_TM=0;
		BT_SND=0; //start bit 
		TR0=1; //启动
		while(!F_TM);
		
		BT_SND=ACC0; //先送出低位
		clk=1;
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC1;
		clk=1; 
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC2;
		clk=1; 
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC3;
		clk=1; 
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC4;
		clk=1; 
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC5; 
		clk=1;
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC6; 
		clk=1;
		F_TM=0;
		while(!F_TM);
		
		BT_SND=ACC7; 
		clk=1;
		F_TM=0;
		while(!F_TM);
		
		BT_SND=1;
		clk=1;
		F_TM=0;
		while(!F_TM);
    	TR0=0; //停止timer
  		clk=1;
}




/********************主函数**************/
void main()
{
   	init();
	cksz();
	z=0;
	b=0;
	while(1)
	{ 
	if(b==1)

		{  b=0;
		   
		   sed(a);
		 }	
	}

}

void time4() interrupt 4
{
	    RI=0;
	
		a=SBUF;
	
		if(a=='~')
		{
		z=1;
		}
		if(z==1)
		{
			b=1;
		}
	
		
		
}

⌨️ 快捷键说明

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