您当前的位置:五五电子网电子知识电子制作无线-遥控类51单片机四驱无线遥控小车制作 正文
51单片机四驱无线遥控小车制作

51单片机四驱无线遥控小车制作

点击数:7498 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   无线-遥控类

      SETB EA ;开起中断

      clr ET1 ;关闭定时1中断

      SETB ES ;开起串口中断

      SETB TR1 ;启动定时器1

      mov a,#0 ;

      mov p1,a ;设置初始值,即开机p1输出00h小车不动作

      main:

      mov p1,a ;把a值给p1端口

      sjmp main ;无限循环main程序

      LOOP:

      jnb ri,$ ;判断接收位是否接收完

      clr ri ;接收完后清空接收位

      mov a,sbuf ;发送的数据给a

      reti ;返回后,a的值就会给p1

      END

      ;发送程序

      ORG 0 ;程序起始地址

      SJMP START ;跳转到主程序

      ORG 30H ;串口中断地址

      START:

      MOV SP,#5FH ;设置堆栈

      MOV TMOD,#20H ;定时器工作方式(请参考51手册)

      MOV PCON,#0 ;波特率不倍速(请参考51手册)

      MOV SCON,#50H ;串行数据格式(详情请参考51手册)

      MOV TH1,#0fdH ;设置波特率在9600

      MOV TL1,#0fdH

      setb EA ;开起中断

      clr ET1 ;关闭定时1中断

      setb ES ;开起串口中断

      SETB TR1 ;启动定时器1

      main:

      lcall kcs ;调用按键扫描程序

      jnz key ;有键按下则跳转到key程序段

      sjmp main ;无限循环main程序

      kcs:

      mov p1,#0ffh ;p1给初值

      mov a,p1 ;p1的数值给a

      cpl a ;取反a

      anl a,#0ffh ;与运算

      ret

      key:

      lcall delay ;软件延时程序,按键去抖

      jb aCC.0,send1

      jb acc.1,send2

      jb acc.2,send3

      jb acc.3,send4

      jb acc.4,send5

      ret

      DELAY:

      MOV R5,#20

      D1:MOV R6,#10

      D2:MOV R7,#100

      DJNZ R7,$

      DJNZ R6,D2

      DJNZ R5,D1

      ret

      send1:

      mov r1,#10101010b ;前进指令

      sjmp send

      send2:

      mov r1,#01010101b ;后退指令

      sjmp send

      send3:

      mov r1,#01011010b ;左转指令

      sjmp send

      send4:

      mov r1,#10100101b ;右转指令

      sjmp send

      send5:

      mov r1,#00h ;停止指令

      sjmp send

      send:

      MOV SBUF,r1 ;指令给sbuf

      JNB TI,$ ;判断是否发送完

      reti ;中断返回

      END



上一页  [1] [2] 


本文关键字:单片机  无线  制作  无线-遥控类电子制作 - 无线-遥控类