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

📄 ad16main.c

📁 ad976的驱动源代码
💻 C
字号:
#include <my.h>

sbit ff_i=p1^0;
sbit int_0=p3^2;                            //中断位
sbit rst=p1^2;
#define px XBYTE[0x0301]                     //fifo的读写端口
#define ef XBYTE[0x0302]

#define id_modulname0 0x03                   //16位AD的板号;15H
#define id_modulname1 0x03
#define id_modulname2 0x00
#define id_modulname3 0x00

#define modulname0 XBYTE[0x0300]              //板号的端口号

data unsigned char name0;                     //存放板号
data unsigned char name1;
data unsigned char name2;
data unsigned char name3;

void delay_ms(unsigned char ms_number)
{
unsigned int  i;
unsigned char j;
for(j=0;j<ms_number;j++)
for(i=0;i<558;i++);
}
void delay_100ms(unsigned char number)
{
unsigned char i;
for (i=0;i<number;i++)
{
delay_ms(100);
}
}

void send_char(unsigned char temp)
 /*往串口发送一个字符  */
{
// ea=0;
 sbuf=temp;
 while(!ti);
 ti=0;
// ea=1;
}


void serial_init()
{/*串口初始化    */
 serial_baud_9600;
 serial_uart_8; /*工作方式为8位数据   */
 //serial_receive_enable;/*允许接收*/
 //ti=1;

}
   void interrupt_init(void)
   {
     //timer2_interrupt_disable;
     timer0_interrupt_disable;
     timer1_interrupt_disable;
     int0_interrupt_disable;
     int1_interrupt_disable;
     //serial_priority_high;
     serial_interrupt_disable;
     //int0_mode_hightolow;
     //int0_priority_high;
   }


void read_fifo()                        //读取fifo程序
{ unsigned char temp2;
 //delay_ms(1);
 temp2=px;
 send_char(temp2);
 }

void wr_fifo(unsigned char temp1)        //写fifo程序;
 {
  px=temp1;
 }

 unsigned char read_ef()                  //读取fifo空标志位,如果空返回值为0;
{unsigned char temp1;
 temp1=ef;
 //send_char(temp1);
 if(temp1&0x04)
 return (1);
 else
 return (0);
 }


/*unsigned char IsExist_MODULNAME()
{			//判断接口板是否存在的函数,板号正确返回值为1;
    name0=modulname0;
    name1=modulname1;
    name2=modulname2;
    name3=modulname3;
   if (name0==id_modulname0&&name1==id_modulname1&&name2==id_modulname2&&name3==id_modulname3)
		return 1;
	else	return 0;
}
*/

void main(void)
{ unsigned char temp,i;
 sp=0x60;
serial_init();
interrupt_init();
//send_char(0x10);
temp=modulname0;
send_char(temp);
wr_fifo(0x55);
wr_fifo(0x0);
wr_fifo(0x0);
wr_fifo(0x0);
wr_fifo(0x0);
wr_fifo(10);
wr_fifo(0xff);
 while(1)
{
while(read_ef())
{delay_ms(1);
 i=px;
 send_char(i);
 }
 delay_ms(200);
}
 }

⌨️ 快捷键说明

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