pic系列单片机用c语言编程时,让他执行AD转换的指令是什么?

Python013

pic系列单片机用c语言编程时,让他执行AD转换的指令是什么?,第1张

在C语言里没有指令,只有语句,用C语言执行A/D转换如下:

//A/D转换初始化子程序

void

adinitial()

{

ADCON0=0x41;

//选择A/D通道为RA0,且打开A/D转换器

//在工作状态,使A/D转换时钟为8Tosc

ADCON1=0X8E;

//转换结果右移,及ADRESH寄存器的高6位为"0"

//把RA0口设置为模拟量输入方式

ADIE=1;

//A/D转换中断允许

PEIE=1;

//外围中断允许

TRISA0=1;

//设置RA0为输入方式

}

//读ADRESH寄存器就能得到AD转换值了,

汇编的如下:

ADINT

MOVLW

0X51

MOVWF

ADCON0

;选择A/D转换通道为RA2,且打开A/D在工

;作状态,并使A/D转换时钟为8tosc

BANKSEL

ADCON1

;选BANK1体

MOVLW

0X80

MOVWF

ADCON1

;转换结果右移,即ADRESH寄存器的高6位;为“0”,且把RA2口设置成模拟量输入口

CLRF

PIE1

;禁止其它中断

BSF

PIE1,ADIE

;A/D转化中断允许

BSF

TRISA,2

;设置RA2口为输入方式

BSF

INTCON,PEIE

;外围中断允许

BSF

INTCON,GIE

;总中断允许

BCF

STATUS,RP0

;返回BANK0

RETURN

你的:

SBUF = P1 //读数据并发送

问题稍稍复杂了一点,分解一下,改为:

P2 = P1//读数据当场显示,观察数据是否正确

SBUF = 100 //发送一个自定义的数据,观察对方接收的情况

delayms(200)//多延时一会,等待发送完毕

试试看,找出毛病出在何处。

芯片采样回来后,是一个AD值。需要转换成想要的一些内容的话,要做表格。

温度转换。首先要制作一个温度对应的AD表格。多大的值是多少度。

查表可以采用顺序法进行。

从表格的第一个开始查起,比第一个大时,再比较第二个,依次类推。每比较一次,将计数器累加一次。

比上一个大,比下一个小时,就是上一个温度点,此时,把计数器的值拿出来就是对应的温度值。

图要看芯片资料连接了,应该很简单的。