日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2024年11月19日(星期二)

正在發(fā)生

2019年11月19日 | 基于AVR的8色帶位圖采集串口(實驗)

發(fā)布者:SparkCrafter 來源: 51hei關鍵字:AVR  8色  帶位圖  采集串口 手機看文章 掃描二維碼
隨時隨地手機看文章

#include

#define uchar unsigned char 

#define uint unsigned int 

#define set_bit(a,b)  a|=(1<#define clr_bit(a,b)  a&=(1<#define get_bit(a,b)  a&(1<uchar TXEND;

uchar send_tab0_pc=0;//發(fā)送TAB0數(shù)據(jù)標志位

uchar send_tab1_pc=0;//發(fā)送tab1數(shù)據(jù)標志位 

uchar i,j;

uchar TAB0[128];

uchar TAB1[128];

unsigned long v;//一幀的數(shù)據(jù)量

#pragma interrupt_handler TX_end:14

void TX_end()

{

SREG=0X80;//開啟全局中斷

TXEND=0;//發(fā)送完畢標志

}

void USART_INT()//初始化串口

{

//UCSRA默認

UCSRB=0x48;//使能發(fā)送完畢中斷,禁能數(shù)據(jù)寄存器空中斷,使能發(fā)送模式,關閉接收,關閉接收中斷

UCSRC=0x86;//禁止奇偶效驗,數(shù)據(jù)位8,停止位1,工作在異步模式

UBRRH=0x00;//

UBRRL=51;//波特率9600,8MHZ,

SREG=0x80;//開啟全局中斷

}


void send_byte(uchar buffer)//向PC發(fā)送數(shù)據(jù)

{

   while(0==get_bit(UCSRA,5));//數(shù)據(jù)寄存器里的數(shù)據(jù)是不是為空如果是就寫數(shù)據(jù)

  

    UDR=buffer;



while(TXEND);//是否發(fā)送完畢?

TXEND=1;//上一幀已經(jīng)發(fā)送準備下一幀的發(fā)送

}

/*void ov7670_int()//7670初始化函數(shù)

{


}*/



////***********SCCB-----OX7670************************//////////

void delay1ms(uint z)

{

uint j,k; 

    for(k=z;k;k--)

                       {                           

                      for(j=2666;j;j--) ;  //此處j不得小于27否則讀不出數(shù)據(jù)

        }

                

}


void int_twi_sccb()

{

TWBR=50;/*設置SCL的時鐘頻率在19。230根據(jù)公式SCL FREQUENCY=CPU Clock frequency/16+2(TWBR)*4的TWPS次方

*/


}

//////以上是寫寄存器程序/////////////////////////////////

/**************************************************/

//本函數(shù)為設置7670寄存器的最底層操作函數(shù),

//無返回值

//ADD是要寫的寄存器地址,DATE是向里面寫入的數(shù)據(jù)

//

/*************************************************/

void write_ov7670_sccb_twi(uchar add,uchar date)//向add指定的地址內寫入指定的數(shù)據(jù)

{

    //主發(fā)送模式程序/////////////////////////

    TWCR=0xa4;//插入開始新號使能總線,使能START

  delay1ms(1);

while(0==get_bit(TWCR,7));//檢測起始信號是否發(fā)送?

while((TWSR&0xf8)!=0x08)

{

    while(1);    //出錯

  

}

//START信號的正確響應碼






TWDR=0x42;//寫操作SCCB的器件地址0X42

TWCR=0x84;//重啟啟動數(shù)據(jù)的發(fā)送

delay1ms(1);

while(0==get_bit(TWCR,7));//檢測數(shù)據(jù)信號是否發(fā)送?

while((TWSR&0XF8)!=0x18)

{


   while(1);    //出錯

     }


//發(fā)送完畢有ACK應答響應碼






TWDR=add;//寫操作SCCB的寄存器子地址

TWCR=0x84;//重啟啟動數(shù)據(jù)的發(fā)送

delay1ms(1);

while(0==get_bit(TWCR,7));//檢測數(shù)據(jù)信號是否發(fā)送?

while((TWSR&0XF8)!=0x28)

{

   while(1);    //出錯

     }


//發(fā)送完畢有ACK應答響應碼




TWDR=date;//寫操作SCCB的寄存器數(shù)據(jù)

TWCR=0x84;//重啟啟動數(shù)據(jù)的發(fā)送

delay1ms(1);

while(0==get_bit(TWCR,7));//檢測數(shù)據(jù)信號是否發(fā)送?

while((TWSR&0XF8)!=0x28)

{

   while(1);    //出錯

     }


//發(fā)送完畢有ACK應答響應碼


TWCR=0x94;//STOP信號




}

