• 大小: 599KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: C8051F020  单片机  CCD  

资源简介

基于C8051F020单片机驱动CCD 1304的驱动程序和信号采样程序,其中有一些如存储、红外遥控器、18B20程序,不太全,大家可以选择性吸收吧。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include “Init_Device.h“
//#include “at24c16.h“
#include “Ds18b20.h“
#include “Tdc_GP21.h“
#include “Hd7279.h“
#include “Rs485.h“  
#include “Ad420.h“
//#include “KeyResponse.h“
#include “F020_FlashPrimitives.h“
#include “main.h“
#include “HS0038B.h“

/**************IO定义*****************/ 
sbit StartComp = P0^7;       //比较器开启关闭控制端
sfr16 ADC0      = 0xbe;                 // ADC0 data


#define SH_0   (P6&=0xdf)    //液晶屏背光亮  
#define SH_1  (P6|=0x20)    //液晶屏背光暗
#define SEND_WAVE_UP    (P4|=0x01) //发送1MHz信号1   P40
#define SEND_WAVE_DOWN (P4&=0xfe) //发送1MHz信号0
#define CHECK_DELAY_1 (P4|=0x40)  //检测程序段之间时间使用
#define CHECK_DELAY_0 (P4&=0xbf)
#define WaterLENGTH 70000.0

#define GGrade0 0      // = (4096/Vref)*Vin  0.0V信号   灰度0
#define GGrade1 328    // = (4096/Vref)*Vin  0.2V信号   灰度1
#define GGrade2 819    // = (4096/Vref)*Vin  0.5V信号   灰度2
#define GGrade3 1310   // = (4096/Vref)*Vin  0.8V信号   灰度3
#define GGrade4 1802   // = (4096/Vref)*Vin  1.1V信号   灰度4
#define GGrade5 2293   // = (4096/Vref)*Vin  1.4V信号   灰度5
#define GGrade6 2785   // = (4096/Vref)*Vin  1.7V信号   灰度6
#define GGrade7 3276   // = (4096/Vref)*Vin  2.0V信号  灰度7
#define GGrade8 3767   // = (4096/Vref)*Vin  2.3V信号   灰度8
#define GGrade9 4095   // = (4096/Vref)*Vin  2.5V信号   灰度9


/************全局变量定义************/ 
AllFlag Flag={0010010010000000000}; //标志位初始化 2016.8.23

unsigned int CCDValue[1500]={0};
bit StopADC = 0;
float Parameters[22]={0-0.029298005.203323-189.989400015651704
                    0303.00.15804513.5560007077.030312}; //系统参数 2016.8.23
float ParametersCoppy[3]={3.000};
float MeasureData[6]; //实时测得温度、声速、浓度、声时数据
unsigned int CCDpoint = 0;
unsigned int LowGGrade = 0;
unsigned char Timer3Number =0; //定时器3溢出次数计数器
unsigned char MenuIndex1 =1;     //1级菜单选项
//==============================================================================
//主函数
//==============================================================================   
void main(void)
{
unsigned int i=0;
unsigned char j = 0;
bit hege = 0;
EA = 0;
Init_Device();            //硬件初始化 
CloseT0timer();  //关闭定时器T0
ES0 = 1;   //开启UART0中断
REN0=1; //UART0为接收方向
Dir_Uart0 = 0; //RS485为接收方向

EA = 1;
EIE2 &= 0xfd;               // 关闭 ADC0 中断

CR = 1; //开启频率发生器,自动产生SH时钟和MCLK时钟,用于CCD驱动
IT1 = 1; //INT1中断为下降沿
TMR3CN|= 0x04; //开启定时器3  产生ICG时钟,用于驱动CCD
T4CON|= 0x04; //开启定时器4  产生SH时钟,用于驱动CCD
P7&=0xfd; //ICG = 0开始低电平,并开启定时器4,定时12/f* RCAP4后,ICG电平变高
SH_1;       //CE1 = 1;
while(1)
{        

   if(CCDpoint>1499)
   {          
  for(j=0;j<5;j++)
  {//分成5段进行检测,每段长度4cm,如果需要跳过头、尾,则j=1、2、3,具体分段需要根据现场来区分
  for(i=j*300;i<(j+1)*300;i++)
  {//每段数据长度为CCDPoint/5 =300该值由AD采样数据长度和

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-28 09:41  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\
     文件       66534  2017-09-28 09:41  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\Ndj_Ch.uvopt
     文件       17211  2017-09-06 21:38  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\Ndj_Ch.uvproj
     文件       66532  2017-09-27 20:22  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\Ndj_Ch_uvopt.bak
     文件       18432  2016-11-06 08:15  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\Ndj_Ch_uvproj.bak
     文件        6376  2009-05-07 14:37  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\STARTUP.A51
     目录           0  2017-09-27 13:36  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\
     文件          95  2014-11-12 09:59  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\AD420.h
     文件         219  2008-10-10 13:34  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\At24C16.h
     文件         119  2014-02-26 10:54  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\DS18B20.h
     文件         206  2015-02-02 13:56  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Display.h
     文件        2031  2010-04-12 15:35  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\F020_FlashPrimitives.h
     文件         408  2017-09-06 18:08  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\HS0038B.h
     文件      104089  2016-11-05 09:02  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\HanZiKu.h
     文件         122  2014-05-29 15:51  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Hd7279.h
     文件         122  2014-11-12 10:55  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Init_Device.h
     文件         150  2015-03-27 09:48  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\KeyResponse.h
     文件        2022  2015-04-13 11:19  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\LM240120.h
     文件       95887  2015-04-13 13:03  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\LcdData.h
     文件        2446  2016-08-23 15:08  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Main.h
     文件         511  2015-11-09 10:07  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Rs485.h
     文件        2709  2016-11-05 12:13  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\StMenu.h
     文件         753  2015-11-09 10:06  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\Tdc_GP21.h
     文件         178  2014-05-13 09:30  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\TypeTrans.h
     文件          85  2015-05-11 13:04  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\inc\putchar.h
     文件         399  2011-04-23 10:24  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\keilkilll.bat
     目录           0  2017-09-27 13:36  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\main\
     文件        9502  2017-09-27 13:35  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\main\main.c
     目录           0  2017-09-27 13:36  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\obj\
     文件        3378  2017-09-27 13:21  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\obj\AD420.lst
     文件        2680  2017-09-27 13:21  Ndj_Ch(ccd  Drive9.27可调电子快门和同步)\obj\AD420.obj
............此处省略57个文件信息

评论

共有 条评论