当前位置:文档之家› 基于单片机的机械臂控制系统设计与制作汇总

基于单片机的机械臂控制系统设计与制作汇总

基于单片机的机械臂控制系统设计与制作电子信息科学与技术专业学号:***************班级:电科081日期:2011.10.26目录课程设计题目及要求第一章绪论1.1 设计题目及要求1.2 设计内容第二章硬件设计2.1 硬件结构图2.2 各模块工作原理及设计2.2.1 控制模块2.2.2 显示模块2.2.3 按键模块2.2.4 舵机模块2.3 软件程序设计第三章硬件制作以及程序的下载调试3.1 电路板的制作3.2 元器件的焊接3.3 程序的下载与调试第四章总结4.1 课程设计体会4.2 奇瑞参观感受课程设计题目及要求题目:基于单片机的机械臂控制系统设计与制作实习内容:1,完成基于单片机的机械臂控制系统原理图和PCB的绘制,在基本要求的基础上自己可以作一定的扩展;2,利用热转印纸、三氯化铁腐蚀液等完成PCB板的制作;3,完成相应电路的焊接和调试;4,完成相应软件程序的编写;5,完成软、硬件的联调;6,交付实习报告。

实习要求:1,两人一组,自由搭配,但要遵循能力强弱搭配、男女搭配、考研和不考研的搭配;2,充分发挥主观能动性,遇到问题尽量自己解决,在基本要求基础上可自由发挥;3,第一次制作电路,电路不可追求复杂;4,注意安全!熨斗、烙铁。

第一章绪论单片机自20世纪70年代问世以来,以其极高的性价比,受到人们的重视和关注,应用广泛,发展迅速。

单片机集体积小、重量轻、抗干扰能力强、环境要求低、价格低廉、可靠性高、灵活性好、开发较为容易等众多优点,以广泛用于工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,无论在民间、商业、及军事领域单片机都发挥着十分重要的作用二十一世纪,随着机械化、自动化水平的不断提高,不仅减轻了劳动强度、提高生产率,而且把人类活动从危险、恶劣环境中替换出来。

而其中机器人技术,显示出极大的优越性;在宇宙探索、海洋开发以及军事应用上具有重要的实用价值。

大力发展机器人技术,一方面能让社会从劳动苦力型转换到福利休闲型,另一方面能极大的提高民众的幸福感。

在新时期的世界各国,随着应用日益广泛,机器人技术将不断发展并走向成熟。

本次课程设以单片机作为控制器实现对机械手臂的简单控制。

在单片机最小系统的基础上扩展按键接口和舵机接口以及LED显示器,构成最简单的机械臂控制系统。

第二章硬件设计2.1 硬件结构图本系统的控制器采用的是STC 12C5A32S2单片机,具有A/D转换功能,并能产生PWM信号,有内部EEPROM、双串口,具有单时钟/机器周期(1T),是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码不仅完全兼容传统8051,而且速度快8-12倍。

本系统是在单片机最小系统的基础上扩展键盘接口和舵机接口以及LED显示模块。

硬件结构图如下:图1 硬件结构2.2 各模块工作原理及设计2.2.1 控制模块本系统的控制模块选用STC 12C5A32S2单片机引脚及功能:CLKOUT2/P1.0 P1.1 ECI/P1.2 CCP0/P1.3 SS/CCP1/P1.4 MOSI/P1.5 MISO/P1.6SCLK/P1.7P4.7/RSTRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3 CLKOUT0/P3.4 CLKOUT1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1GNDVccP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EX_LVD/P4.6/RST2ALE/P4.5NA/P4.4P2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8PDIP-4012345678910111213141516171819204039383736353433323130292827262524232221STC12C5A32S2单片机引脚图P0.0—P0.7(39—32引脚):P0口是一个漏极开路型准双向I/O 口。

在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。

在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。

验证时,必须外接上拉电阻。

P1.0—P1.7(1-8):P1口是带内部上拉电阻的8位双向I/O口。

在EPROM编程和程序验证时,它接收低8位地址。

P2.0—P2.7(21-28):P2口是一个带内部上拉电阻的8位双向I/O 口。

在访问外部存储器时,它送出高8位地址。

