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

📄 ad.c

📁 CC2420+PIC单片机基础实验代码、CC2420无线收发实验代码
💻 C
字号:
#include<p18f4620.h>


void initial()
{
	INTCON=0x00;			//bit7-bit0:关总中断 */
	ADCON1=0X07;			//* 设置数字输入输出口 */	
	PIE1=0;	
	PIE2=0;		
}

/* ****************************************************************
** 函 数 名: sciinitial()
** 功能描述: 232串行通讯初始化子程序,设置低优先级中断接收,使能232收和发
*************************************************************** */
void EUSART_Init()
{
	TXSTA=0xa4;			//选择异步高速方式传输8位数据
	RCSTA=0x90;			//允许串行口工作使能,
	BAUDCON=0x00;
	TRISC=TRISC|0X80;	//将RC7(RX)设置为输入方式
	TRISC=TRISC&0Xbf;	//RC6(TX)设置为输出
	SPBRG=25;			//4M晶振时波特率为25
}
void sent_ch(unsigned char d)
{
	PIR1bits.TXIF=0;		//清发送接收中断标志位
	TXREG=d;			// 返送接收到的数据
	Nop();
	while(TXSTAbits.TRMT==0);
}

void AD_Init()
{
	ADCON1=0x0d;	//参看电压为VCC~GND,配置IN0和IN1
	ADCON2=0xA6;	//AD结果右对齐,8个TAD,Fos/64
	ADCON0=1;		//启动AD
	PIR1bits.ADIF=0;	//清标志
	TRISAbits.TRISA0=1;	//RA0和RA1模拟输入
	TRISAbits.TRISA1=1;
}

unsigned int Read_AD(unsigned char ch)
{
	unsigned int adtemp;
	PIR1bits.ADIF=0;	
	ADCON0=(ch<<2)|1;	//选择转换通道
	ADCON0bits.GO=1;	//忙标志
	while(ADCON0bits.GO);	//等待转换结束
	PIR1bits.ADIF=0;		//清标志
	adtemp=ADRESL+ADRESH*256;	//读取AD数据
	return adtemp;
}
void wait(unsigned int t)//ms
{
	unsigned int i,j;
    for(i=0;i<1000;i++)
	{
		for(j=0;j<t;t++);
	}
}

void main()
{
	unsigned int adtempdat;
	initial();
	EUSART_Init();
	AD_Init();
	while(1)
	{
		sent_ch(0x55);		
		adtempdat=Read_AD(1);//转换0通道
		sent_ch(adtempdat);	//发送低8位到串口
		sent_ch(adtempdat>>8);//发送高位到串口
		wait(100);
	}
}

⌨️ 快捷键说明

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