版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 机电控制工程技术任务三:AVR单片机实验班 级: 100712学 号: 10071158姓 名: 杨永真2013-06-01目录一、实验目的3二、实验任务3三、实验设备3四、背景知识31.实验箱开发板介绍42.了解ATmega单片机53.步进电机的控制5五、单片机设置7六、单片机程序设计7(1)编写软件流程图7(2)编写程序9七、调试程序9八、学习心得9九、附录10一、 实验目的(1)掌握AVR单片机系统简单应用;(2)学习使用单片机编程软件ICCV7 for AVR以及烧写软件progisp;(3)了解并使用ATmega8单片机及其外围电路;(4)学习使用单片机控制步进电机。二、 实验任务
2、(1)使用中断0,1来控制步进电机的方向;(2)通过定时器1和AD采样实现一定频率脉冲的产生进而控制步进电机的转速;(3)通过电位计控制电机转速,按键控制转向,并在数码管上稳定的显示当前转速。三、 实验设备(1)机电控制工程实验教学平台实验箱;(2)Pc一台。四、 背景知识1.实验箱开发板介绍 ATmega8的最小系统包括:晶振(11.059MHZ),滤波电路,复位电路,ISP下载;外围器件包括4位数码管及其驱动芯片ZLG7289,4个LED灯,2个中断按钮,1个旋转电位计,以及24BYJ48A 型步进电机和L298芯片。2.了解ATmega单片机(1)4位数码管由ZLG7289芯片驱动,采用
3、的驱动方式为动态显示,ATmega8通过PD57管脚与ZLG7289之间进行数据传送。(2)4个LED灯与PC03管脚相连,当管脚输出低电平时,LED点亮。(3)2个中断开关与PD2、PD3相连,其中断方式可以为电平触发和沿触发。(4)旋转电位计输出电压为05V,与ADC7相连,通过ATmega8中ADC模块可以得到10位精度的电压数字量值。3.步进电机的控制本次实验用到的是减速永磁式步进电机,型号是24BYJ48A,工作电压为12V,采用AVR单片机作为主控单元,L298作为驱动芯片,L298芯片与ATmega8通过PB14相连。控制框图如下:该步进电机的控制采用四相单双八拍,数值表如下,在
4、单片机程序中延时一段时间后按顺序轮转输出以使其正转或反转。其步距角=5.625°/64,其转速计算公式为n=60×5.625°/64×f360°r/min.引脚PB1、PB3、PB2、PB4分别控制步进电机的A、B、C、D四相(见下图),控制拍子顺序倒置即让电机反转;速度控制实际上就是控制系统发出脉冲的频率。相关程序如下#define A() (PORTB = 0B00000010)#define B() (PORTB = 0B00001000)#define C() (PORTB = 0B00000100)#define D() (PORTB
5、 = 0B00010000)#define AB() (PORTB = 0B00001010)#define BC() (PORTB = 0B00001100)#define CD() (PORTB = 0B00010100)#define DA() (PORTB = 0B00010010)if(step_choice = EIGHTBEATS) /四相八拍 if(dir_flag = FORWARD) if(step = 0) A(); else if(step = 1) AB(); else if(step = 2) B(); else if(step = 3) BC(); else if
6、(step = 4) C(); else if(step = 5) CD(); else if(step = 6) D(); else if(step = 7) DA(); else if(dir_flag = BACKWARD) step+; if(step = 8) step = 0; 五、 单片机设置(1)CPU设置:选择M8,晶振选11.059MHZ,选择INT0和INT1,选择下降沿中断;(2)端口设置:port B 14,port C03,portD57改为输出(O),值默认为零;(3)时间计数器:选择Timer1,计数溢出中断,初始计时时间选择50HZ;(4)ADC模块设置:启用
7、ADC模块,ADC模块使能,选用开始转换和连续转换以及A换结束中断使能,10位精度,右对齐;六、 单片机程序设计(1)编写软件流程图开始初始化IO初始化定时器开中断采集AD计算电机频率f显示f计算定时器初值T1溢出中断T1重装载初值是否正转正传脉冲反转脉冲外部中断0改变方向标志外部中断1改变方向标志否是(2)编写程序本实验的程序涉及到中断触发、LED显示、AD采集等内容,因此程序有些复杂。整个程序的主要思路:电机转向由外部中断INT0和INT1控制,从而改变相序;电机转速是由电位计控制,由AD7采集电量并模数转换后通过公式转换成定时计数器的初值,从而在定时计数溢出中断程序中,执行电机换向。在程
8、序编写软件ICCV7 for AVR中建立一个project,在该project中建立一个C程序,并利用Application Builder建立初始程序,最后再添加其他代码,完成整个程序。完整的程序代码见附录。七、 调试程序在调试过程中,遇到了很多问题, 比如g7289的头文件没有添加还有delay函数的应用,除此之外在程序语言上有很多问题,主要是由于对语言不够熟练,还有程序逻辑的问题,比如定时计数器的应用等等,不过我们都一一改正了过来,最终调试成功。最后,将写好的程序利用progisp烧写入单片机中。八、 学习心得通过本次试验,我对AVR单片机有了初步的了解,学习了单片机的硬件知识、I/O
9、输入输出、定时器、AD数模转换、数码管显示、串口通信、步进电机的控制以及单片机编程等等知识,使我对单片机有了一定的认识。本次实验是通过电位计控制电机转速,按键控制转向,并在数码管上稳定的显示当前转速。这个实验综合了所学的单片机的知识,把很多内容联系起来完成对步进电机的稳定控制。在编程过程中,我们遇到了很多困难,虽然整体的思路可以把握,但是对单片机的语言还没有掌握的很好,总是出现各种各样的问题。在经过了查阅大量资料和很多次调试后,终于调试成功,我们的努力也没有白费。以后我会继续学习单片机,把单片机真正学懂学透,并学以致用。九、 附录#include <iom8v.h>#include
10、 <macros.h>#include"g7289.h" #include"delay.h" #define ADC_Filter_Num 10 #define A() (PORTB = 0B00000010) #define B() (PORTB = 0B00001000)#define C() (PORTB = 0B00000100)#define D() (PORTB = 0B00010000)#define AB() (PORTB = 0B00001010)#define BC() (PORTB = 0B00001100)#defin
11、e CD() (PORTB = 0B00010100)#define DA() (PORTB = 0B00010010)int dir_flag =0; char step = 0; unsigned int digtemp,temp; int num=0;float sum=0;float f=0;char count=0;void port_init(void) PORTB = 0x00; DDRB = 0x1E; PORTC = 0x00; DDRC = 0x0F; PORTD = 0x00; DDRD = 0xE0;/TIMER1 initialize - prescale:1024/
12、 WGM: 0) Normal, TOP=0xFFFF/ desired value: 50Hz/ actual value: 50.232Hz (0.5%)void timer1_init(void) TCCR1B = 0x00; TCNT1H = 0xFF; TCNT1L = 0x29; OCR1AH = 0x00; OCR1AL = 0xD7; OCR1BH = 0x00; OCR1BL = 0xD7; ICR1H = 0x00; ICR1L = 0xD7; TCCR1A = 0x00; TCCR1B = 0x05; #pragma interrupt_handler timer1_ov
13、f_isr:iv_TIM1_OVFvoid timer1_ovf_isr(void) TCNT1H = 0xFF; /reload counter high value TCNT1L = count; /reload counter low value if(dir_flag = 0) if(step = 0) A(); else if(step = 1) AB(); else if(step = 2) B(); else if(step = 3) BC(); else if(step = 4) C(); else if(step = 5) CD(); else if(step = 6) D(
14、); else if(step = 7) DA(); else if(dir_flag = 1) if(step = 0) DA(); else if(step = 1) D(); else if(step = 2) CD(); else if(step = 3) C(); else if(step = 4) BC(); else if(step = 5) B(); else if(step = 6) AB(); else if(step = 7) A(); step+;if(step = 8) step = 0;/ADC initialize/ Conversion time: 75uSvo
15、id adc_init(void) ADCSR = 0x00; /disable adc ADMUX = 0x07; /select adc input 7 ACSR = 0x80; ADCSR = 0xEE;#pragma interrupt_handler adc_isr:iv_ADCvoid adc_isr(void) digtemp=ADCL; digtemp|=(int)ADCH<<8; /conversion complete, read value (int) using. / value=ADCL; /Read 8 low bits first (important
16、) / value|=(int)ADCH << 8; /read 2 high bits and shift into top byteif(digtemp>800) PORTC=0xf0;else if(digtemp>600)PORTC=0x01;else if(digtemp>400)PORTC=0x03;else if(digtemp>200)PORTC=0x07;elsePORTC=0xff; #pragma interrupt_handler int0_isr:iv_INT0void int0_isr(void) dir_flag =0;/ext
17、ernal interupt on INT0#pragma interrupt_handler int1_isr:iv_INT1void int1_isr(void) dir_flag =1;/call this routine to initialize all peripheralsvoid init_devices(void) /stop errant interrupts until set up CLI(); /disable all interrupts port_init(); timer1_init(); adc_init(); MCUCR = 0x0A; GICR = 0xC0; TIMSK = 0x04; /timer interrupt sources SEI(); /re-enable interrupts /all periph
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- SMARCA2-ligand-12-3-methylazetidine-生命科学试剂-MCE-3446
- N-Methylcanadium-iodide-生命科学试剂-MCE-3917
- 3-Fluoro-4-hydroxymethyl-benzonitrile-d2-4-Cyano-2-fluorobenzyl-alcohol-d-sub-2-sub-生命科学试剂-MCE-3394
- 二零二五年度影视作品分红协议书
- 二零二五年度红砖新材料研发与应用合作协议书
- 2025年度电影项目演员聘用合同模板
- 二零二五年度企业薪资补充协议及员工住房补贴
- 2025年度绿色生态园区物业公司股权转让合作协议
- 二零二五年度私人老板与艺术策展人合作协议
- 二零二五年度科研机构竞业禁止协议期限与成果转化
- 口腔种植术单病种质控查检表
- 中日劳务合同范本
- 白宫-人工智能行业:美国人工智能权利法案蓝图(英译中)
- 营口市大学生专考专招考试真题2022
- 典范英语8-15Here comes trouble原文翻译
- 六安市叶集化工园区污水处理厂及配套管网一期工程环境影响报告书
- 运动技能学习与控制课件第一章运动技能学习与控制概述
- 固体废弃物检查记录
- 工程设计费取费标准
- 2023年辽宁铁道职业技术学院高职单招(数学)试题库含答案解析
- CAPP教学讲解课件
评论
0/150
提交评论