创新一机器人写字机器人在我们的生活中应用越来越广泛,例如家务机器人、表演机器人、消防机器人、医疗机器人等。
在写字机器人的制作与创新过程中涉及到了单片机、电子技术、传感器、自动控制、电机技术、机械传动机构等相关知识。
利用单片机的可编程性、易控制、搭接电路简单、工作稳定、性能优越、价格低廉等特点,结合检测传感技术,综合应用到控制系统中,使写字机器人实现智能化。
该写字机器人可用作教师的辅助教学设备和机器人的实践设备等。
一、写字机器人的硬件设计写字机器人的整体结构如图1 所示图1 写字机器人的整体结构1.写字机器人的X轴运动写字机器人X轴的运动主要是通过控制底盘上的四个直流电机来实现,对单片机进行编程实现对机器人X轴的运动控制,写字机器人X轴如图2所示:图2 写字机器人X轴运动2.写字机器人Y轴的运动写字机器人Y轴的运动采用的抽屉的滑轨配合齿轮齿条传动机构来实现的,具体的硬件的搭接方法如图3所示:图3 Y轴的运动单片机通过控制电机转动带动齿轮和齿条的运动来实现Y轴的上升和下降,从而实现“竖”笔画的书写3.写字机器人Z轴的运动写字机器人Z轴的运动采用的方法同Y轴的方法是一样的,Z轴的运动主要实现笔的进笔和出笔。
具体的硬件搭接方法如图4所示:图4 Z轴的运动二、程序设计1.写字机器人编程语言的选择机器人软件开发平台可以使用LOGO语言、QBASIC语言、汇编语言、C语言四种编程语言,而LOGO语言、QBASIC语言和C语言这三种语言的编程相对比较简单,但是占用程序存储空间比较大,而要在黑板上写出“北京仪表学校”六个字需要的程序存储空间比较大,而单片机只有4K的程序存储空间,所以这三种语言是不能选择的。
最终写字机器人采用的是汇编语言,虽然汇编语言的编程相对来讲比较复杂,但是它属于底层语言(机器语言),占用空间比较小。
2.单片机存储器跨页的问题的解决机器人软件开发平台如果采用QABSIC语言进行编程,如果程序超过存储器容量的40%后,程序就不会按照编写的程序来执行,程序将出现跑飞,其主要原因是PIC单片机的程序存储器是分页进行存储的,采用QBASIC语言进行编程无法解决分页的问题,所以只能写在第0页上,无法写到后续的存储页上,这样写的程序的容量就受到了限制,这也是为什么采用汇编语言的第二个原因。
3.写字机器人写“撇”和“捺”的处理方法写字机器人可以在X,Y,Z三个轴上进行运动,写横和竖的笔划是很容易的,利用机器人在X轴上行走写“横”的笔划,利用机器人在Y轴上的上下移动写“竖”的笔划。
撇和捺的处理方法是利用X和Y轴同时动作的方法来实现,X轴向左运动,Y轴向下运动写“撇”的笔划;X轴向右运动,Y轴向右运动写“捺”的笔划。
4.程序流程图1.程序清单INCLUDE "P16F873.EQU";=============Flash ROM中变量的地址================ N EQU 20HM EQU 21HZHU EQU 22HCC EQU 23HZZ EQU 24H;==========入口程序===============ORG 0000HGOTO MAINORG 0004H;=======MAIN PROGRAM(主程序调用)==========MAIN CALL INITIAL;===============蔽障==============CALL STOPYZOO CALL CSQJBTFSC PORTB,7GOTO OOCALL OOOOOO CALL CSHTBTFSC PORTB,6GOTO OOOMOVLW 40MOVWF ZHUBZ CALL CSQJDECFSZ ZHU,1GOTO BZCALL STOPYZ;-----------------------------------抬笔CALL TB;=============北=======================;-----------------------------------上升MOVLW 19MOVWF ZHUBEI CALL UPDECFSZ ZHU,1GOTO BEI;-----------------------------------落笔CALL LB0;-----------------------------------写北字第一笔MOVLW 16MOVWF ZHUBEI1 CALL DOWNDECFSZ ZHU,1GOTO BEI1;-----------------------------------抬笔CALL TB0;------------------------------------上升MOVLW 13MOVWF ZHUBEI2 CALL UPDECFSZ ZHU,1GOTO BEI2;------------------------------------落笔CALL LB0;------------------------------------写北字第二笔MOVLW 35MOVWF ZHUBEI3 CALL KSHTDECFSZ ZHU,1GOTO BEI3;------------------------------------抬笔CALL TB0;------------------------------------下降MOVLW 9MOVWF ZHUBEI4 CALL DOWNDECFSZ ZHU,1GOTO BEI4;------------------------------------慢速后退MOVLW 5MOVWF ZHUBEI5 CALL MSHTDECFSZ ZHU,1GOTO BEI5;------------------------------------落笔CALL LB0;------------------------------------右上MOVLW 16MOVWF ZHUBEI6 CALL XIEXIAN4DECFSZ ZHU,1GOTO BEI6;------------------------------------抬笔CALL TB0;------------------------------------快速前进MOVLW 14MOVWF ZHUDECFSZ ZHU,1GOTO BEI8;-------------------------------------上升MOVLW 12MOVWF ZHUBEI9 CALL UPDECFSZ ZHU,1GOTO BEI9;-------------------------------------落笔CALL LB0;-------------------------------------写北字第四笔MOVLW 17MOVWF ZHUBEI10 CALL DOWNDECFSZ ZHU,1GOTO BEI10;--------------------------------------抬笔CALL TB0;-------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 40MOVWF ZHUBEI11 CALL KSQJDECFSZ ZHU,1GOTO BEI11;-------------------------------------上升MOVLW 2MOVWF ZHUBEI12 CALL UPDECFSZ ZHU,1GOTO BEI12;--------------------------------------抬笔CALL TB0;-------------------------------------上升MOVLW 10MOVWF ZHUBEI13 CALL UPDECFSZ ZHU,1GOTO BEI13;--------------------------------------慢速后退MOVLW 10MOVWF ZHUDECFSZ ZHU,1GOTO BEI14;-------------------------------------落笔CALL LB0;--------------------------------------左下MOVLW 10MOVWF ZHUBEI15 CALL XIEXIANDECFSZ ZHU,1GOTO BEI15;--------------------------------------抬笔CALL TB0;------------------------------------下降MOVLW 8MOVWF ZHUJIANG CALL DOWNDECFSZ ZHU,1GOTO JIANG;--------------------------------------超速前进(间距)MOVLW 45MOVWF ZHUBEI17 CALL CSQJDECFSZ ZHU,1GOTO BEI17;=================京======================= ;--------------------------------------上升MOVLW 20MOVWF ZHUJING CALL UPDECFSZ ZHU,1GOTO JING;--------------------------------------落笔CALL LB0;--------------------------------------写京字第1笔MOVLW 6MOVWF ZHUJING1 CALL XIEXIAN3DECFSZ ZHU,1GOTO JING1;--------------------------------------抬笔CALL TB0;------------------------------------下降MOVLW 1JING0 CALL DOWNDECFSZ ZHU,1GOTO JING0;--------------------------------------慢速后退MOVLW 80MOVWF ZHUJING2 CALL MSHTDECFSZ ZHU,1GOTO JING2;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 78MOVWF ZHUJING3 CALL KSQJDECFSZ ZHU,1GOTO JING3;--------------------------------------抬笔CALL TB0;--------------------------------------快速后退MOVLW 50MOVWF ZHUJING4 CALL KSHTDECFSZ ZHU,1GOTO JING4;------------------------------------下降MOVLW 2MOVWF ZHUJING5 CALL DOWNDECFSZ ZHU,1GOTO JING5;--------------------------------------落笔CALL LB0;------------------------------------下降MOVLW 4MOVWF ZHUJING6 CALL DOWNDECFSZ ZHU,1GOTO JING6;-------------------------------------快速前进MOVLW 47MOVWF ZHUJING7 CALL KSQJGOTO JING7;--------------------------------------上升MOVLW 5MOVWF ZHUJING8 CALL UPDECFSZ ZHU,1GOTO JING8;-------------------------------------快速后退MOVLW 47MOVWF ZHUJING9 CALL KSHTDECFSZ ZHU,1GOTO JING9;--------------------------------------抬笔CALL TB0;------------------------------------下降MOVLW 4MOVWF ZHUJING10 CALL DOWNDECFSZ ZHU,1GOTO JING10;-------------------------------------慢速前进MOVLW 40MOVWF ZHUJING11 CALL MSQJDECFSZ ZHU,1GOTO JING11;--------------------------------------落笔CALL LB0;------------------------------------下降MOVLW 8MOVWF ZHUJING12 CALL DOWNDECFSZ ZHU,1GOTO JING12;--------------------------------------抬笔CALL TB0;--------------------------------------落笔CALL LB0;------------------------------------左上MOVLW 6MOVWF ZHUJING13 CALL XIEXIAN2GOTO JING13;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 5MOVWF ZHUJING14 CALL UPDECFSZ ZHU,1GOTO JING14;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 8MOVWF ZHUJING15 CALL XIEXIANDECFSZ ZHU,1GOTO JING15;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 42MOVWF ZHUJING16 CALL KSQJDECFSZ ZHU,1GOTO JING16;--------------------------------------上升MOVLW 2MOVWF ZHUJING17 CALL UPDECFSZ ZHU,1GOTO JING17;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 10MOVWF ZHUJING18 CALL XIEXIAN3DECFSZ ZHU,1GOTO JING18;--------------------------------------抬笔CALL TB0;------------------------------------下降MOVLW 4JING00 CALL DOWNDECFSZ ZHU,1GOTO JING00;-------------------------------------超速前进(间距)MOVLW 50MOVWF ZHUJING19 CALL CSQJDECFSZ ZHU,1GOTO JING19;======================仪====================== ;--------------------------------------上升MOVLW 18MOVWF ZHUYI CALL UPDECFSZ ZHU,1GOTO YI;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 18MOVWF ZHUYI1 CALL XIEXIANDECFSZ ZHU,1GOTO YI1;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 30MOVWF ZHUYI2 CALL KSQJDECFSZ ZHU,1GOTO YI2;--------------------------------------上升MOVLW 3MOVWF ZHUYI3 CALL UPDECFSZ ZHU,1GOTO YI3;--------------------------------------落笔CALL LB0;-------------------------------------下降MOVLW 13MOVWF ZHUYI4 CALL DOWNDECFSZ ZHU,1GOTO YI4;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 75MOVWF ZHUYI5 CALL KSQJDECFSZ ZHU,1GOTO YI5;--------------------------------------上升MOVLW 11MOVWF ZHUYI6 CALL UPDECFSZ ZHU,1GOTO YI6;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 23MOVWF ZHUYI7 CALL XIEXIANDECFSZ ZHU,1GOTO YI7;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 6MOVWF ZHUYI8 CALL UPDECFSZ ZHU,1GOTO YI8;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 23MOVWF ZHUYI9 CALL XIEXIANADECFSZ ZHU,1GOTO YI9;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 9MOVWF ZHUYI10 CALL UPDECFSZ ZHU,1GOTO YI10;-------------------------------------快速后退MOVLW 45MOVWF ZHUYI11 CALL KSHTDECFSZ ZHU,1GOTO YI11;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 4MOVWF ZHUYI12 CALL XIEXIAN3DECFSZ ZHU,1GOTO YI12;--------------------------------------抬笔CALL TB0;-------------------------------------超速前进(间距)MOVLW 50MOVWF ZHUYI14 CALL CSQJDECFSZ ZHU,1GOTO YI14;======================表==================== ;--------------------------------------上升MOVLW 3MOVWF ZHUBIAO CALL UPDECFSZ ZHU,1GOTO BIAO;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 60MOVWF ZHUBIAO1 CALL KSQJDECFSZ ZHU,1GOTO BIAO1;--------------------------------------抬笔CALL TB0MOVLW 48MOVWF ZHUBIAO2 CALL KSHTDECFSZ ZHU,1GOTO BIAO2;-------------------------------------下降MOVLW 2MOVWF ZHUBIAO3 CALL DOWNDECFSZ ZHU,1GOTO BIAO3;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 60MOVWF ZHUBIAO4 CALL KSQJDECFSZ ZHU,1GOTO BIAO4;--------------------------------------抬笔CALL TB0;-------------------------------------快速后退MOVLW 58MOVWF ZHUBIAO5 CALL KSHTDECFSZ ZHU,1GOTO BIAO5;-------------------------------------下降MOVLW 2MOVWF ZHUBIAO6 CALL DOWNDECFSZ ZHU,1GOTO BIAO6;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 75MOVWF ZHUBIAO7 CALL KSQJDECFSZ ZHU,1GOTO BIAO7;--------------------------------------抬笔CALL TB0MOVLW 34MOVWF ZHUBIAO8 CALL KSHTDECFSZ ZHU,1GOTO BIAO8;--------------------------------------上升MOVLW 8MOVWF ZHUBIAO9 CALL UPDECFSZ ZHU,1GOTO BIAO9;--------------------------------------落笔CALL LB0;-------------------------------------下降MOVLW 7MOVWF ZHUBIAO10 CALL DOWNDECFSZ ZHU,1GOTO BIAO10;------------------------------------左下MOVLW 17MOVWF ZHUBIAO13 CALL XIEXIANDECFSZ ZHU,1GOTO BIAO13;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 40MOVWF ZHUBIAO15 CALL KSQJDECFSZ ZHU,1GOTO BIAO15;--------------------------------------上升MOVLW 5MOVWF ZHUBIAO30 CALL UPDECFSZ ZHU,1GOTO BIAO30;--------------------------------------落笔CALL LB0;-------------------------------------下降MOVLW 9MOVWF ZHUBIAO80 CALL DOWNDECFSZ ZHU,1GOTO BIAO80;--------------------------------------抬笔CALL TB0;--------------------------------------落笔CALL LB0;------------------------------------右上MOVLW 7MOVWF ZHUBIAO11 CALL XIEXIAN4DECFSZ ZHU,1GOTO BIAO11;--------------------------------------抬笔CALL TB0;-------------------------------------慢速后退MOVLW 15MOVWF ZHUBIAO12 CALL MSHTDECFSZ ZHU,1GOTO BIAO12;--------------------------------------上升MOVLW 9MOVWF ZHUBIAO00 CALL UPDECFSZ ZHU,1GOTO BIAO00;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 25MOVWF ZHUBIAO71 CALL XIEXIAN3DECFSZ ZHU,1GOTO BIAO71;--------------------------------------抬笔CALL TB0;-------------------------------------慢速后退MOVLW 11MOVWF ZHUBIAO18 CALL MSHTDECFSZ ZHU,1GOTO BIAO18;--------------------------------------上升MOVLW 5MOVWF ZHUBIAO19 CALL UPDECFSZ ZHU,1GOTO BIAO19;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 4MOVWF ZHUBIAO20 CALL XIEXIANDECFSZ ZHU,1GOTO BIAO20;--------------------------------------抬笔CALL TB0;-------------------------------------超速前进(间距)MOVLW 25MOVWF ZHUBIAO22 CALL CSQJDECFSZ ZHU,1GOTO BIAO22;=====================学======================== ;--------------------------------------上升MOVLW 11MOVWF ZHUXUE CALL UPDECFSZ ZHU,1GOTO XUE;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 6MOVWF ZHUXUE1 CALL XIEXIAN3DECFSZ ZHU,1GOTO XUE1;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 10MOVWF ZHUXUE2 CALL CSQJDECFSZ ZHU,1;--------------------------------------上升MOVLW 2MOVWF ZHUXUE3 CALL UPDECFSZ ZHU,1GOTO XUE3;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 6MOVWF ZHUXUE4 CALL XIEXIAN3DECFSZ ZHU,1GOTO XUE4;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 15MOVWF ZHUXUE5 CALL CSQJDECFSZ ZHU,1GOTO XUE5;--------------------------------------上升MOVLW 2MOVWF ZHUXUE6 CALL UPDECFSZ ZHU,1GOTO XUE6;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 7MOVWF ZHUXUE7 CALL XIEXIAN0DECFSZ ZHU,1GOTO XUE7;--------------------------------------抬笔CALL TB0;-------------------------------------下降MOVLW 1MOVWF ZHUXUE8 CALL DOWNDECFSZ ZHU,1;-------------------------------------快速后退MOVLW 52MOVWF ZHUXUE9 CALL KSHTDECFSZ ZHU,1GOTO XUE9;--------------------------------------落笔CALL LB0;-------------------------------------下降MOVLW 2MOVWF ZHUXUE10 CALL DOWNDECFSZ ZHU,1GOTO XUE10;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 2MOVWF ZHUXUE11 CALL UPDECFSZ ZHU,1GOTO XUE11;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 80MOVWF ZHUXUE12 CALL KSQJDECFSZ ZHU,1GOTO XUE12;------------------------------------左下MOVLW 6MOVWF ZHUXUE13 CALL XIEXIAN0DECFSZ ZHU,1GOTO XUE13;--------------------------------------抬笔CALL TB0;-------------------------------------快速后退MOVLW 35MOVWF ZHUXUE14 CALL KSHTDECFSZ ZHU,1GOTO XUE14;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 25MOVWF ZHUXUE15 CALL KSQJDECFSZ ZHU,1GOTO XUE15;------------------------------------左下MOVLW 5MOVWF ZHUXUE16 CALL XIEXIANDECFSZ ZHU,1GOTO XUE16;-------------------------------------下降MOVLW 9MOVWF ZHUXUE17 CALL DOWNDECFSZ ZHU,1GOTO XUE17;------------------------------------左上MOVLW 6MOVWF ZHUXUE18 CALL XIEXIAN2DECFSZ ZHU,1GOTO XUE18;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 5MOVWF ZHUXUE19 CALL UPDECFSZ ZHU,1GOTO XUE19;-------------------------------------快速后退MOVLW 20MOVWF ZHUXUE20 CALL KSHTDECFSZ ZHU,1GOTO XUE20;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 77MOVWF ZHUXUE21 CALL KSQJDECFSZ ZHU,1GOTO XUE21;--------------------------------------抬笔CALL TB0;-------------------------------------超速前进(间距)MOVLW 30MOVWF ZHUXUE23 CALL CSQJDECFSZ ZHU,1GOTO XUE23;=====================校========================= ;--------------------------------------上升MOVLW 7MOVWF ZHUXIAO CALL UPDECFSZ ZHU,1GOTO XIAO;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 40MOVWF ZHUXIAO1 CALL KSQJDECFSZ ZHU,1GOTO XIAO1;--------------------------------------抬笔CALL TB0;-------------------------------------快速后退MOVLW 18MOVWF ZHUXIAO2 CALL KSHTDECFSZ ZHU,1GOTO XIAO2;--------------------------------------上升MOVLW 4MOVWF ZHUXIAO3 CALL UPDECFSZ ZHU,1GOTO XIAO3;--------------------------------------落笔CALL LB0MOVLW 15MOVWF ZHUXIAO4 CALL DOWNDECFSZ ZHU,1GOTO XIAO4;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 13MOVWF ZHUXIAO5 CALL UPDECFSZ ZHU,1GOTO XIAO5;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 30MOVWF ZHUXIAO6 CALL XIEXIAN0DECFSZ ZHU,1GOTO XIAO6;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 25MOVWF ZHUXIAO7 CALL KSQJDECFSZ ZHU,1GOTO XIAO7;--------------------------------------上升MOVLW 9MOVWF ZHUXIAO8 CALL UPDECFSZ ZHU,1GOTO XIAO8;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 9MOVWF ZHUXIAO9 CALL XIEXIAN00DECFSZ ZHU,1GOTO XIAO9CALL TB0;--------------------------------------上升MOVLW 6MOVWF ZHUXIAO10 CALL UPDECFSZ ZHU,1GOTO XIAO10;-------------------------------------快速前进MOVLW 30MOVWF ZHUXIAO11 CALL KSQJDECFSZ ZHU,1GOTO XIAO11;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 5MOVWF ZHUXIAO12 CALL XIEXIAN3DECFSZ ZHU,1GOTO XIAO12;--------------------------------------抬笔CALL TB0;-------------------------------------下降MOVLW 1MOVWF ZHUXIAO13 CALL DOWNDECFSZ ZHU,1GOTO XIAO13;-------------------------------------快速后退MOVLW 25MOVWF ZHUXIAO14 CALL KSHTDECFSZ ZHU,1GOTO XIAO14;--------------------------------------落笔CALL LB0;-------------------------------------快速前进MOVLW 60MOVWF ZHUXIAO15 CALL KSQJDECFSZ ZHU,1GOTO XIAO15CALL TB0;-------------------------------------快速后退MOVLW 40MOVWF ZHUXIAO16 CALL KSHTDECFSZ ZHU,1GOTO XIAO16;-------------------------------------下降MOVLW 1MOVWF ZHUXIAO17 CALL DOWNDECFSZ ZHU,1GOTO XIAO17;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 7MOVWF ZHUXIAO18 CALL XIEXIAN0DECFSZ ZHU,1GOTO XIAO18;--------------------------------------抬笔CALL TB0;-------------------------------------快速前进MOVLW 40MOVWF ZHUXIAO19 CALL KSQJDECFSZ ZHU,1GOTO XIAO19;--------------------------------------上升MOVLW 3MOVWF ZHUXIAO20 CALL UPDECFSZ ZHU,1GOTO XIAO20;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 8MOVWF ZHUXIAO21 CALL XIEXIAN00DECFSZ ZHU,1GOTO XIAO21CALL TB0;-------------------------------------慢速后退MOVLW 9MOVWF ZHUXIAO22 CALL MSHTDECFSZ ZHU,1GOTO XIAO22;--------------------------------------上升MOVLW 1MOVWF ZHUXIAO23 CALL UPDECFSZ ZHU,1GOTO XIAO23;--------------------------------------落笔CALL LB0;------------------------------------左下MOVLW 32MOVWF ZHUXIAO24 CALL XIEXIAN8DECFSZ ZHU,1GOTO XIAO24;--------------------------------------抬笔CALL TB0;--------------------------------------上升MOVLW 10MOVWF ZHUXIAO25 CALL UPDECFSZ ZHU,1GOTO XIAO25;-------------------------------------快速前进MOVLW 12MOVWF ZHUXIAO26 CALL KSQJDECFSZ ZHU,1GOTO XIAO26;--------------------------------------落笔CALL LB0;------------------------------------右下MOVLW 33MOVWF ZHUXIAO27 CALL XIEXIAN00DECFSZ ZHU,1GOTO XIAO27CALL TB0;-------------------------------------快速前进(间距)MOVLW 30MOVWF ZHUXIAO28 CALL KSQJDECFSZ ZHU,1GOTO XIAO28PAUSE GOTO PAUSE;=======INITIAL====================INITIAL BSF STATUS,RP0 ;设定Bank1,将STATUS中的Rp0位置位1 MOVLW B'11100000' ;b'11100000'表示二进制数;句意:将这个二进制数赋给w寄存器MOVWF TRISB ;将w寄存器的值赋给TRISB ,将B口中前三位5,6,7;设为输入,后五位0,1,2,3,4设为输出MOVLW B'00001111' ;b'00001111'表示二进制数;句意:将这个二进制数赋给w寄存器MOVWF TRISC ;将w寄存器的值赋给TRISC ,将C口中前四位4,5,6,7;设为输出,后四位0,1,2,3,设为输入BCF STA TUS,RP0 ;将STA TUS中的第五比特清0,以恢复体0为当前体RETURN;=======X轴快速前进(写"横")====================KSQJ CLRF PORTBBSF PORTB,1 ;PORTB中1位设为1BSF PORTB,3 ;PORTB中3位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSCALL D2MSBCF PORTB,4CALL D50MSRETURN;=======X轴chao快速前进(写"横")====================CSQJ CLRF PORTBBSF PORTB,1 ;PORTB中1位设为1BSF PORTB,3 ;PORTB中3位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSCALL D5MSBCF PORTB,4CALL D10MSCALL D10MSCALL D10MSCALL D10MSRETURN;=======X轴慢速前进============================== MSQJ CLRF PORTBBSF PORTB,1 ;PORTB中1位设为1BSF PORTB,3 ;PORTB中3位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSBCF PORTB,4CALL D50MSRETURN;=======X轴快速后退(写"横")==================== KSHT CLRF PORTBBSF PORTB,0 ;PORTB中0位设为1BSF PORTB,2 ;PORTB中2位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSCALL D2MSBCF PORTB,4CALL D50MSRETURN;=======X轴chao快速后退(写"横")==================== CSHT CLRF PORTBBSF PORTB,0 ;PORTB中0位设为1BSF PORTB,2 ;PORTB中2位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSCALL D5MSBCF PORTB,4CALL D10MSCALL D10MSCALL D10MSCALL D10MSRETURN;=======X轴慢速后退============================= MSHT CLRF PORTBBSF PORTB,0 ;PORTB中0位设为1BSF PORTB,2 ;PORTB中2位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSBCF PORTB,4CALL D50MSRETURN;=======Y轴上升================================= UP CLRF PORTCBSF PORTC,5 ;PORTC中5位设为1BCF PORTC,4 ;PORTC中4位设为0MOVLW 10MOVWF ZZUP1 CALL D50MSCALL D50MSDECFSZ ZZ,1GOTO UP1CALL STOPYZRETURN;=======Y轴下降================================= DOWN CLRF PORTCBSF PORTC,4 ;PORTC中4位设为1BCF PORTC,5 ;PORTC中5位设为0MOVLW 10MOVWF ZZDOWN1 CALL D50MSCALL D50MSDECFSZ ZZ,1GOTO DOWN1CALL STOPYZRETURN;=======Z轴调速落笔============================= LB MOVLW 30MOVWF ZZLB1 CLRF PORTCBSF PORTC,6 ;PORTC中6位设为1BCF PORTC,7 ;PORTC中7位设为0CALL D5MSCALL STOPYZCALL D50MSDECFSZ ZZ,1GOTO LB1CALL STOPYZRETURN;=======Z轴调速落笔============================= LB0 MOVLW 30MOVWF ZZLB2 CLRF PORTCBSF PORTC,6 ;PORTC中6位设为1BCF PORTC,7 ;PORTC中7位设为0CALL D5MSCALL D2MSCALL STOPYZCALL D50MSDECFSZ ZZ,1GOTO LB2CALL STOPYZRETURN;=======Z轴调速抬笔============================= TB MOVLW 30MOVWF ZZTB1 CLRF PORTCBSF PORTC,7 ;PORTC中7位设为1BCF PORTC,6 ;PORTC中6位设为0CALL D5MSCALL STOPYZCALL D50MSDECFSZ ZZ,1GOTO TB1CALL STOPYZRETURN;=======Z轴调速抬笔============================= TB0 MOVLW 30MOVWF ZZTB2 CLRF PORTCBSF PORTC,7 ;PORTC中7位设为1BCF PORTC,6 ;PORTC中6位设为0CALL D5MSCALL D2MSCALL STOPYZCALL D50MSDECFSZ ZZ,1GOTO TB2CALL STOPYZRETURN;=======停止X轴================================= STOPX CLRF PORTBRETURN;=======停止YZ轴================================ STOPYZ CLRF PORTCRETURN;=======机器人写左下线========================== XIEXIAN MOVLW 5MOVWF CCCLRF PORTCCALL KSHTBSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO TTCAlL STOPXCALL STOPYZRETURN;=======机器人写左下线========================== XIEXIAN8 MOVLW 5MOVWF CCXX CLRF PORTBCLRF PORTCCALL FZHTBSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO XXCAlL STOPXCALL STOPYZRETURN;=======机器人写左上线========================== XIEXIAN2 MOVLW 5MOVWF CCGG CLRF PORTBCLRF PORTCCALL FZHTBSF PORTC,5BCF PORTC,4CALL D50MSDECFSZ CC,1GOTO GGCAlL STOPXCALL STOPYZRETURN;=======机器人写右下线========================== XIEXIAN3 MOVLW 5MOVWF CCFF CLRF PORTBCLRF PORTCBSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO FFCAlL STOPXCALL STOPYZRETURN;=======机器人写右下线========================== XIEXIANA MOVLW 5MOVWF CCUU CLRF PORTBCLRF PORTCCALL KSQJBSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO UUCAlL STOPXCALL STOPYZRETURN;=======机器人写右上线========================== XIEXIAN4 MOVLW 5MOVWF CCAA CLRF PORTBCLRF PORTCCALL FZQJBSF PORTC,5BCF PORTC,4CALL D50MSDECFSZ CC,1GOTO AACAlL STOPXCALL STOPYZRETURN;=======机器人写右上线========================== XIEXIAN7 MOVLW 5MOVWF CCRR CLRF PORTBCLRF PORTCCALL KSQJBSF PORTC,5BCF PORTC,4CALL D50MSDECFSZ CC,1GOTO RRCAlL STOPXCALL STOPYZRETURN;======================X轴前进==================== FZQJ CLRF PORTBBSF PORTB,1 ;PORTB中1位设为1BSF PORTB,3 ;PORTB中3位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSBCF PORTB,4CALL D50MSRETURN;======================X轴后退==================== FZHT CLRF PORTBBSF PORTB,0 ;PORTB中0位设为1BSF PORTB,2 ;PORTB中2位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D5MSBCF PORTB,4CALL D50MSRETURN;=======机器人写左下线========================== XIEXIAN0 MOVLW 5MOVWF CCLL CLRF PORTBCLRF PORTCCALL FZHT2BSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO LLCAlL STOPXCALL STOPYZRETURN;======================X轴后退==================== FZHT2 CLRF PORTBBSF PORTB,0 ;PORTB中0位设为1BSF PORTB,2 ;PORTB中2位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D2MSCALL D2MSBCF PORTB,4CALL D50MSRETURN;=======机器人写右下线==========================XIEXIAN00 MOVLW 5MOVWF CCKK CLRF PORTBCLRF PORTCCALL FZQJ2BSF PORTC,4BCF PORTC,5CALL D50MSDECFSZ CC,1GOTO KKCAlL STOPXCALL STOPYZRETURN;======================X轴前进====================FZQJ2 CLRF PORTBBSF PORTB,1 ;PORTB中1位设为1BSF PORTB,3 ;PORTB中3位设为1BSF PORTB,4 ;PORTB中4位设为1CALL D2MSCALL D2MSBCF PORTB,4CALL D50MSRETURN;*****************************************;*功能:延时程序*;*作者: mdb *;*内容:包含1ms,2ms,5ms,10ms,50ms延时程序*;*****************************************;=======延时10M晶振1mS================ [(3*3+4)*227]*0.4=1ms D1MS MOVLW 227MOVWF MLOOP1 MOVLW 3MOVWF NLOOP2 DECFSZ N,1GOTO LOOP2DECFSZ M,1GOTO LOOP1RETURN。