MC68HC08单片机程序设计速成
2013-03-04
wuzhenzhi
标签:

MC68HC08 A/D数据采集编程指导

ADSCR:ADC状态控制寄存器

ADICLK:ADC时钟控制寄存器

ADC时钟分频

ADIV2

ADIV1

ADIV0

ADC时钟分频

0

0

0

输入时钟/1

0

0

1

输入时钟/2

0

1

0

输入时钟/4

1

x

x

输入时钟/8

ADR:ADC 数据寄存器 所在地址$03D

八位数据存储。

典型例子:

许多时候,我们总是去网上和书上找例子,然而多半与其他的内容掺合在一起,本文就举一例,引导大家提炼知识点,之所以要给出一个综合性的例子,是因为采集出来的值如果不显示的话看不到实验效果。实在没有办法,只能把它和数码管联合起来才能观看到结果。

查询式数据采集:

任务:采集变化的电压与VCC的比值(百分数),并通过五位七段数码管显示。

#include

#include

int i,b;

void delay(int n){

for (i=0;i<=n;i++){;}

}

void main(void)

{

CONFIG2=0x01;//初始化设置

CONFIG1=0x01;

PCTL=0x00;//锁相环设置

PBWC=0x80;

PMSH=0x02;

PMSL=0x58;

PMRS=0x80;

PCTL=0x22;

PCTL_PLLON=1;

PBWC_LOCK=0;

PCTL_BCS=1;

SPCR=0x3a;//与MC14489数码管驱动器的串行通信初始化

SPSCR=0x01;

DDRB=0x7f;//端口方向

DDRD=0xff;

DDRE=0xff;

ADCLK=0x40;//A/D数据采集

ADSCR=0x27;

while(1)

{

while(ADSCR_COCO==0){;} //当A/D转换器未完成转换时,做死循环。

b=ADR;//将A/D转换后的数字值取出

PTE_PTE1=0;//送至七段数码管显示

SPDR=0;

delay(5);

SPDR=0;

delay(5);

SPDR=0;

delay(5);

PTE_PTE1=1;

PTE_PTE1=0;

SPDR=b;

delay(5);

PTE_PTE1=1;

}

}

试验结果:当转动可变电阻时,数码管的值随之变化。

这么长的例子(作为一个能运行的程序,实在不好简化了),怎么分析呢?

不管你是不是内行,蒙也能蒙出来,这种单片机工作之初总是要初始化的,初始化的特点就是一连串的寄存器等于某些值。如本例,从main函数一开始,就进入了初始化阶段。很典型的做了CONFIG初始化和PLL锁相环的初始化。随后是七段数码管的驱动芯片的通讯初始化。如果知道端口寄存器的朋友应该知道随后的是端口方向初始化。我们让PTB7作A/D信号的输入端。随后进入了我们今天的主题,A/D数据采集4步走

(1) 设置ADCLK

(2) 设置ADSCR

(3) 进入一个死循环。

(4) 检测如果A/D转换器转换成功一个值,则取出该值,并送交显示。如果没有,则等待。

如果你能看懂上面的代码结构的话,请分析下面一段非常类似的代码:

这段代码的作用是将采集上来的值通过串口传递出去。

#include

#include

long a;

void main(void)

{

CONFIG2=0x39;

CONFIG1=0x01;

PCTL=0x00;

PBWC=0x80;

PMSH=0x02;

PMSL=0x58;

PMRS=0x80;

PCTL=0x22;

PCTL_PLLON=1;

PBWC_LOCK=0;

PCTL_BCS=1;

SCBR_SCR1=1;//串口初始化

SCBR_SCR0=1;

SCC1_ENSCI=1;

SCC2_TE=1;

SCC2_RE=1;

DDRB=0x7f;

DDRC=0xff;

ADCLK=0x40;

ADSCR=0x27;

while(1)

{

while(ADSCR_COCO==0){;}

a=ADR;//将采集来的值放入a变量

if(SCS1_SCTE==1)//如果串行接口发送器空

SCDR=a;//将此值发送

}

}

相信你读完这篇文章后,对简单的A/D采集编程方法已经很熟悉了,以后的工作无非就是数据处理了。当然,如果你有兴趣的话,建议学习中断方式的AD采集,毕竟,查询和中断总是做事情的两个大套路 

共 7 页   上一页1234567下一页
可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号