在对EFROM编程和程序验证期间,它接收高8位地址。

P3.0—P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O 口。

STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制、强干扰场合。

本次设计基本原理是通过P3口的6个引脚输出周期固定占空比可调的PWM波形来控制舵机的转动及角度,通过按键实现对舵机角度的控制,从而实现对物品的转移。

通过P0口输出数据以及P2口高四位的扫描实现数码管的显示。

通过P1口以及P2低四位引脚连接按键,控制舵机转动。

2.2.2 舵机模块舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

目前在航模,包括飞机模型、潜艇模型,遥控机器人中已经使用得比较普遍。

舵机是一种俗称,其实是一种伺服马达。

一般来讲,舵机主要由以下几个部分组成:舵盘、减速齿轮组、位置反馈电位计5k、直流电机、控制电路板等。

工作原理:控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。

舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。

标准的舵机有3条导线,分别是:电源线、地线、控制线,如图2所示。

电源和地线给舵机提供最基本的能源保证,主要是电机的转动消耗。

舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。

也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。

程序实现上可通过定时器来实现舵机的转速取决于信号脉宽的变化速度。

如果信号脉宽变化速度太较快的话,舵机会反应不过来;将脉宽变化值线性到要求的时间内,一点一点的增加脉宽值,就可以控制舵机的速度了。

具体来说需要在调试时修改数值,以使舵机的运动更平滑。

由于舵机在每一次脉宽值改变的时候总会有一个转速由零增加再减速为零的过程,所以舵机会产生像步进电机一样运动的原因。

由于本设计中选用的舵机所需电源与单片机电源不一致故要单独供电,地线应接在一起。

同时因为舵机所需的驱动电流比较大,因此P3输出口需接上拉电阻。

2.2.3 显示模块由于LED显示器集易控制、性能很稳定、耗能少、成本低等众多优点故本设计采用LED显示器。

本次设计,选用四联LED显示器,采用动态扫描方式,分别显示所按键位和转动角度。

LED的每段需接一个限流电阻再接至P0口,显示电路如下图所示。

这样,就完成的扩展模块的LED显示功能,可以很清晰的观察到对应的舵机转动的角度。

LED显示电路2.2.4 按键模块本系统采用独立按键查询工作方式,通过12个(6组)按键控制舵机的转动,即通过P2口低四位和P1口控制六个自由度的舵机正反转动。

由于系统比较简单,且接口充足,所以采用独立按键即可。

当有按键按下时,可控制不同的舵机转动,其中两个按键控制一个舵机,分别控制舵机的正向转动和反向转动。

转动的度数可以通过按键时间的长短控制,最大的转动角度为180度。

2.3 软件程序设计由于使用汇编程序编程能对单片机内部结构及运行原理有深一步了解,同时有程序占用存储空间小等优点,故本实验采用汇编语言汇编语言的特点:目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

汇编语言基本保留了机器语言的灵活性。

使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。

目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行。

