资源简介
基于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个文件信息
相关资源
- STC8951系列单片机中方指南
- ACCESS财务报表(带数据).accdb
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 基于c8051f020的AD转换程序及LCD显示程序
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
评论
共有 条评论