//////以上是寫寄存器程序//////////////////////////////////////////////////////////////

init_OV7670_POWER_UP()//0V7670的初始化寄存器設置

{


delay1ms(5);//準備寫入軟件初始化

write_ov7670_sccb_twi(0x12,0x83);//RGB格式,初始化,彩條輸出

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x0d,0x30);//1/4窗口,160*120

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x11,0x0f);//f(內部時鐘)=12mhz/(15+1)=12000/16=750hz

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x15,0x20);//PCLK在行同步時沒輸出

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x3c,0x68);//默認

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x3e,0x00);//PCLK無分頻

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x40,0xd0);//數(shù)據(jù)范圍是00~ff。輸出RGB565

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x42,0xc8);//1/4窗口,DSP彩色條輸出允許

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x6b,0xc0);//PLL8分頻

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x70,0x80);//八色圖

delay1ms(5);//初始化完畢

write_ov7670_sccb_twi(0x71,0x00);//八色圖

delay1ms(5);//設置完畢


}


void init_external_interrupt()//外部中斷的初始化程序

{

     MCUCR=0x0f;//外部中斷0和1都是低電平觸發(fā)

  GICR=0x80;//使能外部中斷1;

  SREG=0X80;//開啟全局中斷

  


}

//外部中斷0作為PCLK像素時鐘

#pragma interrupt_handler int0_isr:2

void int0_isr(void)//外部中斷0的服務程序

{   

     if(38400==v)

  {

   SREG=0X80;

  }

  else

  v++;


     if(128!=i)

  {

     

    TAB0[i]=PINA;

         i++;

   j=0;

   }

else  

send_tab0_pc=1; //向PC發(fā)送數(shù)據(jù)標志

send_tab1_pc=0;//不向PC發(fā)送數(shù)據(jù)標志

  if(128!=j)

  {

  TAB1[j]=PINA;

        j++;

  }

  else

  i=0;

  send_tab1_pc=1;//向PC發(fā)送數(shù)據(jù)標志           

  send_tab0_pc=0;//不向PC發(fā)送數(shù)據(jù)標志

}

//外部中斷1作為HREF行同步信號

#pragma interrupt_handler int1_isr:3

void int1_isr(void)//外部中斷1的服務程序

{

     MCUCR=0x0f;//外部中斷0和1都是上升沿觸發(fā)

  GICR=0xc0;//使能外部中斷1,0;

  SREG=0x80;//開啟全局中斷



}

void main()

{

uchar num;

delay1ms(20);//上電延時20ms

DDRA=0x00;

DDRD=0xff;

PORTD=0xff;

DDRC=0xff;//pc口設為輸出

PORTC=0xff;//pc口初始化


USART_INT();//串口初始化

int_twi_sccb();//sccb初始化

init_OV7670_POWER_UP();//軟件初始化

init_external_interrupt();//外部中斷初始化

delay1ms(10);//無論讀完還是寫完都要等等

while(1)

{

if(send_tab0_pc)

{

       for(num=0;num<128;num++)

    {send_byte((TAB0[num]));}

}

if(send_tab1_pc)

{

       for(num=0;num<128;num++)

    {send_byte((TAB1[num]));}


}



}


}


關鍵字:AVR  8色  帶位圖  采集串口 引用地址:基于AVR的8色帶位圖采集串口(實驗)

上一篇:基于AVR的SCCB讀寫程序
下一篇:LCD12864液晶顯示程序

推薦閱讀

