1、单片机集体积小、重量轻、抗干扰能力强、环境要求低、价格低廉、可靠性高、灵活性好、开发较为容易等众多优点,以广泛用于工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,无论在民间、商业、及军事领域单片机都发挥着十分重要的作用二十一世纪,随着机械化、自动化水平的不断提高,不仅减轻了劳动强度、提高生产率,而且把人类活动从危险、恶劣环境中替换出来。而其中机器人技术,显示出极大的优越性;在宇宙探索、海洋开发以及军事应用上具有重要的实用价值。大力发展机器人技术,一方面能让社会从劳动苦力型转换到福利休闲型,另一方面能极大的提高民众的幸福感。在新时期的世界各国,随着应用日益广
2、泛,机器人技术将不断发展并走向成熟.本次课程设以单片机作为控制器实现对机械手臂的简单控制。在单片机最小系统的基础上扩展按键接口和舵机接口以及LED显示器,构成最简单的机械臂控制系统。 第二章 硬件设计2。1 硬件结构图 本系统的控制器采用的是STC 12C5A32S2单片机,具有A/D转换功能,并能产生PWM信号,有内部EEPROM、双串口,具有单时钟/机器周期(1T),是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码不仅完全兼容传统8051,而且速度快8-12倍。 本系统是在单片机最小系统的基础上扩展键盘接口和舵机接口以及LED显示模块。硬件结构图如下:图1 硬件结构2 各模块工作
3、原理及设计 2.2.1 控制模块 本系统的控制模块选用STC 12C5A32S2单片机 引脚及功能:STC12C5A32S2单片机引脚图 P0。0-P0。7(39-32引脚):P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,必须外接上拉电阻。 P1。0P1。7(1-8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。 P2.0P2.7(2128):P2口是一个带内部上拉电阻的8位双向I/O口
4、。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。 P3。0P3。7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口. STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快812倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制、强干扰场合。 本次设计基本原理是通过P3口的6个引脚输出周期固定占空比可调的PWM波形来控制舵机的转动及角度,通过按键实现对舵机
5、角度的控制,从而实现对物品的转移。通过P0口输出数据以及P2口高四位的扫描实现数码管的显示。通过P1口以及P2低四位引脚连接按键,控制舵机转动.2.2.2 舵机模块舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在航模,包括飞机模型、潜艇模型,遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。 一般来讲,舵机主要由以下几个部分组成:舵盘、减速齿轮组、位置反馈电位计5k、直流电机、控制电路板等。 工作原理:控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵
6、盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。 标准的舵机有3条导线,分别是:电源线、地线、控制线,如图2所示。电源和地线给舵机提供最基本的能源保证,主要是电机的转动消耗。 舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从0。5ms2.5ms,相对应舵盘的位置为0180度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。程序实现上可通过定时
7、器来实现 舵机的转速取决于信号脉宽的变化速度。如果信号脉宽变化速度太较快的话,舵机会反应不过来;将脉宽变化值线性到要求的时间内,一点一点的增加脉宽值,就可以控制舵机的速度了。具体来说需要在调试时修改数值,以使舵机的运动更平滑。由于舵机在每一次脉宽值改变的时候总会有一个转速由零增加再减速为零的过程,所以舵机会产生像步进电机一样运动的原因. 由于本设计中选用的舵机所需电源与单片机电源不一致故要单独供电,地线应接在一起。同时因为舵机所需的驱动电流比较大,因此P3输出口需接上拉电阻。2.2.3 显示模块由于LED显示器集易控制、性能很稳定、耗能少、成本低等众多优点故本设计采用LED显示器。 本次设计,
8、选用四联LED显示器,采用动态扫描方式,分别显示所按键位和转动角度。LED的每段需接一个限流电阻再接至P0口,显示电路如下图所示。这样,就完成的扩展模块的LED显示功能,可以很清晰的观察到对应的舵机转动的角度。LED显示电路2.4 按键模块 本系统采用独立按键查询工作方式,通过12个(6组)按键控制舵机的转动,即通过P2口低四位和P1口控制六个自由度的舵机正反转动。由于系统比较简单,且接口充足,所以采用独立按键即可。 当有按键按下时,可控制不同的舵机转动,其中两个按键控制一个舵机,分别控制舵机的正向转动和反向转动。转动的度数可以通过按键时间的长短控制,最大的转动角度为180度。2.3 软件程序
9、设计 由于使用汇编程序编程能对单片机内部结构及运行原理有深一步了解,同时有程序占用存储空间小等优点,故本实验采用汇编语言 汇编语言的特点: 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。汇编语言基本保留了机器语言的灵活性.使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。 汇编语言程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行. 汇编程序如下:ORG 0000HLJMP MAINORG 000BHLJMP T0INTORG 001BHLJMP T1INTORG 1000H
10、MEDL EQU 4EHMEDH EQU 4FHWAVE EQU 33HDGL EQU 30HDGH EQU 31HFLAG EQU 32HRANG_S EQU 2FH.1RANG_X EQU 2FH。2FLAG_X EQU 2FH.0DIS_DAT EQU 55HLED_DUAN EQU P0NUM_JI EQU 58H NUM_DAT EQU 37H NUM_FLAG EQU 3EHMAIN: MOV TMOD,11H MOV TH0,0B1H MOV TL0,#0F7H SETB ET1 SETB ET0 SETB EA SETB TR0 MOV MEDH,0FAH MOV MEDL,3
11、AH MOV SP,60H MOV WAVE,#0EFH MOV FLAG,0 CLR RANG_S CLR RANG_X CLR FLAG_X MOV NUM_FLAG,#0 MOV DGL,#40H MOV DGH,#41H MOV 41H,#0FAH MOV 40H,3AH MOV 43H,0FAH MOV 42H,#3AH MOV 45H,#0FAH MOV 44H,#3AH MOV 47H,0FAH MOV 46H,3AH MOV 49H,#0FAH MOV 48H,3AH MOV 4BH,#0FAH MOV 4AH,3AH MOV 38H,#0 MOV 39H,0 MOV 3AH,
12、0 MOV 3BH,0 MOV 3CH,#0 MOV 3DH,#0 MOV 55H,0 MOV 56H,#0 MOV 57H,#16 MOV 58H,#0 START: LCALL PADCES LCALL DISPLAY JMP STARTDISPLAY: SETB P2。4 CLR P2.5 CLR P2.6 CLR P2.7 MOV A,#3 LCALL DUANXIAN CLR P2.45 CLR P2。67 MOV A,#2 LCALL DUANXIAN CLR P2。 CLR P2。 SETB P2.67 MOV A,#1 LCALL DUANXIAN CLR P2.4 CLR P
13、2.5 SETB P2。 MOV A,0RETDUANXIAN: ADD A,DIS_DAT MOV R0,A MOV A,R0 MOV DPTR,TAB_duan MOVC A,A+DPTR MOV LED_DUAN,A MOV R5,#0FFH MOV R6,3DO: DJNZ R5, MOV R5,0FFH DJNZ R6,DO TAB_duan:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFHPADCES: MOV P1,0FFH MOV A,P2 ANL A,0F
14、0H ORL A,0FH MOV P2,A MOV A,P1 CPL A JZ NEXTC JMP DNDNNEXTC: ANL A,#0FH JZ NNNN: LJMP BAN DNDN: MOV R6,10 DO1: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,DO1PD: MOV A,P1 CPL A JZ NEXTP CJNE A,#1,PAN1 MOV FLAG,#1 JMP PDNPAN1: CJNE A,#2H,PAN2 MOV FLAG,#2PAN2: CJNE A,#4H,PAN3 MOV FLAG,#3PAN3: CJNE A,#8H,PAN4 MOV F
15、LAG,#4PAN4: CJNE A,10H,PAN5 MOV FLAG,#5 JMP PDN PAN5: CJNE A,#20H,PAN6 MOV FLAG,6PAN6: CJNE A,40H,PAN7 MOV FLAG,#7PAN7: CJNE A,80H,PDN MOV FLAG,8NEXTP: ANL A,#0FH JZ BAND JMP KED BAND:LJMP BANKED: MOV A,P2 CJNE A,#1,PAN11 MOV FLAG,9PAN11: CJNE A,2,PAN12 MOV FLAG,#10PAN12:CJNE A,#4,PAN13 MOV FLAG,#11
16、PAN13:CJNE A,8,PDN MOV FLAG,12PDN: LCALL DATCES CES: MOV A,FLAG MOV B,#2 CLR C DIV AB MOV A,B JZ JIA SETB FLAG_X JMP DNJIA:DN: LCALL CHESHI JB FLAG_X,C1 JB RANG_S,JIN MOV R0,DGL MOV R1,DGH MOV A,R0 ADD A,#01H JMP C2C1: JB RANG_X,JIN MOV R0,DGL MOV R1,DGH MOV A,R0 SUBB A,#01HC2: MOV R0,A JNC JIN MOV
17、A,R1 JB FLAG_X,C11 INC A MOV R1,A JMP JINC11: DEC A MOV R1,A JIN: LCALL NUMCES ANL A,0F0H ORL A,#0FH JZ NEXTCA JMP DNDYNEXTCA:MOV A,P2 ANL A,0FH JZ BANDNDY: MOV R6,#5DY1: MOV R5,#0FFH DJNZ R5, DJNZ R6,DY1 LCALL DISPLAY LJMP PD BAN:RET CHESHI: MOV A,56H MOV B,10 MUL AB ADD A,55H MOV R3,A MOV A,57H CJ
18、NE A,17,FUSHI MOV A,R3 SUBB A,90 JC CHESHID SETB RANG_S JMP CHESHID FUSHI: CJNE A,#16,CHESHID SUBB A,#90 SETB RANG_XCHESHID:NUMCES: MOV R0,DGL MOV R1,DGH MOV A,R0 MOV R5,A MOV A,R1 MOV R4,A CLR C MOV A,MEDL SUBB A,R5 JC JIEWEI MOV A,MEDH SUBB A,R4 JMP JIANDJIEWEI: MOV R5,A INC R4 MOV A,MEDH MOV R4,A
19、JIAND: MOV A,R4 ANL A,80H JNZ FUSHUO MOV R7,#0BH LCALL DIVOK MOV A,R3 MOV B,#10 MOV 55H,B MOV 56H,A MOV 57H,16 JMP NUMEND FUSHUO: MOV A,R5 JC JIA1 JMP JDF JIA1:JDF: MOV 57H,#17 JMP NUMEND NUMEND:DATCES: MOV R3,FLAG MOV A,R3 SUBB A,3 JNC E1 MOV WAVE,#0F8H MOV DGL,40H MOV DGH,41H MOV NUM_JI,#1 MOV NUM
20、_DAT,#38H JMP EN E1: SUBB A,5 JNC E2 MOV WAVE,0F4H MOV DGL,42H MOV DGH,43H MOV NUM_JI,#2 MOV NUM_DAT,39H JMP ENE2: SUBB A,7 JNC E3 MOV WAVE,0ECH MOV DGL,44H MOV DGH,45H MOV NUM_JI,3 MOV NUM_DAT,3AHE3: SUBB A,#9 JNC E4 MOV WAVE,0DCH MOV DGL,46H MOV DGH,#47H MOV NUM_JI,4 MOV NUM_DAT,3BHE4: SUBB A,#11
21、JNC E5 MOV WAVE,#0BCH MOV DGL,#48H MOV DGH,#49H MOV NUM_JI,5 MOV NUM_DAT,#3CHE5: MOV WAVE,7CH MOV DGL,4AH MOV DGH,#4BH MOV NUM_JI,6 MOV NUM_DAT,3DHEN: CLR RS1 SETB RS0 ORL P3,0FCH SETB TR1 CLR TR0 MOV TH0,#0B1H MOV TL0,#0F7H MOV R0,DGL MOV TH1,R1 MOV TL1,R0 CLR RS0RETIT1INT: PUSH ACC MOV A,P3 ANL A,
22、#03H ORL A,WAVE MOV P3,A CLR TR1 POP ACCRETI DIVOK: MOV A,R4 SUBB A,R7 JC DV50 SETB OV RET DV50: MOV R6,8 DV51: MOV A,R5 RLC A MOV R5,A MOV A,R4 MOV R4,A MOV F0,C CLR C SUBB A,R7 ANL C,/F0 JC DV52 MOV R4,A DV52: CPL C MOV A,R3 MOV R3,A DJNZ R6,DV51 MOV A,R4 ADD A,R4 JC DV53 JC DV54 DV53: INC R3 DV54
23、: CLR OV END3.1 电路板制作首先用protel 99 SE绘制原理图,生成PCB并手工调整布局,之后手工布线.布线时,要设置电气规则,设置安全距离,对电源线、地线加粗;同时要尽量加大焊盘;尽可能地避免跳线(PCB图如下所示)。PCB完成后打印在热转印纸上,覆铜板先用砂纸打磨去除上面防氧化胶水,将热转印纸紧贴在板子上,并用熨斗熨几分钟,之后在自来水冲洗下揭去热转印纸,待板子风干,观察上面的油墨线路是否有缺损,若有可用油墨笔将缺损处瞄一下即可.待油墨风干后放在三氯化铁腐蚀液里腐蚀十分钟左右,腐蚀时要不断晃动腐蚀液加快腐蚀速度,直到板上面未覆油墨的铜全部腐蚀完,取出板子放在自来水中冲洗
24、干净,风干后就可以钻孔了,待孔钻完,将板子放在自来水中用砂纸打磨去覆铜上的油墨,到此板子就制作完成了.3.2 原器件的焊接 PCB制作完毕后紧接着就可以焊接电子原器件,为了焊接方便应先焊接小元件,比如电阻、按键、贴片电容排阻,之后焊接插槽以及其他元件,最后焊接LED显示器。焊接完毕后的电路板如下所示:3.3 程序的下载与调试软件的烧录需要Keil软件、下载器以及USB驱动等,选择相应的单片机型号,打开相应的hex文件,就可以进行程序的下载了。软、硬件调试都无误之后,就可以连接舵机进行最后的检测了。通过不同的按键控制不同的舵机转动,同时数码管可以显示出转动度数.一个完整的机械臂控制系统就完成了。第四章 总 结通过此次生产实习对电路板的腐蚀制
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1