汇编程序如下:ORG 0000HLJMP MAINORG 000BHLJMP T0INTORG 001BHLJMP T1INTORG 1000HMEDL EQU 4EH MEDH EQU 4FH WAVE EQU 33H DGL EQU 30H DGH EQU 31H FLAG EQU 32H RANG_S EQU 2FH.1 RANG_X EQU 2FH.2 FLAG_X EQU 2FH.0 DIS_DAT EQU 55H LED_DUAN EQU P0NUM_JI EQU 58HNUM_DAT EQU 37HNUM_FLAG EQU 3EH MAIN:MOV TMOD,#11HMOV TH0,#0B1HMOV TL0,#0F7HSETB ET1SETB ET0SETB EASETB TR0MOV MEDH,#0FAHMOV MEDL,#3AHMOV SP,#60HMOV WAVE,#0EFHMOV FLAG,#0CLR RANG_SCLR RANG_XCLR FLAG_XMOV NUM_FLAG,#0MOV DGL,#40HMOV DGH,#41HMOV 41H,#0FAHMOV 40H,#3AHMOV 43H,#0FAHMOV 42H,#3AHMOV 45H,#0FAHMOV 44H,#3AHMOV 47H,#0FAHMOV 46H,#3AHMOV 49H,#0FAHMOV 48H,#3AHMOV 4BH,#0FAHMOV 4AH,#3AHMOV 38H,#0MOV 39H,#0MOV 3AH,#0MOV 3BH,#0MOV 3CH,#0MOV 3DH,#0MOV 55H,#0MOV 56H,#0MOV 57H,#16MOV 58H,#0 START:LCALL PADCESLCALL DISPLAYJMP START DISPLAY:SETB P2.4CLR P2.5CLR P2.6CLR P2.7MOV A,#3LCALL DUANXIANCLR P2.4SETB P2.5CLR P2.6CLR P2.7MOV A,#2LCALL DUANXIAN CLR P2.4CLR P2.5SETB P2.6CLR P2.7MOV A,#1LCALL DUANXIANCLR P2.4CLR P2.5CLR P2.6SETB P2.7MOV A,#0LCALL DUANXIAN RETDUANXIAN:ADD A,#DIS_DATMOV R0,AMOV A,@R0MOVDPTR,#TAB_duanMOVC A,@A+DPTRMOV LED_DUAN,AMOV R5,#0FFHMOV R6,#3DO: DJNZ R5,$MOV R5,#0FFHDJNZ R6,DO RETTAB_duan:DB0C0H,0F9H,0A4H,0B0H,99H,92 H,82H,0F8H DB80H,90H,88H,83H,0C6H,0A1H, 86H,8EH,0BFH,0FFH PADCES:MOV P1,#0FFHMOV A,P2ANL A,#0F0HORL A,#0FHMOV P2,AMOV A,P1CPL AJZ NEXTCJMP DNDNNEXTC: MOV A,P2CPL AANL A,#0FHJZ NNJMP DNDNNN: LJMP BANDNDN: MOV R6,#10DO1: MOV R5,#0FFHDJNZ R5,$DJNZ R6,DO1PD: MOV A,P1CPL AJZ NEXTPCJNE A,#1,PAN1MOV FLAG,#1JMP PDNPAN1: CJNE A,#2H,PAN2MOV FLAG,#2JMP PDNPAN2: CJNE A,#4H,PAN3MOV FLAG,#3JMP PDNPAN3: CJNE A,#8H,PAN4MOV FLAG,#4JMP PDNPAN4: CJNE A,#10H,PAN5 MOV FLAG,#5JMP PDNPAN5: CJNE A,#20H,PAN6 MOV FLAG,#6JMP PDNPAN6: CJNE A,#40H,PAN7 MOV FLAG,#7JMP PDNPAN7: CJNE A,#80H,PDNMOV FLAG,#8JMP PDNNEXTP:MOV A,P2CPL AANL A,#0FHJZ BANDJMP KEDBAND:LJMP BAN KED:MOV A,P2CPL AANL A,#0FHCJNE A,#1,PAN11MOV FLAG,#9JMP PDNPAN11: CJNE A,#2,PAN12 MOV FLAG,#10JMP PDNPAN12:CJNE A,#4,PAN13MOV FLAG,#11JMP PDNPAN13:CJNE A,#8,PDNMOV FLAG,#12JMP PDNPDN:LCALL DATCES CES: MOV A,FLAGMOV B,#2CLR CDIV ABMOV A,BJZ JIASETB FLAG_XJMP DNJIA:CLR FLAG_XDN: LCALL CHESHIJB FLAG_X,C1JB RANG_S,JINCLR RANG_XMOV R0,DGLMOV R1,DGHMOV A,@R0CLR CADD A,#01HJMP C2C1: JB RANG_X,JINCLR RANG_SMOV R0,DGLMOV R1,DGHMOV A,@R0CLR CSUBB A,#01HC2: MOV @R0,AJNC JINMOV A,@R1JB FLAG_X,C11INC AMOV @R1,AJMP JINC11: DEC AMOV @R1,A JIN: LCALL NUMCESMOV A,P2ANL A,#0F0HORL A,#0FHMOV P2,AMOV A,P1CPL AJZ NEXTCAJMP DNDY NEXTCA:MOV A,P2CPL AANL A,#0FHJZ BAN DNDY: MOV R6,#5DY1: MOV R5,#0FFHDJNZ R5,$DJNZ R6,DY1LCALL DISPLAYLJMP PDBAN:RETCHESHI:CLR CMOV A,56HMOV B,#10MUL ABADD A,55HMOV R3,AMOV A,57HCJNE A,#17,FUSHIMOV A,R3CLR CSUBB A,#90JC CHESHIDSETB RANG_SCLR RANG_XJMP CHESHID FUSHI: MOV A,57HCJNE A,#16,CHESHID MOV A,R3CLR CSUBB A,#90JC CHESHIDSETB RANG_XCLR RANG_SJMP CHESHID CHESHID:RETNUMCES:MOV R0,DGLMOV R1,DGHMOV A,@R0MOV R5,AMOV A,@R1MOV R4,ACLR CMOV A,MEDLSUBB A,R5JC JIEWEIMOV R5,ACLR CMOV A,MEDHSUBB A,R4MOV R4,AJMP JIAND JIEWEI:MOV R5,AINC R4CLR CMOV A,MEDHSUBB A,R4MOV R4,A JIAND:MOV A,R4ANL A,#80HJNZ FUSHUOMOV R7,#0BHLCALL DIVOKMOV A,R3MOV B,#10DIV ABMOV 55H,BMOV 56H,AMOV 57H,#16JMP NUMENDFUSHUO:MOV A,R5CPL ACLR CINC AMOV R5,AJC JIA1MOV A,R4CPL AMOV R4,AJMP JDFJIA1:MOV A,R4CPL AINC AMOV R4,A JDF: MOV R7,#0BHLCALL DIVOKMOV A,R3MOV B,#10DIV ABMOV 55H,BMOV 56H,AMOV 57H,#17JMP NUMENDNUMEND:RETDATCES:MOV R3,FLAGMOV A,R3CLR CSUBB A,#3JNC E1MOV WAVE,#0F8HMOV DGL,#40HMOV DGH,#41HMOV NUM_JI,#1MOV NUM_DAT,#38HJMP ENE1: MOV A,R3CLR CSUBB A,#5JNC E2MOV WAVE,#0F4HMOV DGL,#42HMOV DGH,#43HMOV NUM_JI,#2MOV NUM_DAT,#39HJMP ENE2: MOV A,R3CLR CSUBB A,#7JNC E3MOV WAVE,#0ECHMOV DGL,#44HMOV DGH,#45HMOV NUM_JI,#3MOV NUM_DAT,#3AHJMP ENE3: MOV A,R3CLR CSUBB A,#9JNC E4MOV WAVE,#0DCHMOV DGL,#46HMOV DGH,#47HMOV NUM_JI,#4MOV NUM_DAT,#3BHJMP ENE4: MOV A,R3CLR CSUBB A,#11JNC E5MOV WAVE,#0BCHMOV DGL,#48HMOV DGH,#49HMOV NUM_JI,#5MOV NUM_DAT,#3CHJMP ENE5: MOV WAVE,#7CH MOV DGL,#4AHMOV DGH,#4BHMOV NUM_JI,#6MOV NUM_DAT,#3DH EN:RETCLR RS1SETB RS0ORL P3,#0FCHSETB TR1CLR TR0MOV TH0,#0B1HMOV TL0,#0F7HMOV R0,DGLMOV R1,DGHMOV TH1,@R1MOV TL1,@R0SETB TR0CLR RS1CLR RS0RETIT1INT:PUSH ACCMOV A,P3ANL A,#03HORL A,WAVEMOV P3,ACLR TR1POP ACCRETIDIVOK: CLR CMOV A,R4SUBB A,R7JC DV50SETB OVRETDV50: MOV R6,#8 DV51: MOV A,R5RLC AMOV R5,AMOV A,R4RLC AMOV R4,AMOV F0,CCLR CSUBB A,R7ANL C,/F0JC DV52MOV R4,ADV52: CPL CMOV A,R3RLC AMOV R3,ADJNZ R6,DV51MOV A,R4ADD A,R4JC DV53SUBB A,R7JC DV54DV53: INC R3DV54: CLR OVRETEND第三章硬件制作以及程序的下载调试3.1 电路板制作首先用protel 99 SE绘制原理图,生成PCB并手工调整布局,之后手工布线。

相关主题