前段時間拜訪客戶時,有聊到關于逆變器機殼帶電的問題,客戶很是困惑,并對逆變器廠家多有埋怨。作為逆變器從業(yè)者,筆者有必要在這里為逆變器正名:很多情況下,這個鍋,逆變器不背……在討論機殼帶電問題之前,我們先來看看什么是EMC。EMC(Electromagnetic Compatibility)即電磁兼容能力。逆變器作為電力電子設備,在出廠時會有嚴格的EMC要求,即既要...
stm32編程過程經(jīng)常定義變量類型,經(jīng)常擔心數(shù)據(jù)運算過程中 超過變量類型范圍。因為在編程過程中,不同的CPU,其數(shù)據(jù)類型的意義各不相同,所以一定要注意相應變量數(shù)據(jù)類型的定義和轉換,否則在計算中可能會出現(xiàn)不確定的錯誤。所以下面列出常見數(shù)據(jù)類型:一、C語言數(shù)據(jù)類型stm32使用的數(shù)據(jù)類型定義在 stm32f4xx.h中整型定義:#include "core_cm4.h" ...
無人駕駛汽車自然是人們關注的焦點之一,對于無人駕駛,我國目前已取得一定成就。在往期文章中,小編對無人駕駛汽車工作原理、無人駕駛汽車優(yōu)缺點均有所介紹。為增進大家對無人駕駛的了解程度,本文將對無人駕駛汽車的發(fā)展前景或者未來予以介紹。無人駕駛作為汽車未來的研究方向,其對于汽車行業(yè)甚至是交通運輸業(yè)有著深遠的影響。無人駕駛汽車的來臨將能夠...
  隨著珠海冠宇電池股份有限公司(以下簡稱“公司”)經(jīng)營規(guī)模的不斷擴大和市場需求的日益增長,為更好的抓住動力電池的市場機遇,進一步提升公司市場競爭力,提升公司在新能源行業(yè)的影響力和綜合競爭力,公司全資子公司浙江冠宇電池有限公司(以下簡稱“浙江冠宇”)計劃在浙江省嘉興市海鹽縣百步經(jīng)濟開發(fā)區(qū)新建鋰離子動力電池項目,總投資額不超過人...

史海拾趣

問答坊 | AI 解惑

隱形眼鏡顯示器,你敢戴嗎?

頭戴式顯示器有什么稀奇的,入眼式才厲害呢!華盛頓大學的研究小組將燈管與電路整合進了隱形眼鏡。這種入眼式顯示器與普通隱形眼鏡一般大,可惜現(xiàn)在還點不亮。不過在能點亮之前,相信大家都很關心一個問題--佩戴舒適度。因此他們在兔子的紅眼睛 ...…

查看全部問答∨

新型高速無線射頻器件nRF24L01及其應用

1 nRF24L01概述 nRF24.L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在 ...…

查看全部問答∨

雙向電機驅動電路

雙向電機驅動電路…

查看全部問答∨

《震蕩電路的設計和應用》

辛昕 是個好好小伙兒?。?! 在震蕩電路詳解一帖中他推薦了一本好書 這個資源貌似EEW里頭還未收藏,我在其他地方把它找來了,供感興趣的朋友們分享?。?!…

查看全部問答∨

DELPHI串口編程剖析

1.串口通信的基本原理: 一般計算機與外部設備通訊有兩種方式: 并行傳送(Parallel ):一次的傳輸量為8個位(1字節(jié)),通過并行端口,如打印機 串行傳送(Serial ):一次只傳輸1個位,通過串行端口,如RS-232 位與字節(jié)的概念:  &n ...…

查看全部問答∨

抖動的分類-Derek

抖動的分類-Derek…

查看全部問答∨

usb設備驅動,可能性評估?

我手上有一個讀卡器設備,支持usb和串口,我只有它的windows驅動程序。 我用串口調試工具配合它的協(xié)議可以完全操作這個讀卡器, 也就是說如果我用串口通信的話,在wince下,不需要驅動也能搞定。 問題是如果我要用wince下的usb host來操作讀卡器 ...…

查看全部問答∨

南華大學黃智偉系列--電子設計競賽作品制作過程中故障檢測的一般方法

本帖最后由 paulhyde 于 2014-9-15 09:31 編輯     競賽作品在制作過程中出現(xiàn)故障是不可避免的,故障檢測和檢修是調試工作的一部分。掌握一定的故障檢測和檢修方法,可以較快地找到產(chǎn)生故障的原因,使檢修過程大大縮短。故障檢測和 ...…

查看全部問答∨

9B96的UART

9B96與8962應該差別不大吧,為什么同樣的串口程序8962可以,9B96就不可以呢?   初始化就這樣“   SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);GPIOPinTypeUART(GPIO_PORTA_BASE, GPI ...…

查看全部問答∨

【低功耗】Altera低功耗Cyclone III FPGA實現(xiàn)了便攜式應用的高度集成

     Altera公司(NASDAQ: ALTR)近日宣布,65-nm Cyclone® III FPGA系列推出新的8x8 mm2封裝(M164),為設計人員提供單位電路板上容量最大的FPGA。設計人員現(xiàn)在可以充分利用Cyclone III器件的低功耗和大容量領先優(yōu)勢,設計實現(xiàn)消 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved