金属分炼器设计毕业设计论文.docx

上传人:b****3 文档编号:4595349 上传时间:2022-12-07 格式:DOCX 页数:19 大小:360.29KB
下载 相关 举报
金属分炼器设计毕业设计论文.docx_第1页
第1页 / 共19页
金属分炼器设计毕业设计论文.docx_第2页
第2页 / 共19页
金属分炼器设计毕业设计论文.docx_第3页
第3页 / 共19页
金属分炼器设计毕业设计论文.docx_第4页
第4页 / 共19页
金属分炼器设计毕业设计论文.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

金属分炼器设计毕业设计论文.docx

《金属分炼器设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《金属分炼器设计毕业设计论文.docx(19页珍藏版)》请在冰豆网上搜索。

金属分炼器设计毕业设计论文.docx

金属分炼器设计毕业设计论文

毕业设计(论文)说明书

金属分炼器

学院电子信息工程学院

专业应用电子技术

指导教师

学生姓名

提交日期2014年05月03日

摘要:

本系统以ATMEL公司的ATmega16芯片为控制核心,采用L298驱动器驱动步进电机控制旋转角度,进而改变转角

,在0、45°、-45°,可以由键盘调整电机的初始位置,绝对误差≤5°。

系统通过模拟量位移传感器分辨出铁、铝、铜,并回收放到指定的位置。

系统利用步进电机旋转的角度对木板偏转角度进行实时测量,并采用LCD1602显示电机偏转角

及位移传感器检测的金属。

关键字:

ATmega16芯片,L298,位移传感器,LCD1602

目录

一.系统方案3

1.系统组成3

二.方案论证与比较3

1.电机控制模块控制选择3

2.显示模块选择4

三.理论分析与计算5

1.角度控制算法分析与计算5

四.系统电路设计5

1.最小系统电路设计5

2.控制之298驱动电路设计6

3.总体电路设计7

五.系统程序设计8

1.程序功能简介8

2.主函数流程图8

六.测试方案与测试结果9

1.测试仪器9

参考文献:

9

附录1:

主要元件清单9

附录2:

电路原理图10

1.1电路原理图10

附录3:

程序清单13

系统调试程序13

/*************************************18

 

1.系统方案

1.系统组成

根据题目要求,本系统系统设计主要包括三大大部分:

显示模块、金属分离模块、金属检测模块。

系统构成如图F-1-1,

下面对各部分进行方案论证。

系统构成如图F-1-1

二.方案论证与比较

1.电机控制模块控制选择

通过L298驱动器控制直流风扇的直流电机来实现。

L298是一款高压、大电流双全桥式驱动器,可以直接通过电源来调节输出电压,具有输出电压高(最高可达50V),可靠性高,占用空间小等特点。

该芯片可以直接受控于单片机IO口提供的信号。

因此,电路简单,控制方便,所以我们选择L298来做电机驱动。

2.显示模块选择

方案一:

采用数码管显示。

该方案具有程序简单,显示速度快等特点。

但数码管显示需要外加驱动芯片,且只能显示数字。

方案二:

使用基于ST7920的12864汉子图形点阵液晶显示。

LCD12864内置8192个中文汉字(16*16点阵)、128个字符(8*16点阵)及64*256点阵RAM(GDRAM),可采用串并口两种方式传输数据。

该方案显示信息量大,可显示汉字及图形,具有驱动电压低;功耗微小等优点。

方案三:

采用LCD1602显示。

1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字和日语片假名;1602并口传输速度较快。

为方便调试及使用,本设计选用LCD1602液晶显示,在我们这次比赛中,只需要显示字母和角度,就没必要选择12864来显示。

三.理论分析与计算

1.角度控制算法分析与计算

本系统采用了“粗调+微调”纠错调节的方式来完成发挥部分要求的角度设定功能。

该方法调节效率高,绝对误差较小。

由于外部环境的干扰及风力与转速的复杂关系,我们不能直接得到转速(或者PWM波占空比)与转角的线性关系。

最后,通过测试,我们确定用“粗调+微调”逐步纠错的方法来稳定设定角度。

四.系统电路设计

1.最小系统电路设计

AVR最小系统由ATmega16单片机,ISP下载端口,晶振,复位电路及电源等组成。

ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器,具有片内振荡器的可编程的看门狗定时器。

其数据吞吐率高达1MIPS/MHz,具有高性能,低功耗的特点。

2.控制之298驱动电路设计

该电路为L298的接线电路。

本电路使能端(ENA和ENB)接高电平,通过控制输入IN1,IN2和IN3,IN4来控制电机。

L298可以驱动两个电机,OUT1,OUT2为一个输出组,OUT3,OUT4为另一个输出组。

本系统只能驱动一台电机。

IN1,IN2和IN3,IN4脚分别是控制OUT1,OUT2和OUT3,OUT4电机的输入电平。

输入与电机的运行关系如表1-2所示。

本系统将单片机产生的PWM波接L298的IN1输入端,IN2引脚接低电平。

当IN1输入为高电平时正转,IN2输入为低电平时被控电机停止。

所以,PWM占空比不同,电机转速也就不一样。

表1-2L298功能模块

电机运转状态

0

停止

1

1

0

正转

1

0

1

反转

1

1

1

立停

1

0

0

停止

3.总体电路设计

本系统整体电路设计包括的主要模块有:

单片机最小系统电路设计,L298驱动电路设计,矩阵按键电路设计,LCD1602液晶接线模块,模拟量位移传感器等。

五.系统程序设计

1.程序功能简介

为方便调试,系统程序分模块进行调试。

系统程序设计的主要模块包括:

电机驱动模块程序,角度测量模块程序,LCD1602液晶显示模块程序及金属检测分离模块程序等。

2.主函数流程图

六.测试方案与测试结果

1.测试仪器

铁、铝、铜、1602显示。

参考文献:

[1]三恒星科技编著.AVR单片机原理与应用实例.北京:

电子工业出版社,2009.7

[2]张军、宋涛编著.AVR单片机C语言程序设计实例精粹.北京:

电子工业出版社

附录1:

主要元件清单

序号

名称

型号

规格

数量

单位

备注

1

单片机

ATMEGA16L

DIP40

1

2

LCD1602液晶

DIP16

1

3

电机驱动芯片

L298

1

4

模拟量位移传感器

1

5

电解电容

10uF

16V

1

6

电解电容

220uF

25V

1

7

稳压管

7805

1

8

稳压管

7812

1

9

OPA2234

1

10

石英晶振

16MHZ

1

11

步进电机

1

附录2:

电路原理图

1.1电路原理图

电路原理图为系统整体控制部分原理图和电源部分原理图。

附录3:

程序清单

系统调试程序

/******************************************************/

金属分离器

/******************************************************/

#include

#include

#include"LCD1602.H"

unsignedcharCH[]={"0123456789"};

unsignedcharCH0[]={"....!

"};

unsignedcharCH1[]={"-----"};

unsignedcharCH2[]={"_Fe_Just..."};

unsignedcharCH3[]={"_Cu_Against..."};

unsignedcharspin[]={0x1F,0x20,0x4F,0x8F};

unsignedcharspin1[]={0x8F,0x40,0x2F,0x1F};

//#defineK10x01

//#defineK20x02

//#defineK30x04

#definecorner12

intADtemp,x,y,z,w;

unsignedintMotorFlag,MotorFlag1=0,ADFlag;

/*************************************************/

voidinitADC(void)

{

ADMUX|=(1<

ACSR=(1<

ADCSRA|=(1<

//ADC使能,ADC开始转换,连续转换,中断使能,128分频

}

/*************************************************/

//ADC转换完成中断,ADC读取

/*************************************************/

SIGNAL(SIG_ADC)

{

ADtemp=ADCL;//获取ADC的值

ADtemp=(ADCH<<2)|(ADtemp>>6);

}

/****************************/

//液晶显示

/****************************/

voidLCD_display(unsignedchartemp)

{

unsignedinti;

if(temp==0)

{

for(i=0;i<11;i++)LCD_read_com(CH2[i]);

}

if(temp==1)

{

for(i=0;i<11;i++)LCD_read_com(CH3[i]);

}

if(temp==2)

{

for(i=0;i<11;i++)LCD_read_com(CH0[i]);

}

if(temp==3)

{

for(i=0;i<11;i++)LCD_read_com(CH1[i]);

}

}

voidLCD_displays(unsignedchartemp)

{

x=ADtemp/1000;

y=ADtemp%1000/100;

z=ADtemp%1000%100/10;

w=ADtemp%10;

LCD_write_com(0X80);

LCD_read_com(CH[x]);

LCD_read_com(CH[y]);

LCD_read_com(CH[z]);

LCD_read_com(CH[w]);

LCD_display(temp);

}

/****************************/

//电机控制

/****************************/

voidMT(unsignedinttemp)

{

unsignedinti,j,h,l;

if(temp==1)

{

for(j=0;j

for(i=0;i<4;i++)

{

LCD_displays(ADFlag);

PORTD=spin1[i];

h=j/10;

l=j%10;

LCD_write_com(0x80+0x40);

LCD_read_com(CH[h]);

LCD_read_com(CH[l]);

}

}

if(temp==0)

{

for(j=0;j

for(i=0;i<4;i++)

{

LCD_displays(ADFlag);

PORTD=spin[i];

h=j/10;

l=j%10;

LCD_write_com(0x80+0x40);

LCD_read_com(CH[h]);

LCD_read_com(CH[l]);

}

}

LCD_write_com(0x80+0x40);

LCD_read_com(CH[10]);

LCD_read_com(CH[10]);

}

voidADcom()

{

intttp;

ttp=ADtemp;

if(ttp>=0&&ttp<=450)ADFlag=0;

if(ttp>=450&&ttp<=700)ADFlag=1;

if(ttp>=700&&ttp<=900)ADFlag=2;

if(ttp>=900&&ttp<=1024)ADFlag=2;

if(ADFlag==1)

{

MT(ADFlag);

MotorFlag1=1;

}

if(ADFlag==0)

{

MT(ADFlag);

MotorFlag1=2;

}

if(ADFlag==2)

{

LCD_displays(ADFlag);

}

}

voidMTcom()

{

unsignedinti,j;

if(MotorFlag1==1)

{

for(j=0;j

for(i=0;i<4;i++)

{

PORTD=spin[i];

LCD_displays(3);

}

}

if(MotorFlag1==2)

{

for(j=0;j

for(i=0;i<4;i++)

{

PORTD=spin1[i];

LCD_displays(3);

}

}

delay(10);

MotorFlag1=0;

}

/****************************/

//按键扫描

/****************************/

/*

voidkey()

{

signedchartemp;

PORTD=0xff;

MotorFlag=0;

LCD_display(MotorFlag);

temp=PIND;

if(temp==~K1)

{

delay(10);

if(temp==~K1)

{

MotorFlag=1;

LCD_display(n);

MT(MotorFlag);

while(temp==~K1)temp=PIND;

MotorFlag1=0;

MotorFlag2=0;

}

}

temp=PIND;

if(temp==~K2)

{

delay(10);

if(temp==~K2)

{

MotorFlag=2;

LCD_display(MotorFlag);

MT(MotorFlag);

while(temp==~K2)temp=PIND;

MotorFlag1=0;

MotorFlag2=1;

}

}

}*/

intmain(void)

{

LCD_init();

DDRD=0X00;

DDRB=0XFF;

initADC();

sei();

while

(1)

{

ADcom();

MTcom();

//delay(10000);

}

}

/*************************************

1602.H文件

************************************/

#include

#defineRS1PORTB|=0x01

#defineRS0PORTB&=0x00

#defineRW1PORTB|=0x02

#defineRW0PORTB&=0x00

#defineEN1PORTB|=0x04

#defineEN0PORTB&=0x00

unsignedcharzi[]={"_zby:

1119013207_"};

voiddelay(unsignedintx)

{

unsignedinti,j;

for(i=0;i

for(j=0;j<5;j++);

}

voidLCD_write_com(unsignedcharcom)

{

RS0;

delay(5);

PORTC=com;

delay(5);

EN1;

delay(5);

EN0;

}

voidLCD_read_com(unsignedcharcom)

{

RS1;

delay(5);

PORTC=com;

delay(5);

EN1;

delay(5);

EN0;

}

voidLCD_init()

{

DDRC=0XFF;

DDRB=0XFF;

PORTC=0X00;

RW0;

LCD_write_com(0x38);

LCD_write_com(0x0c);

LCD_write_com(0x06);

LCD_write_com(0x01);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1