ÖÇÄܳµÖÆ×÷

±êÌâ: ÇóÖú£¡ÎÒÊÇÐÂÊÖ£¬¸Õ¿´ÁËÒ»¸öͼÏñ²É¼¯³ÌÐò [´òÓ¡±¾Ò³]

×÷Õß: Honanking    ʱ¼ä: 2012-5-23 15:35
±êÌâ: ÇóÖú£¡ÎÒÊÇÐÂÊÖ£¬¸Õ¿´ÁËÒ»¸öͼÏñ²É¼¯³ÌÐò
¸Õ¿´ÁËÒ»¸öͼÏñ²É¼¯³ÌÐòÏëÓô®¿ÚÏÔʾһÏ£¬²»ÖªÔõô½ÓÏߣ¬»ùÓÑÃÇ°ïæ¿´Ï¡£ÎÒÓõÄÊÇOV7620£¬µ¥Æ¬»úxs128maa¡£ÇëÎÊVSYNC ºÍHREF·Ö±ð½ÓÔÚµ¥Æ¬»úÄĸöÒý½Å£¿»¹Óд®¿ÚµÄRXD½ÓÄÄ£¿Ð»Ð»£¡
¸´ÖÆËÑË÷


¸´ÖÆËÑË÷
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <MC9S12XS128.h>
#define ROW 17
#define COLUMN 120
#define ROW_START 11  
#define ROW_MAX   280
#define THRESHOLD  0x45
unsigned char Buffer[ROW][COLUMN];
unsigned char Buffer_Temp[ROW][COLUMN];
unsigned char SampleFlag=0;  
unsigned char Interval;
unsigned int m=0;
unsigned int n=0;
unsigned int Line=0;

