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

📄 16c752.c

📁 ti的并转串设备16c752设备的使用。该程序经过验证过。
💻 C
字号:
#include "16c752.h"
void init_16c752()
{
    //------------------------------752A的设置-------------------------------------//
    //752A用于发送速度数据 
	* LCR_752A = 0x80; 
	//1000.0000
	//LCR.7=1时为设置波特率(DLL/DLM) LCR.7=0时为设置通用寄存器,
	* DLL_752A = 0x82;//82=9600,0b=115200,01=1.25M
	* DLM_752A = 0x00;
	//DLL中放置分频数的低八位;DLH存放高八位。
	* LCR_752A = 0x00; //LCR.7=1时为设置波特率(DLL/DLM) LCR.7=0时为设置通用寄存器,	
	* LCR_752A = 0x0B;
	//0000.1011
	//发送的数据是八位;
	* FCR_752A = 0x01;
	//0000.0001 
	//Enable the transmit FIFOS; 
    *MCR_752A = 0x08; //强制中断端为高 
    *IER_752A = 0x01; //接收有效数据时,产生中断。     


  //---------------------------------752B的设置-------------------------------------//  
  //75B用于发送原始数据
	* LCR_752B = 0x80; //LCR.7=1时为设置波特率(DLL/DLM) LCR.7=0时为设置通用寄存器,
	* DLL_752B = 0x01; //82=9600,16=57600,0b=115200,01=1.25Mbps	 
	* DLM_752B = 0x00;
	* LCR_752B = 0x00; //LCR.7=1时为设置波特率(DLL/DLM) LCR.7=0时为设置通用寄存器,	
	* LCR_752B = 0x03;
	* FCR_752B = 0x01;
	//--------------------设置752的发送缓冲区为空时产生中断-------------------------//
	  //若发送缓冲区为空,INT脚为高电平;若发送缓冲区不为空,INT脚为低电平.
    * MCR_752B = 0x08; //强制中断端为高	 
	* IER_752B = 0X02; //发送缓冲区为空时,产生中断。
    
}


void send_16c752A(unsigned char data)//THR_752A表示transmit holding register;
{
	* THR_752A=data;
}

void send_16c752B(unsigned char data)
{
	* THR_752B=data;
}

unsigned char receivd_16c752A()
{
	return * THR_752A;
}
unsigned char receivd_16c752B()
{
	return * THR_752B;
}

unsigned char check_16c752B()//check 函数的作用是:检查LSR寄存器的第一位是否为1。该位为1说明rxFIFO中有数据。
{
	int ck;
	ck=* LSR_752B;
	if((ck&1)==01)
		 return 0x55;
	else
		 return 0;	
}	
	
unsigned char check_16c752A()
{
	int ck;
	ck=* LSR_752A;
	if((ck&1)==01)
	 	return 0x55;
	else
	 	return 0;	
}	

⌨️ 快捷键说明

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