使用屏幕ILI9486(就是arduino的3.5寸320*480的屏)
单片机源程序如下:
- #include<STC12C5A60S2.h>
- #include "ov7670_fifo.h"
- #include "lcd.h"
- void main_init()
- {
- EX0=1; //红外中断
- IT0=1; //下降沿有效
- //EA=1;
- }
- unsigned char bn=0;
- void main(void)
- {
- unsigned int a,b;
- unsigned int c_data;
-
- unsigned char tmp;
-
- main_init();
- LCD_Init();
-
- FIFO_CS_L();
- FIFO_WE_L();
- do
- {
- tmp = Sensor_init();
- }
- while(!tmp);
- //UART1_Send_String("OV7670初始化成功!\r\n");
-
- EA=1; //总中断
- // LCD_Clear(GREEN);
- //while(1);
-
- while(1)
- {
- while(bn!=2)
- {
-
- }
-
- FIFO_RRST_L(); //复位FIFO读指针
- FIFO_RD_L();
- FIFO_RD_H();
- FIFO_RD_L();
- FIFO_RRST_H();
- FIFO_RD_H();
-
- //LCD_SetPos(0,239,0,319);
- LCD_SetWindows(0,0,239,319);//设置显示窗口
- EA=0;
- for(a=0;a<320;a++)
- {
- for(b=0;b<240;b++)
- {
- FIFO_RD_L();
- c_data = CAMERA2MCU_Data;//读高位
- //SBUF=CAMERA2MCU_Data;
- c_data <<= 8;
- FIFO_RD_H();
- FIFO_RD_L();
- //SBUF=CAMERA2MCU_Data;
- c_data |= CAMERA2MCU_Data;//读低位
- FIFO_RD_H();
-
- LCD_WR_DATA(c_data);
- }
- }
- EA=1;
- LCD_SetWindows(0,0,479,639);//设置显示窗口
- bn=0;
- }
- }
-
- void int0() interrupt 0
- {
- if(bn==0)
- {
- FIFO_WRST_L(); //复位FIFO写指针
- FIFO_RD_L();
- FIFO_RD_H();
- FIFO_RD_L();
- FIFO_WRST_H();
- FIFO_RD_H();
- bn=1;
- FIFO_WE_H();
- }
- else if(bn==1)
- {
- FIFO_WE_L();
- bn=2;
- }
- }
复制代码
所有程序51hei提供下载:
摄像头OV7670带FIFO.zip
(79.02 KB, 下载次数: 117)
|