/***************************************************
** º¯ÊýÃû³Æ: PLL_Init
** ¹¦ÄÜÃèÊö: ʱÖÓ³õʼ»¯º¯Êý
** ˵Ã÷:
****************************************************/
void PLL_Init(void)   
{                    
   CLKSEL=0x00;  //48mhz
   PLLCTL_PLLON=1;
   SYNR=0XC0 | 0X05;
   REFDV=0X80 | 0X01;
   POSTDIV=0X00;
   _asm(nop);
   _asm(nop);
   while(0==CRGFLG_LOCK);//ËøÏà»·Ëø¶¨
   CLKSEL_PLLSEL=1;//Ñ¡¶¨ÍⲿʱÖÓ  
}
/***************************************************
** º¯ÊýÃû³Æ: TIM_Init
** ¹¦ÄÜÃèÊö: Ðг¡Öжϳõʼ»¯º¯Êý
** ˵Ã÷:
****************************************************/
void TIM_Init(void)
{
   TIOS=0x00;          //ÍⲿÊäÈ벶׽ 0,1 ͨµÀ  
   TCTL4=0x09;         //ͨµÀ0ÉÏÉýÑØ´¥·¢,ͨµÀ 1 ϽµÑØ´¥·¢
   TSCR1=0x80;         //ʹÄÜ
   TIE=0x03;           //ͨµÀ 0£¬1 ÖжÏʹÄÜ
   TFLG1=0xFF;         //ÇåÖжϱê־λ
}
/***************************************************
** º¯ÊýÃû³Æ: IO_Init
** ¹¦ÄÜÃèÊö: IO¿Ú³õʼ»¯º¯Êý
** ˵Ã÷:
****************************************************/
void IO_Init(void)
{
    DDRA=0X00;
}
/***************************************************
** º¯ÊýÃû³Æ: SCI_Init
** ¹¦ÄÜÃèÊö: ´®¿Ú³õʼ»¯º¯Êý
** ˵Ã÷:
****************************************************/
void SCI_Init()
{
    SCI0BD=312;         //9600bps  Baud Rate=BusClock/(16*SCIBD)
    SCI0CR1=0;         //Õý³£8λģʽ£¬ÎÞÆæżУÑé
    SCI0CR2=0X2C;      //·¢ËÍÔÊÐí   ½ÓÊÜÖжÏÔÊÐí  
}
/**************************************************
** º¯ÊýÃû³Æ: SCI_Write
** ¹¦ÄÜÃèÊö: ¸ø´®ÐпÚдһ¸ö×Ö·ûÊý¾Ý
** Êä    Èë: SendCharΪдÈë×Ö·û
** Êä    ³ö: ÎÞ
** ˵Ã÷£º  
***************************************************/
void SCI_Write(unsigned char SendChar)
{
    while (!(SCI0SR1&0x80));
    SCI0DRH=0;
    SCI0DRL=SendChar;
}
/**************************************************
** º¯ÊýÃû³Æ: Image_Binaryzation
** ¹¦ÄÜÃèÊö: ͼÏñÊý¾Ý¶þÖµ»¯
** Êä    Èë: row
** Êä    ³ö: ÎÞ
** ˵Ã÷£º  
***************************************************/      
void Image_Binaryzation(unsigned int row)  //¶þÖµ»¯³ÌÐò
{
  unsigned char *p_Image;
  unsigned char *q_Image;
  q_Image=&Buffer_Temp[row][0];

  for(p_Image=&Buffer[row][0];p_Image<=&Buffer[row][COLUMN-1];p_Image++)      
    {*(q_Image++)=*p_Image; }  
}
/**************************************************
** º¯ÊýÃû³Æ: Process
** ¹¦ÄÜÃèÊö: ͼÏñÊý¾Ý´¦Àí
** Êä    Èë: ÎÞ
** Êä    ³ö: ÎÞ
** ˵Ã÷£º  
***************************************************/
void Process()
{
  unsigned char i,j;
  for(i=0;i<ROW;i++)
    {
    for(j=0;j<COLUMN;j++)
      {
       if(Buffer_Temp[j]>THRESHOLD)
       SCI_Write('1') ;
       else  SCI_Write('0') ;
      }
    SCI_Write(0x0D);
    SCI_Write(0X0A);
  }
}
/***************************************************
** º¯ÊýÃû³Æ: main
** ¹¦ÄÜÃèÊö: Ö÷º¯Êý
** ˵Ã÷:
****************************************************/        
void main(void)
{
  /* put your own code here */
  PLL_Init();
  TIM_Init();
  IO_Init();
  SCI_Init();
EnableInterrupts;
  for(;;)
  {
  Process();

  //  _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
/**************************************************
** º¯ÊýÃû³Æ: Öжϴ¦Àíº¯Êý
** ¹¦ÄÜÃèÊö: ÐÐÖжϴ¦Àíº¯Êý
** Êä    Èë: ÎÞ
** Êä    ³ö: ÎÞ
** ˵Ã÷£º  
***************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8  PT0_Interrupt()
{
  TFLG1_C0F=1;
  Line++;     
  if ( SampleFlag == 0 || Line<ROW_START ||  Line>ROW_MAX )
  {
    return;
   }      

  if(Line<=132)                Interval=12;                                          
  else if(Line>132&&Line<=200) Interval=8;
  else if(Line>200&&Line<=248) Interval=6;
  else                         Interval=4;        

  if(Line%Interval==0)
  {
  Buffer[m][0]=PORTA;  
  Buffer[m][1]=PORTA;  
  Buffer[m][2]=PORTA;  
  Buffer[m][3]=PORTA;  
  Buffer[m][4]=PORTA;
  Buffer[m][5]=PORTA;
  Buffer[m][6]=PORTA;  
  Buffer[m][7]=PORTA;  
  Buffer[m][8]=PORTA;  
  Buffer[m][9]=PORTA;  
  Buffer[m][10]=PORTA;
  Buffer[m][11]=PORTA;
  Buffer[m][12]=PORTA;
  Buffer[m][13]=PORTA;
  Buffer[m][14]=PORTA;
  Buffer[m][15]=PORTA;
  Buffer[m][16]=PORTA;
  Buffer[m][17]=PORTA;
  Buffer[m][18]=PORTA;
  Buffer[m][19]=PORTA;
  Buffer[m][20]=PORTA;
  Buffer[m][21]=PORTA;
  Buffer[m][22]=PORTA;
  Buffer[m][23]=PORTA;
  Buffer[m][24]=PORTA;
  Buffer[m][25]=PORTA;
  Buffer[m][26]=PORTA;
  Buffer[m][27]=PORTA;
  Buffer[m][28]=PORTA;
  Buffer[m][29]=PORTA;
  Buffer[m][30]=PORTA;
  Buffer[m][31]=PORTA;
  Buffer[m][32]=PORTA;
  Buffer[m][33]=PORTA;
  Buffer[m][34]=PORTA;
  Buffer[m][35]=PORTA;
  Buffer[m][36]=PORTA;
  Buffer[m][37]=PORTA;
  Buffer[m][38]=PORTA;
  Buffer[m][39]=PORTA;
  Buffer[m][40]=PORTA;
  Buffer[m][41]=PORTA;
  Buffer[m][42]=PORTA;
  Buffer[m][43]=PORTA;
  Buffer[m][44]=PORTA;
  Buffer[m][45]=PORTA;
  Buffer[m][46]=PORTA;
  Buffer[m][47]=PORTA;
  Buffer[m][48]=PORTA;
  Buffer[m][49]=PORTA;
  Buffer[m][50]=PORTA;
  Buffer[m][51]=PORTA;
  Buffer[m][52]=PORTA;
  Buffer[m][53]=PORTA;
  Buffer[m][54]=PORTA;
  Buffer[m][55]=PORTA;
  Buffer[m][56]=PORTA;
  Buffer[m][57]=PORTA;
  Buffer[m][58]=PORTA;
  Buffer[m][59]=PORTA;
  Buffer[m][60]=PORTA;
  Buffer[m][61]=PORTA;
  Buffer[m][62]=PORTA;
  Buffer[m][63]=PORTA;
  Buffer[m][64]=PORTA;
  Buffer[m][65]=PORTA;
  Buffer[m][66]=PORTA;
  Buffer[m][67]=PORTA;
  Buffer[m][68]=PORTA;
  Buffer[m][69]=PORTA;
  Buffer[m][70] = PORTA;
Buffer[m][71] = PORTA;
Buffer[m][72] = PORTA;
Buffer[m][73] = PORTA;
Buffer[m][74] = PORTA;
Buffer[m][75] = PORTA;
Buffer[m][76] = PORTA;
Buffer[m][77] = PORTA;
Buffer[m][78] = PORTA;
Buffer[m][79] = PORTA;
Buffer[m][80] = PORTA;
Buffer[m][81] = PORTA;
Buffer[m][82] = PORTA;
Buffer[m][83] = PORTA;
Buffer[m][84] = PORTA;
Buffer[m][85] = PORTA;
Buffer[m][86] = PORTA;
Buffer[m][87] = PORTA;
Buffer[m][88] = PORTA;
Buffer[m][89] = PORTA;
Buffer[m][90] = PORTA;
Buffer[m][91] = PORTA;
Buffer[m][92] = PORTA;
Buffer[m][93] = PORTA;
Buffer[m][94] = PORTA;
Buffer[m][95] = PORTA;
Buffer[m][96] = PORTA;
Buffer[m][97] = PORTA;
Buffer[m][98] = PORTA;
Buffer[m][99] = PORTA;
Buffer[m][100] = PORTA;
Buffer[m][101] = PORTA;
Buffer[m][102] = PORTA;
Buffer[m][103] = PORTA;
Buffer[m][104] = PORTA;
Buffer[m][105] = PORTA;
Buffer[m][106] = PORTA;
Buffer[m][107] = PORTA;
Buffer[m][108] = PORTA;
Buffer[m][109] = PORTA;
Buffer[m][110] = PORTA;
Buffer[m][111] = PORTA;
Buffer[m][112] = PORTA;
Buffer[m][113] = PORTA;
Buffer[m][114] = PORTA;
Buffer[m][115] = PORTA;
Buffer[m][116] = PORTA;
Buffer[m][117] = PORTA;
Buffer[m][118] = PORTA;
Buffer[m][119] = PORTA;  
  m++;
  }
  Image_Binaryzation(m);
}
/**************************************************
** º¯ÊýÃû³Æ: Öжϴ¦Àíº¯Êý
** ¹¦ÄÜÃèÊö: ³¡Öжϴ¦Àíº¯Êý
** Êä    Èë: ÎÞ
** Êä    ³ö: ÎÞ
** ˵Ã÷£º  
***************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED  
void interrupt 9 PT1_Interrupt()
{
  TFLG1_C1F=1;
  TFLG1_C0F=1;
  m=0;         
  Line=0;      
  SampleFlag=1;
}


×÷Õß: 0726silence    ʱ¼ä: 2012-5-23 17:27
ÎÒÊǼ¤¹âµÄ£¬°ïÄ㶥һÏÂ

×÷Õß: xinmengwangran    ʱ¼ä: 2012-5-23 17:51
´ó¼ÒµÄ³ÌÐòºÜÏñ°¡
VSYNC ºÍHREF·Ö±ð½ÓÔÚµ¥Æ¬»úµÄPT1ºÍPT0  ´®¿ÚµÄRXD½Óµ¥Æ¬»úµÄTXD0/TXD1
¸ù¾Ý³ÌÐò¿´ Ó¦¸Ã½ÓTXD0
µ«ÕâÑùÖ»ÄÜʵÏÖµ¥Æ¬»úÏòµçÄÔ´®¿ÚµÄ·¢ËÍ ÎÞ·¨ÊµÏÖ´®¿ÚͨÐÅ
×÷Õß: dz´¨µÄ²Ý1989    ʱ¼ä: 2012-5-23 18:42
xinmengwangran ·¢±íÓÚ 2012-5-23 17:51
´ó¼ÒµÄ³ÌÐòºÜÏñ°¡
VSYNC ºÍHREF·Ö±ð½ÓÔÚµ¥Æ¬»úµÄPT1ºÍPT0  ´®¿ÚµÄRXD½Óµ¥Æ¬»úµÄTXD0/TXD1
¸ù¾Ý³ÌÐò¿´ Ó¦ ...

ÄÇôÇëÎÊÔõôÑù²ÅÄÜʵÏÖ´®¿ÚµÄͨѶÄØ£¿

×÷Õß: xinmengwangran    ʱ¼ä: 2012-5-23 20:42
dz´¨µÄ²Ý1989 ·¢±íÓÚ 2012-5-23 18:42
ÄÇôÇëÎÊÔõôÑù²ÅÄÜʵÏÖ´®¿ÚµÄͨѶÄØ£¿

RXD TXD ¶¼Ðè½Ó

×÷Õß: Honanking    ʱ¼ä: 2012-5-25 18:24
xinmengwangran ·¢±íÓÚ 2012-5-23 20:42
RXD TXD ¶¼Ðè½Ó

ÊÔÊÔ¿´£¬¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹
¸´ÖÆËÑË÷


¸´ÖÆËÑË÷

×÷Õß: xinmengwangran    ʱ¼ä: 2012-5-25 19:48
Honanking ·¢±íÓÚ 2012-5-25 18:24
ÊÔÊÔ¿´£¬¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹
¸´ÖÆËÑË÷


×÷Õß: danpianji    ʱ¼ä: 2012-6-20 22:33
RXD½Óµ¥Æ¬»úµÄS0ºÍS1...
×÷Õß: ¿ªÐĹû219407    ʱ¼ä: 2012-11-2 21:45
³õѧÕß Â·¹ý




»¶Ó­¹âÁÙ ÖÇÄܳµÖÆ×÷ (http://dns.znczz.com/) Powered by Discuz! X3.2