目 录

摘 要 1
关键词 1
1 前言 1
2 建立播种量、速度与转速的数学模型 2
3 智能播种机控制系统整体方案 4
3.1 智能播种机控制系统的整体思路 4
3.2 智能播种控制系统方框图 4
3.3 单片机的选择与概述 5
3.3.1 单片机的选择 5
3.3.2 ATmega128单片机结构与性能特点 5
4 智能播种机控制系统模块概述及原理 7
4.1 单片机系统模块 7
4.1.1 单片机电源模块 7
4.1.2 ATmega128单片机最小系统模块 8
4.2 JTAG通讯模块 9
4.3 播量信息输入模块 10
4.3.1 键盘输入播量 10
4.3.2 智能播量的控制 10
4.4 机具前进速度采样模块 10
4.4.1 传感器的选择 10
4.4.2 增量式旋转编码盘原理 11
4.4.3 机具前进速度采集电路 11
4.4.4 光电编码盘测速方法 12
4.5 检测播种量模块 13
4.5.1 传感器的分析及选择 13
4.5.2 光纤传感器的结构原理 14
4.5.3 传感器的电路原理图 14
4.5.4 传感器的安装 15
4.5.5 油菜籽粒检测方法 16
4.5.6 模糊算法 16
4.5.7 籽粒数转化成播量的算法 17
4.6 液晶显示模块 17
5 执行机构的确定 18
5.1执行机构类型 18
5.1.1可用执行机构 18
5.1.2 执行机构的选取 18
5.2 伺服系统介绍 19
5.2.1 伺服电机工作原理 19
5.2.2伺服器 20
6 整体系统原理图 21
7 智能播种机控制系统程序设计 21
7.1 程序设计的目标 21
7.2 系统软件开发工具 21
7.2.1 C语言 21
7.2.2 程序编程工具IAREW 22
7.3 程序开发流程介绍 22
7.3.1 系统主程序流程 22
7.3.2 系统的子程序流程 23
7.3.3 检测机具前进速度子程序 23
7.3.4 播量检测子程序 23
7.3.5 电机转速控制子程序 23
7.3.5 LCD1602子程序 23
7.4 小结 23
8 总结 24
参考文献 24
致 谢 25
附录 25
6 整体系统原理图
通过以上对系统的整体分析以及各个部分的硬件设计,总结出系统的整个硬件电路原理图,根据硬件电路原理图对电路板进行印刷,并进行相关元器件的连接,最终得到控制系统的控制板。原理图见附录。
7 智能播种机控制系统程序设计
7.1 程序设计的目标
所设计的控制系统要实现以下功能:
(1)ATmega128单片机各端口和定时/计数器的初始化;
(2)1602LCD液晶显示屏初始化和相关参数的输入;
(3)ATmega128单片机根据增量编码传感器采集到的脉冲计算出机具前进速度;
(4)ATmega128单片机根据播量计算公式以及输入的播量值、采集的机具前进速度值计算出电机的转速;
(5)ATmega128单片机根据计算出的电机转速以PWM形式调速伺服系统;
(6)光纤传感器能够检测排出油菜的籽粒数,并计算出相应的播量,与输入的播量相比较,并重新调整电机转速。
7.2 系统软件开发工具
ATmega128单片机进行编程,要选择编程软件和程序语言。
7.2.1 C语言
目前支持单片机应用系统开发的语言一般有汇编语言和高级语言。由于汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,编写的代码非常难懂、不好维护、开发效率很低、时间长且单调,本文转载自http://www.biyezuopin.vip/onews.asp?id=14409不适合本设计的程序开发。C语言是一种面向过程的计算机程序设计语言,易懂易学、简洁紧凑、灵活方便、运算符丰富、数据类型丰富,因此采用C语言作为程序设计语言。
7.2.2 程序编程工具IAREW
嵌入式IAREW是一个非常有效的程序开发工具,适用于大量8位、16位以及32位的处理器和微控制器,因此在对项目进行开发时能在所熟悉的环境中进行;它包含有高度优化的IARAVRC/C++编译器、AVRIAR汇编器、工程管理器、高级语言调试器等可用工具,提供了一个成功工程所需的所有工具,因此使用时非常简单、方便;另外它可以输出多种格式,用户在其它软件上进行调试和下载都非常方便;嵌入式IAREW不但代码编译效率比GCC和ICC高很多,而且下载仿真都十分方便,因此得到相关研究者的广泛应用。

