线性CCD测试技术与实现.pdfVIP

  • 1
  • 0
  • 约4.99千字
  • 约 10页
  • 2026-01-08 发布于北京
  • 举报

SI:串行输出。决定数据输出序列

AD:模拟信号输出。

CLK:时钟。调整时间。

5V:电源正极。供电电压为3v~5v

GND:电源负极。

二、线性CCD模块镜头参数

产品使用焦距为8mm的镜头,可完整128个点

三、线性CCD测试程序

测试程序基于飞思卡尔16位单片机MC9S12XS128的编程实例,

采用定时器中断精确定时,准确控制CLK和SI两个引脚按照特定

的时序发出特定的方波信号,AO引脚就会依次输出128个像素点的

模拟信号值,然后用单片机的AD口进行即可。还可以采用外部

比较器进行硬件二值化。

程序默认单片机PORTA_PA0连接CLK,PORTA_PA1连接SI,

使用者可自行选用IO口。以下是完整测试程序:

#includehidef.h/*commondefinesandmacros*/

#includeMC9S12XS128.h/*derivativeinformation*/

#pragmaLINK

#pragmaLINKINFODERIVATIVEmc9s12xs128

#defineucharunsignedchar

#defineuintunsignedint

#defineline129

unsignedintimage_data[line];

unsignedint*pimage_data=image_data[0];

uintSensor[line];

inta,b,c_line,d,e=0;

uinti;

voidinit_PLL(void)

{

CLKSEL=0X00;

PLLCTLPLLON=1;

SYNR=0xc0|0x07;

REFDV=0xc0|0x01;

POSTDIV=0x00;

_asm(nop);

asm(nop);

asm(nop);

_asm(nop);

while(!(CRGFLG_LOCK1));

CLKSEL_PLLSEL=1;

}

voidECT_init(void)

{

PACTL=0X50;//下降沿计数

PACNT=0X0000;

}

voidinit_AD(void)

{

ATD0CTL1=0x00;//00000000

ATD0CTL2=0X40;//01000000

ATD0CTL3=0XF8;//11111000

ATD0CTL4=0X35;//00110101

ATD0CTL5=0X30;//00110000

ATD0DIEN=0x00;//00000000

}

voidTimer(void)

{

PITCFLMT_PITE=0;//关总时钟

PITMUX=0X00;//定时器0对应8位定时器

PITCE_PCE0=1;//开定时器0

PITMTLD0=20-1;//每次从10降到0花费时间为10/10=1us

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档