资源简介
基于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个文件信息
相关资源
- 基于C51单片机的声光控灯
- 51单片机电子门铃设计
- 基于C8051F020的ds18b20的驱动程序,包可
- DHT11液晶显示C程序+PCB原理图
- 电动牙刷开发例程stc15系列单片机
- M62429控制程序代码
- 一种基于单片机的正弦波输出逆变电
- 单片机游戏-推箱子游戏
- PIC单片机的EEPROM读写及说明
- PIC单片机控制风扇马达
- 基于51单片机的 4×4键盘及8位数码管显
- 基于51单片机的霹雳灯
- MC9s12单片机AD16库
- 8255控制数码管显示程序及图——单片
- 通信电路考试
- 51单片机贪吃蛇游戏程序
- 51单片机控制57步进电机启停,正反转
- NEC 78K0R单片机基本功能程序代码
- 光功率计 下位机
- 51单片机实现Modbus从机程序
- 基于AT89C52单片机的步进电机控制系统
- 51单片机看门狗设计
- Proteus 实现的篮球计分器
- 51单片机开发的韦根接受的C程序;支
- 89c51+DS18B20 数码管
- 51单片机ADXL345三轴加速度传感器源代
- 组态王 单片机 通讯协议
- PTS方法降低PAPR的仿真代码
- 单片机 万年历1602带闹钟带温度带调时
- 51单片机1602万年历矩阵按键
评论
共有 条评论