#include <iom128.h>
/*******************头文件定义****************/
#include <intrinsics.h>
#include <comp_a90.h>
#include <math.h>
#include "LCD1602.H"
#include "key.h"
/*******************宏定义********************/
#define  SPACE  10 //采样10次
/*****************全局变量定义****************/
unsigned char Period_Base = 0 , Count = 0 , Pulse_Count = 0 , flag = 0x00;
unsigned long Sum_Pulse = 0 , Sum_Time = 0;
unsigned long Period_Value[3] = {0,0,0};
unsigned long Pulse_Period_Value[SPACE] = {0};
unsigned int  Number = 0;
unsigned long Average_Value = 0;/*****************函数定义********************/
void port_init(void) //I/O口配置函数
{PORTA = 0x00;DDRA  = 0x00;PORTB = 0x00;DDRB  = 0x30;PORTC = 0x00; DDRC  = 0x00;PORTD = 0x00;DDRD  = 0x00;
}void timer0_init(void)
{TCCR0 = 0x00; //stopASSR  = 0x00; //set async modeTCNT0 = 0xD7; //set countOCR0  = 0x7d; //值0x7d为1KHZ; 值0x29为3KHZTCCR0 = 0x00; //0x1A start timer; 0x00 stop timer
}void timer1_init(void)//定时器1输入捕获中断配置函数
{TCCR1B = 0x00; TCNT1H = 0x00; TCNT1L = 0x00;OCR1AH = 0x03;OCR1AL = 0xE8;OCR1BH = 0x03;OCR1BL = 0xE8;ICR1H  = 0x03;ICR1L  = 0xE8;TCCR1A = 0x00;//TCCR1B = 0xC0;//初始化为上升沿
}void init_devices(void)//系统初始化函数,系统时钟为2Mhz
{_CLI();port_init();timer0_init();timer1_init();LCD1602_Initial();key_initail();MCUCR = 0x00;TIMSK = 0x24; _SEI();
}void main(void)//主函数
{ extern float V_Value;//机具前进速度extern float H_Value;//实际输出播量unsigned char i = 0 , j = 0;unsigned long temp = 0;init_devices();//初始化系统   write_string(0,0," *Rapeseed-Sys* ");write_string(0,1," Initializing.. ");delay_nms(200);write_string(0,0,"V:----m/sQ:----g");write_string(0,1,"n:----r/mH:----g");while (1)//等待{key_scanf();if ((flag&0x01) == 0x01)  //油菜籽采样数据处理算法{_CLI();//禁用中断flag = 0x00;Pulse_Count = 0;for(j=0; j<SPACE-1; j++)//冒泡排序{for(i=0; i<SPACE-1-j; i++){if(Pulse_Period_Value[i] > Pulse_Period_Value[i+1]) {temp = Pulse_Period_Value[i];Pulse_Period_Value[i] = Pulse_Period_Value[i+1];Pulse_Period_Value[i+1] = temp;}}}for (j=1; j<SPACE-1; j++)//去掉最大值和最小值{temp += Pulse_Period_Value[j];}temp /= (SPACE-2);//求平均值for (j=0; j<SPACE; j++)//计算油菜籽总个数{if (temp > Pulse_Period_Value[j]){Number ++;}else if (temp <= Pulse_Period_Value[j] && 2*temp/3 > Pulse_Period_Value[j]){Number ++;                  }else if (2*temp/3 <= Pulse_Period_Value[j] && 5*temp/2 > Pulse_Period_Value[j]){Number += 2;  }else if (5*temp/2 <= Pulse_Period_Value[j] && 7*temp/2 > Pulse_Period_Value[j]){Number += 3;  }}Average_Value = Number * 2000000 / Sum_Time;//计算实际油菜籽每秒的实际输出量Number = 0;//总粒清零Sum_Time = 0;//总时间清零TIMSK = 0x24;_SEI();//打开中断H_Value = 12*Average_Value/V_Value; //实际采样数据Separate_IntData((unsigned int)H_Value,0xCB,4);//显示实际采样数据}}
}









基于ATMEGA128单片机的播种机控制系统相关推荐

  1. 基于51单片机的车速控制系统

    本次带来的项目是基于51单片机的车速控制系统,所谓的车速控制,即通过单片机作为主控,实现加速刹车过程中的能量释放与吸收的控制. 具体要求如下: 1.汽车减速存在两种形式,即刹车和动能回收. 2.由于汽 ...

  2. C语言智能窗帘编码,基于STC89C52单片机智能窗帘控制系统.doc

    基于STC89C52单片机智能窗帘控制系统 基于STC89C52单片机智能窗帘控制系统 [摘要] 本设计以STC89C52单片机为主控芯片,接收并处理BH1750FVI光照传感器的光强信号.DS18B ...

  3. 基于 51 单片机室内灯光控制系统

    1. 功能介绍 这是基于 STC89C52 单片机设计的灯光控制系统,实现对室内灯光的控制,采集光敏传感器,红外线热释电传感器,声音传感器,光照照度传感器等数据进行处理,完成室内灯光的智能控制. 支持 ...

  4. 51开发实例 基于51单片机的车灯控制系统

    一.系统设计 基于52单片机开发的车灯控制系统,通过光敏电阻模块检测光强,光照较暗则会控制近光灯打开,按下会车按键可以进行远近光交替.按下倒车按键电机就会倒转(模拟倒车),倒车灯就会亮起,此时按下停止 ...

  5. 基于51单片机的智能门禁控制系统(仿真+源码+全套资料)

    资料编号:119  功能讲解: 采用51单片机作为CPU控制,继电器驱动门锁的打开与关闭,采用按键模拟指纹开锁,以及内部开锁相关信号,当指纹正确门锁可以正常打开,指示灯亮绿灯,如果指纹错误,门锁无法打 ...

  6. 基于51单片机的智能门禁控制系统

    资料编号:119  下面是相关功能视频演示: 119-基于51单片机的智能门禁控制系统(仿真+源码+全套资料) 功能讲解: 采用51单片机作为CPU控制,继电器驱动门锁的打开与关闭,采用按键模拟指纹开 ...

  7. 基于51单片机智能路灯控制系统Proteus仿真

    资料编号:182    下面是仿真功能视频演示: 182-基于51单片机智能路灯控制系统Proteus仿真 功能讲解: 采用51单片机作为控制CPU,可以通过设置开灯和关灯时间开自动控制路灯的打开和关 ...

  8. 基于51单片机交通灯控制系统

    51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...

  9. 基于AT89C51单片机的温度控制系统报警器

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87771724?spm=1001.20 ...

  10. 基于STM32单片机的直流电机控制系统加减速正反转设计方案原理图程序

    硬件电路的设计 3.1系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STM32F103C8T6单片机核心板电路+L298N电机驱动电路+按键电路+电源电路组成. 1.通过按键可以控制电 ...

最新文章

  1. 前端性能优化——从 10 多秒到 1.05 秒
  2. 《战狼2》中人脸识别无人机表现不俗,军、警用果真如此高能?
  3. 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
  4. hdu4585 STL水题
  5. 推荐几个华为、字节跳动、蚂蚁金服的大佬公号
  6. 我的代码为什么看起来像shit?
  7. Unity-Find-Script-References 查找脚本的引用
  8. restful xml_使用入站适配器公开HTTP Restful API。 第1部分(XML)
  9. 解读OpenShift的逻辑架构和技术架构
  10. Expression.Blend.4 Chapter 图片和视频的使用
  11. 水经注下载的地图版权_怎么下载天地图地方高清影像
  12. 金蝶连服务器显示演示版,金蝶正版和金蝶演示版的区别
  13. <自由之路>LeetCode每日一题(DFS + 记忆化搜索)
  14. Servlet实现登录带有验证码验证案例
  15. 二手房数据的分析与挖掘(三)-- 描述性分析2D
  16. hihocoder 网易游戏2016实习生招聘在线笔试 解题报告
  17. 中台战略:企业数字化转型利器
  18. 【python基础教程】计算器
  19. 松下与Delos中国携手,共同推动健康人居空间的研究和实证
  20. vue实现微信公众号微信登录

热门文章

  1. Jira与敏捷项目管理
  2. Java多线程常用面试题(含答案,精心总结整理)
  3. PS制作一寸带白框的证件照
  4. JSP面试题都在这里 1
  5. FastDFS原理介绍
  6. SSM框架下的注册验证
  7. 阿里巴巴矢量图标使用
  8. hp服务器主板维修图,惠普DL 380 G5服务器内部结构拆解:
  9. 大众点评美食评论爬虫
  10. 【Python】SVM分类 特征标准化+网格搜索最优模型参数+十折交叉验证